{"_id":"@archia/context-pilot","_rev":"6-162215f7c95be94d9ec4ba1f77d25620","name":"@archia/context-pilot","dist-tags":{"latest":"0.1.5"},"versions":{"0.1.0":{"name":"@archia/context-pilot","version":"0.1.0","_id":"@archia/context-pilot@0.1.0","maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"bin":{"context-pilot":"dist/index.js"},"dist":{"shasum":"2bbc034a008cda93e30f2a465d9d64d99715f946","tarball":"https://registry.npmjs.org/@archia/context-pilot/-/context-pilot-0.1.0.tgz","fileCount":23,"integrity":"sha512-sZf72YUA06mxjtvKV6/pU9ydKomH6yn4NvIhdT5MfejiOkfVrslFwuMPmGor5TCqFubr2qxI/DUR6QCNpn5pqQ==","signatures":[{"sig":"MEQCIHvdbhcBgeXjS+N1ir/vKOLUy6IJ0DL4K2hfvIOmhwiVAiAuLr69Z5sz/kizUFQpdzIN2d4GLB83E+xw2vEbFyMQ/Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75945},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"0c53cb70cf52efaee1d98ffed0752a3f4b7a0714","scripts":{"init":"ts-node src/index.ts init","build":"tsc && cp src/dashboard/ui.html dist/dashboard/","serve":"ts-node src/index.ts serve","start":"ts-node src/index.ts","briefing":"ts-node src/index.ts briefing","dashboard":"ts-node src/index.ts dashboard","prepublishOnly":"npm run build"},"_npmUser":{"name":"k13lucien","email":"lucienkiemde4@gmail.com"},"_npmVersion":"11.14.1","description":"MCP server that keeps AI coding agents up to date with project context","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","uuid":"^9.0.0","chokidar":"^3.6.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/context-pilot_0.1.0_1780479806961_0.4067687307478458","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@archia/context-pilot","version":"0.1.1","_id":"@archia/context-pilot@0.1.1","maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"bin":{"context-pilot":"dist/index.js"},"dist":{"shasum":"33528fa286fad057f0064eb8595020cfc2fa8c93","tarball":"https://registry.npmjs.org/@archia/context-pilot/-/context-pilot-0.1.1.tgz","fileCount":23,"integrity":"sha512-C6ZTCnM0LrsEV6OsA8bJodDR4LMU/TO+RX5sAr9YDI8ntwSCvXUCLtuFYhdKKYcgQhf7RrZts6yyxb2GWFH9UA==","signatures":[{"sig":"MEQCICdD9Oa85lrPu7afRKVjiFbO04XA40tXuVMO2WOjT2GGAiBuWSiIoMRLd3qCVOGPXMA83rLToMg7y3b+T0YT/ctqAQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76098},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"29724899fd117fb4a0e8275f98944605cd07c1f9","scripts":{"init":"ts-node src/index.ts init","build":"tsc && cp src/dashboard/ui.html dist/dashboard/","serve":"ts-node src/index.ts serve","start":"ts-node src/index.ts","briefing":"ts-node src/index.ts briefing","dashboard":"ts-node src/index.ts dashboard","prepublishOnly":"npm run build"},"_npmUser":{"name":"k13lucien","email":"lucienkiemde4@gmail.com"},"_npmVersion":"11.14.1","description":"MCP server that keeps AI coding agents up to date with project context","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","uuid":"^9.0.0","chokidar":"^3.6.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/context-pilot_0.1.1_1780481856947_0.3458756560494698","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@archia/context-pilot","version":"0.1.2","_id":"@archia/context-pilot@0.1.2","maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"bin":{"context-pilot":"dist/index.js"},"dist":{"shasum":"78cc2a7feff00aa375611c494b365615ce6dfcc5","tarball":"https://registry.npmjs.org/@archia/context-pilot/-/context-pilot-0.1.2.tgz","fileCount":23,"integrity":"sha512-8Hnn7mQRCXa7USqMz0XnE/InYIRfrnxXbKoBYAeXokvNgL46DALaySftKsFCpkmaqLJRxBSiA9Q3k4hl5b/wRA==","signatures":[{"sig":"MEYCIQCjKezDO5MDSPYeNionMd1JDRxWDXVy1BUt7kJXNjvXiAIhAOTXNStQicGxaWMCtg6kKxEjFwZqh+qMJYVDYyhyNO4Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76199},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"29724899fd117fb4a0e8275f98944605cd07c1f9","scripts":{"init":"ts-node src/index.ts init","build":"tsc && cp src/dashboard/ui.html dist/dashboard/","serve":"ts-node src/index.ts serve","start":"ts-node src/index.ts","briefing":"ts-node src/index.ts briefing","dashboard":"ts-node src/index.ts dashboard","prepublishOnly":"npm run build"},"_npmUser":{"name":"k13lucien","email":"lucienkiemde4@gmail.com"},"_npmVersion":"11.14.1","description":"MCP server that keeps AI coding agents up to date with project context","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","uuid":"^9.0.0","chokidar":"^3.6.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/context-pilot_0.1.2_1780482043384_0.33710138077590823","host":"s3://npm-registry-packages-npm-production"}},"0.1.3":{"name":"@archia/context-pilot","version":"0.1.3","_id":"@archia/context-pilot@0.1.3","maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"bin":{"context-pilot":"dist/index.js"},"dist":{"shasum":"e09d9c84c86e2544ca6a56ab92a16f83ebda8624","tarball":"https://registry.npmjs.org/@archia/context-pilot/-/context-pilot-0.1.3.tgz","fileCount":23,"integrity":"sha512-aNdPrqSeaXnzQxa4q4AMLcMq0RO5PHkmSnAHOtX8BITq92IuFVNk6aHBg0zWNSxn2Il0Ovx8cCBpvCzZGDTvYg==","signatures":[{"sig":"MEQCIFo3gS+c9B9rt8I6IsRnXobHTgVRGckYw6Us0gDcyWZpAiBfVZXZc4plzNJ9Gm351dxrXsDRnIc0ASyir3goX2MfKg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76190},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"29724899fd117fb4a0e8275f98944605cd07c1f9","scripts":{"init":"ts-node src/index.ts init","build":"tsc && cp src/dashboard/ui.html dist/dashboard/","serve":"ts-node src/index.ts serve","start":"ts-node src/index.ts","briefing":"ts-node src/index.ts briefing","dashboard":"ts-node src/index.ts dashboard","prepublishOnly":"npm run build"},"_npmUser":{"name":"k13lucien","email":"lucienkiemde4@gmail.com"},"_npmVersion":"11.14.1","description":"MCP server that keeps AI coding agents up to date with project context","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","uuid":"^9.0.0","chokidar":"^3.6.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/context-pilot_0.1.3_1780482410472_0.5110985862023392","host":"s3://npm-registry-packages-npm-production"}},"0.1.4":{"name":"@archia/context-pilot","version":"0.1.4","_id":"@archia/context-pilot@0.1.4","maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"bin":{"context-pilot":"dist/index.js"},"dist":{"shasum":"1ffb8708b78448cda494148f9b7d66524378e55f","tarball":"https://registry.npmjs.org/@archia/context-pilot/-/context-pilot-0.1.4.tgz","fileCount":23,"integrity":"sha512-GM9PxwzTHy29rFVLUUxk4RP/SVoUDA9cvTjK9BToyQLAEwI/seE+4HfMBufApanauYv3tst392ZWkW6QHV9/6A==","signatures":[{"sig":"MEYCIQCc9Kgcc78IAEmwKycHLUxovTJvLqj8h7HiJ/1yifUNpgIhAMrH8GRZlPHjM1b+mF9Tfk12jknNQSknU4AX/tgYXMIC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":75973},"main":"dist/index.js","types":"./dist/index.d.ts","engines":{"node":">=18"},"gitHead":"29724899fd117fb4a0e8275f98944605cd07c1f9","scripts":{"init":"ts-node src/index.ts init","build":"tsc && cp src/dashboard/ui.html dist/dashboard/","serve":"ts-node src/index.ts serve","start":"ts-node src/index.ts","briefing":"ts-node src/index.ts briefing","dashboard":"ts-node src/index.ts dashboard","prepublishOnly":"npm run build"},"_npmUser":{"name":"k13lucien","email":"lucienkiemde4@gmail.com"},"_npmVersion":"11.14.1","description":"MCP server that keeps AI coding agents up to date with project context","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.4.3","uuid":"^9.0.0","chokidar":"^3.6.0","@modelcontextprotocol/sdk":"^1.0.0"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.0","typescript":"^5.0.0","@types/node":"^20.0.0","@types/uuid":"^9.0.0"},"_npmOperationalInternal":{"tmp":"tmp/context-pilot_0.1.4_1780483673974_0.10075156682758957","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@archia/context-pilot","version":"0.1.5","description":"MCP server that keeps AI coding agents up to date with project context","main":"dist/index.js","bin":{"context-pilot":"dist/index.js"},"engines":{"node":">=18"},"scripts":{"build":"tsc && cp src/dashboard/ui.html dist/dashboard/","prepublishOnly":"npm run build","start":"ts-node src/index.ts","init":"ts-node src/index.ts init","briefing":"ts-node src/index.ts briefing","serve":"ts-node src/index.ts serve","dashboard":"ts-node src/index.ts dashboard"},"dependencies":{"@modelcontextprotocol/sdk":"^1.0.0","chokidar":"^3.6.0","uuid":"^9.0.0","zod":"^4.4.3"},"devDependencies":{"@types/node":"^20.0.0","@types/uuid":"^9.0.0","ts-node":"^10.9.0","typescript":"^5.0.0"},"gitHead":"29724899fd117fb4a0e8275f98944605cd07c1f9","types":"./dist/index.d.ts","_id":"@archia/context-pilot@0.1.5","_nodeVersion":"20.20.2","_npmVersion":"11.14.1","dist":{"integrity":"sha512-fTJtoHjeMKlQX4dcfi4enCgWimSkIcURu1QYtse6xL6fnnYOSN70d6+MV3HX+ast4rIW8MIJ39eJLJmDlqz0WQ==","shasum":"6a90e2dba72a0a7d5a9cb878be2c91941cba6ad2","tarball":"https://registry.npmjs.org/@archia/context-pilot/-/context-pilot-0.1.5.tgz","fileCount":23,"unpackedSize":75974,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCrY3q1E4OaspHRLWsRYLD3dVm7LX4eSvim2HXk+G/KcQIgVT9dfvkww8T5gXBTd+pPP2fXFO2D2xygD43QQ/Pyeoc="}]},"_npmUser":{"name":"k13lucien","email":"lucienkiemde4@gmail.com"},"directories":{},"maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/context-pilot_0.1.5_1780484659006_0.8291876267724982"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-03T09:43:26.805Z","modified":"2026-06-03T11:04:19.269Z","0.1.0":"2026-06-03T09:43:27.099Z","0.1.1":"2026-06-03T10:17:37.090Z","0.1.2":"2026-06-03T10:20:43.515Z","0.1.3":"2026-06-03T10:26:50.658Z","0.1.4":"2026-06-03T10:47:54.118Z","0.1.5":"2026-06-03T11:04:19.131Z"},"description":"MCP server that keeps AI coding agents up to date with project context","maintainers":[{"name":"k13lucien","email":"lucienkiemde4@gmail.com"}],"readme":"# Context Pilot\n\nAn MCP server that keeps AI coding agents always up to date with your project context.\nAgents discover the tools natively — no system prompt instructions needed.\n\n## Install\n\n```bash\nnpm install -g @archia/context-pilot\n# or run directly without installing:\nnpx @archia/context-pilot <command>\n```\n\n## Quick Start\n\n```bash\ncd your-project\nnpx @archia/context-pilot init           # interactive setup\nnpx @archia/context-pilot start --goal \"Fix login bug\"   # start a session\n```\n\nThen add the printed MCP config to your agent (Claude Code, Cursor, Cline, Windsurf).\nFrom that point, your agent will automatically call `get_briefing` at the start of\neach step and `log_action` after every action — no system prompt required.\n\n## CLI Commands\n\n| Command | Description |\n|---------|-------------|\n| `init` | Interactive project setup wizard |\n| `start --goal <text>` | Start a new session |\n| `briefing` | Print the current context briefing |\n| `end` | End the active session with summary |\n| `pause` | Pause the active session |\n| `resume` | Resume a paused session |\n| `compress` | Manually compress the current snapshot |\n| `dashboard` | Open the browser dashboard |\n| `mcp-config` | Print MCP config snippet for your agent |\n| `serve` | Start the MCP server (PROJECT_ID env required) |\n\n### Session lifecycle\n\n```\ninit ──► start ──► (briefing / agent loop) ──► end\n                      │\n                   pause ──► resume\n```\n\nStart a session, work with your agent (it reads briefing + logs actions\nautomatically via MCP), then end the session to get a summary.\n\n## MCP Tools\n\nOnce you add Context Pilot to your agent's MCP config, the agent discovers\nthese 4 tools natively:\n\n| Tool | When to call | What it returns |\n|------|-------------|-----------------|\n| `get_briefing` | Start of every step | Current context: project info, session goal, active task, decisions, file map |\n| `log_action` | After every action | Step number, snapshot update status, tokens used |\n| `update_task` | Subtask done or blocker hit | Updated snapshot version and tokens used |\n| `get_status` | Health check / metrics | Session status, progress, last 10 log entries |\n\nThe agent calls these automatically based on its judgment — no instructions needed\nin your system prompt.\n\n## Dashboard\n\n```bash\nnpx @archia/context-pilot dashboard\n# Opens at http://localhost:3456\n```\n\nFour panels in a dark-theme browser UI:\n\n- **Metrics bar** — token usage progress bar (green/amber/red thresholds),\n  steps taken, files touched, snapshot version\n- **Active task** — session goal, subtask list with Mark Done buttons,\n  blockers, open questions\n- **Context breakdown** — token usage per section (foundation, task,\n  decisions, file map) with Compress button\n- **Activity log** — last 20 entries with type badges, live auto-updates\n  via SSE\n\n## Configuration\n\nContext Pilot stores everything in `~/.contextpilot/{projectId}/store.json` — a\nsingle JSON file you can inspect and edit directly.\n\n### Project fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `name` | string | Human-readable project name |\n| `root_path` | string | Absolute path to project root |\n| `stack` | string[] | Technology stack (e.g. node, express, postgres) |\n| `commands.test` | string | Command to run tests |\n| `commands.run` | string | Command to run the project |\n| `commands.build` | string? | Optional build command |\n| `commands.lint` | string? | Optional lint command |\n| `key_paths` | object | Named shortcuts to important directories |\n| `off_limits` | string[] | Paths the AI must never touch |\n| `conventions` | string[] | Coding conventions as plain strings |\n\n## Architecture\n\n```\nsrc/\n├── types.ts          # All TypeScript types\n├── store.ts          # JSON file store CRUD\n├── renderer.ts       # Briefing string builder + token estimator\n├── engine.ts         # Snapshot trigger logic, log processing\n├── session.ts        # Session lifecycle (create, end, pause, resume)\n├── mcp.ts            # MCP server with 4 tools\n├── compressor.ts     # Snapshot compression\n├── watcher.ts        # File system watcher safety net\n├── dashboard/\n│   ├── server.ts     # HTTP + SSE server (port 3456)\n│   └── ui.html       # Vanilla HTML/CSS/JS dashboard\n└── index.ts          # CLI entry point\n```\n\nThe store is a single JSON file — no database, no ORM. Every session writes\nappend-only log entries and versioned context snapshots.\n\n### Snapshot triggers\n\nA new context snapshot is created when:\n- A subtask changes to `done` or `blocked` → `milestone`\n- Token usage crosses 50%, 70%, or 85% of budget → `budget_threshold`\n- At 85%, compression runs automatically before the snapshot\n- Manual via CLI (`compress`) or dashboard button → `manual`\n\n## License\n\nMIT\n","readmeFilename":"README.md"}