diff --git a/README.md b/README.md index e29ab2f..565ac07 100644 --- a/README.md +++ b/README.md @@ -14,16 +14,18 @@ ISOS 是一套基于 Claude Code 的多人 Agent 协作开发框架: 所有角色在 tmux 面板中并行运行,通过共享任务列表和消息系统协调。 +![Team](./docs/pics/team.png) + ## 技术栈 -| 组件 | 技术 | 说明 | -|------|------|------| -| 语言 | Python 3.12+ / TypeScript | 后端 Python,前端 TypeScript | -| 包管理 | uv / npm | Python 用 uv,前端用 nvm + npm | -| 服务端 | FastAPI + SQLite | REST API、数据存储 | -| 桌面端 | PyWebView + Svelte 5 | 本地 UI、SQLite | -| 版本控制 | Jujutsu (jj) | 与 git 并存,主分支 `trunk` | -| 协作工具 | tmux + Claude Code | 多面板并行 Agent | +| 组件 | 技术 | 说明 | +| -------- | ------------------------- | ------------------------------ | +| 语言 | Python 3.12+ / TypeScript | 后端 Python,前端 TypeScript | +| 包管理 | uv / npm | Python 用 uv,前端用 nvm + npm | +| 服务端 | FastAPI + SQLite | REST API、数据存储 | +| 桌面端 | PyWebView + Svelte 5 | 本地 UI、SQLite | +| 版本控制 | Jujutsu (jj) | 与 git 并存,主分支 `trunk` | +| 协作工具 | tmux + Claude Code | 多面板并行 Agent | ## 目录结构 @@ -78,16 +80,16 @@ bash download-resources.sh --cleanup-only # 仅清理旧版本包 预下载的资源包括: -| 资源 | 用途 | -|------|------| -| uv + Python 3.12 | Python 包管理器和运行时 | -| nvm + Node.js 22 | 前端运行时和包管理 | -| npm 全局包 | Claude Code、Playwright MCP、TypeScript 等 | -| Google Chrome | Playwright headed 模式和 chrome-devtools-mcp | -| jj (Jujutsu) | 版本控制工具 | -| VSCode 扩展 (.vsix) | 20+ 开发扩展离线包 | -| spec-kit | speckit 规格工具 | -| Claude 插件市场 | claude-plugins-official、Svelte、superpowers 等 | +| 资源 | 用途 | +| ------------------- | ----------------------------------------------- | +| uv + Python 3.12 | Python 包管理器和运行时 | +| nvm + Node.js 22 | 前端运行时和包管理 | +| npm 全局包 | Claude Code、Playwright MCP、TypeScript 等 | +| Google Chrome | Playwright headed 模式和 chrome-devtools-mcp | +| jj (Jujutsu) | 版本控制工具 | +| VSCode 扩展 (.vsix) | 20+ 开发扩展离线包 | +| spec-kit | speckit 规格工具 | +| Claude 插件市场 | claude-plugins-official、Svelte、superpowers 等 | 所有资源版本在 `.env` 中配置(`UV_VERSION`、`NODE_VERSION`、`CHROME_VERSION` 等),更新版本后重新运行脚本即可。 @@ -95,18 +97,18 @@ bash download-resources.sh --cleanup-only # 仅清理旧版本包 完整配置见 [`.devcontainer/.env.example`](.devcontainer/.env.example),常用项: -| 配置项 | 默认值 | 说明 | -|--------|--------|------| -| `GIT_USER_NAME` | `arno` | Git 用户名 | -| `GIT_USER_EMAIL` | — | Git 邮箱 | -| `API_KEY` | 空 | 智谱 GLM API 密钥 | -| `DOCKER_ENABLED` | `false` | 是否启用容器内 Docker | -| `DOCKER_GID` | `984` | 宿主机 docker 组 GID | -| `CONTAINER_USER_UID` | `1000` | 容器用户 UID | -| `CONTAINER_USER_GID` | `1000` | 容器用户 GID | -| `DISPLAY_ON_HOST` | `false` | GUI 输出到宿主机(仅 Linux) | -| `CONTAINER_CPUS` | `6` | CPU 核心数限制 | -| `CONTAINER_MEMORY` | `16G` | 内存限制 | +| 配置项 | 默认值 | 说明 | +| -------------------- | ------- | ---------------------------- | +| `GIT_USER_NAME` | `arno` | Git 用户名 | +| `GIT_USER_EMAIL` | — | Git 邮箱 | +| `API_KEY` | 空 | 智谱 GLM API 密钥 | +| `DOCKER_ENABLED` | `false` | 是否启用容器内 Docker | +| `DOCKER_GID` | `984` | 宿主机 docker 组 GID | +| `CONTAINER_USER_UID` | `1000` | 容器用户 UID | +| `CONTAINER_USER_GID` | `1000` | 容器用户 GID | +| `DISPLAY_ON_HOST` | `false` | GUI 输出到宿主机(仅 Linux) | +| `CONTAINER_CPUS` | `6` | CPU 核心数限制 | +| `CONTAINER_MEMORY` | `16G` | 内存限制 | ### 2. 启动开发环境 @@ -121,12 +123,12 @@ bash download-resources.sh --cleanup-only # 仅清理旧版本包 `devcontainer.json` 核心配置: -| 配置 | 说明 | -|------|------| -| `dockerComposeFile` | 组合 `docker-compose.yml` + `docker-compose.display.yml`(X11 转发) | -| `service: app` | 使用 `app` 服务 | -| `postCreateCommand` | 容器创建后自动执行 `.devcontainer/post-create.sh`(配置 Git、jj、Claude Code、MCP、插件等) | -| `customizations.vscode.extensions` | 预装 Claude Code、Ruff、Playwright、Mermaid 等 20+ 扩展 | +| 配置 | 说明 | +| ---------------------------------- | ------------------------------------------------------------------------------------------- | +| `dockerComposeFile` | 组合 `docker-compose.yml` + `docker-compose.display.yml`(X11 转发) | +| `service: app` | 使用 `app` 服务 | +| `postCreateCommand` | 容器创建后自动执行 `.devcontainer/post-create.sh`(配置 Git、jj、Claude Code、MCP、插件等) | +| `customizations.vscode.extensions` | 预装 Claude Code、Ruff、Playwright、Mermaid 等 20+ 扩展 | #### 方式 B: docker-compose 命令行 @@ -152,12 +154,12 @@ nvm install --lts `.devcontainer/.volumes/` 目录映射以下数据,容器重建不丢失: -| 目录 | 用途 | -|------|------| -| `.volumes/ssh/` | SSH 密钥和配置 | +| 目录 | 用途 | +| ------------------ | --------------------------------- | +| `.volumes/ssh/` | SSH 密钥和配置 | | `.volumes/claude/` | Claude Code 配置(settings.json) | -| `.volumes/jj/` | jj 版本控制配置 | -| `.volumes/bin/` | 运行时脚本(runcc.sh) | +| `.volumes/jj/` | jj 版本控制配置 | +| `.volumes/bin/` | 运行时脚本(runcc.sh) | ### 3. 启动 Agent 团队 diff --git a/docs/pics/team.png b/docs/pics/team.png new file mode 100644 index 0000000..defe2cf Binary files /dev/null and b/docs/pics/team.png differ