PandaCode
One calm native desktop workspace that runs your existing coding CLIs side by side with projects, Git, a terminal and a browser.
- Source repo
- aicodeking/pandacode
- Stars
- ★ 1.1k
- Last updated
- today
- License
- NOASSERTION
- Primary language
- Rust
- FA score
- 58/100 · Major gaps
At a glance
- Works with
- Universal · cross-platformCodex · Claude Code · Claude.aiOpenAI API (Partial support)
- You'll need
- Typical use
- Developers already paying for Claude Code, Codex and Copilot CLI who want to compare harnesses per task in one window
- Main limitation
- Produces no models or quota of its own: you must install and sign into each third-party CLI before anything runs
- Source review
- 58/100 · Major gaps
What does this agent do, and when should you use it?
PandaCode is a Tauri 2 desktop application written in Rust, SQLite and plain TypeScript, rendered by the operating system webview rather than a bundled Chromium or a resident Node server. It ships no models of its own: it launches coding CLIs you have already installed and signed into — Claude Code, Codex, Kimi Code, OpenCode, GLM Coding Plan, Xiaomi MiMo, GitHub Copilot CLI, Antigravity, Grok Build, DeepSeek, Command Code, Cline, Kilo Code, Devin CLI, Hermes Agent, ZCode, Pi and omp, and Meta's Muse Code — over ACP, app-server, Pi RPC or MSP, behind one normalized event interface. Conversations are organized as one card per turn, and up to six threads can be tiled at once with Active/Finished/Settled sidebar sorting, a Pending-to-Settled board and a GitHub view. It adds per-turn diff review, per-task Git worktrees with one-click local Merge into main, terminals, file and PDF previews, a built-in browser, architect/worker agent teams with optional local model routing, and a headless pandacode serve mode for always-on machines. Privacy defaults are explicit: no accounts, no telemetry, local SQLite storage, and a single switch that launches every agent with its vendor's telemetry opt-outs. Licensing is the PandaCode License, MIT plus a fork attribution requirement.
You open a project folder and press ⌘/Ctrl N; PandaCode creates a task, and from the composer you pick a harness, model and reasoning effort. It then spawns that CLI — for example copilot over ACP, cline --acp, command-code acp, devin acp, kilo acp, muse serve, zcode app-server, or Pi/omp in RPC mode through a loopback bridge extension — and parses its output into normalized events. Each turn renders as a single card with the running step, elapsed time, streamed Markdown reply and the files it changed; those changes open in a unified or split diff viewer where they can be staged and committed. Tasks can move into their own Git worktree, where the branch chip offers a local Merge into main or removal of the checkout and merged branch. The Run button executes the project's pandacode-run.sh and opens the preview. In team mode an architect plans the work and spawns workers across harnesses, optionally letting a local ONNX router choose each worker's model in roughly 10–25 ms, with a keyword heuristic on Intel Mac and x86_64 Linux/Windows builds. Around that sit /btw side threads, schedules, bots on Telegram/Slack/Discord/WhatsApp, pandacode serve, the mobile app and remote cloud sandboxes such as Daytona, Docker and AWS.
- Developers already paying for Claude Code, Codex and Copilot CLI who want to compare harnesses per task in one window
- Teams that open an isolated worktree per feature, review each turn's diff, then merge locally into main
- Engineers who want an architect to split a request, run parallel workers and review every worker's output
- People who want agent digests or answers on Telegram/Slack while each bot conversation stays an ordinary task
- Users running an always-on machine with
pandacode serve, approving and steering tasks from a phone over Connect - Privacy-conscious teams that need vendor telemetry disabled in one place while keeping code local
How do you install or deploy this agent?
Download the platform build from GitHub Releases or let the installer fetch and verify it. Building from source needs Node.js 22, stable Rust and the Tauri prerequisites.
npx pandacode
npx pandacode --dry-runHomebrew:
brew install --cask aicodeking/pandacode/pandacode
brew install aicodeking/pandacode/pandacodeOn macOS the build is ad-hoc signed and not notarized, so clear quarantine once:
xattr -dr com.apple.quarantine /Applications/PandaCode.appOn Linux, make the AppImage executable first:
chmod +x PandaCode-Linux-x86_64.AppImage
APPIMAGE_EXTRACT_AND_RUN=1 ./PandaCode-Linux-x86_64.AppImageFrom source:
git clone https://github.com/aicodeking/pandacode.git
cd pandacode
npm ci
npm run desktopThen install Git and at least one coding CLI, signing in with its own login:
npm i -g @github/copilot
copilot login
npm i -g @earendil-works/pi-coding-agent
npm i -g @deepseek-ai/dshHow do you use this agent?
Open a project folder, press ⌘/Ctrl N, and pick a harness and model from the searchable picker in the message box. Enter sends (queueing while an agent runs), ⌘/Ctrl Enter steers, ⌘/Ctrl J opens the terminal and ⌘/Ctrl K the command palette.
⌘/Ctrl N new task
⌘/Ctrl K command palette
⌘/Ctrl F find in thread
⌘/Ctrl Enter steer the running agent
⌘⌥←/→ move between tiled threadsTo compare runs, drag a thread from the sidebar, ⌘/Ctrl-click it, or choose Open beside; up to six tile at once. Use the branch chip to move an unstarted task into a worktree, and Merge into main on a clean worktree task when it is done. Choose Team in the composer for an automatic team or an architect-and-workers setup. The Run button executes the project's pandacode-run.sh and opens its preview.
On a machine with no window:
pandacode serveType / at the start of a message to reach the harness's own commands and skills.
What are this agent's strengths and limitations?
- Thin runtime: no bundled Chromium, no resident Node server, agents exit after each turn and resume by provider session ID, and only the current 100-message page is loaded
- One UI over many protocols — ACP, app-server, Pi RPC and MSP — covering more than a dozen harnesses including Claude Code, Codex, Copilot CLI, Cline, Devin and ZCode
- Review loop is concrete: per-turn saved changes, unified/split diffs, per-task worktrees with one-click local Merge into main, and a dedicated Jujutsu Changes panel
- Explicit privacy posture with local SQLite storage and a single switch that launches agents with vendor telemetry opt-outs plus DO_NOT_TRACK=1
- Headless
pandacode serve, the end-to-end encrypted Connect relay and a mobile app let you approve and steer tasks on other computers
- Produces no models or quota of its own: you must install and sign into each third-party CLI before anything runs
- Release builds are not code-signed or notarized, so macOS needs a quarantine workaround and Windows trips SmartScreen
- On Linux closing the window quits the app, and the AppImage relies on X11/XWayland plus libfuse2, with a documented blank-window fallback
- Local ONNX model routing degrades to a keyword heuristic on Intel Mac and x86_64 Linux/Windows builds
- The PandaCode License adds a fork attribution and linking requirement on top of MIT, which differs from a plain MIT fork policy
- The feature surface is very large — teams, bots, cloud sandboxes, simulators — so onboarding takes real time
How does this agent compare with similar options?
Key facts side by side with the most closely related agents.
| Agent | Source review | Form / cost | Stars | Updated | Language | Full support on |
|---|---|---|---|---|---|---|
| PandaCode This agent | 58 · Major gaps | — | ★ 1.1k | today | Rust | Codex · Claude Code · Claude.ai |
| Poracode | 55 · Major gaps | Desktop appFree + model costs | ★ 121 | today | TypeScript | ChatGPT · Claude Code |
| Hotline | 63 · Some gaps | — | ★ 15 | 1d ago | Rust | Codex · Claude Code · OpenAI API · Claude API |
| Atlas | 50 · Major gaps | Desktop appFree + model costs | ★ 9.5k | 2d ago | TypeScript | Codex · Claude Code |
How does FollowAgents rate this agent?
Why each dimension lost points
approvals.md maps permission modes per harness in detail and states unsupported modes fail the turn rather than silently downgrading, which is a plus; however new tasks default to Full access (bypassPermissions / danger-full-access / yolo), a permissive default, so least_privilege is 1. User confirmation exists (approval bar, Approve all, structured questions still require answers), scoring 2. The README privacy section enumerates network requests, frequency and payloads, so data_flow_transparency is 3. Sensitive data handling documents 0600 secrets.json, Secret Service/Credential Manager, and log parsing that discards prompt/reply text, but plaintext macOS storage and copying logins to cloud machines leave residual risk, scoring 2. Dependencies include caret-ranged packages and an xlsx tarball fetched from a third-party CDN, and SBOM scanning is continue-on-error and non-blocking in release.yml, so dependency_security is 1. External effects (deploys, cloud sandboxes, bots, remote relay) are described as approval-gated, but Full access defaults and auto-update restarts are real external impact, scoring 1. Rollback has turn changes, worktrees, Merge into main and rewind, but no described undo for executed external actions (deploys, cloud machines), scoring 1. Source attribution: the LICENSE requires forks to state provenance and docs cite upstream projects and protocol docs, but publisher identity is unverified, scoring 2.
Internal consistency is decent (approvals, agent-usage and README corroborate each other), but the README is truncated mid-file and some behavior descriptions depend on source not provided, so self_consistency is 2. Dependency availability: heavy reliance on external CLIs, cloud vendors, a relay service and a CDN, any of which can break features, with no lock/verification description, scoring 1. Failure messages: docs repeatedly describe explicit failure states (unsupported mode fails, unavailable quota shown as unavailable not zero, download verification failure), scoring 2.
Audience and scenarios are very broad (many harnesses, teams, bots, mobile, headless server, cloud sandboxes), scoring 3. Capability boundaries are documented (which harness supports which modes, platforms without ONNX routing, Cline lacking a unified telemetry switch) but scattered across docs without a consolidated statement, scoring 2. Trigger precision: global shortcut, schedules, bot triggers and automatic teams create a wide trigger surface with no systematic conflict/priority documentation, scoring 1. Environment fit lists minimum platform versions and Wayland/FUSE caveats, but unsigned builds and platform differences add friction, scoring 2.
Information architecture: the README is long and sectioned with a rich docs directory, but the README is truncated in the provided file so structural completeness cannot be fully confirmed, scoring 2. Install notes are very thorough (per-platform files, checksums, Homebrew, npx, Gatekeeper/SmartScreen handling), scoring 3. Naming stability: version 0.3.98 is pre-1.0 with rapidly expanding features, so naming/behavior stability evidence is thin, scoring 1. Examples and FAQ: screenshots, doc links and some operational guidance exist, but there is no consolidated FAQ, scoring 2. Known limitations have dedicated coverage (unsigned builds, platform differences, telemetry switch scope), scoring 2. License: a custom PandaCode License (MIT plus attribution clause) marked SEE LICENSE in package.json, non-standard, consistent with NOASSERTION metadata, scoring 2. Versioning/changelog: a releases/X.Y.Z.md mechanism and release workflow exist, but no CHANGELOG content is provided in the repository, scoring 1. Maintenance responsibility: SECURITY.md states only the latest release gets fixes and offers a private reporting channel, but publisher identity is unverified and there is no governance or maintainer statement, scoring 1.
Output usability: turn cards, diffs, approval bar and cost panel are designed for real use, but all are documentation claims without execution verification, scoring 2. Marginal value: consolidating many harnesses with review/deploy flows is genuinely useful, but the space is crowded and feature stacking may add complexity, scoring 2. Cost benefit: the very broad feature surface implies a large attack surface and maintenance burden, and Full access defaults raise risk cost, scoring 1.
claim_traceability: docs cite upstream protocols, source paths and specific files (e.g. providers.rs, usage_ledger/), giving decent traceability, but key claims lack reproducible steps, scoring 2. cross_source_corroboration: README, approvals, agent-usage, CI workflows and test files corroborate each other (e.g. crypto tests matching the Rust implementation byte-for-byte, CI pinned SHAs), scoring 2. fact_inference_separation: docs distinguish verified behavior from inference (e.g. Kimi mode descriptions lagging, Codex dedup based on one check), but some performance numbers and security claims lack method detail, scoring 2.
- New tasks default to Full access, bypassing harness approval prompts; switch to Standard or Plan before running in untrusted repositories.
- Release builds are not code-signed or notarized (macOS needs manual quarantine removal, Windows needs SmartScreen bypass); verify .sha256 checksums and prefer the npx install path.
- package.json uses caret-ranged dependencies and an xlsx tarball from a third-party CDN, and SBOM scanning does not block releases; assess supply-chain risk yourself.
- Publisher identity is unverified by FollowAgents and the license is a custom attribution-clause license (NOASSERTION); confirm terms before commercial use or forking.
- Cloud sandboxes and the remote relay copy code, prompts and harness login credentials to third-party machines; enable only when needed and review the target account.
- This is a static source review with no build or execution performed; performance and security claims in the docs are not independently verified.
FAQ
Do I pay PandaCode for model usage?
Where does my code and do my API keys go?
Can I stop each agent's own telemetry?
What does it add over running several terminals?
macOS says the app is damaged or cannot be verified — what now?
xattr -dr com.apple.quarantine /Applications/PandaCode.app, or install via npx pandacode, which signs the app locally for you.