292 lines
9.8 KiB
Markdown
292 lines
9.8 KiB
Markdown
# Codeg
|
||
|
||
[](https://github.com/xintaofei/codeg/releases)
|
||
[](../../LICENSE)
|
||
[](https://tauri.app/)
|
||
[](https://nextjs.org/)
|
||
[](../../Dockerfile)
|
||
|
||
<p>
|
||
<a href="../../README.md">English</a> |
|
||
<strong>简体中文</strong> |
|
||
<a href="./README.zh-TW.md">繁體中文</a> |
|
||
<a href="./README.ja.md">日本語</a> |
|
||
<a href="./README.ko.md">한국어</a> |
|
||
<a href="./README.es.md">Español</a> |
|
||
<a href="./README.de.md">Deutsch</a> |
|
||
<a href="./README.fr.md">Français</a> |
|
||
<a href="./README.pt.md">Português</a> |
|
||
<a href="./README.ar.md">العربية</a>
|
||
</p>
|
||
|
||
Codeg(Code Generation)是一个企业级多 Agent 编码工作台。
|
||
它将本地 AI 编码代理(Claude Code、Codex CLI、OpenCode、Gemini CLI、
|
||
OpenClaw、Cline 等)统一到桌面应用、独立服务器或 Docker 容器中——通过浏览器即可远程开发——支持会话聚合、
|
||
并行 `git worktree` 开发、MCP/Skills 管理,以及集成的 Git/文件/终端工作流。
|
||
|
||
## 主界面
|
||

|
||

|
||
|
||
## 设置
|
||
| 代理 | MCP | Skills | 版本控制 | Web 服务 |
|
||
| :---: | :---: | :---: | :---: | :---: |
|
||
|   |   |   |   |   |
|
||
|
||
## 核心亮点
|
||
|
||
- 同一项目中的多 Agent 统一工作台
|
||
- 本地会话解析与结构化渲染
|
||
- 内置 `git worktree` 并行开发流程
|
||
- **项目启动器** — 可视化创建新项目,实时预览效果
|
||
- MCP 管理(本地扫描 + 市场搜索/安装)
|
||
- Skills 管理(全局与项目级)
|
||
- Git 远程账号管理(支持 GitHub 及其它 Git 服务器)
|
||
- Web 服务模式 — 开启后可在浏览器中访问 Codeg,支持远程工作
|
||
- **独立服务器部署** — 在任意 Linux/macOS 服务器上运行 `codeg-server`,通过浏览器访问
|
||
- **Docker 支持** — 多阶段构建镜像,支持 `docker compose up` 或 `docker run`,可自定义令牌、端口,支持数据持久化及项目目录挂载
|
||
- 集成工程闭环(文件树、Diff、Git 变更、提交、终端)
|
||
|
||
## 项目启动器
|
||
|
||
可视化创建新项目:左侧配置面板,右侧实时预览。
|
||
|
||

|
||

|
||
|
||
### 功能特性
|
||
|
||
- **可视化配置** — 从下拉菜单中选择样式、颜色主题、图标库、字体、圆角等,预览面板即时更新
|
||
- **实时预览** — 在创建项目前,实时查看所选样式的渲染效果
|
||
- **一键创建** — 点击"创建项目",启动器将使用您的预设配置、框架模板(Next.js / Vite / React Router / Astro / Laravel)和包管理器(pnpm / npm / yarn / bun)执行 `shadcn init`
|
||
- **包管理器检测** — 自动检测已安装的包管理器并显示版本号
|
||
- **无缝集成** — 新创建的项目会立即在 Codeg 工作台中打开
|
||
|
||
目前支持 **shadcn/ui** 项目脚手架,选项卡式设计为未来支持更多项目类型做好了准备。
|
||
|
||
## 支持范围
|
||
|
||
### 1) 会话解析(历史会话)
|
||
|
||
| 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` |
|
||
|
||
> 注意:环境变量的优先级高于默认路径。
|
||
|
||
### 2) ACP 实时会话
|
||
|
||
目前支持 6 种代理:Claude Code、Codex CLI、Gemini CLI、OpenCode、OpenClaw 和 Cline。
|
||
|
||
### 3) Skills 设置支持
|
||
|
||
- 已支持:`Claude Code / Codex / OpenCode / Gemini CLI / OpenClaw / Cline`
|
||
- 更多适配器将持续补齐
|
||
|
||
### 4) MCP 目标应用
|
||
|
||
当前可写入的目标:
|
||
|
||
- Claude Code
|
||
- Codex
|
||
- OpenCode
|
||
|
||
## 快速开始
|
||
|
||
### 环境要求
|
||
|
||
- 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
|
||
```
|
||
|
||
### 开发命令
|
||
|
||
```bash
|
||
pnpm install
|
||
|
||
# 前端静态导出到 out/
|
||
pnpm build
|
||
|
||
# 完整桌面应用(Tauri + Next.js)
|
||
pnpm tauri dev
|
||
|
||
# 仅前端
|
||
pnpm dev
|
||
|
||
# 桌面应用构建
|
||
pnpm tauri build
|
||
|
||
# 独立服务器(无需 Tauri/GUI)
|
||
pnpm server:dev
|
||
|
||
# 构建服务器发布二进制
|
||
pnpm server:build
|
||
|
||
# Lint
|
||
pnpm eslint .
|
||
|
||
# Rust 检查(在 src-tauri/ 下执行)
|
||
cargo check
|
||
cargo clippy
|
||
cargo build
|
||
```
|
||
|
||
### 服务器部署
|
||
|
||
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.0 --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.0
|
||
```
|
||
|
||
#### 方式三:从 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
|
||
```
|
||
|
||
#### 方式四: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
|
||
CODEG_STATIC_DIR=../out ./target/release/codeg-server
|
||
```
|
||
|
||
#### 配置
|
||
|
||
环境变量:
|
||
|
||
| 变量 | 默认值 | 说明 |
|
||
| --- | --- | --- |
|
||
| `CODEG_PORT` | `3080` | HTTP 端口 |
|
||
| `CODEG_HOST` | `0.0.0.0` | 绑定地址 |
|
||
| `CODEG_TOKEN` | *(随机)* | 认证令牌(启动时输出到 stderr) |
|
||
| `CODEG_DATA_DIR` | `~/.local/share/codeg` | SQLite 数据库目录 |
|
||
| `CODEG_STATIC_DIR` | `./web` 或 `./out` | Next.js 静态导出目录 |
|
||
|
||
## 架构
|
||
|
||
```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 (session ingestion)
|
||
|- Git / File Tree / Terminal
|
||
|- MCP marketplace + config
|
||
|- SeaORM + SQLite
|
||
|
|
||
v
|
||
Local Filesystem / Git Repos
|
||
```
|
||
|
||
## 开发约束
|
||
|
||
- 前端使用静态导出(`output: "export"`)
|
||
- 不使用 Next.js 动态路由(`[param]`),统一使用查询参数
|
||
- Tauri 命令参数:前端 `camelCase`,Rust `snake_case`
|
||
- TypeScript strict 模式
|
||
|
||
## 隐私与安全
|
||
|
||
- 默认本地优先:解析、存储、项目操作均在本地完成
|
||
- 仅在用户主动触发时才访问网络
|
||
- 支持系统代理,适配企业网络环境
|
||
- Web 服务模式使用基于令牌的身份认证
|
||
|
||
## 许可证
|
||
|
||
Apache-2.0,详见 `LICENSE`。
|