Skip to content

Latest commit

 

History

History
364 lines (271 loc) · 19.5 KB

File metadata and controls

364 lines (271 loc) · 19.5 KB

Codeg

Release License Tauri Next.js Docker

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

Codeg(Code Generation)是一个多智能体编码工作台,它将多个智能体(Claude Code、Codex CLI、OpenCode、Gemini CLI、OpenClaw、Cline 等)统一到一个工作区中,支持会话聚合和多智能体协作,支持桌面安装,服务器/Docker 部署。

gallery

赞助

MyClaw.ai — Your OpenClaw Agent, Always On.
MyClaw.ai — 全托管的 OpenClaw 云端实例服务,一键部署、7×24 全天候在线、数据完全由用户掌控,无需自行管理服务器。
优云智算
优云智算
感谢优云智算赞助了本项目!优云智算是 UCloud 旗下 AI 云平台,主打包月、按次的高性价比国模 agent Plan 套餐,低至 49 元/月起。同时提供官转稳定海外模型。支持接入 Claude Code、Codex 及 API 调用。支持企业高并发、7*24 技术支持、自助开票。通过此链接注册的用户,可得免费 5 元平台体验金!

想成为 Codeg 赞助商?欢迎通过邮件与我们联系。

主界面

Codeg Light Codeg Dark

设置

Codeg Light Codeg Dark

核心亮点

  • 会话聚合 — 将所有受支持智能体的会话导入到统一工作台
  • 多智能体协作 — 在同一会话中,主智能体可调用不同类型的子智能体(如 Claude Code 调用 Codex、Gemini 等)协作完成任务,每个子智能体作为独立会话运行
  • 内置 git worktree 并行开发流程
  • 项目启动器 — 可视化创建新项目,实时预览效果
  • 消息渠道 — 连接 Telegram、飞书、iLink(微信)等即时通讯应用到编码代理,实时接收通知、完整会话交互、远程任务控制
  • MCP 管理(本地扫描 + 市场搜索/安装)
  • Skills 管理(全局与项目级)
  • Git 远程账号管理(支持 GitHub 及其它 Git 服务器)
  • Web 服务模式 — 开启后可在浏览器中访问 Codeg,支持远程工作
  • 独立服务器部署 — 在任意 Linux/macOS 服务器上运行 codeg-server,通过浏览器访问
  • Docker 支持docker compose updocker 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

注意:环境变量的优先级高于默认路径。

项目启动器

可视化创建新项目:左侧配置面板,右侧实时预览。

Project Boot Light Project Boot Dark

功能特性

  • 可视化配置 — 从下拉菜单中选择样式、颜色主题、图标库、字体、圆角等,预览面板即时更新
  • 实时预览 — 在创建项目前,实时查看所选样式的渲染效果
  • 一键创建 — 点击"创建项目",启动器将使用您的预设配置、框架模板(Next.js / Vite / React Router / Astro / Laravel)和包管理器(pnpm / npm / yarn / bun)执行 shadcn init
  • 包管理器检测 — 自动检测已安装的包管理器并显示版本号
  • 无缝集成 — 新创建的项目会立即在 Codeg 工作台中打开

目前支持 shadcn/ui 项目脚手架,选项卡式设计为未来支持更多项目类型做好了准备。

消息渠道

连接你喜爱的即时通讯应用——Telegram、飞书、iLink(微信)等——到 AI 编码代理。直接在聊天中创建任务、发送后续消息、审批权限、恢复会话、监控活动。实时接收代理响应(包含工具调用详情、权限提示和完成摘要),无需打开浏览器。

支持的渠道

渠道 协议 状态
Telegram Bot API(HTTP 长轮询) 内置
飞书 WebSocket + REST API 内置
iLink(微信) WebSocket + REST API 内置

更多渠道(Discord、Slack、钉钉等)计划在未来版本中支持。

快速开始

环境要求

  • Node.js >=22(推荐)
  • pnpm >=10
  • Rust stable(2021 edition)
  • Tauri 2 构建依赖(仅桌面模式)

Linux(Debian/Ubuntu)示例:

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 会话仍可正常工作。

开发命令

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-<triple>

# 当只调试前端且不需要委托功能时,跳过 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)

curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash

安装指定版本或到自定义目录:

curl -fsSL https://raw.githubusercontent.com/xintaofei/codeg/main/install.sh | bash -s -- --version v0.5.2 --dir ~/.local/bin

然后运行:

codeg-server

方式二:一键安装(Windows PowerShell)

irm https://raw.githubusercontent.com/xintaofei/codeg/main/install.ps1 | iex

或安装指定版本:

.\install.ps1 -Version v0.5.2

方式三:从 GitHub Releases 下载

预构建二进制文件(已打包 Web 前端资源)可在 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
# 示例:下载、解压、运行
tar xzf codeg-server-linux-x64.tar.gz
cd codeg-server-linux-x64
CODEG_STATIC_DIR=./web ./codeg-server

方式四:Docker

# 使用 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 运行时),内置 gitssh 以支持仓库操作。数据持久化存储在 /data 卷中。可选挂载项目目录以从容器内访问本地仓库。

方式五:从源码构建

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,运行时才能找到协作进程;否则多智能体委托会被静默禁用。

配置

环境变量:

变量 默认值 说明
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 (未设置) <data dir>/uploads/ 下所有文件总字节数的硬上限。十进制字节数(例如 10737418240 表示 10 GiB)。未设置、0 或无法解析的值会禁用上限,并在启动时打印一行日志以便观察当前状态。该上限仅在单个 codeg-server 进程内生效——共享一个 uploads/ 卷的横向扩展部署需要外部协调(文件锁、Redis、反向代理配额)。
CODEG_UPLOAD_QUOTA_STRICT (未设置) 当值为真(1 / true / yes / on)时,若 CODEG_UPLOAD_MAX_TOTAL_BYTES 设置为无法解析的值,则以退出码 2 中止启动,而不是发出 WARN 后继续运行。当安全策略要求"配置的配额必须生效"时使用此选项。

架构

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
              |- SeaORM + SQLite
                      |
              ┌───────┼───────┐
              v       v       v
  Local Filesystem  Git   Chat Channels
    / Git Repos    Repos  (Telegram, Lark, iLink)

隐私与安全

  • 默认本地优先:解析、存储、项目操作均在本地完成
  • 仅在用户主动触发时才访问网络
  • 支持系统代理,适配企业网络环境
  • Web 服务模式使用基于令牌的身份认证

交流

  • 扫描下方二维码加入我们的微信群,参与讨论、反馈与更新

WeChat

WeChat

鸣谢

  • ACP:智能体客户端协议 (ACP) 是 codeg 实现多智能体连接的基础

许可证

Apache-2.0,详见 LICENSE