一个用于管理 Claude Code / OpenCode / Codex 多服务提供商配置的 Windows 桌面应用,集成内嵌终端,支持多会话并发运行。
- 多应用支持:支持 Claude Code、OpenCode、Codex 三种应用
- 多服务提供商管理:内置 Anthropic、OpenAI、GLM、MiniMax、Kimi 等主流提供商,支持自定义添加
- 预设配置管理:每个提供商支持多套预设,可配置模型、温度、top_p、Max Tokens、思考模式等
- API 密钥加密存储:基于 Windows DPAPI 加密,密钥不以明文存储
- 代理注入引擎:关键字匹配,自动向系统消息注入自定义 Prompt
- 环境变量管理:支持自定义环境变量的增删改查、导入导出
- 配置导入导出:支持将提供商配置导出为 JSON 文件,或从文件导入
| 模式 | 说明 |
|---|---|
| 内嵌终端 | 在应用窗口内运行应用(xterm.js + ConPTY) |
| 独立窗口 | 在新的终端窗口中启动应用 |
- 基于 Windows ConPTY + xterm.js 实现,完整的终端仿真
- 支持多 Tab,多会话并发运行,标签间无缝切换
- 会话跨页面导航保持活跃(keep-alive 机制)
- 滚动缓冲行数可配置(默认 100,000 行)
- 完整 UTF-8 编码支持(base64 传输)
- WebGL 渲染器:使用 WebGL 渲染消除滚动重影,提升性能
- 文件路径链接:终端中的文件路径可点击,在编辑器中打开
- 剪贴板图片粘贴:支持直接粘贴剪贴板中的截图
- 移动端支持:通过局域网 HTTP API,允许移动端控制 Amagi CodeBox
- QR 码连接:扫描 QR 码即可自动配置服务器地址和 Token
- Token 认证:每次连接需要 Token,确保安全
- 移动端 Web 服务:可配置移动端前端静态文件目录
- 直接启动应用(无 Shell 包装)
- PowerShell 7(pwsh)
- Windows PowerShell
- CMD
- 支持添加自定义 Shell 可执行文件路径
- 单实例保护:使用 Windows 互斥量机制,防止多实例运行
- 会话管理:实时追踪所有会话状态(运行中/已退出/已停止/失败)
- 日志面板:可查看应用运行日志
- 系统托盘驻留:最小化到托盘,右键菜单退出
- 持久化设置:启动模式、提供商、预设、Shell 等默认值跨会话保存
- Toast 通知:操作成功/失败即时提示
| 层级 | 技术 |
|---|---|
| 桌面框架 | Wails v2.11.0 |
| 后端语言 | Go 1.23 |
| 前端框架 | Vue 3 + TypeScript |
| 路由 | vue-router 4 |
| 终端渲染 | @xterm/xterm 6.0.0 + @xterm/addon-fit + @xterm/addon-webgl |
| 伪终端 | conpty v0.1.4(Windows ConPTY) |
| 加密 | Windows DPAPI(billgraziano/dpapi) |
| 系统托盘 | energye/systray v1.0.3 |
| JSON 操作 | tidwall/gjson + tidwall/sjson |
| QR 码生成 | qrcode |
amagi-codebox/
├── app.go # 应用入口,服务生命周期协调
├── main.go # Wails 启动入口,单实例保护
├── internal/
│ ├── config/ # 提供商和预设配置(~/.amagi-codebox/config.json)
│ ├── secrets/ # API 密钥 DPAPI 加密存储
│ ├── launcher/ # Claude Code 进程启动器
│ ├── proxy/ # 代理注入引擎(关键字匹配 + Prompt 注入)
│ ├── pty/ # Windows ConPTY 伪终端封装
│ ├── session/ # 多会话生命周期管理
│ ├── settings/ # 应用设置(仪表盘默认值、Shell 路径、终端参数)
│ ├── logging/ # 日志服务
│ ├── paths/ # 配置目录路径管理
│ ├── envvars/ # 环境变量管理服务
│ ├── remote/ # 远程控制 HTTP 服务器
│ └── tray/ # 系统托盘图标与菜单
├── frontend/
│ └── src/
│ ├── views/
│ │ ├── Dashboard.vue # 仪表盘(启动应用)
│ │ ├── Terminals.vue # 内嵌终端多 Tab 页面
│ │ ├── Providers.vue # 提供商列表(含 API 密钥管理)
│ │ ├── ProviderDetail.vue # 提供商预设详情
│ │ ├── PluginsView.vue # 插件管理
│ │ ├── Rules.vue # 注入规则管理
│ │ ├── EnvVarsView.vue # 环境变量管理
│ │ ├── Logs.vue # 日志面板
│ │ └── Settings.vue # 应用设置页(含远程控制)
│ ├── components/
│ │ ├── layout/ # AppLayout、Sidebar
│ │ └── common/ # Toast 通知组件
│ └── composables/
│ ├── useDashboardState.ts # 仪表盘跨路由状态持久化
│ └── useToast.ts # Toast 通知
├── mobile/ # 移动端 Web 客户端(Vue 3 + Capacitor)
├── cmd/codebox/ # CLI 工具
├── mobile/ # 移动端 Web 客户端(Vue 3 + Capacitor)
├── cmd/codebox/ # CLI 工具
└── build/
└── windows/icon.ico # 应用图标
| 文件 | 内容 |
|---|---|
~/.amagi-codebox/config.json |
提供商和预设配置 |
~/.amagi-codebox/secrets.json |
DPAPI 加密的 API 密钥 |
~/.amagi-codebox/settings.json |
应用设置(默认值、Shell 路径、终端参数) |
~/.amagi-codebox/envvars.json |
自定义环境变量 |
- Windows 10/11(ConPTY 需要 Windows 10 1903+)
- Go >= 1.23
- Node.js >= 18
- Wails CLI v2:
go install github.com/wailsapp/wails/v2/cmd/wails@latest
# 开发模式(热重载)
wails dev
# 生产构建(EXE 输出到 build/bin/)
wails build从 GitHub Releases 下载最新的 MSI 安装包或 EXE 可执行文件。
Copy-Item build\bin\amagi-codebox.exe "$env:USERPROFILE\.amagi-codebox\amagi-codebox.exe"应用预置多个提供商:Anthropic、OpenAI、GLM、MiniMax、Kimi。用户可自行添加更多提供商。
每个提供商包含:
base_url:API 服务地址auth_key:认证环境变量类型(ANTHROPIC_API_KEY、OPENAI_API_KEY或ANTHROPIC_AUTH_TOKEN)type:提供商类型(anthropic或openai)presets:预设配置列表
每个预设包含:
model:模型名称temperature:温度(输出随机性)top_p:核采样参数max_tokens:最大生成 Token 数stream:是否启用流式输出thinking:思考模式配置(type: enabled/disabled,budgetTokens:思考预算)
| 字段 | 说明 |
|---|---|
id |
规则唯一标识(UUID) |
name |
规则名称 |
keywords |
关键词列表(空列表 = 默认规则,始终注入) |
prompt |
注入的 Prompt 文本 |
enabled |
启用状态 |
priority |
优先级(数字越大越先执行) |
- 代理层拦截应用发出的请求
- 扫描用户消息是否包含规则关键词
- 匹配成功后将对应 Prompt 注入到系统消息
- 多规则匹配时按优先级从高到低依次执行
启用远程控制后,Amagi CodeBox 会在指定端口启动 HTTP 服务器,提供以下 API:
GET /api/status- 获取提供商列表和默认配置POST /api/launch- 启动应用会话GET /api/sessions- 获取会话列表DELETE /api/sessions/:id- 停止会话WebSocket /ws/terminal/:id- 连接到内嵌终端
所有 API 请求需要在 Authorization 头中携带 Token。
欢迎提交 Issue 和 Pull Request。
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/your-feature) - 提交变更 (
git commit -m 'Add your feature') - 推送到分支 (
git push origin feature/your-feature) - 创建 Pull Request
欢迎提交 Issue 和 Pull Request。
- Fork 本仓库
- 创建功能分支 (
git checkout -b feature/your-feature) - 提交变更 (
git commit -m 'Add your feature') - 推送到分支 (
git push origin feature/your-feature) - 创建 Pull Request