@liziy/plan-guard
Tab 键切换计划/执行模式 + 内嵌 Todo 面板与提问对话框(/plan config 开关)
Package details
Install @liziy/plan-guard from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@liziy/plan-guard- Package
@liziy/plan-guard- Version
2.0.1- Published
- Aug 25, 2026
- Downloads
- 428/mo · 201/wk
- Author
- liziy
- License
- MIT
- Types
- extension
- Size
- 318.8 KB
- Dependencies
- 1 dependency · 3 peers
Pi manifest JSON
{
"extensions": [
"./index.ts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
@liziy/plan-guard
⚠️ 兼容性修复:本扩展通过
pi.registerShortcut("tab", ...)抢占 Tab 键用于模式切换。若~/.pi/agent/keybindings.json中tui.input.tab仍保留默认绑定(tab),pi 启动时会检测到tui.input.tab(内置)⇄ 扩展的快捷键冲突,并显示不兼容警告:Extension shortcut conflict: 'tab' is built-in shortcut for tui.input.tab and .../plan-guard. Using .../plan-guard.修复方式:在
keybindings.json中清空tui.input.tab即可消除警告:{ "tui.input.tab": [] }修改后重启 pi 或执行
/reload即可生效。也可在 pi 会话中让 AI 助手直接帮你写入该配置。
pi 的 Plan/Act 模式切换扩展,内嵌 Todo 任务面板与提问对话框。
通过 Tab 键快速在「计划模式」(Plan mode) 和「执行模式」(Act mode) 之间切换,模式变更会自动调整:
- 工具白名单 —— Plan 模式仅暴露只读工具(read、bash 只读命令、MCP 等)
- 系统提示 —— Plan 模式提示模型只做规划不执行修改;Act 模式提示模型直接执行
- 模型切换 —— 分别为 Plan 和 Act 记录偏好模型,切换时自动恢复
- 状态栏 —— Plan 模式会在状态栏显示
[计划模式]标签
特性
- Tab 键切换 —— 无需输入命令,键盘即时切换
- 持久化 —— 当前模式 + 模型偏好通过
pi.appendEntry跨会话保留 - 工具白名单 —— Plan 模式禁用
edit、write、删除类 bash 等修改工具 - 模型分离 —— Plan 用思考深的模型(如 Claude/GPT),Act 用便宜的模型,自动切换
- 📋 Todo 任务面板(默认开启)—— todo 工具 +
/todos命令 + 输入框上方的实时任务面板,任务随会话持久化(/reload、压缩后仍可恢复),ctrl+shift+t折叠/展开面板 - 💬 提问对话框(默认开启)—— 增强版
ask_user_question工具:多问题 Tab 页签、选项带描述与 markdown 预览、Type something.自定义回答、notes 备注
安装
pi install npm:@liziy/plan-guard
本扩展内嵌整合了 rpiv-todo 与 rpiv-ask-user-question(MIT 许可,源码位于
ask-user-question/、todo/子目录)。请卸载同名扩展@juicesharp/rpiv-ask-user-question、@juicesharp/rpiv-todo,避免工具重复注册冲突(两者都注册同名todo/ask_user_question工具)。
使用
| 操作 | 效果 |
|---|---|
| Tab 键 | 切换 Plan / Act 模式 |
/model 选模型 |
当前模式会记住该模型 |
| /plan config | 配置整合子扩展的开关(Todo 面板 / 提问对话框) |
| 重启会话 | 自动恢复上次模式 + 模型 |
/plan config 子扩展开关
/plan config
进入配置菜单:
📋 Todo 任务面板 (✅ 开启)
💬 提问对话框 (✅ 开启)
🔙 返回
选择对应项即可切换开关,配置保存在 ~/.pi/agent/extensions/plan-guard/config.json(缺失时默认全部开启)。
注册决策在扩展加载期完成:切换开关后执行 /reload 生效。关闭的子扩展不再注册同名工具 → pi 内置的 todo / ask_user_question 自然生效。
Plan 模式可用工具
read, bash, mcp, ask_user_question,
chrome_snapshot, chrome_evaluate, chrome_screenshot,
chrome_tab, chrome_navigate, chrome_wait_for,
chrome_list_console_messages, chrome_list_network_requests,
chrome_get_network_request
bash 在 Plan 模式下也仅可执行只读命令(禁止 rm、重定向、sed -i、git commit 等修改操作)。
版本历史
v2.0.1
/plan config改为循环菜单:切换开关后留在当前界面,可连续调整;“返回”退出
v2.0.0
- 整合:内嵌 rpiv-todo(todo 工具 +
/todos命令 + 实时任务面板,ctrl+shift+t折叠)与 rpiv-ask-user-question(增强版提问对话框:多问题页签、preview、notes),卸载@juicesharp/rpiv-ask-user-question、@juicesharp/rpiv-todo后由本扩展独立提供 - 新增:
/plan config配置菜单 —— Todo 任务面板 / 提问对话框开关(默认全开),配置存~/.pi/agent/extensions/plan-guard/config.json,切换后/reload生效 - 依赖:rpiv-config 配置工具内联为
rpiv-config.ts(MIT),仅保留 typebox 运行时依赖
v1.0.5
- 修复:
model_select跳过source: "restore"事件——pi 会话恢复时自动恢复上次模型,不再将其误写进当前模式的模型偏好,避免planModelId/actModelId被污染 - 修复:
session_start恢复模式的同时,同步恢复该模式对应的偏好模型(此前只恢复模式不恢复模型) - 修复:Plan 模式下拦截
rm/rmdir删除命令(命令位置匹配,grep "rm"、echo rm不会误判),其余 bash 命令仍由提示词约束 - 改进:切换模型前先比较当前模型,相同则跳过无意义的
setModel调用 - 改进:目标模型不存在或无 API key 时给出错误提示,不再静默失败
- 改进:模型偏好仅在值变化时持久化,减少会话记录膨胀
许可
MIT