@espennilsen/pilot
AAn Integrated Agentic Environment (IAE) for AI-powered coding.
Install
agr install @espennilsen/pilot --target claudeThis artifact does not publish files for Claude.
Document
{ "name": "pilot", "version": "0.0.0", "description": "Your cockpit for AI-powered coding", "main": "out/main/index.js", "author": "Espen Nilsen hi@e9n.dev", "license": "MIT", "scripts": { "dev": "vite build -c vite.companion.mjs && electron-vite dev --config electron-vite.config.mjs", "dev:trace": "vite build -c vite.companion.mjs && NODE_OPTIONS='--trace-warnings' electron-vite dev --config electron-vite.config.mjs", "build": "electron-vite build --config electron-vite.config.mjs", "build:mac": "pnpm run build && electron-builder --mac", "build:win": "pnpm run build && electron-builder --win", "build:linux": "pnpm run build && electron-builder --linux", "test": "vitest run", "test:watch": "vitest", "lint": "npx eslint . --ext .ts,.tsx,.js,.jsx --format stylish --max-warnings 0 --report-unused-disable-directives --ignore-pattern "dist/" --ignore-pattern "out/" --ignore-pattern "node_modules/" --ignore-pattern ".webpack/" --ignore-pattern ".config.{js,ts}"", "preview": "electron-vite preview --config electron-vite.config.mjs", "postinstall": "node -e "if (process.platform === 'darwin') { try { require('child_process').execSync('chmod +x node_modules/node-pty/prebuilds/darwin-/spawn-helper', { stdio: 'ignore' }) } catch (e) {} }"" }, "dependencies": { "@homebridge/ciao": "^1.3.5", "@mariozechner/pi-coding-agent": "^0.57.1", "@modelcontextprotocol/sdk": "^1.27.1", "@pierre/trees": "1.0.0-beta.3", "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/xterm": "^6.0.0", "adm-zip": "^0.5.16", "chokidar": "^5.0.0", "diff": "^8.0.3", "dockerode": "^4.0.9", "express": "^5.2.1", "gray-matter": "^4.0.3", "highlight.js": "^11.11.1", "ignore": "^7.0.5", "lucide-react": "^0.577.0", "node-forge": "^1.3.3", "node-pty": "^1.1.0", "ollama": "^0.6.3", "qrcode": "^1.5.4", "react": "^19.0.0", "react-dom": "^19.0.0", "sharp": "^0.34.5", "simple-git": "^3.32.1", "ws": "^8.19.0", "zustand": "^5.0.0" }, "devDependencies": { "@swc/core": "^1.15.18", "@tailwindcss/vite": "^4.0.0", "@types/adm-zip": "^0.5.7", "@types/dockerode": "^4.0.1", "@types/express": "^5.0.6", "@types/node-forge": "^1.3.14", "@types/qrcode": "^1.5.6", "@types/react": "^19.0.0", "@types/react-dom": "^19.0.0", "@types/sharp": "^0.31.1", "@types/ws": "^8.18.1", "@vitejs/plugin-react": "^5.1.4", "autoprefixer": "^10.4.20", "electron": "^40.8.0", "electron-builder": "^26.8.1", "electron-vite": "^5.0.0", "postcss": "^8.5.8", "tailwindcss": "^4.0.0", "typescript": "^5.7.0", "vite": "^7.3.1", "vitest": "^4.0.18" }, "packageManager": "pnpm@10.11.1" }
Repository README
Describes espennilsen/pilot as a whole, which may contain artifacts other than this one. Where this artifact had no useful description of its own, its summary was taken from here.
Pilot
An Integrated Agentic Environment (IAE) for AI-powered coding.
A native desktop environment for the Pi Coding Agent — chat with an AI agent, review diffs before they touch disk, manage git, run dev commands, coordinate subagents, and track tasks, all from one keyboard-driven app.
[!WARNING] Pilot is in early development. The app runs on macOS, Windows, and Linux.
Nightly builds are available for all platforms — use at your own risk. These are unstable, unsigned builds generated automatically from the latest
mainbranch.
Features
- Agent Chat — streaming responses, tool call visibility, thinking blocks, steer/follow-up, image attachments, slash commands, and AI follow-up suggestion chips
- File Editor — syntax-highlighted code editor with line numbers, in-file find & replace (string and regex), and dirty-state revert
- Sandboxed File Operations — all edits staged for review before touching disk, with accept/reject per change and Yolo mode override
- Tabbed Sessions — independent agent sessions with drag-and-drop, pinning, project grouping, and draft persistence
- Git Integration — status, staging, commits, branches, blame, stash, interactive rebase UI, submodule management, and AI-assisted conflict resolution — all inline
- Memory System — two-tier persistent memory (global + project) with auto-extraction and agent tools for reading/writing
- Subagents — spawn parallel workers, orchestrate multi-step work, with live monitoring in the Agents panel
- Task Board — kanban/table views with epics, dependencies, priorities, and full agent tool access
- Prompt Library — reusable templates with variables and slash-command triggers
- Web Tabs — browse documentation, preview local HTML, or monitor dashboards inside the app
- Artifacts & Live Preview — render HTML/CSS/JS artifacts the agent produces in a dedicated preview pane
- Web Search — agent can search the web via Brave Search API and cite sources inline
- MCP Servers — connect external tools via Model Context Protocol (stdio, SSE, Streamable HTTP)
- Desktop — Docker-based virtual display the agent can control — browser testing, GUI automation, and visual verification with 18 tools (mouse, keyboard, screenshot, clipboard, browser)
- Custom Themes — create, edit, and import color themes (dark, light, or fully custom)
- Scratch Pad — quick persistent notepad for drafting messages or saving snippets
- Command Palette — fuzzy-searchable
⌘Koverlay for every action - Terminal — embedded PTY terminal with tabs
- Companion Access — access Pilot from iOS/iPad/browser via HTTPS + WebSocket with PIN/QR pairing
- Extensions & Skills — install and manage Pi SDK extensions and skills
See docs/ for full documentation.
Getting Started
Prerequisites
- Node.js 22+ (dev tooling; Electron bundles its own runtime)
- Git on PATH
- API key or OAuth credentials for at least one AI provider (Anthropic, OpenAI, Google)
- Ollama (local models) — optional, typically keyless; only needed for local model usage
- Linux only:
build-essential,libx11-dev,libxkbfile-dev
Install & Run
git clone https://github.com/espennilsen/pilot.git
cd pilot
npm install
npm run dev
This launches Electron with Vite HMR. DevTools open automatically.
Build from Source
# macOS — .dmg + .zip (arm64 & x64)
npm run build:mac
# Windows — NSIS installer + portable + .zip
npm run build:win
# Linux — AppImage + .deb + .tar.gz
npm run build:linux
Output goes to release/. Each platform must be built on its native OS (native modules like node-pty require it).
Preview Production Build
npm run preview
Configuration
Global — <PILOT_DIR>/
| Platform | Location |
|---|---|
| macOS | ~/.config/pilot/ |
| Windows | %APPDATA%\pilot\ |
| Linux | $XDG_CONFIG_HOME/pilot/ (default ~/.config/pilot/) |
Key files: auth.json (credentials), app-settings.json (preferences), MEMORY.md (global memory), sessions/ (conversation history), extensions/, skills/, prompts/.
Per-project — <project>/.pilot/
Key files: settings.json (jail, yolo mode), commands.json (dev commands), MEMORY.md (project memory), tasks/tasks.jsonl (task board), prompts/ (project templates).
See docs/CONFIGURATION.md for full details.
Documentation
Full documentation lives in [docs/](docs/INDEX.md):
- Overview — what Pilot is
- Architecture — how components connect
- Structure — where things live
- Configuration — all settings and config files
- Patterns — conventions to follow
- Glossary — domain terminology
Tech Stack
Electron 40 · React 19 · TypeScript 5.7 · Zustand 5 · Tailwind CSS 4 · Pi Coding Agent SDK · simple-git · node-pty · xterm.js · highlight.js · Vite + electron-vite
License
MIT © 2026 Espen Nilsen
Trustgrade A
- passBody integrity
Whether the stored document is plausibly the kind of file the artifact declares, rather than something fetched by mistake.
- warnType matchbest-effort: server code not analyzed
Whether the artifact is really the kind of thing its metadata claims it is.
- passFreshness
How long since the source repository was last pushed to.
- passPrompt injection
Scans the artifact's own text for instructions aimed at your agent rather than at you.
- passLicense
Whether the source repository declares an SPDX license permissive enough to redistribute.
How the grade is calculated
Each check contributes 0 points when it passes, 1 when it warns, and 2 when it fails. The total maps to a letter:
- Aevery check passed
- Bone warning
- Ctwo warnings
- Dprompt injection or body integrity failed, or three warnings
- Fone of those failed, and something else is wrong
These are automated hygiene checks, not a security audit, and not a dependency or vulnerability scan. A grade of A means nothing was flagged — not that the artifact is safe.
Versions
git-92fe18c7ee452026-08-06