Apple Music–style desktop client for the pi coding agent
- Native Desktop Experience — Built with Electron, designed to feel like a first-class macOS/Windows/Linux app
- Apple Music–inspired UI — Three-pane split view with translucent sidebar, spacious layout, and calm typography
- Powered by pi — Directly integrates
@earendil-works/pi-coding-agentas an in-process library (no subprocess overhead) - Multi-workspace & Multi-session — Manage multiple projects and concurrent AI conversations
- Rich Chat Timeline — Streaming responses, tool call cards, code blocks with syntax highlighting
- Built-in Terminal — Interactive xterm.js terminal with bash panel and diff viewer
- Model & Provider Settings — Configure API keys, switch providers, and manage models
- File Tree & Preview — Browse project files with syntax-highlighted preview
- Multi-window Support — Open multiple windows for parallel workflows
- i18n — Internationalization support with language switching
- Opt-in Telemetry — Privacy-respecting error reporting via Sentry
Renderer (React 19 + Tailwind CSS v4)
│ ipcRenderer.invoke("pi:rpc", sid, cmd)
▼
Electron Main Process
│ dispatchRpc(session, cmd) ← in-process function call
▼
@earendil-works/pi-coding-agent (AgentSession per session)
- Main process directly imports the pi SDK and manages a
Map<sessionId, AgentSession>. No subprocess, no JSON-over-stdio — every renderer RPC call is a function call in the same V8 instance. - Multi-workspace, multi-session. Each
AgentSessioncarries its owncwd/SessionManager/ event bus; sharedAuthStorageandModelRegistryare singletons. - IPC payloads reuse pi's
RpcCommand/RpcResponsetypes verbatim. - Renderer is React 19 + Tailwind CSS v4 with Radix-based UI primitives. State managed with Zustand.
- Node.js ≥ 22
- npm ≥ 10
git clone https://github.com/Fim98/deep-code.git
cd deep-code
npm install
npm run dev💡 The first install downloads the Electron binary (~100 MB). On a slow connection, set the mirror:
ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/ npm install
Download the latest release from GitHub Releases.
| Platform | Format |
|---|---|
| macOS (Intel & Apple Silicon) | .dmg / .zip |
| Windows (x64 & arm64) | .exe (NSIS installer) / .zip |
| Linux (x64 & arm64) | .AppImage / .zip |
| Command | Description |
|---|---|
npm run dev |
Start the app in development mode with hot reload |
npm run build |
Build for production |
npm run typecheck |
Run TypeScript type checking |
npm run lint |
Lint with Biome |
npm run format |
Format code with Biome |
npm run test |
Run all tests (node + web) |
npm run test:node |
Run main process tests |
npm run test:web |
Run renderer tests |
npm run package |
Build and package for current platform |
npm run package:mac |
Package for macOS (both architectures) |
npm run package:win |
Package for Windows (both architectures) |
npm run package:linux |
Package for Linux (both architectures) |
deep-code/
├── src/
│ ├── main/ # Electron main process
│ ├── preload/ # Preload scripts (context bridge)
│ ├── renderer/ # React renderer (UI)
│ └── test/ # Test utilities
├── resources/ # App icons and static resources
├── .github/ # CI/CD workflows and issue templates
└── .husky/ # Git hooks (commitlint)
See ROADMAP.md for the full feature roadmap and current progress.
| Milestone | Scope | Status |
|---|---|---|
| M1 | Scaffold | ✅ |
| M2 | pi SDK bridge + IPC | ✅ |
| M3 | Apple Music three-pane layout | ✅ |
| M4 | Workspace management | ✅ |
| M5 | Session list | ✅ |
| M6 | Chat timeline | ✅ |
| M7 | Tool call cards | ✅ |
| M8 | Model + provider settings | ✅ |
| M9 | Bash panel + diff viewer | ✅ |
| M10 | Polish + context/cost bar | ✅ |
We welcome contributions! Please see CONTRIBUTING.md for guidelines on how to get started.
Thanks to all the people who have contributed to antcode:
![]() |
Fim98 — Creator & maintainer |
This project is licensed under the MIT License.
- pi coding agent — The AI agent SDK that powers antcode
- Electron — Desktop application framework
- React — UI library
- Tailwind CSS — Utility-first CSS framework
- Radix UI — Accessible UI primitives
Made with ❤️ by antcode contributors



