PilotDeck README

The project's README from github.com/OpenBMB/PilotDeck. As one markdown file: README.md.

PilotDeck

Task-oriented AI Agent productivity platform — redefining operational boundaries and memory evolution, one WorkSpace at a time.

Official Website Live Demo License MCP Native Stars
Discord   Feishu   MiniCPM Wiki   WeChat

English | 简体中文
Website · Live Demo · Tutorial · Quick Start · Highlights · Use Cases · Community


News 🔥


💡 About PilotDeck

PilotDeck is an open-source agent operating system designed around the concept of "WorkSpace". It is jointly developed and open-sourced by Tsinghua University THUNLP, ModelBest, OpenBMB, and AI9Stars. Targeting general-purpose, multi-task scenarios, PilotDeck is built to be a true productivity tool for the Agent era.

A wave of excellent AI Agent harnesses has emerged in recent years, each with its own focus: Claude Code / Cursor / Trae Solo brought model reasoning deep into the programming IDE; Claude Cowork introduced the notion of project-level isolation to desktop-side knowledge work; WorkBuddy connected agents to IM ecosystems such as WeCom and Feishu so AI is one message away.

When we shift the lens from "one-shot programming" or "immediate Q&A" to long-running, multi-project productivity work, however, several questions remain open:

PilotDeck is an incremental exploration around exactly these questions. It uses the WorkSpace as the fundamental unit — completely isolating files, memory and skills per project — and pairs it with three pillar capabilities: White-box Memory, Smart Routing and Always-on. The entire system natively supports the Model Context Protocol (MCP) and behaves consistently across front-ends (Web / CLI / IM).

✨ Key Highlights

WorkSpace-Level Isolation & Accretion

Every project gets its own file system, memory store and skill set. Parallel work no longer interferes with itself, retrieval has a bounded scope, and skills accrete naturally as each task grows — no more global context pollution.

WorkSpace isolation demo

Traceable White-box Memory

Memory generation, extraction, storage and retrieval are visible end-to-end. When the AI mis-remembers, you can pinpoint and fix the offending entry. Built-in Dream Mode consolidates memory in idle windows, and supports one-click rollback.

White-box memory demo

Smart Routing & Cost Optimization

Task difficulty is auto-detected; complex calls go to flagship models (e.g. Claude 3.5 Sonnet / GPT-4o), simple ones drop to lighter models. Through on-device / cloud co-orchestration and precise matching, token spend shrinks dramatically without sacrificing quality.

Smart routing demo

Always-on Background Execution

PilotDeck breaks the "you ask, it answers" loop: after you sign off, the agent keeps discovering candidate tasks, running long-horizon monitors, and finally lands deliverables as local files with a summary report waiting for you.

Always-on execution demo

📊 Real-world Numbers

The three pillar capabilities have shown clear advantages in production-grade workflows:

1. Smart Routing — ~70% cost savings on social-media workloads

In Xiaohongshu-style social-media operations, enabling Smart Routing automatically demotes simple polishing / layout tasks to a sub-agent (e.g. Sonnet 4.5) and only invokes Opus 4.5 at planning checkpoints:

Setup Model configuration Cost Multiplier
Smart Routing ON Opus 4.5 (main) + Sonnet 4.5 (sub) $2.83 1.1×
Smart Routing OFF All Opus 4.5 (main + sub) $12.58 5.0×
Monolithic Single Opus 4.5 long-react (estimated) $12.20 4.8×

2. Smart Routing — 1/6 the cost while beating frontier models on hard tasks

The research team benchmarked 7 complex tasks (multilingual podcast push, multi-source data reports, domain-specific literature review, codebase architecture docs, etc.). The "strong main + light sub" routing setup matches or beats the frontier single-model setup at a fraction of the cost:

Setting Score Cost
MiniMax-M2.7 single-agent 37.1 $1.90
Claude Sonnet 4.6 single-agent 69.1 $18.36
Sonnet 4.6 (main) + MiniMax-M2.7 (sub) 70.6 $3.15

3. White-box Memory — layout & tone never bleed across projects

In black-box agents, mixing tasks in a shared context pool inevitably pollutes memory. PilotDeck's WorkSpace-scoped white-box memory addresses this end-to-end:

Dimension Current AI Agents (black-box) PilotDeck (white-box)
Visibility You can't see what the AI remembers, only what it outputs View every memory entry: what was stored, when, and which WorkSpace
Control Once written, memory can't be edited or removed Edit / delete entries, pin critical decisions so they don't drift
Traceability When it goes wrong, you can't find the root cause Generation → extraction → storage → retrieval, all auditable
Isolation One shared pool — projects bleed into each other Scoped per WorkSpace; A's memory never reaches B
Reversible After compression, the original is gone Dream-mode supports one-click rollback to the prior state

🖥️ UI & Demo

PilotDeck ships an out-of-the-box Web UI with full WorkSpace management, white-box memory editing, and visualization of multi-agent collaboration.

Use Cases

All demos below are generated entirely by edge-side models via PilotDeck's Smart Routing — no cloud-side frontier model required.

