itzrnvr/omp-modes
GitHub: itzrnvr/omp-modes
Oh My Pi模式系统扩展,实现不同操作模式间的切换。
Stars: 0 | Forks: 0
# pi 模式
为 [pi-coding-agent](https://github.com/badlogic/pi-mono/tree/main/packages/coding-agent) 提供的可切换的代理模式。每种模式控制哪些工具可用,并注入特定于模式的系统提示。
受 [opencode 模式](https://opencode.ai/docs/modes/) 启发。
## 安装
```
pi install npm:pi-modes
```
或者克隆到您的扩展目录:
```
git clone https://github.com/R-Dson/pi-modes ~/.pi/agent/extensions/pi-modes
```
或者直接加载:
```
pi --extension /path/to/pi-modes
```
安装后,输入 `/reload` 或重启 Pi。
## 使用方法
| 操作 | 如何 |
|---|---|
| 切换模式 | `/mode ask`, `/mode edit`, `/mode review` |
| 下一个模式 | `Ctrl+Shift+L` |
| 上一个模式 | `Ctrl+Shift+H` |
| 检查当前模式 | `/mode` (显示活动模式和禁用工具) |
| 以模式启动 | `pi --extension pi-modes --mode ask` |
## 内置模式
| 模式 | 禁用工具 | 目的 |
|---|---|---|
| 编辑 | 无 | 全部访问(默认) |
| 计划 | bash | 只读探索,只写入 PLAN.md |
| 询问 | write, edit, bash | 只读探索和提问 |
| 审查 | write, edit, bash | 无更改的代码审查 |
## 添加模式
在 `modes/` 目录中创建一个 `.md` 文件。文件名成为与 `/mode` 和 `--mode` 一起使用的模式 ID。
```
---
name: Debug
color: warning
tools:
write: false
edit: false
---
You are in debug mode. Investigate issues by reading code and running
diagnostic commands. Do not make changes.
```
支持的元数据:
- `name` -- 显示名称(默认为文件名)
- `color` -- 聊天框标签的主题颜色:`accent`、`warning`、`muted`、`success`、`error`、`dim`(默认为 `accent`)
- `tools` -- 要禁用的工具列表,每个设置为 `false`
第二个 `---` 之后的正文在模式活动时注入到系统提示中。留空以跳过注入。
## 持久性
模式选择在 `/reload` 和会话恢复通过会话状态中保持。`--mode` 标志优先于持久状态。
注意:每次模式切换都会向会话添加一个小条目。这是其他 pi 扩展(工具、预设)使用的标准模式。在非常长的会话中,这几乎不会增加开销。
## 计划模式
计划模式同时使用工具限制和提示执行。在 harness 级别禁用 `bash`;通过提示告知代理只写入 `PLAN.md`。
每次提供者请求时(不仅是在会话开始时),都会将当前的 `PLAN.md` 内容注入到系统提示中,因此它可以在压缩过程中幸存并反映会话中的编辑。这使用的是 `before_provider_request` 钩子而不是 `before_agent_start`,因为在多轮工具使用中,压缩可能会在 agentic-loop 中发生。
## 注意事项
与其他调用 `setActiveTools()` 的扩展(例如,`tools.ts`、`preset.ts`)同时运行可能会导致冲突,因为两者都可以独立地修改活动工具集。
标签:Git, GNU通用公共许可证, Markdown, MITM代理, Node.js, npm, Pi 设备, SOC Prime, 代码修改, 代码审查, 代码审查工具, 代码执行, 代码持久化, 代码探索, 代码编辑, 代码阅读, 会话状态, 工具限制, 开发工具, 扩展管理, 操作系统扩展, 暗色界面, 模式切换, 模式切换器, 模式管理, 模式配置, 系统提示注入, 自动化攻击