# Codeg [![Release](https://img.shields.io/github/v/release/xintaofei/codeg)](https://github.com/xintaofei/codeg/releases) [![License](https://img.shields.io/github/license/xintaofei/codeg)](../../LICENSE) [![Tauri](https://img.shields.io/badge/Tauri-2.x-24C8DB)](https://tauri.app/) [![Next.js](https://img.shields.io/badge/Next.js-16-black)](https://nextjs.org/) [![Docker](https://img.shields.io/badge/Docker-ready-2496ED)](../../Dockerfile)

English | 简体中文 | 繁體中文 | 日本語 | 한국어 | Español | Deutsch | Français | Português | العربية

Codeg(Code Generation)是一个多智能体编码工作台,它将多个智能体(Claude Code、Codex CLI、OpenCode、Gemini CLI、OpenClaw、Cline、Hermes Agent、CodeBuddy、Kimi Code、Pi、Grok Build 等)统一到一个工作区中,支持会话聚合和多智能体协作,支持桌面安装,服务器/Docker 部署。 ![gallery](../images/gallery.svg) ## 赞助
优云智算
优云智算
感谢优云智算赞助了本项目!优云智算是 UCloud 旗下 AI 云平台,主打包月、按次的高性价比国模 agent Plan 套餐,低至 49 元/月起。同时提供官转稳定海外模型。支持接入 Claude Code、Codex 及 API 调用。支持企业高并发、7*24 技术支持、自助开票。通过此链接注册的用户,可得免费 5 元平台体验金!
随想AI中转站
随想AI中转站
感谢随想AI中转站对本项目的赞助!随想AI中转站是一家可靠高效的 API 中继服务提供商,提供 Claude、Codex、Gemini 等的中继服务。新账户注册后每日签到就送 0.5 元测试额度,充值额度 1:1,无需订阅,按量付费。多线路冗余、跨区域容灾、自动故障切换,长链路 SSE 不中断。
合租巴士
合租巴士
感谢合租巴士对本项目的赞助!合租巴士是一家可靠高效的 AI 中转服务平台,主要提供 Codex、Claude Code 等主流模型的高稳定中转能力,充值比例透明(1:1),Codex 倍率补贴低至 0.08。官网进群送 5 刀体验金
OneHop
OneHop
感谢 OneHop 对本项目的赞助!OneHop 让 Codeg 用户仅用一个 OpenAI 兼容的 API 密钥即可调用数百款领先模型,包括 GPT、Claude、Gemini、DeepSeek、Kimi 和 Qwen。无需管理多个供应商账号或反复修改代码即可切换模型,且按用量付费。通过 Codeg 注册即可获得 1 美元额度,再加入 OneHop 社区并参与欢迎活动可额外获得 5 美元——最高共计 6 美元测试额度。
> 想成为 Codeg 赞助商?[欢迎通过邮件与我们联系。](mailto:itpkcn@gmail.com) ## 主界面 ![Codeg Light](../images/main-light.png#gh-light-mode-only) ![Codeg Dark](../images/main-dark.png#gh-dark-mode-only) ## 多智能体协作 ![Codeg Light](../images/collaboration-light.png#gh-light-mode-only) ![Codeg Dark](../images/collaboration-dark.png#gh-dark-mode-only) ## 日常办公 ![Codeg Light](../images/office-light.png#gh-light-mode-only) ![Codeg Dark](../images/office-dark.png#gh-dark-mode-only) ## 核心亮点 - **会话聚合** — 将所有受支持智能体的会话导入到统一工作台 - **多智能体协作** — 在同一会话中,主智能体可调用不同类型的子智能体(如 Claude Code 调用 Codex、Gemini 等)协作完成任务,每个子智能体作为独立会话运行 - 内置 `git worktree` 并行开发流程 - **项目启动器** — 可视化创建新项目,实时预览效果 - **Office 文档** — 通过内置的 officecli 工具集创建、分析、校对和编辑 .docx / .xlsx / .pptx 文件,支持在文件标签页内实时预览,随智能体编辑即时刷新 - **科学研究** — 内置科研技能(假设生成、实验设计、统计、可视化、批判性评估、文献检索),任意智能体均可调用,按智能体管理 - **自动化** — 将任意输入框配置保存为可复用的自动化任务,按 cron 计划或手动触发、无界面自动运行 - **消息渠道** — 连接 Telegram、飞书、iLink(微信)等即时通讯应用到编码代理,实时接收通知、完整会话交互、远程任务控制 - MCP 管理(本地扫描 + 市场搜索/安装) - Skills 管理(全局与项目级) - Git 远程账号管理(支持 GitHub 及其它 Git 服务器) - Web 服务模式 — 开启后可在浏览器中访问 Codeg,支持远程工作 - **独立服务器部署** — 在任意 Linux/macOS 服务器上运行 `codeg-server`,通过浏览器访问 - **Docker 支持** — `docker compose up` 或 `docker run`,可自定义令牌、端口,支持数据持久化及项目目录挂载 - 运行时日志 — 内置实时日志查看器,支持筛选和按模块设置日志级别 - 集成工程闭环(文件树、Diff、Git 变更、提交、终端) ## 支持的Agent | Agent | 环境变量优先路径 | macOS / Linux 默认路径 | Windows 默认路径 | | ------------ | ------------------------------------- | ------------------------------------- | ----------------------------------------------------- | | Claude Code | `$CLAUDE_CONFIG_DIR/projects` | `~/.claude/projects` | `%USERPROFILE%\\.claude\\projects` | | Codex CLI | `$CODEX_HOME/sessions` | `~/.codex/sessions` | `%USERPROFILE%\\.codex\\sessions` | | OpenCode | `$XDG_DATA_HOME/opencode/opencode.db` | `~/.local/share/opencode/opencode.db` | `%USERPROFILE%\\.local\\share\\opencode\\opencode.db` | | Gemini CLI | `$GEMINI_CLI_HOME/.gemini` | `~/.gemini` | `%USERPROFILE%\\.gemini` | | OpenClaw | — | `~/.openclaw/agents` | `%USERPROFILE%\\.openclaw\\agents` | | Cline | `$CLINE_DIR` | `~/.cline/data/tasks` | `%USERPROFILE%\\.cline\\data\\tasks` | | Hermes Agent | `$HERMES_HOME/state.db` | `~/.hermes/state.db` | `%USERPROFILE%\\.hermes\\state.db` | | CodeBuddy | `$CODEBUDDY_CONFIG_DIR/projects` | `~/.codebuddy/projects` | `%USERPROFILE%\\.codebuddy\\projects` | | Kimi Code | `$KIMI_CODE_HOME/sessions` | `~/.kimi-code/sessions` | `%USERPROFILE%\\.kimi-code\\sessions` | | Pi | `$PI_CODING_AGENT_SESSION_DIR` | `~/.pi/agent/sessions` | `%USERPROFILE%\\.pi\\agent\\sessions` | | Grok Build | `$GROK_HOME/sessions` | `~/.grok/sessions` | `%USERPROFILE%\\.grok\\sessions` | > 注意:环境变量的优先级高于默认路径。

