aicodeking/pandacode · 上手攻略
- 仓库:aicodeking/pandacode
- 链接:https://github.com/aicodeking/pandacode
- 分类:agent
- 作者:spark
- 更新:2026-10-24
一、它是什么
PandaCode 是一个原生桌面工作台,用来同时驾驭多个编码 agent CLI。它的定位一句话说清:它不自己写代码,它把你已经在用的那些编码 CLI 装进一个统一的图形界面,让你在同一个窗口里管理项目、任务、Git、终端、浏览器和 diff。
技术底座是 Tauri 2 + Rust + SQLite + 纯 TypeScript,用操作系统自带的 webview,不打包 Chromium、不常驻 Node 服务、不跑 React 运行时、不嵌编辑器引擎——这让它比同类 Electron 应用轻得多。
它能驱动的 harness 相当杂,按协议分成几类:
| 协议 | Harness |
|---|---|
| 原生(各自 CLI) | Claude Code、Codex、Kimi Code、OpenCode、GLM Coding Plan、小米 MiMo(经 Claude Code)、Antigravity、xAI Grok Build |
| ACP(Agent Client Protocol) | GitHub Copilot CLI、DeepSeek(dsh)、Command Code、Cline、Kilo Code |
| Pi RPC 模式 | Pi 及其 fork omp(Oh My Pi) |
| MSP(Meta JSON-RPC 会话协议) | Muse Code |
配套能力:任务看板、agent 团队(architect + 最多 3 个 worker)、聊天机器人接入(Telegram/Slack/Discord/WhatsApp/本地 web)、云端 agent、本地 VM、iOS/Android 模拟器、部署、GitHub 视图、worktree 隔离、每轮变更审查、token 节省包。
许可用的是 PandaCode License:MIT 加一条——商业使用或公开发布的 fork 必须声明"This is a fork of PandaCode"并链接本仓库。无账号、无 license key、无遥测。
二、解决什么问题
现在一个人同时用 Claude Code、Codex、Copilot CLI 这件事,现状是开五六个终端:
- 每个 CLI 各有自己的会话模型、diff 视图、权限确认 UI、终端;
- 想并行跑几个任务,只能开多个 tab,靠人脑记"哪个 tab 在改哪个文件";
- 换个 harness 就要重读一遍它的文档;
- 权限弹窗散落各处,没法集中批;
- 想让 agent 跑长任务,只能守着电脑不睡。
PandaCode 把这些收敛成一个任务模型:每个任务(task)绑定一个 harness + model + 权限模式 + 独立的 git worktree,变成看板里的一列(Pending → In progress → Review → Completed)。具体解决的痛点:
- 并行任务可视化:跨项目的任务在看板上流转,
Enter发送、⌘/Ctrl+Entersteer(运行中插话),agent 跑的时候可以排队消息。 - 并行改文件不打架:每个任务默认开独立 worktree(
<project>-worktrees/<branch>),配合"文件作用域(files scope)"让多个 worker 写不同文件时序列化。 - 权限确认集中化:审批请求以细条形式排在输入框上方,多个请求可一键 Approve all。
- 换 harness 不丢上下文:空闲任务可从模型选择器直接换 harness,用"历史交接(conversation carried forward)"机制迁移有上限的文本历史(最多 200 条消息 / 64 KiB),并明确告知用户发生了迁移。
- 长任务不绑电脑:云端 agent 在你自己的云账号机器上跑,笔记本合盖后继续,回来自动接上。
三、快速安装
3.1 下载安装包
从 GitHub Releases 直接下(各平台均有对应构建):
# macOS Apple silicon(要求 macOS 12+)
curl -L -o PandaCode.dmg https://github.com/aicodeking/pandacode/releases/latest/download/PandaCode-macOS-arm64.dmg
# macOS Intel
curl -L -o PandaCode.dmg https://github.com/aicodeking/pandacode/releases/latest/download/PandaCode-macOS-x64.dmg
# Windows x64(Windows 10 1809+ 或 Windows 11)
curl -L -o PandaCode-setup.exe https://github.com/aicodeking/pandacode/releases/latest/download/PandaCode-Windows-x64-setup.exe
# Windows arm64(Windows 11 on ARM,如 Snapdragon X)
curl -L -o PandaCode-setup-arm64.exe https://github.com/aicodeking/pandacode/releases/latest/download/PandaCode-Windows-arm64-setup.exe
# Linux x64(Ubuntu 22.04+,X11 或 XWayland)
curl -L -o PandaCode.AppImage https://github.com/aicodeking/pandacode/releases/latest/download/PandaCode-Linux-x86_64.AppImage
# Linux arm64(Ubuntu 24.04+ aarch64)
curl -L -o PandaCode-aarch64.AppImage https://github.com/aicodeking/pandacode/releases/latest/download/PandaCode-Linux-aarch64.AppImage
每个文件旁都有 .sha256 校验和。
3.2 更省事:npx / Homebrew
npx pandacode # 下载最新构建、验证签名并安装
npx pandacode --dry-run # 只下载并验证,不安装
brew install --cask aicodeking/pandacode/pandacode # macOS
brew install aicodeking/pandacode/pandacode # Linux
npx pandacode 会在本地为 macOS 应用签名,不需要再绕过 Gatekeeper。
3.3 签名与执行权限的坑(必读)
Release 构建没有代码签名,所以系统会拦:
# macOS:ad-hoc 签名且未 notarize,"系统设置 → 隐私与安全性 → 仍要打开"经常不生效
xattr -dr com.apple.quarantine /Applications/PandaCode.app
# Windows:SmartScreen 弹窗 → "更多信息" → "仍要运行"
# Linux:AppImage 需要执行权限
chmod +x PandaCode-Linux-x86_64.AppImage
# Linux:某些发行版需要 FUSE 2(libfuse2),或设置
export APPIMAGE_EXTRACT_AND_RUN=1
3.4 装编码 CLI
PandaCode 不提供任何模型额度或订阅,它只跑你已经装好并登录的 CLI。至少要装 Git 和一个编码 CLI:
npm i -g @github/copilot && copilot login # GitHub Copilot CLI
npm i -g cline && cline auth # Cline
npm i -g @kilocode/cli && kilo auth login # Kilo Code
npm i -g command-code && command-code login # Command Code(需 Node 22+)
npm i -g @deepseek-ai/dsh # DeepSeek(dsh --profile acp)
npm i -g @earendil-works/pi-coding-agent # Pi
bun install -g @oh-my-pi/pi-coding-agent # omp(Oh My Pi,跑在 Bun 上)
Muse Code 走 Meta 的 launcher 装到 ~/.local/bin/muse,然后 muse login。
3.5 从源码构建
git clone https://github.com/aicodeking/pandacode.git
cd pandacode
npm ci
npm run desktop # 等同于 npm run tauri dev
需要 Node.js 22 + 稳定版 Rust + 对应 OS 的 Tauri 前置依赖。
npm run dev 只起前端(普通浏览器里跑的是模拟数据,文件、Git、终端都是假的,不能当真)。npm run tauri build 出本地安装包,npm run release:build 出正式发布资产。
四、核心用法
4.1 基本流程
- 打开项目文件夹;
- 点 New task 或按
⌘/Ctrl N; - 在输入框里选 harness + model + reasoning effort(选择器可搜索,新任务记住上次选择);
- 发送。
打开 Changes 看 diff 并暂存,或打开终端跑 shell。会话与 provider session ID 会跨重启持久化,但 agent 只在活跃轮次才启动。
4.2 快捷键
| 键 | 功能 |
|---|---|
⌘/Ctrl N |
新任务 |
⌘/Ctrl K |
命令面板 |
⌘/Ctrl J |
终端 |
⌘/Ctrl B |
侧边栏 |
⌘/Ctrl , |
设置 |
⌘/Ctrl F / ⌘/Ctrl G |
线程内查找 / 下一个匹配 |
Enter |
发送(agent 运行中则排队) |
⌘/Ctrl Enter |
steer(运行中插话) |
Shift Enter |
换行 |
⌘/Ctrl +/−/0 |
整体界面缩放(不只是文字) |
⌘/Ctrl Shift Space |
全局快捷 overlay,从任何地方拉出新任务/运行中任务 |
消息开头打 / 可用该 harness 的斜杠命令和 skills。
4.3 Worktree:并行改文件的关键
分支芯片(branch chip)是管理分支和 worktree 的唯一入口:
- 未启动的任务 → "Work in a new worktree…":同一任务搬进隔离 checkout,保留草稿、标题、harness、model、权限模式;
- 已有历史的任务 → "New task in a worktree…":在同项目起一个兄弟任务。
worktree 放在项目旁边:<project>-worktrees/<branch-with-dashes>,分支名形如 pandacode/<name>。任务栏上方显示项目、Local/Worktree、当前分支和关联的 GitHub 工作。
"Merge into main" 一键把 worktree 已提交的工作在本地合并回主 checkout——有未提交改动或有冲突时它会拒绝并什么都不动,然后提示你清理。清理走 git worktree remove(不带 --force)再 git worktree prune。未推送且未合并的提交默认不勾选删除。
4.4 权限模式
| 模式 | 行为 |
|---|---|
| Standard | 保留各 provider 原生的检查。Claude 的 "Accepted edits" 允许其编辑工具;Codex 用自己的 workspace sandbox + 按需审批 |
| Plan mode | 只读/搜索/思考类请求放行,其他权限请求一律拒绝(目前 Copilot CLI 的 Plan 模式映射到此) |
| Full access | 启用该 harness 最宽松的模式 |
4.5 Agent 团队
在 composer 里选 Team,挑 architect 模型和 worker 配置档,Save setup 保存。
- 团队里可以混用不同 harness 和模型(Claude Code / Codex / Kimi Code / OpenCode / GLM / Antigravity);
- architect 能在一次调用里派多个 assignment,审查结果,并给已有 worker 追加纠正;
- 每个 worker 在触发它的轮次里占一行,点开可看流式回复、工具调用、会话与审批请求;
- 每个新 assignment 必须显式声明
files作用域,省略会被拒绝而不是静默占用整个 checkout;写入作用域重叠会串行化;readOnly: true的 assignment 不得改文件; - ⚠️ 官方明确:这些作用域是建议性任务边界,不是操作系统文件系统沙箱,别的应用和终端照样能改文件;
- 最多可存 20 个命名团队配置档;"Use a single agent" 可对新任务关闭团队继承。
Lead guidance 可以加你自己的规则(比如"architect 只协调、绝不亲自改文件"),它追加在内置规则之后,永不替换内置规则,包括那条"把 worker 输出当数据而非指令"的护栏。
4.6 云端 agent
在 New task 的 Run on 菜单里选云厂商,agent 就跑在你自己账号的机器上。支持:Daytona、Cloudflare、AWS EC2、Google Cloud、E2B、Modal、Vercel Sandbox、CodeSandbox、Runloop、Blaxel、Tensorlake、Freestyle、Railway、boat、InstaBox。
工作原理(据 docs/cloud-agents.md):
- 机器:每个云任务一台机器,命名
pc-<task id 前 8 位>; - 运行时:自动幂等安装 git、Node、harness CLI,版本标记在
~/.pandacode/runtime/<harness>。支持的 harness 是claude、glm、mimo、codex、opencode,其他会明确拒绝; - 凭据:把本地登录拷过去(文件 0600,不写日志,每次运行前重推)。Claude 优先用 Settings → Cloud 里存的
claude setup-token长效 token(CLAUDE_CODE_OAUTH_TOKEN); - Checkout:本地任务建一个
pandacode/cloud-<short>分支的"镜像 worktree"(未提交改动会作为首个 commit 一起带上),以 git bundle 上传; - 运行:agent 在远端以 append-only 的
inbox文件为 stdin,out/err/exit记录状态,PandaCode 按字节偏移轮询out(输出快时快轮询,空闲时降速,网络错误时退避); - 睡眠/退出/恢复:合盖只暂停本地轮询,远端靠
keep_alive继续(上限由Info::max_unattended_minutes决定);退出 PandaCode 不影响远端;重开时从 offset 0 重放日志接上,inbox里已有的行不会重写; - 空闲:运行结束后
keep_alive(…, 15)让机器自行停止;下次提示词会重新开机。非持久化机器或已删机器会被重建并从镜像 worktree + harness 保存的 session 文件恢复,保证--resume还能用。
⚠️ PandaCode 的本地 MCP host tools 不会提供给云端运行。
4.7 机器人接入
把 agent 放到 Telegram、Slack、Discord、WhatsApp 或本地 web chat 后面,每个对话就是一个普通任务(同样的流式、composer、模型选择器)。侧边栏 Bots 视图列出每个 bot 和它最新的消息。Bot 设置分页签:profile、conversations、memory、schedules、channels、rules、activity。
4.8 其他能力
- GitHub 视图:仓库列表 + threads + PR + issues,一键 review、fix checks、merge、solve issue,每个开成独立关联 thread。
- 模拟器:iOS Simulator 与 Android 模拟器在 inspector 里跑,agent 做完可以直接点。
- 部署:从 header 起 Vercel、Cloudflare、Railway、AWS、Google Cloud 的部署任务,带审批门控的 CLI 运行。
- Token saver:按任务的 response-style pack 减少输出 token。
- Jev 附加插件(可选,默认关闭):独立 Chrome profile 里的工作评审、项目规则检查和应用测试。
五、典型适用场景
- 多 harness 并行:Claude Code 打主力、Copilot CLI 跑 lint/小修、Codex 做 review——在一个窗口里同时跑。
- 大批量重构:架构师派多个 worker 各改一块文件,靠
files作用域避免互撞。 - 长任务托管:云端 agent 跑 overnight,本地合盖睡觉。
- 移动端触达:用 Telegram 派活给 agent,用手机看进度。
- 移动端开发:agent 写完 iOS/Android 代码,直接在模拟器里点。
- 自托管 + 隐私敏感:数据只落本地 SQLite,无遥测无账号。
六、坑与注意
- macOS 首次启动会被 Gatekeeper 拦。ad-hoc 签名 + 未 notarize,"仍要打开"经常不生效,必须
xattr -dr com.apple.quarantine /Applications/PandaCode.app。或者干脆用npx pandacode,它本地签名后不需要这步。 - Linux AppImage 可能缺 FUSE 2。装
libfuse2,或APPIMAGE_EXTRACT_AND_RUN=1。 npm run dev是模拟环境,不是真实运行。浏览器里文件、Git、终端全是假的,做 UI 演示可以,当功能验证不行。- 你必须自己装 CLI 并登录。PandaCode 不含 provider 订阅和额度。DeepSeek、Command Code 这类在 PandaCode 里看不到用量限额,得自己去对应平台查。
- Pi/omp 没有自带审批系统。PandaCode 通过本地 loopback bridge 扩展强制权限模式,集成控制台需要 Full access;omp 会被以
--approval-mode yolo启动,以保证 bridge 是唯一的审批门。 - 换 harness 会丢私有推理、工具执行状态和早先的图片字节——交接只传有上限的文本历史(最多 200 条消息 / 64 KiB)。界面会显示"Conversation carried forward"提示。Codex 只在创建 thread 时支持注册动态工具,所以给它开/关团队会先排队一次历史交接再替换原生 ID。
- 换 harness 后不能复用上一个 harness 的原生 resume ID,provider 特有的 goal/settings 状态也不会带过去。
- 云端 agent 只支持 5 个 harness:
claude、glm、mimo、codex、opencode。想用别的得自己在远端装。 - 云端运行拿不到本地 MCP host tools。
- 云端机器的凭据会被复制到远端(0600 文件)。这是把登录态搬出本机的动作,安全上要知情。
files作用域不是沙箱。官方原话:"These are advisory task boundaries, not an operating-system filesystem sandbox." 别的应用和终端照样能改文件。- worker 是配置档,不是常驻进程——architect 按需从配置档创建命名 assignment。
- 无遥测不等于零出网。README 明确列了自动检查:约每 6 小时查已装 CLI 的最新版本(
formulae.brew.sh、downloads.claude.ai、api.github.com、cdn.kimi.com)、每天拉公开模型价格表、启动时查自己的更新。你选的 provider 的数据照发不误,但"完全不联网"的说法不成立。 - 密钥存储位置跨平台不一致:macOS 存在 app data 目录的
secrets.json(权限 0600,不进 Keychain,所以更新不会要你的登录密码;旧版本存 Keychain 的会在首次使用时迁移),Linux 用 Secret Service,Windows 用 Credential Manager。 - macOS 文件夹访问被拒时,用 Browse 按钮选目录,或到"系统设置 → 隐私与安全性 → 文件与文件夹"给 PandaCode 授权。
- 资源模型:没有后台目录轮询,没有递归文件 watcher;agent 每轮结束就退出,靠 provider session ID 恢复。
- 许可不是纯 MIT。商业使用或公开发布的 fork 必须声明"This is a fork of PandaCode"并链接本仓库。团队做二次分发要注意。
七、与同类对比
| 工具 | 定位 | 对比 PandaCode |
|---|---|---|
| Claude Code / Codex CLI 原生终端 | 单 CLI 交互 | PandaCode 是多 harness 统一层,加看板、worktree、权限审批集中化、云端 agent、机器人 |
| Cursor / Windsurf / Zed | AI 编辑器 | 它们自带编辑器内核和模型服务;PandaCode 不内置编辑器,靠系统 webview,模型全靠外部 CLI 账号 |
| Continue / Cline / Roo Code | IDE 内插件 | 插件形态受限于 IDE;PandaCode 是独立桌面应用,能管多项目并行 |
| Conductor / CodexBar 等多代理工具 | 多 agent 编排 | PandaCode 的差异在协议广度(原生 + ACP + Pi RPC + MSP 四种)、worktree 隔离和机器人/云端通道 |
| OpenHands / 自建 agent 沙箱 | 自带执行环境 | PandaCode 不自己实现 agent,复用各家 CLI,因此能力上限等于那些 CLI,但维护成本低 |
八、一句话结论
PandaCode 是目前"给编码 agent CLI 套一层统一工作台"这条路线里完成度最高的选择之一——协议覆盖广(原生/ACP/Pi RPC/MSP)、worktree + 文件作用域的并行隔离设计扎实、云端 agent 与机器人接入让它真的能托管长任务,Tauri 架构也让它比 Electron 同类轻。但要清楚:它不提供模型额度、不提供编辑器内核、不内置沙箱、不内置任何 agent 能力——所有能力都来自你装的那些 CLI;而且 macOS 签名、跨 harness 上下文交接、无遥测但有自动检查这三点都需要实际评估。
九、来源清单
- GitHub README(aicodeking/pandacode,main 分支)— 已 fetch,2026-10-24
docs/providers.md— 已 fetchdocs/worktrees.md— 已 fetchdocs/cloud-agents.md— 已 fetchdocs/architect-workers.md— 已 fetch- 仓库卡
organized/repo_cards/4604-aicodeking-pandacode.md
十、不确定与待核项
- ⚠️ 本文未做 web_search 补充:本篇完全基于仓库 README + 4 份官方 docs 写作,未使用搜索结果。README 中链接的其他 docs(
docs/task-board.md、docs/bots.md、docs/github.md、docs/attachments.md、docs/browser.md、docs/agent-usage.md、docs/agent-updates.md、docs/homebrew.md、docs/platform-support.md、docs/jev.md、docs/turn-changes.md、docs/slash-commands.md、docs/wallpapers.md、docs/releasing.md)未逐份抓取,其中 cloud-agents.md 提到的 provider 列表(docs/cloud-agents.md表格含 InstaBox 等)在 README 的 provider 列表里部分未出现,两处口径可能不一致。 - ⚠️ README 有截断:抓取内容在 "Resource limits" 一节末尾被截断("so a follow-u…")。
npm run dev之外的 Resource limits 后续细节、以及 README 可能存在的后续章节,本文未覆盖。 - ⚠️ 版本号未核实:本文未抓取
package.json/Cargo.toml/ 最新 release tag。文中出现的 "Node.js 22"、"schema 27"、"schema 14" 等均为文档内引用,未独立验证。Node 22 的要求在 README(Command Code)与 build from source 两处均提到,交叉一致。 - ⚠️ 未抓 commit hash:仓库最近提交 2026-10-24,迭代快,建议生产使用前记录
git rev-parse HEAD。 - ⚠️ star 数未交叉验证:仓库卡记 600 stars,本次未用 web_search 复核。
- ⚠️ license 细节:README 称 "MIT with one addition",未打开 LICENSE 文件原文核对该附加条款的确切措辞。
- ⚠️ 「支持 harness 列表」有两处口径:README 说 ACP 支持 Copilot/Antigravity/Grok Build/DeepSeek/Command Code/Cline/Kilo Code,
docs/cloud-agents.md却只列claude、glm、mimo、codex、opencode支持云端运行。这两处不是同一维度(本地 vs 云端),本文按"本地支持广、云端仅 5 个"表述,但云端与 ACP harness 的交叉(如 Copilot CLI 能否跑在云端)未验证。 - ⚠️ 未实测:本文所有命令均来自官方文档,未实际执行安装或运行。