Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,6 @@ console/.gitignore !filter !diff
console/package.json !filter !diff
console/bun.lock !filter !diff
console/tsconfig.json !filter !diff
console/src/utils/logger.ts !filter !diff
docs/site/api/** filter=git-crypt diff=git-crypt
.gitattributes !filter !diff
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -224,6 +224,8 @@ __marimo__/
# Claude Code
CLAUDE.md
AGENTS.md
spec-annotate
changes-header
apm.yml
.playwright-*/
.apm
Expand All @@ -247,6 +249,7 @@ playwright/

# Build artifacts
docs/plans
docs/plans/.annotations/
docs/license
docs/video
docs/slides
Expand Down
20 changes: 17 additions & 3 deletions LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,18 @@ revocable license to:
and may be used by You for any purpose, including commercial purposes,
in perpetuity, even after Your Subscription ends.

(e) ENTERPRISE SOURCE CODE LICENSE. Subject to an active Enterprise
Subscription, the Licensor grants You the additional right to receive,
copy, modify, and create Derivative Works of the complete Software source
code, including Compiled Components, solely for Your internal business
purposes. This includes the right to fork, adapt, and deploy customized
versions of the Software within Your organization. This right does not
include the right to redistribute, sublicense, sell, or make available
any such Derivative Works to third parties outside Your organization.
The Enterprise Source Code License is available only to organizations
with one hundred (100) or more developer seats under a separate Enterprise
agreement with the Licensor.

--------------------------------------------------------------------------------

3. TRIAL PERIOD
Expand All @@ -94,9 +106,11 @@ You shall NOT, and shall not permit any third party to:
non-commercial purposes;

(b) CREATE OR DISTRIBUTE DERIVATIVE WORKS based on the Software or any
portion thereof. You may modify the Source Code for Your own internal use
as permitted under Section 2(c), but You may not distribute, publish, or
make available any Derivative Work to any third party;
portion thereof, except as expressly permitted under Section 2(e)
(Enterprise Source Code License). You may modify the Source Code for Your
own internal use as permitted under Section 2(c), but You may not
distribute, publish, or make available any Derivative Work to any third
party;

(c) REBRAND, rename, or present the Software or any portion thereof as Your
own product, or remove, alter, or obscure any proprietary notices,
Expand Down
45 changes: 30 additions & 15 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ Installs globally on macOS, Linux, and Windows (WSL2). All tools and rules go to
1. **Prerequisites** — Checks/installs Homebrew, Node.js, Python 3.12+, uv, git, jq
2. **Claude files** — Sets up `~/.claude/` plugin — rules, commands, hooks, MCP servers
3. **Config files** — Creates `.nvmrc` and project config
4. **Dependencies** — Installs Probe, RTK, codebase-memory-mcp, playwright-cli, language servers
4. **Dependencies** — Installs Probe, RTK, codebase-memory-mcp, agent-browser, language servers
5. **Shell integration** — Auto-configures bash, fish, and zsh with `pilot` alias
6. **VS Code extensions** — Installs recommended extensions for your stack
7. **Finalize** — Success message with next steps
Expand Down Expand Up @@ -114,9 +114,9 @@ A local web dashboard with different views and real-time notifications when Clau
| View | What it shows |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------- |
| **Dashboard** | Workspace status, active sessions, spec progress, git info, recent activity |
| **Specification** | All spec plans with task progress, phase tracking, and iteration history |
| **Specification** | All spec plans with task progress, phase tracking, and iteration history. **Annotate mode** lets you mark up plans visually before approving — select text, write a note, and the agent reads your annotations at the next review checkpoint |
| **Extensions** | All extensions — local, plugin, and remote — with team sharing via git, diff view, push/pull, and color-coded categories |
| **Changes** | Git diff viewer with staged/unstaged files, branch info, and worktree context |
| **Changes** | Git diff viewer with staged/unstaged files, branch info, and worktree context. **Review mode** adds inline annotations on diff lines — the agent reads them directly before marking a spec as verified |
| **Memories** | Browsable observations — decisions, discoveries, bugfixes — with type filters and search |
| **Sessions** | Active and past sessions with observation counts and duration |
| **Usage** | Daily token costs, model routing breakdown, and usage trends |
Expand All @@ -125,6 +125,10 @@ A local web dashboard with different views and real-time notifications when Clau

</details>

**Visual Plan Annotation:** When a spec plan is pending approval, the Specifications tab defaults to Annotate mode. Select any text and write a note — annotations save automatically. The agent reads them at the next checkpoint, revises the plan accordingly, and asks for approval again.

**Code Review:** After a spec completes all automated checks, the agent prompts you to review the changes in the Changes tab. Enable Review mode, click **+** on any diff line to add an inline annotation — they save automatically. The agent reads every annotation and addresses them before marking the spec as verified.

