Files
codeg/docs/readme/README.zh-CN.md
2026-03-29 21:48:04 +08:00

292 lines
9.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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)
<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>
CodegCode Generation是一个企业级多 Agent 编码工作台。
它将本地 AI 编码代理Claude Code、Codex CLI、OpenCode、Gemini CLI、
OpenClaw、Cline 等)统一到桌面应用、独立服务器或 Docker 容器中——通过浏览器即可远程开发——支持会话聚合、
并行 `git worktree` 开发、MCP/Skills 管理,以及集成的 Git/文件/终端工作流。
## 主界面
![Codeg Light](../images/main-light.png#gh-light-mode-only)
![Codeg Dark](../images/main-dark.png#gh-dark-mode-only)
## 设置
| 代理 | MCP | Skills | 版本控制 | Web 服务 |
| :---: | :---: | :---: | :---: | :---: |
| ![Agents](../images/1-light.png#gh-light-mode-only) ![Agents](../images/1-dark.png#gh-dark-mode-only) | ![MCP](../images/2-light.png#gh-light-mode-only) ![MCP](../images/2-dark.png#gh-dark-mode-only) | ![Skills](../images/3-light.png#gh-light-mode-only) ![Skills](../images/3-dark.png#gh-dark-mode-only) | ![Version Control](../images/4-light.png#gh-light-mode-only) ![Version Control](../images/4-dark.png#gh-dark-mode-only) | ![Web Service](../images/5-light.png#gh-light-mode-only) ![Web Service](../images/5-dark.png#gh-dark-mode-only) |
## 核心亮点
- 同一项目中的多 Agent 统一工作台
- 本地会话解析与结构化渲染
- 内置 `git worktree` 并行开发流程
- **项目启动器** — 可视化创建新项目,实时预览效果
- MCP 管理(本地扫描 + 市场搜索/安装)
- Skills 管理(全局与项目级)
- Git 远程账号管理(支持 GitHub 及其它 Git 服务器)
- Web 服务模式 — 开启后可在浏览器中访问 Codeg支持远程工作
- **独立服务器部署** — 在任意 Linux/macOS 服务器上运行 `codeg-server`,通过浏览器访问
- **Docker 支持** — 多阶段构建镜像,支持 `docker compose up``docker run`,可自定义令牌、端口,支持数据持久化及项目目录挂载
- 集成工程闭环文件树、Diff、Git 变更、提交、终端)
## 项目启动器
可视化创建新项目:左侧配置面板,右侧实时预览。
![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** 项目脚手架,选项卡式设计为未来支持更多项目类型做好了准备。
## 支持范围
### 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 stable2021 edition
- Tauri 2 构建依赖(仅桌面模式)
LinuxDebian/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.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
```
#### 方式四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`