🚀 专业的 AI 代码助手桌面应用 - 多引擎、现代化、高效、功能完备的 GUI 工具包
Any Code 是一个为 AI 驱动的代码开发工作流量身打造的专业桌面应用,支持 Claude Code CLI、OpenAI Codex 和 Google Gemini CLI 三大 AI 引擎。提供完整的项目管理、会话控制、成本追踪、智能翻译和高级功能扩展。通过直观的可视化界面和创新的多引擎架构,让您更高效地使用 AI 进行辅助开发。
|
Claude Code CLI 引擎
|
OpenAI Codex 引擎
|
Google Gemini 引擎 🆕
|
|
统一会话管理
|
智能引擎选择
|
|
可视化项目管理
多标签页会话
|
实时流式输出
高级会话控制
|
|
精确计费
详细统计
|
使用分析仪表板
成本优化建议
|
完整的 MCP 服务器管理
MCP 服务器市场
管理和查看 Claude Code 扩展生态:
Plugins 查看器
Subagents 管理
Agent Skills 查看
📚 官方资源: Plugins 文档 | Anthropic Skills 仓库 (13.7k ⭐)
智能 Hook 模板
Hook 链执行
预定义场景
语义代码搜索
增强型提示词
|
透明翻译工作流
核心特性
|
渐进式翻译系统 🆕
|
|
配置选项
|
性能优化
统计和监控
|
|
智能监控系统
自动压缩触发
|
压缩策略配置
压缩历史管理
性能和统计
|
主题系统
国际化支持
响应式设计
流畅动画
从 Releases 下载对应平台的安装包:
方式一:MSI 安装包(推荐)
.msi 文件方式二:NSIS 安装包
.exe 文件方式三:便携版
.zip 压缩包Any Code.exe支持架构: Apple Silicon (ARM64) + Intel (x86_64)
方式一:DMG 安装包(推荐)
.dmg 文件方式二:APP 应用包
.app.tar.gz 文件⚠️ 重要:解决 Gatekeeper 阻止
如果安装后提示 "Any Code" 已损坏,无法打开 或 "无法验证开发者",请在终端执行:
# 方法 1:移除隔离属性(推荐,最简单)
sudo xattr -r -d com.apple.quarantine "/Applications/Any Code.app"
# 方法 2:清除所有扩展属性
xattr -cr "/Applications/Any Code.app"
# 方法 3:重新签名应用(如果上述方法不生效)
sudo codesign --force --deep --sign - "/Applications/Any Code.app"
💡 提示: 如果应用安装在其他位置,请将
/Applications/Any Code.app替换为实际路径。
原因: macOS Gatekeeper 默认会阻止未经 Apple 公证的应用。这是正常的安全机制,执行上述命令后即可正常使用。
方式一:AppImage(推荐)
# 下载 AppImage 文件
chmod +x Claude-Workbench-*.AppImage
# 运行应用
./Claude-Workbench-*.AppImage
方式二:DEB 包 (Debian/Ubuntu)
sudo dpkg -i any-code-*.deb
sudo apt-get install -f # 修复依赖
方式三:RPM 包 (Fedora/RHEL)
sudo rpm -i any-code-*.rpm
# 1. 克隆仓库
git clone https://github.com/anyme123/any-code.git
cd any-code
# 2. 安装依赖
npm install
# 3. 开发模式(热重载)
npm run tauri dev
# 4. 构建生产版本(会通过 build.ps1 加载签名环境变量)
npm run tauri:build
# 5. 快速构建(开发版,速度更快)
npm run tauri:build-fast
构建要求:
配置 Claude Code CLI
claude config set api_key YOUR_KEYclaude --version配置 Gemini CLI(可选) 🆕
npm install -g @anthropic-ai/claude-code 或从 官方仓库 安装gemini --version启动 Any Code
创建第一个会话
+ 按钮Ctrl+Tab (macOS: ⌘+Tab)Ctrl+W (macOS: ⌘+W)Shift+Tab 或输入框右侧切换按钮基础显示: 输入框底部实时显示会话总成本
详细统计: 鼠标悬停查看完整成本分析
使用仪表板: 侧边栏"使用统计"查看全局分析
// ~/.claude/mcp_servers.json
{
"acemcp": {
"transport": "stdio",
"command": "acemcp",
"args": [],
"env": {
"ACEMCP_PROJECT_ROOT": "/path/to/project"
}
},
"filesystem": {
"transport": "stdio",
"command": "mcp-server-filesystem",
"args": ["/allowed/path"]
}
}
// ~/.claude/settings.json
{
"hooks": {
"user-prompt-submit": {
"command": "echo 'Submitting prompt...'",
"enabled": true
},
"tool-result": {
"command": "custom-tool-handler.sh",
"enabled": true,
"filter": {
"tool_name": ["bash", "edit"]
}
}
}
}
// ~/.anycode/gemini/config.json
{
"authMethod": "google_oauth", // google_oauth | api_key | vertex_ai
"defaultModel": "gemini-2.5-pro",
"approvalMode": "auto_edit", // auto_edit | yolo | default
"apiKey": "YOUR_API_KEY", // 仅 api_key 模式需要
"googleCloudProject": "", // 仅 vertex_ai 模式需要
"env": {}
}
支持的 Gemini 模型:
| 模型 ID | 名称 | 上下文窗口 |
|---|---|---|
gemini-3-pro-preview | Gemini 3 Pro (Preview) | 1,000,000 |
gemini-2.5-pro | Gemini 2.5 Pro | 1,000,000 |
gemini-2.5-flash | Gemini 2.5 Flash | 1,000,000 |
gemini-2.0-flash-exp | Gemini 2.0 Flash (Experimental) | 1,000,000 |
// 在设置中配置
{
"translation": {
"enabled": true,
"confidence_threshold": 0.7,
"cache_enabled": true,
"cache_ttl_hours": 24
}
}
any-code/
├── .factory/ # Factory 配置(skills)
├── .github/workflows/ # GitHub Actions CI/CD 工作流
├── .vscode/ # VSCode 编辑器配置
├── dist/ # 前端构建输出目录
├── scripts/ # 构建和部署脚本
├── src/ # 前端源代码 (React + TypeScript)
│ ├── assets/ # 静态资源
│ ├── components/ # React 组件
│ │ ├── common/ # 通用组件
│ │ ├── dialogs/ # 对话框组件
│ │ ├── FloatingPromptInput/ # 浮动输入框组件
│ │ ├── layout/ # 布局组件
│ │ ├── message/ # 消息展示组件
│ │ ├── ToolWidgets/ # 工具小部件
│ │ ├── ui/ # 基础 UI 组件
│ │ └── widgets/ # 功能小部件
│ ├── contexts/ # React Context 状态管理
│ ├── hooks/ # 自定义 React Hooks
│ ├── i18n/locales/ # 国际化语言文件 (en.json, zh.json)
│ ├── lib/ # 工具库和服务
│ ├── types/ # TypeScript 类型定义
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 应用入口
│ └── styles.css # 全局样式
├── src-tauri/ # Rust 后端源代码 (Tauri)
│ ├── src/
│ │ ├── commands/ # Tauri 命令模块
│ │ │ ├── claude/ # Claude CLI 集成
│ │ │ ├── codex/ # OpenAI Codex 集成
│ │ │ ├── gemini/ # Google Gemini CLI 集成 🆕
│ │ │ ├── acemcp.rs # MCP 代码上下文搜索
│ │ │ ├── storage.rs # SQLite 数据库操作
│ │ │ ├── translator.rs # 翻译服务
│ │ │ ├── provider.rs # API 代理商管理
│ │ │ ├── mcp.rs # MCP 服务器管理
│ │ │ ├── usage.rs # 使用统计和成本追踪
│ │ │ ├── prompt_tracker.rs # 提示词历史和回滚
│ │ │ ├── context_manager.rs # 自动上下文压缩
│ │ │ ├── enhanced_hooks.rs # Hooks 自动化系统
│ │ │ └── extensions.rs # 插件和扩展管理
│ │ └── main.rs # Rust 入口
│ ├── icons/ # 应用图标
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── package.json # npm 配置和依赖
├── tsconfig.json # TypeScript 配置
├── vite.config.ts # Vite 构建配置
├── index.html # HTML 入口
└── README.md # 项目文档
┌───────────────────────────────────────────────────────────────┐
│ Any Code │
├─────────────────────┬─────────────────┬───────────────────────┤
│ │ │ │
│ React 前端层 │ Tauri 桥接层 │ Rust 后端层 │
│ │ │ │
│ • React 18 + TS │ • IPC 通信 │ • 三引擎管理 │
│ • Tailwind CSS 4 │ • 安全调用 │ - Claude CLI 封装 │
│ • Framer Motion │ • 类型安全 │ - Codex API 集成 │
│ • i18next │ • 事件系统 │ - Gemini CLI 集成 │
│ • Radix UI │ • 资源管理 │ • 进程管理 │
│ • Custom Hooks │ • 流式传输 │ • 会话控制 │
│ │ │ • 文件操作 │
│ │ │ • Git 集成 │
│ │ │ • SQLite 存储 │
│ │ │ • MCP 管理 │
│ │ │ • 翻译服务 │
│ │ │ • 上下文管理 │
└─────────────────────┴─────────────────┴───────────────────────┘
▲ ▲ ▲
│ │ │
└─────────────────────┴─────────────────────┘
IPC 事件流
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Claude Code CLI │ │ OpenAI Codex │ │ Google Gemini │
│ • Agent SDK │ │ • Codex API │ │ • Gemini CLI │
│ • MCP Servers │ │ • JSON Stream │ │ • OAuth/API Key │
│ • Tools & Exts │ │ • Multi-mode │ │ • Vertex AI │
└──────────────────┘ └──────────────────┘ └──────────────────┘
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18.3.1 | UI 框架 |
| TypeScript | 5.9.3 | 类型安全 |
| Tailwind CSS | 4.1.8 | 样式框架 |
| Framer Motion | 12.23.24 | 动画系统 |
| i18next | 25.6.0 | 国际化 |
| Radix UI | Latest | 组件库 |
| React Markdown | 9.0.3 | Markdown 渲染 |
| React Syntax Highlighter | 15.6.1 | 代码高亮 |
| date-fns | 3.6.0 | 日期处理 |
| Zod | 3.24.1 | 数据校验 |
| @tauri-apps/api | 2.9.0 | Tauri 前端 API |
| 技术 | 版本 | 用途 |
|---|---|---|
| Tauri | 2.9 | 桌面应用框架 |
| Rust | 2021 Edition | 系统编程语言 |
| SQLite | 0.32 (rusqlite) | 嵌入式数据库 |
| Tokio | 1.x | 异步运行时 |
| Serde | 1.x | 序列化/反序列化 |
| Reqwest | 0.12 | HTTP 客户端 |
| Chrono | 0.4 | 时间处理 |
| anyhow | 1.x | 错误处理 |
| regex | 1.x | 正则表达式 |
| uuid | 1.6 | UUID 生成 |
| 组件/模块 | 位置 | 功能描述 |
|---|---|---|
| AppLayout | layout/ | 应用主布局和导航 |
| ClaudeCodeSession | components/ | Claude 会话管理核心 |
| ExecutionEngineSelector | components/ | 引擎切换器(Claude/Codex/Gemini) |
| FloatingPromptInput | components/ | 浮动输入框组件 |
| AIMessage / UserMessage | message/ | 消息展示组件 |
| StreamMessageV2 | message/ | 流式消息渲染 |
| ToolCallsGroup | message/ | 工具调用展示 |
| SubagentMessageGroup | message/ | 子代理消息组 |
| MCPManager | components/ | MCP 服务器管理 |
| UsageDashboard | components/ | 使用统计仪表板 |
| TranslationSettings | components/ | 翻译配置组件 |
| Hook | 功能描述 |
|---|---|
| usePromptExecution | 提示词执行逻辑(最核心) |
| useMessageTranslation | 消息翻译处理 |
| useSessionLifecycle | 会话生命周期管理 |
| useSessionCostCalculation | 成本计算 |
| useTabs | 多标签页管理 |
| useDisplayableMessages | 消息展示处理 |
| useKeyboardShortcuts | 键盘快捷键 |
用户操作 → React 组件 → Tauri Command
↓
Rust 后端处理
↓
┌─────────────────┼─────────────────┬─────────────────┐
▼ ▼ ▼ ▼
文件系统操作 Claude CLI 调用 Codex API 调用 数据库操作
│ │ │ │
└─────────────────┴─────────────────┴─────────────────┘
↓
IPC 事件返回(流式)
↓
┌────────────┴────────────┐
▼ ▼
翻译中间件处理 原始消息处理
│ │
└────────────┬────────────┘
▼
React 状态更新
↓
┌────────────┴────────────┐
▼ ▼
UI 重新渲染 上下文监控
↓
自动压缩检测
-- 使用统计表
CREATE TABLE usage_entries (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL,
timestamp TEXT NOT NULL,
model TEXT NOT NULL,
input_tokens INTEGER,
output_tokens INTEGER,
cache_creation_tokens INTEGER,
cache_read_tokens INTEGER,
total_tokens INTEGER,
cost REAL,
project_path TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
-- 性能索引
CREATE INDEX idx_usage_session_id ON usage_entries(session_id);
CREATE INDEX idx_usage_timestamp ON usage_entries(timestamp DESC);
CREATE INDEX idx_usage_project_path ON usage_entries(project_path);
CREATE INDEX idx_usage_model_timestamp ON usage_entries(model, timestamp DESC);
前端通过 src/lib/api.ts 封装了所有 Tauri 命令调用:
| 分类 | 主要接口 | 功能描述 |
|---|---|---|
| 项目管理 | listProjects(), getProjectSessions(), deleteSession() | 项目和会话的 CRUD 操作 |
| Claude 执行 | executeClaudeCode(), continueClaudeCode(), resumeClaudeCode(), cancelClaudeExecution() | Claude CLI 调用和控制 |
| Codex 执行 | executeCodex(), resumeCodex(), listCodexSessions() | OpenAI Codex API 调用 |
| Gemini 执行 🆕 | executeGemini(), resumeGemini(), cancelGeminiExecution(), getGeminiConfig() | Google Gemini CLI 调用 |
| 存储管理 | storageListTables(), storageExecuteSql(), storageInsertRow() | SQLite 数据库操作 |
| MCP 管理 | mcpAdd(), mcpList(), mcpTestConnection() | MCP 服务器配置和测试 |
| 翻译服务 | translate(), getTranslationConfig(), clearTranslationCache() | 翻译中间件接口 |
| 使用统计 | getUsageStats(), getUsageByModel(), getUsageByProject() | 成本和 Token 统计 |
| 上下文管理 | compressContext(), getCompressionHistory() | 自动上下文压缩 |
| 特点 | 描述 |
|---|---|
| 三引擎架构 | 同时支持 Claude Code、OpenAI Codex 和 Google Gemini,一键切换 |
| 现代化技术栈 | Tauri 2.9 + React 18 + Rust 2021,跨平台高性能 |
| 流式渲染 | IPC 事件流驱动,实时流式输出 AI 响应 |
| 嵌入式存储 | SQLite WAL 模式,高性能本地数据持久化 |
| 翻译中间件 | 透明的中英文翻译,8 种内容提取策略 |
| 自动上下文管理 | 智能监控和压缩,优化 Token 使用 |
| 扩展生态 | MCP 协议支持、Hooks 自动化、插件系统 |
我们欢迎各种形式的贡献!无论是 Bug 报告、功能建议还是代码提交。
# 1. Fork 并克隆仓库
git clone https://github.com/YOUR_USERNAME/any-code.git
cd any-code
# 2. 安装依赖
npm install
# 3. 创建功能分支
git checkout -b feature/your-feature-name
# 4. 启动开发服务器
npm run tauri dev
# 5. 进行更改并测试
# 6. 提交更改
git add .
git commit -m "feat: add your feature description"
# 7. 推送到 Fork
git push origin feature/your-feature-name
# 8. 创建 Pull Request
TypeScript/React
Rust
cargo fmt 格式化代码cargo clippy 检查代码质量Result 和 anyhowtokio提交信息规范
<type>(<scope>): <subject>
<body>
<footer>
类型:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式(不影响代码运行)refactor: 重构(既不是新功能,也不是 Bug 修复)perf: 性能优化test: 测试相关chore: 构建过程或辅助工具的变动提交 Issue 时请包含:
A: 检查以下几点:
日志位置:
%APPDATA%\any-code\logs~/Library/Application Support/any-code/logs~/.config/any-code/logsA:
claude --versionA:
~/.claude/projects/ 目录权限A:
A:
本项目基于 AGPL-3.0 开源协议发布。
这意味着:
详见 LICENSE 文件。
我们欢迎任何形式的反馈和建议!
感谢以下项目和社区:
如果这个项目对您有帮助,请给我们一个 Star ⭐!
Any Code - 三大 AI 引擎,一个桌面应用
Made with ❤️ by the Any Code Team
488 followers · starred Dec 2025
92 followers · starred Aug 2025
59 followers · starred Nov 2025
30 followers · starred Dec 2025
🚀 专业的 AI 代码助手桌面应用 - 多引擎、现代化、高效、功能完备的 GUI 工具包
Any Code 是一个为 AI 驱动的代码开发工作流量身打造的专业桌面应用,支持 Claude Code CLI、OpenAI Codex 和 Google Gemini CLI 三大 AI 引擎。提供完整的项目管理、会话控制、成本追踪、智能翻译和高级功能扩展。通过直观的可视化界面和创新的多引擎架构,让您更高效地使用 AI 进行辅助开发。
|
Claude Code CLI 引擎
|
OpenAI Codex 引擎
|
Google Gemini 引擎 🆕
|
|
统一会话管理
|
智能引擎选择
|
|
可视化项目管理
多标签页会话
|
实时流式输出
高级会话控制
|
|
精确计费
详细统计
|
使用分析仪表板
成本优化建议
|
完整的 MCP 服务器管理
MCP 服务器市场
管理和查看 Claude Code 扩展生态:
Plugins 查看器
Subagents 管理
Agent Skills 查看
📚 官方资源: Plugins 文档 | Anthropic Skills 仓库 (13.7k ⭐)
智能 Hook 模板
Hook 链执行
预定义场景
语义代码搜索
增强型提示词
|
透明翻译工作流
核心特性
|
渐进式翻译系统 🆕
|
|
配置选项
|
性能优化
统计和监控
|
|
智能监控系统
自动压缩触发
|
压缩策略配置
压缩历史管理
性能和统计
|
主题系统
国际化支持
响应式设计
流畅动画
从 Releases 下载对应平台的安装包:
方式一:MSI 安装包(推荐)
.msi 文件方式二:NSIS 安装包
.exe 文件方式三:便携版
.zip 压缩包Any Code.exe支持架构: Apple Silicon (ARM64) + Intel (x86_64)
方式一:DMG 安装包(推荐)
.dmg 文件方式二:APP 应用包
.app.tar.gz 文件⚠️ 重要:解决 Gatekeeper 阻止
如果安装后提示 "Any Code" 已损坏,无法打开 或 "无法验证开发者",请在终端执行:
# 方法 1:移除隔离属性(推荐,最简单)
sudo xattr -r -d com.apple.quarantine "/Applications/Any Code.app"
# 方法 2:清除所有扩展属性
xattr -cr "/Applications/Any Code.app"
# 方法 3:重新签名应用(如果上述方法不生效)
sudo codesign --force --deep --sign - "/Applications/Any Code.app"
💡 提示: 如果应用安装在其他位置,请将
/Applications/Any Code.app替换为实际路径。
原因: macOS Gatekeeper 默认会阻止未经 Apple 公证的应用。这是正常的安全机制,执行上述命令后即可正常使用。
方式一:AppImage(推荐)
# 下载 AppImage 文件
chmod +x Claude-Workbench-*.AppImage
# 运行应用
./Claude-Workbench-*.AppImage
方式二:DEB 包 (Debian/Ubuntu)
sudo dpkg -i any-code-*.deb
sudo apt-get install -f # 修复依赖
方式三:RPM 包 (Fedora/RHEL)
sudo rpm -i any-code-*.rpm
# 1. 克隆仓库
git clone https://github.com/anyme123/any-code.git
cd any-code
# 2. 安装依赖
npm install
# 3. 开发模式(热重载)
npm run tauri dev
# 4. 构建生产版本(会通过 build.ps1 加载签名环境变量)
npm run tauri:build
# 5. 快速构建(开发版,速度更快)
npm run tauri:build-fast
构建要求:
配置 Claude Code CLI
claude config set api_key YOUR_KEYclaude --version配置 Gemini CLI(可选) 🆕
npm install -g @anthropic-ai/claude-code 或从 官方仓库 安装gemini --version启动 Any Code
创建第一个会话
+ 按钮Ctrl+Tab (macOS: ⌘+Tab)Ctrl+W (macOS: ⌘+W)Shift+Tab 或输入框右侧切换按钮基础显示: 输入框底部实时显示会话总成本
详细统计: 鼠标悬停查看完整成本分析
使用仪表板: 侧边栏"使用统计"查看全局分析
// ~/.claude/mcp_servers.json
{
"acemcp": {
"transport": "stdio",
"command": "acemcp",
"args": [],
"env": {
"ACEMCP_PROJECT_ROOT": "/path/to/project"
}
},
"filesystem": {
"transport": "stdio",
"command": "mcp-server-filesystem",
"args": ["/allowed/path"]
}
}
// ~/.claude/settings.json
{
"hooks": {
"user-prompt-submit": {
"command": "echo 'Submitting prompt...'",
"enabled": true
},
"tool-result": {
"command": "custom-tool-handler.sh",
"enabled": true,
"filter": {
"tool_name": ["bash", "edit"]
}
}
}
}
// ~/.anycode/gemini/config.json
{
"authMethod": "google_oauth", // google_oauth | api_key | vertex_ai
"defaultModel": "gemini-2.5-pro",
"approvalMode": "auto_edit", // auto_edit | yolo | default
"apiKey": "YOUR_API_KEY", // 仅 api_key 模式需要
"googleCloudProject": "", // 仅 vertex_ai 模式需要
"env": {}
}
支持的 Gemini 模型:
| 模型 ID | 名称 | 上下文窗口 |
|---|---|---|
gemini-3-pro-preview | Gemini 3 Pro (Preview) | 1,000,000 |
gemini-2.5-pro | Gemini 2.5 Pro | 1,000,000 |
gemini-2.5-flash | Gemini 2.5 Flash | 1,000,000 |
gemini-2.0-flash-exp | Gemini 2.0 Flash (Experimental) | 1,000,000 |
// 在设置中配置
{
"translation": {
"enabled": true,
"confidence_threshold": 0.7,
"cache_enabled": true,
"cache_ttl_hours": 24
}
}
any-code/
├── .factory/ # Factory 配置(skills)
├── .github/workflows/ # GitHub Actions CI/CD 工作流
├── .vscode/ # VSCode 编辑器配置
├── dist/ # 前端构建输出目录
├── scripts/ # 构建和部署脚本
├── src/ # 前端源代码 (React + TypeScript)
│ ├── assets/ # 静态资源
│ ├── components/ # React 组件
│ │ ├── common/ # 通用组件
│ │ ├── dialogs/ # 对话框组件
│ │ ├── FloatingPromptInput/ # 浮动输入框组件
│ │ ├── layout/ # 布局组件
│ │ ├── message/ # 消息展示组件
│ │ ├── ToolWidgets/ # 工具小部件
│ │ ├── ui/ # 基础 UI 组件
│ │ └── widgets/ # 功能小部件
│ ├── contexts/ # React Context 状态管理
│ ├── hooks/ # 自定义 React Hooks
│ ├── i18n/locales/ # 国际化语言文件 (en.json, zh.json)
│ ├── lib/ # 工具库和服务
│ ├── types/ # TypeScript 类型定义
│ ├── App.tsx # 主应用组件
│ ├── main.tsx # 应用入口
│ └── styles.css # 全局样式
├── src-tauri/ # Rust 后端源代码 (Tauri)
│ ├── src/
│ │ ├── commands/ # Tauri 命令模块
│ │ │ ├── claude/ # Claude CLI 集成
│ │ │ ├── codex/ # OpenAI Codex 集成
│ │ │ ├── gemini/ # Google Gemini CLI 集成 🆕
│ │ │ ├── acemcp.rs # MCP 代码上下文搜索
│ │ │ ├── storage.rs # SQLite 数据库操作
│ │ │ ├── translator.rs # 翻译服务
│ │ │ ├── provider.rs # API 代理商管理
│ │ │ ├── mcp.rs # MCP 服务器管理
│ │ │ ├── usage.rs # 使用统计和成本追踪
│ │ │ ├── prompt_tracker.rs # 提示词历史和回滚
│ │ │ ├── context_manager.rs # 自动上下文压缩
│ │ │ ├── enhanced_hooks.rs # Hooks 自动化系统
│ │ │ └── extensions.rs # 插件和扩展管理
│ │ └── main.rs # Rust 入口
│ ├── icons/ # 应用图标
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── package.json # npm 配置和依赖
├── tsconfig.json # TypeScript 配置
├── vite.config.ts # Vite 构建配置
├── index.html # HTML 入口
└── README.md # 项目文档
┌───────────────────────────────────────────────────────────────┐
│ Any Code │
├─────────────────────┬─────────────────┬───────────────────────┤
│ │ │ │
│ React 前端层 │ Tauri 桥接层 │ Rust 后端层 │
│ │ │ │
│ • React 18 + TS │ • IPC 通信 │ • 三引擎管理 │
│ • Tailwind CSS 4 │ • 安全调用 │ - Claude CLI 封装 │
│ • Framer Motion │ • 类型安全 │ - Codex API 集成 │
│ • i18next │ • 事件系统 │ - Gemini CLI 集成 │
│ • Radix UI │ • 资源管理 │ • 进程管理 │
│ • Custom Hooks │ • 流式传输 │ • 会话控制 │
│ │ │ • 文件操作 │
│ │ │ • Git 集成 │
│ │ │ • SQLite 存储 │
│ │ │ • MCP 管理 │
│ │ │ • 翻译服务 │
│ │ │ • 上下文管理 │
└─────────────────────┴─────────────────┴───────────────────────┘
▲ ▲ ▲
│ │ │
└─────────────────────┴─────────────────────┘
IPC 事件流
┌──────────────────┐ ┌──────────────────┐ ┌──────────────────┐
│ Claude Code CLI │ │ OpenAI Codex │ │ Google Gemini │
│ • Agent SDK │ │ • Codex API │ │ • Gemini CLI │
│ • MCP Servers │ │ • JSON Stream │ │ • OAuth/API Key │
│ • Tools & Exts │ │ • Multi-mode │ │ • Vertex AI │
└──────────────────┘ └──────────────────┘ └──────────────────┘
| 技术 | 版本 | 用途 |
|---|---|---|
| React | 18.3.1 | UI 框架 |
| TypeScript | 5.9.3 | 类型安全 |
| Tailwind CSS | 4.1.8 | 样式框架 |
| Framer Motion | 12.23.24 | 动画系统 |
| i18next | 25.6.0 | 国际化 |
| Radix UI | Latest | 组件库 |
| React Markdown | 9.0.3 | Markdown 渲染 |
| React Syntax Highlighter | 15.6.1 | 代码高亮 |
| date-fns | 3.6.0 | 日期处理 |
| Zod | 3.24.1 | 数据校验 |
| @tauri-apps/api | 2.9.0 | Tauri 前端 API |
| 技术 | 版本 | 用途 |
|---|---|---|
| Tauri | 2.9 | 桌面应用框架 |
| Rust | 2021 Edition | 系统编程语言 |
| SQLite | 0.32 (rusqlite) | 嵌入式数据库 |
| Tokio | 1.x | 异步运行时 |
| Serde | 1.x | 序列化/反序列化 |
| Reqwest | 0.12 | HTTP 客户端 |
| Chrono | 0.4 | 时间处理 |
| anyhow | 1.x | 错误处理 |
| regex | 1.x | 正则表达式 |
| uuid | 1.6 | UUID 生成 |
| 组件/模块 | 位置 | 功能描述 |
|---|---|---|
| AppLayout | layout/ | 应用主布局和导航 |
| ClaudeCodeSession | components/ | Claude 会话管理核心 |
| ExecutionEngineSelector | components/ | 引擎切换器(Claude/Codex/Gemini) |
| FloatingPromptInput | components/ | 浮动输入框组件 |
| AIMessage / UserMessage | message/ | 消息展示组件 |
| StreamMessageV2 | message/ | 流式消息渲染 |
| ToolCallsGroup | message/ | 工具调用展示 |
| SubagentMessageGroup | message/ | 子代理消息组 |
| MCPManager | components/ | MCP 服务器管理 |
| UsageDashboard | components/ | 使用统计仪表板 |
| TranslationSettings | components/ | 翻译配置组件 |
| Hook | 功能描述 |
|---|---|
| usePromptExecution | 提示词执行逻辑(最核心) |
| useMessageTranslation | 消息翻译处理 |
| useSessionLifecycle | 会话生命周期管理 |
| useSessionCostCalculation | 成本计算 |
| useTabs | 多标签页管理 |
| useDisplayableMessages | 消息展示处理 |
| useKeyboardShortcuts | 键盘快捷键 |
用户操作 → React 组件 → Tauri Command
↓
Rust 后端处理
↓
┌─────────────────┼─────────────────┬─────────────────┐
▼ ▼ ▼ ▼
文件系统操作 Claude CLI 调用 Codex API 调用 数据库操作
│ │ │ │
└─────────────────┴─────────────────┴─────────────────┘
↓
IPC 事件返回(流式)
↓
┌────────────┴────────────┐
▼ ▼
翻译中间件处理 原始消息处理
│ │
└────────────┬────────────┘
▼
React 状态更新
↓
┌────────────┴────────────┐
▼ ▼
UI 重新渲染 上下文监控
↓
自动压缩检测
-- 使用统计表
CREATE TABLE usage_entries (
id INTEGER PRIMARY KEY,
session_id TEXT NOT NULL,
timestamp TEXT NOT NULL,
model TEXT NOT NULL,
input_tokens INTEGER,
output_tokens INTEGER,
cache_creation_tokens INTEGER,
cache_read_tokens INTEGER,
total_tokens INTEGER,
cost REAL,
project_path TEXT,
created_at TEXT DEFAULT CURRENT_TIMESTAMP
);
-- 性能索引
CREATE INDEX idx_usage_session_id ON usage_entries(session_id);
CREATE INDEX idx_usage_timestamp ON usage_entries(timestamp DESC);
CREATE INDEX idx_usage_project_path ON usage_entries(project_path);
CREATE INDEX idx_usage_model_timestamp ON usage_entries(model, timestamp DESC);
前端通过 src/lib/api.ts 封装了所有 Tauri 命令调用:
| 分类 | 主要接口 | 功能描述 |
|---|---|---|
| 项目管理 | listProjects(), getProjectSessions(), deleteSession() | 项目和会话的 CRUD 操作 |
| Claude 执行 | executeClaudeCode(), continueClaudeCode(), resumeClaudeCode(), cancelClaudeExecution() | Claude CLI 调用和控制 |
| Codex 执行 | executeCodex(), resumeCodex(), listCodexSessions() | OpenAI Codex API 调用 |
| Gemini 执行 🆕 | executeGemini(), resumeGemini(), cancelGeminiExecution(), getGeminiConfig() | Google Gemini CLI 调用 |
| 存储管理 | storageListTables(), storageExecuteSql(), storageInsertRow() | SQLite 数据库操作 |
| MCP 管理 | mcpAdd(), mcpList(), mcpTestConnection() | MCP 服务器配置和测试 |
| 翻译服务 | translate(), getTranslationConfig(), clearTranslationCache() | 翻译中间件接口 |
| 使用统计 | getUsageStats(), getUsageByModel(), getUsageByProject() | 成本和 Token 统计 |
| 上下文管理 | compressContext(), getCompressionHistory() | 自动上下文压缩 |
| 特点 | 描述 |
|---|---|
| 三引擎架构 | 同时支持 Claude Code、OpenAI Codex 和 Google Gemini,一键切换 |
| 现代化技术栈 | Tauri 2.9 + React 18 + Rust 2021,跨平台高性能 |
| 流式渲染 | IPC 事件流驱动,实时流式输出 AI 响应 |
| 嵌入式存储 | SQLite WAL 模式,高性能本地数据持久化 |
| 翻译中间件 | 透明的中英文翻译,8 种内容提取策略 |
| 自动上下文管理 | 智能监控和压缩,优化 Token 使用 |
| 扩展生态 | MCP 协议支持、Hooks 自动化、插件系统 |
我们欢迎各种形式的贡献!无论是 Bug 报告、功能建议还是代码提交。
# 1. Fork 并克隆仓库
git clone https://github.com/YOUR_USERNAME/any-code.git
cd any-code
# 2. 安装依赖
npm install
# 3. 创建功能分支
git checkout -b feature/your-feature-name
# 4. 启动开发服务器
npm run tauri dev
# 5. 进行更改并测试
# 6. 提交更改
git add .
git commit -m "feat: add your feature description"
# 7. 推送到 Fork
git push origin feature/your-feature-name
# 8. 创建 Pull Request
TypeScript/React
Rust
cargo fmt 格式化代码cargo clippy 检查代码质量Result 和 anyhowtokio提交信息规范
<type>(<scope>): <subject>
<body>
<footer>
类型:
feat: 新功能fix: Bug 修复docs: 文档更新style: 代码格式(不影响代码运行)refactor: 重构(既不是新功能,也不是 Bug 修复)perf: 性能优化test: 测试相关chore: 构建过程或辅助工具的变动提交 Issue 时请包含:
A: 检查以下几点:
日志位置:
%APPDATA%\any-code\logs~/Library/Application Support/any-code/logs~/.config/any-code/logsA:
claude --versionA:
~/.claude/projects/ 目录权限A:
A:
本项目基于 AGPL-3.0 开源协议发布。
这意味着:
详见 LICENSE 文件。
我们欢迎任何形式的反馈和建议!
感谢以下项目和社区:
如果这个项目对您有帮助,请给我们一个 Star ⭐!
Any Code - 三大 AI 引擎,一个桌面应用
Made with ❤️ by the Any Code Team
488 followers · starred Dec 2025
92 followers · starred Aug 2025
59 followers · starred Nov 2025
30 followers · starred Dec 2025