Work Document Generation

"Survey the Chinese LLM application market and turn it into a formal HTML white paper."

Process Result

Mini-Game Development

"Walk me through building an iOS AR mini-game Ball Finder in Vibe Coding mode."

Process Result

AI Engineering Platform Development

"Build a low-code embedding fine-tuning platform from scratch."

Process Result

Audio-Video Editing & Social Media Operations

"Push this English podcast to a global audience in Chinese / Japanese / French / Korean / Spanish / Arabic."

Process Result (with audio)

https://github.com/user-attachments/assets/a7245467-ee3c-4939-a055-c56576ac56d1


📦 Installation & Quick Start

We provide one-line installers for macOS / Linux and Windows PowerShell, plus a source-based workflow for developers.

curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | bash

The script checks/uses the supported Node.js 22 runtime (22.13+ and <23, required for the built-in SQLite runtime), clones the repo, installs dependencies, and builds the frontend. On Linux it can install missing system packages when sudo and a supported package manager are available. On macOS, make sure Xcode Command Line Tools and a Python with distutils are usable before running the installer. Once it finishes:

If Node.js or npm package downloads are slow or unreliable on your network, set reachable mirrors before running the installer:

curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | \
  PILOTDECK_NODE_DIST_MIRROR=https://npmmirror.com/mirrors/node \
  NPM_CONFIG_REGISTRY=https://registry.npmmirror.com bash

You can also keep the official Node.js host as the primary source and opt in to one or more trusted fallback mirrors with PILOTDECK_NODE_DIST_FALLBACK_MIRRORS.

pilotdeck            # starts the server at http://localhost:3001
pilotdeck status     # check runtime status

To open PilotDeck again later on macOS / Linux, run pilotdeck in a terminal and open the printed URL in your browser. If your shell has not picked up the PATH update yet, open a new terminal or source your shell profile first.

pilotdeck
# then open http://localhost:3001, or the URL printed by the command

Option A2: One-line install (Windows PowerShell)

Run PowerShell as a normal user, then execute:

powershell -ExecutionPolicy Bypass -c "irm https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.ps1 | iex"

The PowerShell installer uses Windows-native paths under %USERPROFILE%\.pilotdeck, checks Node.js 22.13+ with node:sqlite, installs missing prerequisites with winget when available, builds PilotDeck, and creates a pilotdeck.cmd launcher in %USERPROFILE%\.pilotdeck\bin. Git LFS media assets are optional for the core app; if Git LFS is unavailable or times out, the installer continues without demo videos/GIFs.

After installation, the script starts PilotDeck and prints the UI URL, usually http://localhost:3001. It does not automatically open a browser, so copy that URL into your browser to finish onboarding (provider + API key). You can also open it from PowerShell:

Start-Process http://localhost:3001

If this is your first install, open a new PowerShell window after the script updates your user PATH, then run:

pilotdeck            # starts the server at http://localhost:3001
pilotdeck status     # check runtime status

To open PilotDeck again later, run pilotdeck from a new PowerShell window, then open the printed URL in your browser. If pilotdeck is not yet on PATH, run the launcher directly:

& "$HOME\.pilotdeck\bin\pilotdeck.cmd"

Windows PowerShell FAQ

npm.ps1 cannot be loaded because running scripts is disabled

This can still happen when you run development commands such as npm run dev directly in Windows PowerShell for the first time. PowerShell may resolve npm to npm.ps1, and the default execution policy can block that shim.

Fix it once for the current user, then reopen PowerShell:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

If you do not want to change the user policy, run the cmd shim explicitly instead:

npm.cmd run dev

Native dependency build errors (node-gyp, MSBuild, or Python not found)

The installer normally uses prebuilt packages for native dependencies such as node-pty, better-sqlite3, bcrypt, and sharp. On a fresh Windows machine, if npm cannot download a matching prebuild and falls back to compiling from source, install Visual Studio Build Tools with the C++ workload and Python, then rerun the installer.

GitHub returns 429: Too Many Requests while downloading install.ps1

GitHub may rate-limit repeated raw.githubusercontent.com requests from shared networks. Wait a few minutes and rerun the one-line command, or download install.ps1 from the repository and run it locally with powershell -ExecutionPolicy Bypass -File .\install.ps1.

Option B: From source (for developers)

Need platform-specific dependency installation commands? See the Source Installation Guide.

1. Clone and install dependencies

By default, skip large Git LFS demo media to keep the source install lightweight. If you need the demo videos/GIFs later, run git lfs pull after cloning.

GIT_LFS_SKIP_SMUDGE=1 git clone https://github.com/OpenBMB/PilotDeck.git
cd PilotDeck

node --version          # must be v22.13.0 or newer, and below v23
corepack enable         # enables the pinned pnpm version from package.json
corepack pnpm install --frozen-lockfile --filter pilotdeck --filter pilotdeck-ui