### Status Line

A three-line dashboard rendered below every Claude Code response. Replaces the default status line with real-time session metrics, spec progress, and version info — all color-coded.
Expand Down Expand Up @@ -187,11 +191,11 @@ Plan → Approve → Implement (TDD) → Verify → Done

Full exploration workflow for new functionality, refactoring, or architectural changes.

**Plan:** Explores codebase with semantic search → asks clarifying questions → writes detailed spec with scope, tasks, and definition of done → **plan-reviewer sub-agent** validates completeness → waits for your approval.
**Plan:** Explores codebase with semantic search → asks clarifying questions → writes detailed spec with scope, tasks, and definition of done → for UI features, writes **E2E test scenarios** (step-by-step, browser-executable) that become the verification contract → **plan-reviewer sub-agent** validates completeness → waits for your approval.

**Implement:** Creates an isolated git worktree → implements each task with strict TDD (RED → GREEN → REFACTOR) → quality hooks auto-lint, format, and type-check every edit → full test suite after each task.

**Verify:** Full test suite + actual program execution → **unified review sub-agent** (compliance + quality + goal) → auto-fixes findings → squash merges to main on success.
**Verify:** Full test suite + actual program execution → **unified review sub-agent** (compliance + quality + goal) → for UI features, executes each E2E scenario step-by-step via browser automation (pass/fail tracked, results written to plan) → auto-fixes findings → squash merges to main on success.

</details>

Expand All @@ -214,6 +218,16 @@ Investigation-first workflow for targeted fixes. Finds the root cause before tou

Just chat — no plan, no approval gate. Quality hooks and TDD enforcement still apply. Best for small tasks and exploration. For anything that needs a plan, use `/spec` — not Claude Code's built-in plan mode.

### Headless Mode

Run Pilot non-interactively with `-p` for CI/CD pipelines, scripts, and automated workflows. All Claude Code CLI flags work — `--output-format`, `--allowedTools`, `--continue`, `--bare`, etc.

```bash
pilot -p "Run tests and fix failures" --allowedTools "Bash,Read,Edit"
pilot -p "Summarize this project" --output-format json
pilot -p "Review this PR for security issues" --bare --allowedTools "Read"
```

### /setup-rules — Generate Modular Rules

