专业的 AI 代码助手桌面应用 — 多引擎、飞书 IM 集成、现代化 GUI 工具包
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
|
OpenAI Codex
|
Google Gemini
|
OpenClaw
|
平台桥接层通过 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-17T10: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 文件。