@narumitw/pi-plan-mode
Adds a Codex-like read-only /plan collaboration mode to pi — explore and agree on a plan before any edits.
Install
pi install npm:@narumitw/pi-plan-mode
Installs from npm into ~/.pi/agent/.
Add -l for project-local (.pi/). Manage with pi list / pi update / pi remove.
What this package can reach
Detected automatically from the source at
version 0.42.0.
This describes access, not safety — you decide whether it's appropriate for what
the package claims to do.
- Behavior — Changes how the agent thinks Modifies the system prompt, injects messages, or rewrites conversation context.
- Files — Reads files outside your project Touches paths beyond the working directory, such as your home folder.
- Intercepts tools — Can block or rewrite tool calls Subscribes to tool_call/tool_result/input. Can change a command after you approved the one displayed.
- Tool control — Can switch pi's tools on and off Calls setActiveTools, so it can disable built-ins — including safety-relevant ones.
- New tools — Adds model-callable tools Gives the agent new abilities. Additive and visible, unlike an override.
- UI — Draws its own interface Renders widgets, footers, dialogs or full-screen views.
What it actually did when run
observedLoaded in a sandbox with no network, a read-only filesystem and a recording stand-in for pi's API. This is what it called — not what the source suggests it might.
Tools registered plan_mode_questionplan_mode_complete
Events subscribed agent_endagent_settledbefore_agent_startcontextsession_shutdownsession_startthinking_level_selecttool_call
APIs called appendEntrygetActiveToolsgetActiveTools.filtergetAllToolsgetAllTools.filtergetAllTools.filter.sortgetAllTools.filter.sort.filtergetAllTools.filter.sort.filter.mapgetFlagreadSettingsregisterCommandregisterFlagregisterToolsessionManager.getBranchsetActiveToolsui.notifyui.setStatusui.setWidget
6 calls the source scan did not predict
getActiveTools.filter · getAllTools.filter · getAllTools.filter.sort · getAllTools.filter.sort.filter · getAllTools.filter.sort.filter.map · readSettings
Reached through a value the scan could not follow — passed as an argument, stored on another object, or returned by a helper.
Run against version 0.41.0 on 2026-08-01.
Registration-time behaviour under default settings; other configurations may differ.
Reviews
0 publishedSign in with GitHub to write a review, reply, or vote.
No reviews yet — be the first.
More in
- @dietrichgebert/ponytail — Lazy senior dev mode for AI agents — the best code is the code you never wrote. Bias towar…
- @plannotator/pi-extension — Interactive plan review with annotations — mark up agent plans and messages before executi…
- @juicesharp/rpiv-ask-user-question — A structured questionnaire the model can put to you when it would otherwise guess — answer…
- @juicesharp/rpiv-todo — A todo list for the model, rendered as a live TUI overlay that survives /reload.