专业的 AI 代码助手桌面应用 — 多引擎、飞书 IM 集成、现代化 GUI 工具包
Release License Platform Made with Tauri React Rust
Frog Code 是一个为 AI 驱动的代码开发工作流量身打造的专业桌面应用。支持 Claude Code CLI、OpenAI Codex、Google Gemini CLI 和 OpenClaw 四大 AI 后端。通过飞书 IM 集成,可以直接在飞书中与 AI 编程助手对话。
- 多引擎架构 — Claude Code、OpenAI Codex、Google Gemini、OpenClaw,一键切换
- 飞书 IM 集成 — 在飞书中直接与 AI 对话,支持流式卡片更新和交互按钮
- 多机器人支持 — 可添加多个飞书机器人,每个通道独立分配 AI 后端
- Frogclaw 服务器 — 登录后自动获取 API 令牌、OpenClaw 配置和飞书凭据
- OpenClaw 网关 — 内置进程管理、自动启动、会话历史浏览器、日志查看器
- 完整的会话管理 — 多标签页会话、历史记录、实时流式输出、跨引擎统一管理
- 成本追踪 — 多模型定价、Token 统计、使用分析仪表板
- 智能翻译中间件 — 中英文透明翻译,8 种内容提取策略
- 自动上下文管理 — 智能监控、自动压缩、Token 优化
- 现代化 UI/UX — 深色/浅色主题、流畅动画、响应式设计、国际化支持
启动 Frog Code 后,首页会自动检测所需工具的安装情况。点击 一键安装 补全缺少的工具:
| 工具 | 用途 |
|---|---|
| Node.js | Sidecar 进程运行时 |
| Git | 版本控制 |
| Claude Code | 官方 Claude CLI(需要 Claude Max 订阅) |
| OpenClaw | AI 网关(通过 Frogclaw 服务器) |
在首页输入 Frogclaw 用户名和密码。登录成功后,应用会自动:
- 获取 API 令牌用于身份验证
- 下载 OpenClaw 模型配置
- 将飞书 App 凭据同步到 IM 通道设置中
进入 IM 通道 页面:
- 点击 添加通道,填写飞书机器人的 App ID 和 App Secret
- 通过下拉框为通道选择 AI 后端:
- Claude Code — 使用官方 Claude Max 订阅
- OpenClaw — 通过 Frogclaw 服务器路由,可配置模型
- 分配后端后飞书机器人自动连接。在飞书中发送消息即可开始 AI 对话编程!
支持添加多个飞书机器人。每种后端同一时间只能绑定一个通道,切换时自动解绑原通道。
Claude Code CLI
- 官方 Claude Code CLI 完整集成
- 支持所有 Claude 模型(Opus、Sonnet 等)
- Plan Mode 只读分析模式
- 完整的 MCP 和工具调用支持
- 智能 Hooks 自动化系统
OpenAI Codex
- Codex API 深度集成
- Full Auto / Danger Full Access / Read-only 三种模式
- 可配置模型和输出 Schema
- JSON 格式流式输出
Google Gemini
- Gemini CLI 完整集成
- Gemini 3 Pro、2.5 Pro/Flash
- Google OAuth / API Key / Vertex AI
- 百万级上下文窗口
OpenClaw
- AI 网关
- 可配置模型路由
- 内置进程管理
- 支持随应用自动启动
- 会话历史浏览器
平台桥接层通过 Node.js Sidecar 将飞书消息连接到 AI 后端:
飞书机器人 --> Platform Sidecar --> Claude Code CLI / OpenClaw 网关
|
流式卡片更新(代码块 + 交互按钮)
主要功能:
- 实时流式响应,渲染为飞书消息卡片
- 多机器人支持,每个通道独立分配后端
- 配置凭据后随应用启动自动连接
- 会话持久化存储在
~/.frogcode/openclaw/agents/*/sessions/
OpenClaw Sessions 页面:
- 双栏浏览器:左侧会话列表 + 右侧消息详情
- 网关状态横幅(Start/Stop/Restart 控制按钮)
- 可折叠的网关日志查看器
- 支持从磁盘导入历史会话
无头环境(Linux 服务器、CI/CD、远程 SSH)下可以用独立的 CLI 登录 Frogclaw 并管理 IM 通道,不需要启动 GUI。与桌面版共享 ~/.frogcode/ 下的配置文件,GUI 和 CLI 完全互操作。
# Linux 从源码编译(在 WSL 或原生 Linux) bash build-linux-cli.sh # 产物:dist-linux/frogcode-cli(约 6.3 MB,ELF x86_64,glibc 动态链接) # Windows(开发本地使用) cd src-tauri cargo build --release --bin frogcode-cli # 产物:src-tauri/target/release/frogcode-cli.exe
首次在 Linux 编译前需装系统依赖(见 build-linux-cli.sh 头部注释)。
frogcode-cli login [--username U] [--password P] [--save-creds]
frogcode-cli logout
frogcode-cli whoami
frogcode-cli im add --platform <feishu|qq|wechat> --app-id X --app-secret Y \
[--label L] [--assign <claudecode|openclaw|none>] [--sandbox]
frogcode-cli im list [--json]
frogcode-cli im remove <id>
# 交互式(TTY 会提示密码,不回显) frogcode-cli login --username alice Password: ******** # 一行式(适合脚本,注意密码会进 shell 历史) frogcode-cli login --username alice --password "$FROGCLAW_PASS" # 记住凭据,下次直接 login 无参数即可自动登录 frogcode-cli login --username alice --password "$FROGCLAW_PASS" --save-creds
登录成功后:
- 会话缓存到
~/.frogcode/cli-session.json(Unix 下权限0600) - 若服务端有 OpenClaw provider,自动写入
~/.frogcode/openclaw/config/openclaw.json - 一行审计记录追加到
~/.frogcode/platform-sidecar.log
$ frogcode-cli whoami username : alice display_name : Alice id : 12345 group : default tokens : 3 saved_at : 2026年04月17日T10:00:00+08:00 credentials : stored
未登录时退出码为 1。
# 添加飞书通道并分配给 Claude Code frogcode-cli im add \ --platform feishu \ --app-id cli_abc123 \ --app-secret xyz789 \ --label "生产飞书机器人" \ --assign claudecode # 列表(默认表格;--json 输出含 appSecret 的完整 JSON) frogcode-cli im list frogcode-cli im list --json | jq . # 删除(id 就是 list 里第一列,格式 `{platform}-{appId}`) frogcode-cli im remove feishu-cli_abc123
通道 ID 规则与 GUI 完全一致(feishu-* / qq-* / wechat-*),CLI 改动后打开 GUI 即可看到新通道;GUI 删除后 CLI 也同步消失。
frogcode-cli logout # 删除 ~/.frogcode/cli-session.json
| 文件 | 作用 |
|---|---|
~/.frogcode/cli-session.json |
CLI 会话缓存(user、tokens、可选 base64 凭据) |
~/.frogcode/im-channels.json |
IM 通道列表,GUI/CLI 共用 |
~/.frogcode/agents/{type}.json |
每个 agent 的 Feishu 凭据 |
~/.frogcode/platform-sidecar.log |
含 CLI 操作审计行 [cli login] / [cli im-add] 等 |
- 暂不支持测试发送消息(飞书/QQ/微信的发送逻辑在 Node sidecar 中)
- 暂不支持设备码 / OAuth 登录流程(仅用户名密码)
- CLI 不会启动 platform sidecar;桌面 GUI 或
frogcode-web仍需单独运行来处理实际的 IM 消息
- 多标签页会话,支持拖拽排序
- 实时 Markdown 流式渲染,代码高亮
- Continue / Resume / Cancel 控制
- 消息撤回和提示词回滚
- 跨引擎统一会话列表
- 多模型定价(Opus、Sonnet 等)
- Cache 读写分离计费
- 按会话和按项目分析
- 使用仪表板(日期趋势、导出报告)
- MCP 集成 — 添加/管理 MCP 服务器,从 Claude Desktop 导入,内置市场
- Claude 扩展 — Plugins、Subagents、Agent Skills 查看器
- Hooks 自动化 — 提交前审查、安全扫描、自定义 Hook 链
- 代码上下文搜索 — 基于 Acemcp 的语义搜索和自动索引
- 中英文透明翻译
- 8 种内容提取策略
- 渐进式翻译,优先级队列
- 翻译缓存,MD5 去重
- 实时 Token 使用量监控
- 自动触发上下文压缩
- 压缩历史记录和统计
- 可配置的保留策略
从 Releases 下载:
| 平台 | 格式 | 自动更新 |
|---|---|---|
| Windows | NSIS 安装包 (.exe)、免安装版 (.exe) | 仅安装版 |
| macOS | DMG(ARM + Intel) | 支持 |
| Linux | AppImage、DEB、RPM | 仅 AppImage |
macOS Gatekeeper 修复
如果 macOS 提示应用"已损坏"或"无法验证开发者":
sudo xattr -r -d com.apple.quarantine "/Applications/Frog Code.app"# 克隆仓库 git clone https://github.com/nevermorewish/frogcode.git cd frogcode # 安装依赖 npm install # 开发模式(热重载) npm run tauri:dev # 生产构建 npm run tauri:build # 快速构建(dev-release 配置) npm run tauri:build-fast
构建要求: Node.js 18+、Rust 1.70+、平台工具链(Windows 需要 WebView2、Linux 需要 webkit2gtk)
┌─────────────────────┬─────────────────┬───────────────────────┐
│ React 前端层 │ Tauri 桥接层 │ Rust 后端层 │
│ │ │ │
│ - React 18 + TS │ - IPC 通信 │ - 多引擎管理 │
│ - Tailwind CSS 4 │ - 类型安全 │ - 进程管理 │
│ - Radix UI │ - 事件流 │ - SQLite 存储 │
│ - Framer Motion │ │ - MCP 管理 │
│ - i18next │ │ - 翻译服务 │
└─────────────────────┴─────────────────┴───────────────────────┘
│ │
└──────── IPC 事件流 ────────────────────┘
│
┌─────────────┬───────┴───────┬──────────────┐
│ Claude CLI │ OpenAI Codex │ Gemini CLI │
└─────────────┴───────────────┴──────────────┘
Platform Sidecar (Node.js)
├── Agent Manager(Claude Code / OpenClaw 适配器)
├── 飞书卡片渲染器(流式更新)
└── OpenClaw 网关(进程管理 + WebSocket)
| 层级 | 技术 |
|---|---|
| 前端 | React 18、TypeScript 5.9、Tailwind CSS 4、Radix UI、Framer Motion、i18next |
| 后端 | Tauri 2.9、Rust 2021、Tokio、rusqlite、reqwest、serde |
| Sidecar | Node.js、TypeScript、Axum(Web 模式)、WebSocket |
| 构建 | Vite 6、cargo、GitHub Actions CI/CD |
| 数据 | 位置 |
|---|---|
| 会话数据 | ~/.claude/projects/(JSONL) |
| 应用设置 | ~/.frogcode/(JSON 配置) |
| 平台配置 | ~/.frogcode/platform-config.json |
| 代理配置 | ~/.frogcode/agents/{type}.json |
| IM 通道 | ~/.frogcode/im-channels.json |
| OpenClaw 状态 | ~/.frogcode/openclaw/state/ |
| 翻译缓存 | SQLite(Rust 后端管理) |
{
"projectPath": "~/.openclaw/workspace",
"enabled": true,
"agentType": "openclaw",
"openclawAutoStart": true
}{
"acemcp": {
"transport": "stdio",
"command": "acemcp",
"args": [],
"env": { "ACEMCP_PROJECT_ROOT": "/path/to/project" }
}
}{
"authMethod": "google_oauth",
"defaultModel": "gemini-2.5-pro",
"approvalMode": "auto_edit"
}- 首页三步引导流程,带完成状态指示
- 首页 OpenClaw 启动按钮和运行状态指示器
- OpenClaw 自动启动勾选框(持久化到平台配置)
- IM 通道页面使用说明
- OpenClaw Sessions 页面使用引导
- Frogclaw 登录时自动同步飞书凭据到 IM 通道
- 修复 updater 签名 strip 问题
- 全局品牌重命名:Any Code -> Frog Code
- 首次启动自动安装 OpenClaw 默认技能和插件
- 飞书会话默认工作目录
~/.openclaw/workspace - 更新自动更新 endpoint 和 pubkey
- CI:Node.js 24 兼容、GitHub Actions v5
v5.x(重命名前)
- v5.6.6:Google Gemini 引擎,三引擎架构
- v4.4.0:OpenAI Codex 集成、翻译增强、自动上下文管理
- v4.0.1:Claude 扩展管理器、MCP 市场、成本追踪
# Fork 并克隆 git clone https://github.com/YOUR_USERNAME/frogcode.git cd frogcode # 安装依赖并开发 npm install npm run tauri:dev # 提交规范 # feat: / fix: / docs: / refactor: / perf: / chore:
应用无法启动
- 检查 Claude Code CLI:
claude --version - Windows:确保已安装 WebView2 Runtime
- 查看日志:
%APPDATA%/frog-code/logs(Windows)/~/Library/Application Support/frog-code/logs(macOS)
飞书机器人不响应
- 检查 IM 通道页面 — 确保通道已分配后端(不是"未分配")
- 确认平台 Sidecar 正在运行(首页第一步绿色状态)
- 检查飞书 App ID 和 App Secret 是否正确
- 查看系统日志页面获取详细错误信息
OpenClaw 网关无法启动
- 检查 OpenClaw 是否已安装(首页开发环境检测)
- 确认端口 18789 未被占用
- 查看 OpenClaw Sessions 页面状态横幅的错误详情
- 展开网关日志面板查看详细日志
AGPL-3.0 — 详见 LICENSE 文件。