项目启动器

可视化创建新项目:左侧配置面板,右侧实时预览。 ![Project Boot Light](../images/project-boot-light.png#gh-light-mode-only) ![Project Boot Dark](../images/project-boot-dark.png#gh-dark-mode-only) ### 功能特性 - **可视化配置** — 从下拉菜单中选择样式、颜色主题、图标库、字体、圆角等,预览面板即时更新 - **实时预览** — 在创建项目前,实时查看所选样式的渲染效果 - **一键创建** — 点击"创建项目",启动器将使用您的预设配置、框架模板(Next.js / Vite / React Router / Astro / Laravel)和包管理器(pnpm / npm / yarn / bun)执行 `shadcn init` - **包管理器检测** — 自动检测已安装的包管理器并显示版本号 - **无缝集成** — 新创建的项目会立即在 Codeg 工作台中打开 目前支持 **shadcn/ui** 项目脚手架,选项卡式设计为未来支持更多项目类型做好了准备。

消息渠道

连接你喜爱的即时通讯应用——Telegram、飞书、iLink(微信)等——到 AI 编码代理。直接在聊天中创建任务、发送后续消息、审批权限、恢复会话、监控活动。实时接收代理响应(包含工具调用详情、权限提示和完成摘要),无需打开浏览器。 Telegram 论坛超级群也可以使用 [Telegram topic mode](../chat-channels/telegram-topic-mode.md),将每个 topic 绑定到独立的 Codeg 会话。 ### 支持的渠道 | 渠道 | 协议 | 状态 | | ------------- | ---------------------- | ---- | | Telegram | Bot API(HTTP 长轮询) | 内置 | | 飞书 | WebSocket + REST API | 内置 | | iLink(微信) | WebSocket + REST API | 内置 | > 更多渠道(Discord、Slack、钉钉等)计划在未来版本中支持。

Office 文档

将 Word、Excel 和 PowerPoint 文件纳入一等工作流。内置的 **officecli** 工具集让你的智能体能够创建、分析、校对和编辑 .docx、.xlsx、.pptx 文档——并可直接在 Codeg 内预览结果。 ### 功能特性 - **创建与编辑** — 生成新文档或修改现有 .docx / .xlsx / .pptx 文件,支持图表、表格和格式设置 - **分析与校对** — 检查文档结构、发现格式问题、校对内容 - **实时预览** — 在文件标签页中打开 .docx / .xlsx / .pptx,即可内联渲染,随智能体编辑自动刷新——底层由常驻的 `officecli watch` 服务支撑(在 Web 和独立服务器部署中经反向代理转发,按能力鉴权) - **快捷操作** — 欢迎页提供「编码」、「Office」和「科学研究」三个标签,一键将对应技能调用和提示词模板填入输入框;未对所选智能体启用的技能会显示锁定标记,并引导你前往可开启的位置 - **Office 工具设置** — 专属设置页可安装 `officecli` 并通过技能×智能体矩阵管理文档技能:切换任意(技能,智能体)组合,支持一键批量启停

科学研究

将任意智能体变为严谨的科研助手。Codeg 内置一套精选的、采用 MIT 许可证的**科研技能**——从选题构思到分析再到论文撰写——它们会安装到共享的中央技能库,并按你的选择链接到相应智能体,与专家和 Office 工具集的方式完全一致。 ### 功能特性 - **精选技能** — 假设生成、实验设计、统计功效、统计分析、探索性数据分析、科学可视化、批判性评估、同行评审、引文管理、学者评估、论文检索以及 AI 示意图 - **快捷操作** — 欢迎页的「科学研究」标签一键将对应的技能调用和本地化提示词模板填入输入框 - **科学研究设置** — 专属设置页通过技能×智能体矩阵管理这些技能,并以徽标标记需要 API 密钥或 Python 环境的技能

自动化

将任意输入框配置——智能体、模型、提示词、工作目录和选项——保存为可复用的**自动化**任务,无需打开 UI 即可运行。 ### 功能特性 - **一次配置,随时复用** — 将完整的输入框配置保存为命名自动化任务 - **定时或按需触发** — 按 cron 计划运行,或随时手动触发 - **无界面执行** — 自动化任务在后台运行,创建真实会话,可随时在工作台中打开,启动后自动返回工作台

快速开始

### 环境要求 - Node.js `>=22`(推荐) - pnpm `>=10` - Rust stable(2021 edition) - Tauri 2 构建依赖(仅桌面模式) Linux(Debian/Ubuntu)示例: ```bash sudo apt-get update sudo apt-get install -y \ libwebkit2gtk-4.1-dev \ libayatana-appindicator3-dev \ librsvg2-dev \ patchelf ``` ### 二进制文件 Codeg 在单个 workspace 中提供三个 Rust 二进制文件: | 二进制 | 角色 | 构建方式 | | -------------- | -------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- | | `codeg` | Tauri 桌面应用(窗口、托盘、自动更新) | `pnpm tauri build`(发布)/ `pnpm tauri dev`(开发) | | `codeg-server` | 用于浏览器/无头部署的独立 HTTP + WebSocket 服务器 | `pnpm server:build` / `pnpm server:dev` | | `codeg-mcp` | 单次启动的 stdio MCP 协作进程,向 agent CLI 暴露 `delegate_to_agent` 工具(多智能体协作) | `pnpm tauri:prepare-sidecars`(由 `tauri dev` / `tauri build` 自动调用) | `codeg-mcp` 在运行时必须与其父二进制位于同一目录——安装器、Docker 镜像和 Tauri sidecar 打包器都会把它放在 `codeg` / `codeg-server` 旁边。源码构建和自定义部署可以通过 `CODEG_MCP_BIN=/abs/path/codeg-mcp` 环境变量覆盖查找路径。如果协作进程缺失,委托功能会被跳过(仅记录一条警告日志),其余 agent 会话仍可正常工作。 ### 开发命令 ```bash pnpm install # 仅前端(Next.js 开发服务器,无需 Rust) pnpm dev # 前端静态导出到 out/ pnpm build # 完整桌面应用(Tauri + Next.js,自动构建 codeg-mcp sidecar) pnpm tauri dev # 桌面发布构建(将 codeg-mcp 作为 externalBin 打包) pnpm tauri build # 独立服务器(无需 Tauri/GUI) pnpm server:dev pnpm server:build # 发布二进制位于 src-tauri/target/release/codeg-server # 显式构建 codeg-mcp 协作进程(针对当前主机 triple) pnpm tauri:prepare-sidecars # 输出:src-tauri/binaries/codeg-mcp- # 当只调试前端且不需要委托功能时,跳过 sidecar 准备 CODEG_SKIP_SIDECAR=1 pnpm tauri dev # Lint pnpm eslint . # 前端测试(vitest) pnpm test pnpm test:watch pnpm test:coverage # Rust 检查(在 src-tauri/ 下执行) cargo check # 桌面(默认 features) cargo check --no-default-features --bin codeg-server # 服务器模式 cargo check --no-default-features --bin codeg-mcp # MCP 协作进程 cargo clippy --all-targets --features test-utils -- -D warnings # Rust 测试 cargo test --features test-utils # 桌面(含集成) cargo test --no-default-features --bin codeg-server --lib # 服务器模式 cargo insta review # 接受解析器快照变更 ``` > 提示:当你在 `src-tauri/target/release/` 下有新构建的 `codeg-mcp` 并想让手动启动的 `codeg-server` 在不重新安装的情况下指向它时,可以导出 `CODEG_MCP_BIN=$(pwd)/src-tauri/target/release/codeg-mcp`。 ### 服务器部署 Codeg 可以作为独立 Web 服务器运行,无需桌面环境。 #### 方式一:一键安装(Linux / macOS) ```bash curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash ``` 安装指定版本或到自定义目录: ```bash curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash -s -- --version v0.5.2 --dir ~/.local/bin ``` 然后运行: ```bash codeg-server ``` #### 方式二:一键安装(Windows PowerShell) ```powershell irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex ``` 或安装指定版本: ```powershell .\install.ps1 -Version v0.5.2 ``` #### 方式三:从 GitHub Releases 下载 预构建二进制文件(已打包 Web 前端资源)可在 [Releases](https://github.com/xintaofei/codeg/releases) 页面下载: | 平台 | 文件 | | ----------- | ---------------------------------- | | Linux x64 | `codeg-server-linux-x64.tar.gz` | | Linux arm64 | `codeg-server-linux-arm64.tar.gz` | | macOS x64 | `codeg-server-darwin-x64.tar.gz` | | macOS arm64 | `codeg-server-darwin-arm64.tar.gz` | | Windows x64 | `codeg-server-windows-x64.zip` | ```bash # 示例:下载、解压、运行 tar xzf codeg-server-linux-x64.tar.gz cd codeg-server-linux-x64 CODEG_STATIC_DIR=./web ./codeg-server ``` > 对于无人值守的部署,请以 `--supervise` 启动,这样在就地升级失败时会自动回滚——参见[就地更新](#就地更新)。 #### 方式四:Docker ```bash # 使用 Docker Compose(推荐) docker compose up -d # 或直接使用 Docker 运行 docker run -d -p 3080:3080 -v codeg-data:/data ghcr.io/xintaofei/codeg:latest # 自定义令牌并挂载项目目录 docker run -d -p 3080:3080 \ -v codeg-data:/data \ -v /path/to/projects:/projects \ -e CODEG_TOKEN=your-secret-token \ ghcr.io/xintaofei/codeg:latest ``` Docker 镜像采用多阶段构建(Node.js + Rust → 精简 Debian 运行时),内置 `git` 和 `ssh` 以支持仓库操作。数据持久化存储在 `/data` 卷中。可选挂载项目目录以从容器内访问本地仓库。 #### 方式五:从源码构建 ```bash pnpm install && pnpm build # 构建前端 cd src-tauri cargo build --release --bin codeg-server --no-default-features cargo build --release --bin codeg-mcp --no-default-features # 委托协作进程 CODEG_STATIC_DIR=../out ./target/release/codeg-server # codeg-mcp 会作为同级二进制被自动发现 ``` > 如果两个二进制分别存放在不同目录,请设置 `CODEG_MCP_BIN=/abs/path/to/codeg-mcp`,运行时才能找到协作进程;否则多智能体委托会被静默禁用。 #### 就地更新 服务器可从**设置 → 软件更新**自行更新:它会下载对应平台的已签名发布包,替换磁盘上的二进制文件和 Web 前端资源,然后重启——无需手动重新部署。此功能仅支持 Linux/macOS(Windows 上已禁用)。上一版本会保留为备份,因此同一界面上还提供**回滚**操作以退回到该版本。 **在监护进程下运行以启用自动回滚。** 使用 `--supervise` 启动独立服务器,这样刚完成升级的进程若未能在试运行窗口内启动,便会自动还原到上一版本: ```bash CODEG_STATIC_DIR=./web ./codeg-server --supervise ``` 若不加 `--supervise`,服务器仍会就地更新(它会对自身执行 re-exec),但升级只是尽力而为:没有监护进程来自动回滚无法启动的版本。Docker 镜像已在监护进程下运行。 **Docker 升级改变的是容器,而非镜像。** 就地升级会重写正在运行的容器可写层内的二进制文件和 Web 前端资源,因此它们只存在于该容器中。`/data` 卷会持久保存,但升级后的文件**不会**保留:重建容器——`docker compose up --force-recreate`、全新的 `docker run`,或在 `docker pull` 之后重建——都会重新从镜像启动,并丢弃就地升级。(单独执行 `docker pull` 只会刷新本地镜像;在重建容器之前不会有任何回退。)要让升级永久生效,请构建或拉取新版本的镜像,并基于它重建容器。 #### 配置 环境变量: | 变量 | 默认值 | 说明 | | ------------------------------ | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `CODEG_PORT` | `3080` | HTTP 端口 | | `CODEG_HOST` | `0.0.0.0` | 绑定地址 | | `CODEG_TOKEN` | _(随机)_ | 认证令牌(启动时输出到 stderr) | | `CODEG_DATA_DIR` | `~/.local/share/codeg` | SQLite 数据库目录(同时也是 `uploads/`、`pets/` 的根目录) | | `CODEG_STATIC_DIR` | `./web` 或 `./out` | Next.js 静态导出目录 | | `CODEG_MCP_BIN` | _(未设置)_ | `codeg-mcp` 协作进程的绝对路径。会覆盖默认的"可执行文件同级目录 + `PATH`"查找逻辑。用于源码构建或协作进程不在服务端安装目录内的自定义部署。 | | `CODEG_SKIP_SIDECAR` | _(未设置)_ | 仅供 `pnpm tauri dev` / `pnpm tauri build` 调试前端时使用——当值为 `1` 时,跳过 `codeg-mcp` sidecar 的构建。此类构建不支持委托功能;发布质量的产物必须保持此变量未设置。 | | `CODEG_UPLOAD_MAX_TOTAL_BYTES` | _(未设置)_ | `/uploads/` 下所有文件总字节数的硬上限。十进制字节数(例如 `10737418240` 表示 10 GiB)。未设置、`0` 或无法解析的值会禁用上限,并在启动时打印一行日志以便观察当前状态。该上限仅在单个 `codeg-server` 进程内生效——共享一个 `uploads/` 卷的横向扩展部署需要外部协调(文件锁、Redis、反向代理配额)。 | | `CODEG_UPLOAD_QUOTA_STRICT` | _(未设置)_ | 当值为真(`1` / `true` / `yes` / `on`)时,若 `CODEG_UPLOAD_MAX_TOTAL_BYTES` 设置为无法解析的值,则以退出码 2 中止启动,而不是发出 WARN 后继续运行。当安全策略要求"配置的配额必须生效"时使用此选项。 |

架构

```text Next.js 16 (Static Export) + React 19 | | invoke() (desktop) / fetch() + WebSocket (web) v ┌─────────────────────────┐ │ Transport Abstraction │ │ (Tauri IPC or HTTP/WS) │ └─────────────────────────┘ | v ┌─── Tauri Desktop ───┐ ┌─── codeg-server ───┐ │ Tauri 2 Commands │ │ Axum HTTP + WS │ │ (window management) │ │ (standalone mode) │ └──────────┬───────────┘ └──────────┬──────────┘ └──────────┬───────────────┘ v Shared Rust Core |- AppState |- ACP Manager |- Parsers (conversation ingestion) |- Chat Channels |- Git / File Tree / Terminal |- MCP marketplace + config |- Office Tools (officecli) + Automations |- SeaORM + SQLite | ┌───────┼───────┐ v v v Local Filesystem Git Chat Channels / Git Repos Repos (Telegram, Lark, iLink) ```
## 隐私与安全 - 默认本地优先:解析、存储、项目操作均在本地完成 - 仅在用户主动触发时才访问网络 - 支持系统代理,适配企业网络环境 - Web 服务模式使用基于令牌的身份认证 ## 交流 - 扫描下方二维码加入我们的微信群,参与讨论、反馈与更新 WeChat WeChat - 感谢 [LinuxDO](https://linux.do) 社区的支持 ## 鸣谢 - [ACP](https://agentclientprotocol.com):智能体客户端协议 (ACP) 是 codeg 实现多智能体连接的基础 - [Superpowers](https://github.com/obra/superpowers):为 Codeg 的专家技能模块提供支持 - [OfficeCLI](https://github.com/iOfficeAI/OfficeCLI):为 Codeg 的 Office 文档工作流提供支持 - [scientific-agent-skills](https://github.com/K-Dense-AI/scientific-agent-skills):为 Codeg 的科学研究技能提供支持(MIT 许可的子集) ## 许可证 Apache-2.0,详见 `LICENSE`。