Explores your codebase, discovers conventions, generates modular rules and documents MCP servers. Run once initially, then anytime your project changes significantly.
Expand Down Expand Up @@ -349,7 +363,7 @@ For full details on every component, see the **[Documentation](https://pilot-she
| [**Rules & Standards**](https://pilot-shell.com/docs/features/rules) | 9 built-in rules (workflow, testing, verification, debugging, tools) + 5 coding standards activated by file type (Python, TypeScript, Go, Frontend, Backend) |
| [**MCP Servers**](https://pilot-shell.com/docs/features/mcp-servers) | 6 servers: library docs, persistent memory, web search, GitHub code search, web page fetching, code knowledge graph |
| [**Language Servers**](https://pilot-shell.com/docs/features/language-servers) | Real-time diagnostics for Python (basedpyright), TypeScript (vtsls), Go (gopls). Auto-installed, auto-configured |
| [**Pilot CLI**](https://pilot-shell.com/docs/features/cli) | Session management, worktree isolation, licensing, context monitoring. Run `pilot` or `ccp` to start |
| [**Pilot CLI**](https://pilot-shell.com/docs/features/cli) | Session management, headless mode (`-p`) for CI/CD and scripts, worktree isolation, licensing, context monitoring. Run `pilot` or `ccp` to start |

---

Expand All @@ -369,12 +383,13 @@ For full details on every component, see the **[Documentation](https://pilot-she

Pilot Shell is source-available under a commercial license. See the [LICENSE](LICENSE) file for full terms.

| Tier | Seats | Includes |
| :------- | :---- | :--------------------------------------------------------------------------------- |
| **Solo** | 1 | All features, continuous updates, community support via [GitHub Issues][gh-issues] |
| **Team** | Multi | Solo + extension sharing, seat management, priority support, team onboarding |
| Tier | Seats | Includes |
| :------------- | :---- | :-------------------------------------------------------------------------------------------------------------- |
| **Solo** | 1 | All features, continuous updates, community support via [GitHub Issues][gh-issues] |
| **Team** | Multi | Solo + extension sharing, seat management, priority support, team onboarding |
| **Enterprise** | 100+ | Team + full source code access (launcher, console, all components), fork and modify rights, dedicated support |

All plans work across multiple personal machines — one subscription, all your devices.
All plans start with a free 7-day trial — full features, no credit card required. All plans work across multiple personal machines — one subscription, all your devices.

[gh-issues]: https://github.com/maxritter/pilot-shell/issues

Expand All @@ -384,9 +399,9 @@ Details and licensing at [pilot-shell.com](https://pilot-shell.com).

## Rolling Out for Your Team?

Let's figure out if Pilot Shell is the right fit for your team and get everyone set up.
I'd love to help figure out if Pilot Shell is the right fit for your team and get everyone set up. For organizations with 100+ developers, the **[Enterprise tier](https://form.typeform.com/to/J7h2jjfw)** includes full source code access.

**[Book a Call](https://calendly.com/rittermax/pilot-shell)** · **[Send an Email](mailto:mail@maxritter.net)** · **[Connect on LinkedIn](https://www.linkedin.com/in/rittermax/)**
**[Book a Call](https://calendly.com/rittermax/pilot-shell)** · **[Enterprise Inquiry](https://form.typeform.com/to/J7h2jjfw)** · **[Send an Email](mailto:mail@maxritter.net)** · **[Connect on LinkedIn](https://www.linkedin.com/in/rittermax/)**

---

Expand Down Expand Up @@ -419,7 +434,7 @@ Yes. Your source code, project files, and development context never leave your m
<details>
<summary><b>What are the licenses of Pilot Shell's dependencies?</b></summary>

All external tools and dependencies that Pilot Shell installs and uses are open source with permissive licenses (MIT, Apache 2.0, BSD). This includes ruff, basedpyright, Prettier, ESLint, gofmt, uv, Probe, RTK, codebase-memory-mcp, playwright-cli, and all MCP servers. No copyleft or restrictive-licensed dependencies are introduced into your environment.
All external tools and dependencies that Pilot Shell installs and uses are open source with permissive licenses (MIT, Apache 2.0, BSD). This includes ruff, basedpyright, Prettier, ESLint, gofmt, uv, Probe, RTK, codebase-memory-mcp, agent-browser, and all MCP servers. No copyleft or restrictive-licensed dependencies are introduced into your environment.

</details>

Expand Down Expand Up @@ -498,7 +513,7 @@ For monorepos, organize rules in nested subdirectories by product and team (e.g.
<details>
<summary><b>Can I control Pilot Shell from my phone?</b></summary>

Yes — using Claude Code's [Remote Control](https://youtu.be/Ko7_tC1fMMM?si=kWDzYiQvxlkZTrRK) feature or via **Telegram**. Start a session via `pilot` on your computer, then type `/remote-control` to make it accessible from the Claude Mobile App (iOS/Android) under the **Code** tab. You can also enable it globally via `/config` → "Enable Remote Control for all sessions". Remote Control requires the native install of Claude Code (`curl -fsSL https://claude.ai/install.sh | bash`), not the npm version. Your computer must stay awake — on macOS, use [Amphetamine](https://apps.apple.com/de/app/amphetamine/id937984704) to keep your Mac awake with the display off. To start sessions directly from your phone, install [Termius](https://termius.com/) on your mobile device, SSH into your computer, and run `pilot`. For SSH access outside your home network, install [Tailscale](https://tailscale.com/) on both devices — the Claude App approach works everywhere without extra setup. **Telegram:** Install the [Telegram plugin](https://github.com/anthropics/claude-plugins-official/tree/main/external_plugins/telegram), and Pilot Shell automatically detects it and enables the Telegram channel on launch. **Troubleshooting:** If Remote Control doesn't connect, run `/logout` followed by `/login` inside Claude Code to re-authenticate.
Yes — using Claude Code's [Remote Control](https://youtu.be/Ko7_tC1fMMM?si=kWDzYiQvxlkZTrRK) feature. Start a session via `pilot` on your computer, then type `/remote-control` to make it accessible from the Claude Mobile App (iOS/Android) under the **Code** tab. You can also enable it globally via `/config` → "Enable Remote Control for all sessions". Remote Control requires the native install of Claude Code (`curl -fsSL https://claude.ai/install.sh | bash`), not the npm version. Your computer must stay awake — on macOS, use [Amphetamine](https://apps.apple.com/de/app/amphetamine/id937984704) to keep your Mac awake with the display off. To start sessions directly from your phone, install [Termius](https://termius.com/) on your mobile device, SSH into your computer, and run `pilot`. For SSH access outside your home network, install [Tailscale](https://tailscale.com/) on both devices — the Claude App approach works everywhere without extra setup. **Troubleshooting:** If Remote Control doesn't connect, run `/logout` followed by `/login` inside Claude Code to re-authenticate.

</details>

Expand Down
2 changes: 1 addition & 1 deletion console/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@
"autoprefixer": "^10.4.23",
"daisyui": "^5.5.14",
"esbuild": "^0.27.2",
"postcss": "^8.5.6",
"postcss": "^8.5.6",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-is": "^18.3.1",
Expand Down
Binary file modified console/src/cli/handlers/user-message.ts
Binary file not shown.
Binary file modified console/src/services/worker-service.ts
Binary file not shown.
Binary file not shown.
Binary file modified console/src/services/worker/http/routes/LicenseRoutes.ts
Binary file not shown.
Binary file modified console/src/services/worker/http/routes/PlanRoutes.ts
Binary file not shown.
Binary file modified console/src/services/worker/http/routes/ViewerRoutes.ts
Binary file not shown.
Binary file not shown.
Binary file modified console/src/services/worker/http/routes/utils/planFileReader.ts
Binary file not shown.
Binary file modified console/src/ui/viewer/components/LicenseBadge.tsx
Binary file not shown.
Binary file modified console/src/ui/viewer/hooks/useLicense.ts
Binary file not shown.
Binary file modified console/src/ui/viewer/layouts/Sidebar/SidebarNav.tsx
Binary file not shown.
Binary file modified console/src/ui/viewer/views/Changes/DiffPanel.tsx
Binary file not shown.
Binary file modified console/src/ui/viewer/views/Changes/index.tsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added console/src/ui/viewer/views/Changes/review/types.ts
Binary file not shown.
Binary file not shown.
Binary file modified console/src/ui/viewer/views/Spec/SpecHeaderCard.tsx
Binary file not shown.
Binary file modified console/src/ui/viewer/views/Spec/SpecSection.tsx
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file added console/src/ui/viewer/views/Spec/annotation/index.ts
Binary file not shown.
Binary file not shown.
Binary file added console/src/ui/viewer/views/Spec/annotation/types.ts
Binary file not shown.
Binary file not shown.
Binary file modified console/src/ui/viewer/views/Spec/index.tsx
Binary file not shown.
Binary file modified console/src/utils/logger.ts
Binary file not shown.
Binary file added console/tests/annotation/code-review.test.ts
Binary file not shown.
Binary file added console/tests/annotation/parser.test.ts
Binary file not shown.
Binary file added console/tests/annotation/use-annotation.test.ts
Binary file not shown.
Binary file added console/tests/server/license-routes.test.ts
Binary file not shown.
Binary file modified console/tests/ui/ChangesNavigation.test.ts
Binary file not shown.
Binary file modified console/tests/ui/license-badge.test.ts
Binary file not shown.
Binary file added console/tests/worker/annotation-routes.test.ts
Binary file not shown.
Binary file modified console/tests/worker/license-routes.test.ts
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion docs/docusaurus/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ node_modules/
build/
.docusaurus/
.cache-loader/
.playwright-cli/
.agent-browser/
29 changes: 28 additions & 1 deletion docs/docusaurus/docs/features/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,39 @@ Command reference for the `pilot` binary at `~/.pilot/bin/pilot`.

Run `pilot` or `ccp` with no arguments to start Claude with Pilot enhancements. Most commands support `--json` for structured output. Multiple sessions can run in parallel on the same project.

## Headless Mode

Run Pilot non-interactively with `-p` (or `--print`). Wraps `claude -p` with license validation and the Pilot plugin — use it in CI/CD pipelines, scripts, or automated workflows.

```bash
# Basic usage
pilot -p "What does the auth module do?"

# Structured JSON output
pilot -p "Summarize this project" --output-format json

# Auto-approve specific tools
pilot -p "Run tests and fix failures" --allowedTools "Bash,Read,Edit"

# Streaming output
pilot -p "Explain recursion" --output-format stream-json --verbose

# Continue a previous conversation
pilot -p "Now focus on the database queries" --continue

# Minimal startup (skip hooks, plugins, MCP auto-discovery)
pilot -p "Summarize this file" --bare --allowedTools "Read"
```

All [Claude Code CLI flags](https://code.claude.com/docs/en/cli-reference) work with `-p`, including `--output-format`, `--allowedTools`, `--continue`, `--resume`, `--append-system-prompt`, `--json-schema`, and `--bare`. Pilot-specific flags like `--skip-update-check` are stripped automatically.

## Session & Context

| Command | Description |
|---------|-------------|
| `pilot` | Start Claude with Pilot enhancements, auto-update, and license check |
| `pilot run [args...]` | Same as above, with optional flags (`--skip-update-check`) |
| `pilot -p "prompt" [flags...]` | Headless mode — run non-interactively with Pilot plugin (CI/CD, scripts) |
| `pilot run [args...]` | Same as interactive, with optional flags (`--skip-update-check`) |
| `ccp` | Alias for pilot |
| `pilot check-context --json` | Get current context usage percentage |
| `pilot register-plan <path> <status>` | Associate a plan file with the current session |
Expand Down
Loading
Loading