PilotDeck uses the committed pnpm-lock.yaml for reproducible source installs. The filters keep Electron packaging dependencies out of Web-only installs. Prefer the corepack pnpm ... command above instead of npm install; on macOS, this also avoids unnecessary native rebuild fallbacks when matching prebuilt packages are available.

2. Configure a model provider

PilotDeck reads ~/.pilotdeck/pilotdeck.yaml. You can create it manually, or just open the Web UI and configure providers visually in onboarding. Supported protocols include OpenAI, Anthropic, native Google Gemini, DeepSeek, Qwen, Kimi, MiniMax and other OpenAI-compatible endpoints.

If the config file is missing, PilotDeck starts the Web UI without the Gateway and opens onboarding. Saving a valid provider, API key, and model writes the config and starts the Gateway automatically.

schemaVersion: 1
agent:
  model: deepseek/deepseek-v4-pro
model:
  providers:
    deepseek:
      protocol: openai
      url: https://api.deepseek.com/v1
      apiKey: sk-your-api-key

Native Gemini can be configured with protocol: google:

schemaVersion: 1
agent:
  model: google/gemini-3.1-pro-preview
model:
  providers:
    google:
      protocol: google
      url: https://generativelanguage.googleapis.com
      apiKey: ${GEMINI_API_KEY}
      models:
        gemini-3.1-pro-preview: {}

Local Ollama models can be configured without an API key. PilotDeck uses Ollama's OpenAI-compatible /v1/chat/completions endpoint:

ollama serve
ollama pull qwen3:0.6b
schemaVersion: 1
agent:
  model: ollama/qwen3:0.6b
model:
  providers:
    ollama:
      protocol: openai
      url: http://localhost:11434/v1
      models:
        qwen3:0.6b: {}

3. Start the services

cd ui && npm run dev     # dev mode (HMR), visit http://localhost:5173
# or
cd ui && npm run start   # production mode, visit http://localhost:3001

Option C: Docker Compose

If Docker is installed, you can start PilotDeck with:

docker compose up -d --build

For full Docker configuration, see README_DOCKER.md.


🛠️ Extension Protocol

PilotDeck has an open plugin architecture with a strict boundary between the open-source core and plugin customization. Extending the system is a plugin.json away:


🤝 Contributing

Thanks to everyone who has contributed code, feedback, and ideas. New contributors are warmly welcome — let's build the next-gen agent OS together.

Workflow: Fork → feature branch → PR.


💬 Community

PilotDeck (OpenBMB/PilotDeck)

Searching Database…

这是什么?一个开源的智能体操作系统,用于以任务为导向、多项目并行的高效工作方式,AI 智能体在相互隔离的 WorkSpace 中运行真实项目。由清华大学 THUNLP、面壁智能(ModelBest)、OpenBMB 和 AI9Stars 联合开发。
它是网页应用、桌面程序,还是命令行工具?三者都是:它自带开箱即用的 Web UI,在 Web、CLI 和即时通讯(IM)等前端上的表现保持一致,仓库里还提供 Electron 桌面端打包。整个系统原生兼容 MCP。
怎么把它跑起来?用一行式安装命令即可,支持 macOS/Linux 和 Windows PowerShell(需要 Node.js 22.13+),也可以用 Docker Compose。然后在 ~/.pilotdeck/pilotdeck.yaml 中配置模型提供商——或者直接在 Web UI 的引导流程里用可视化界面完成配置。
我需要 API key 吗,还是可以跑本地模型?云端方面:支持 OpenAI、Anthropic、原生 Google Gemini、DeepSeek、Qwen、Kimi、MiniMax,以及任何 OpenAI 兼容的接口。本地的 Ollama 模型则完全不需要 API key 就能使用。
安装时有什么需要注意的坑吗?它要求 Node.js 版本固定在 22.13+(23 以下)。从源码安装时应使用 corepack pnpm 而不是 npm install;另外,演示视频和 GIF 默认通过 Git LFS 跳过,以保持克隆仓库的体积轻量。
为什么不直接用 Claude Code 或 Cursor,而要开发这个?那些工具主要面向一次性编程任务或即时问答。PilotDeck 面向的是长期运行的多项目工作,开发者认为其中有四个尚未解决的问题:可追溯的记忆、按任务统计的 token 成本、与任务难度匹配的模型选择,以及能在后台持续进行的工作。
智能路由到底能省多少钱?在他们的小红书风格社交媒体基准测试中,采用路由方案(Opus 4.5 主模型 + Sonnet 4.5 子模型)花费 $2.83,而全部用 Opus 需要 $12.58——大约省了 70%。在 7 个高难度任务上,Sonnet 4.6 + MiniMax-M2.7 的得分高于单独使用 Sonnet,花费则是 $3.15 对 $18.36。
白盒记忆在实际使用中能给我带来什么?你可以查看每一条记忆——存了什么、什么时候存的、存在哪个 WorkSpace——然后对它进行编辑、删除或置顶。梦想模式(Dream Mode)会在空闲时段整合记忆,并在整合出问题时支持一键回滚。
Creator
OpenBMB
Size
66.3 MB
Stars
4.5K
Age
4mo
Commits · 90 Days