{"_id":"@burneikis/pi-plan","_rev":"3-b689ddf754e5cd1171bdc6ba18b3ba79","name":"@burneikis/pi-plan","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"@burneikis/pi-plan","version":"1.0.0","keywords":["pi-package"],"license":"MIT","_id":"@burneikis/pi-plan@1.0.0","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-plan#readme","bugs":{"url":"https://github.com/burneikis/pi-plan/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"fe5e32169737eb915d3989c209cad5191c4ef143","tarball":"https://registry.npmjs.org/@burneikis/pi-plan/-/pi-plan-1.0.0.tgz","fileCount":5,"integrity":"sha512-yvmCDfsVYlRoXje90Lyjqqgq1nwZbL+9KumtyLoIofTTx1/iAKFEf7FOcctdas5sKbRxPj0O/9IuO5bWpqjK8g==","signatures":[{"sig":"MEUCIEN06KBBbnVADPDYrKwne1MPl+nF4GwI1YrTWyA1aU38AiEAi78hLPhOcnsZ+LNGWUKR8mhlDSGpdC4Lrn+idaVTT8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":22591},"gitHead":"6da2d8a60a3e56f572a498bd41ed3405cb7f2912","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-plan.git","type":"git"},"_npmVersion":"11.8.0","description":"A pi extension for structured plan-driven development","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-plan_1.0.0_1774556967815_0.057266362929252246","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@burneikis/pi-plan","version":"1.0.1","keywords":["pi-package"],"license":"MIT","_id":"@burneikis/pi-plan@1.0.1","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"homepage":"https://github.com/burneikis/pi-plan#readme","bugs":{"url":"https://github.com/burneikis/pi-plan/issues"},"pi":{"extensions":["./index.ts"]},"dist":{"shasum":"c45e04ff3d04960181f0884019a47b499bb3a796","tarball":"https://registry.npmjs.org/@burneikis/pi-plan/-/pi-plan-1.0.1.tgz","fileCount":5,"integrity":"sha512-3yDFEHNoeYwh8xt0ffGMdIiY8LWFV4vhnogjgEKq9eKmvr2ZjCe1ifJ/tGAElmJ76jpfoyiAGhhPCAfSyN35oQ==","signatures":[{"sig":"MEUCIHE9pCUDkhKn+kk/BA8B5koXs+xzZdVkEDvbhPKAQ2KJAiEA5yydqm5KJxbfGrCGSuTkbypl4KPeCOnfjigE0rjTMuk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":23262},"gitHead":"0eac3e305629a295a2d0fa17ff262854cf3cc7f5","_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"repository":{"url":"git+https://github.com/burneikis/pi-plan.git","type":"git"},"_npmVersion":"11.8.0","description":"Claude Code-style plan mode for pi — create, review, edit, and execute structured plans in a fresh context","directories":{},"_nodeVersion":"22.22.0","_hasShrinkwrap":false,"peerDependencies":{"@mariozechner/pi-coding-agent":"*"},"_npmOperationalInternal":{"tmp":"tmp/pi-plan_1.0.1_1774557604068_0.19840982792363304","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@burneikis/pi-plan","version":"2.0.0","description":"Plan mode for pi - explore read-only, review a written plan, then execute it in a fresh session","type":"module","keywords":["pi-package"],"license":"MIT","repository":{"type":"git","url":"git+https://github.com/burneikis/pi-plan.git"},"scripts":{"test":"node --test utils.test.ts"},"peerDependencies":{"@earendil-works/pi-coding-agent":">=0.84.0"},"pi":{"extensions":["./index.ts"]},"gitHead":"b57c70b79296b56cb1ed5f1b5207d6661f9acd26","_id":"@burneikis/pi-plan@2.0.0","bugs":{"url":"https://github.com/burneikis/pi-plan/issues"},"homepage":"https://github.com/burneikis/pi-plan#readme","_nodeVersion":"22.22.0","_npmVersion":"11.8.0","dist":{"integrity":"sha512-5ggJX/hH5o0lNgJCv3Y2DZk9JJTpb7f3fK6jKdXf2BZgOmuihhohH+QldaGknhS1b5FJYY904RWqBuL6jYiYgw==","shasum":"28468ba9ca9a0e63ce8a18c76173bfe39cc191f1","tarball":"https://registry.npmjs.org/@burneikis/pi-plan/-/pi-plan-2.0.0.tgz","fileCount":4,"unpackedSize":19005,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICZQaxExtmKiveujX1Wgx9qvyN1rH5liuUxZc0Ly3K2/AiB2qJTgzWHRrRENQA8IsrgnKY+GfTPfe1iYU2efxyRfsA=="}]},"_npmUser":{"name":"burneikis","email":"alexburneikis@gmail.com"},"directories":{},"maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pi-plan_2.0.0_1787396844081_0.6743930118775856"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-26T20:29:27.703Z","modified":"2026-08-22T11:07:24.393Z","1.0.0":"2026-03-26T20:29:27.970Z","1.0.1":"2026-03-26T20:40:04.200Z","2.0.0":"2026-08-22T11:07:24.263Z"},"bugs":{"url":"https://github.com/burneikis/pi-plan/issues"},"license":"MIT","homepage":"https://github.com/burneikis/pi-plan#readme","keywords":["pi-package"],"repository":{"type":"git","url":"git+https://github.com/burneikis/pi-plan.git"},"description":"Plan mode for pi - explore read-only, review a written plan, then execute it in a fresh session","maintainers":[{"name":"burneikis","email":"alexburneikis@gmail.com"}],"readme":"# pi-plan\n\nPlan mode for [pi](https://github.com/badlogic/pi-mono). Run `/plan`, the agent\nexplores your codebase **without being able to change it**, writes a plan file,\nyou review it, and then execution starts in a fresh session seeded with the plan.\n\n## Install\n\n```bash\npi install npm:@burneikis/pi-plan\n```\n\nTry it without installing:\n\n```bash\npi -e npm:@burneikis/pi-plan\n```\n\n## Use\n\n```\n/plan add retry with backoff to the http client\n/plan                 # reopen the review menu for the current plan\n```\n\n## How it works\n\n1. **Plan.** `/plan <goal>` puts the session in planning mode:\n   - `edit` tools are disabled via `setActiveTools()`\n   - `write` is allowed only for the plan file itself\n   - `bash` is gated - anything that writes to disk, installs packages, mutates\n     git, or shells out to an inline interpreter is blocked. This stops\n     accidents, not a model that is deliberately trying to escape.\n   - the agent writes the plan to\n     `~/.pi/agent/plans/<session-id>/plan-<timestamp>.md`\n2. **Review.** Once the agent settles, you get a menu:\n\n   | Option | Effect |\n   | --- | --- |\n   | Execute | Restores tools and starts a new session seeded with the plan |\n   | Refine | You describe changes, the agent rewrites the plan, menu reopens |\n   | Edit | You edit the plan text in pi's editor; rejected if it loses its steps |\n   | Cancel | Deletes the plan file and returns to normal mode |\n\n3. **Execute.** The new session is named `Plan: <title>`, records the parent\n   session, and starts with the plan as its first message. Old planning context\n   is filtered out of the LLM context.\n\nPlans are plain markdown on disk, so they survive restarts and can be reused or\ndiffed.\n\n## Plan format\n\n```markdown\n# Plan: <title>\n\n## Goal\nWhat changes and why.\n\n## Steps\n\n1. First step\n2. Second step\n\n## Notes\nConstraints, open questions, decisions.\n```\n\nSteps are parsed from the `## Steps` section only, numbered lines inside fenced\ncode blocks are ignored, and the steps are renumbered sequentially so a\nmis-numbered plan still works.\n\n## Development\n\n```bash\nnode --test utils.test.ts\n```\n\nAll parsing and the bash gate live in `utils.ts` as pure functions, so they are\ncovered by tests; `index.ts` only wires them to pi's API.\n","readmeFilename":"README.md"}