pi-firecode 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +55 -41
- package/README.zh-CN.md +74 -0
- package/config.example.jsonc +21 -22
- package/dist/config.example.jsonc +90 -0
- package/dist/index.js +11464 -0
- package/dist/master/prompts/master.en.md +22 -0
- package/{master → dist/master}/prompts/master.zh.md +3 -3
- package/dist/master/prompts/worker.en.md +1 -0
- package/dist/watcher/prompts/watch.en.md +43 -0
- package/package.json +10 -27
- package/activity.ts +0 -92
- package/busy.ts +0 -188
- package/config.ts +0 -500
- package/deliver.ts +0 -119
- package/flame.ts +0 -149
- package/format.ts +0 -133
- package/header.ts +0 -218
- package/herdr-client.ts +0 -60
- package/index.ts +0 -68
- package/jsonc.ts +0 -34
- package/master/actions.ts +0 -293
- package/master/activity-list.ts +0 -281
- package/master/event-card.ts +0 -87
- package/master/event-format.ts +0 -83
- package/master/guard.ts +0 -46
- package/master/index.ts +0 -252
- package/master/list-view.ts +0 -129
- package/master/outbox.ts +0 -188
- package/master/prompt.ts +0 -26
- package/master/role.ts +0 -18
- package/master/run.ts +0 -315
- package/master/runtime.ts +0 -259
- package/master/spawn.ts +0 -234
- package/master/state.ts +0 -225
- package/master/worker-view.ts +0 -517
- package/provider/claude-sub.ts +0 -151
- package/provider/openai-native/index.ts +0 -8
- package/provider/openai-native/src/compact-client.ts +0 -350
- package/provider/openai-native/src/config.ts +0 -297
- package/provider/openai-native/src/extension.ts +0 -93
- package/provider/openai-native/src/native-compaction.ts +0 -151
- package/provider/openai-native/src/native-details.ts +0 -157
- package/provider/openai-native/src/native-replay.ts +0 -253
- package/provider/openai-native/src/native-runtime.ts +0 -144
- package/provider/openai-native/src/options.ts +0 -87
- package/provider/openai-native/src/request-pipeline.ts +0 -21
- package/provider/openai-native/src/responses-input.ts +0 -433
- package/review/advisor.ts +0 -110
- package/review/card.ts +0 -398
- package/review/checkpoint.ts +0 -378
- package/review/evidence.ts +0 -230
- package/review/index.ts +0 -992
- package/review/occupancy.ts +0 -25
- package/review/outcome.ts +0 -98
- package/review/prompt.ts +0 -209
- package/review/reviewer.ts +0 -353
- package/review/session.ts +0 -110
- package/review/state.ts +0 -877
- package/review/ui.ts +0 -89
- package/round-recorder.ts +0 -18
- package/session/herdr-display.ts +0 -87
- package/session/presets.ts +0 -300
- package/session/quota.ts +0 -123
- package/session/rename.ts +0 -46
- package/session/stats.ts +0 -313
- package/statusbar/index.ts +0 -256
- package/statusbar/render.ts +0 -113
- package/theme.ts +0 -45
- package/tools/actions.ts +0 -53
- package/tools/assistant-view.ts +0 -64
- package/tools/click-anchor.ts +0 -56
- package/tools/group-view.ts +0 -420
- package/tools/grouping.ts +0 -158
- package/tools/host.ts +0 -369
- package/tools/index.ts +0 -186
- package/tools/line.ts +0 -231
- package/tools/machine.ts +0 -78
- package/tools/parts.ts +0 -143
- package/tools/round.ts +0 -95
- package/tools/timing.ts +0 -22
- package/tools/turn-clock.ts +0 -41
- package/tools/turn-summary.ts +0 -109
- package/truncated-write.ts +0 -18
- package/watcher/card.ts +0 -91
- package/watcher/index.ts +0 -176
- package/watcher/observer.ts +0 -75
- package/watcher/transcript.ts +0 -56
- /package/{master → dist/master}/prompts/worker.zh.md +0 -0
- /package/{review → dist/review}/prompts/advisor.en.md +0 -0
- /package/{review → dist/review}/prompts/advisor.zh.md +0 -0
- /package/{review → dist/review}/prompts/review.en.md +0 -0
- /package/{review → dist/review}/prompts/review.zh.md +0 -0
- /package/{watcher → dist/watcher}/prompts/watch.zh.md +0 -0
package/README.md
CHANGED
|
@@ -1,60 +1,74 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-dark.svg">
|
|
4
|
+
<img alt="firecode" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-light.svg" height="72">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
2
7
|
|
|
3
|
-
|
|
8
|
+
<h3 align="center">Install one extension. Uninstall the rest.</h3>
|
|
4
9
|
|
|
5
|
-
|
|
6
|
-
─ ⣾⣿⣷ 处理中 1m3s · ⠹ 审查 第2轮 1/3 · 1 阻断 ──────────── 观察员 指挥官 ─
|
|
7
|
-
输入区
|
|
8
|
-
─ 优化插件状态栏和工具展示 ───────────── gpt-6-astra/medium Fast · 42.3%/200k ─
|
|
9
|
-
```
|
|
10
|
+
<p align="center">Parallel sub-agents, multi-model code review and a cleaner terminal for <a href="https://pi.dev">Pi</a>. One install, works out of the box.</p>
|
|
10
11
|
|
|
11
|
-
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://www.npmjs.com/package/pi-firecode"><img alt="npm" src="https://img.shields.io/npm/v/pi-firecode?color=FF7A0F"></a>
|
|
14
|
+
<a href="https://github.com/Suge8/firecode/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Suge8/firecode/actions/workflows/ci.yml/badge.svg"></a>
|
|
15
|
+
<a href="LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
|
|
16
|
+
· <a href="README.zh-CN.md">中文</a>
|
|
17
|
+
</p>
|
|
12
18
|
|
|
13
|
-
|
|
14
|
-
pi install npm:pi-firecode
|
|
15
|
-
```
|
|
19
|
+
<p align="center"><img alt="The commander dispatching three sub-agents in parallel" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/hero.gif" width="860"></p>
|
|
16
20
|
|
|
17
|
-
|
|
21
|
+
## Why FireCode
|
|
18
22
|
|
|
19
|
-
|
|
23
|
+
- **Works out of the box.** The default config is the recommended one, in your language.
|
|
24
|
+
- **Sub-agents under control.** Run them in parallel, pick a model per role, switch automatically on failure, step in any time.
|
|
25
|
+
- **Hands-off review and delivery.** You don't babysit it. What reaches you has already passed review.
|
|
26
|
+
- **An ultra-light core.** Built the Pi way: minimal, so your context stays lean.
|
|
27
|
+
- **Low visual load.** Focus on the results that matter. Everything in between folds away until you open it.
|
|
20
28
|
|
|
21
|
-
|
|
29
|
+
## Fully automatic review and delivery
|
|
22
30
|
|
|
23
|
-
|
|
24
|
-
agent_dir="${PI_CODING_AGENT_DIR:-$HOME/.pi/agent}"
|
|
25
|
-
mkdir -p "$agent_dir/extensions/firecode"
|
|
26
|
-
curl -fsSL https://unpkg.com/pi-firecode/config.example.jsonc -o "$agent_dir/extensions/firecode/config.jsonc"
|
|
27
|
-
```
|
|
31
|
+
Just tell the commander what you want. On important or hard tasks it starts an adversarial review on its own: any number of models you choose look for problems, every problem goes back to be fixed, and the fix is reviewed again until it passes. What reaches you is code that meets the bar and does what you asked. If it keeps getting stuck, an advisor model decides what to do next. You can also run `/fire-review` yourself at any time.
|
|
28
32
|
|
|
29
|
-
|
|
30
|
-
- 审查、指挥官、观察员会真实调用配置里的模型;某一节配错时该功能拒绝启动并提示,不会改用默认模型。
|
|
31
|
-
- 会额外花钱的:观察员每回合调用一次模型(模板里默认不自动开启);OpenAI 加速档按供应商规则加价。
|
|
32
|
-
- 没有配置文件时,可选功能全部关闭,并在会话启动时提示。
|
|
33
|
+
<p align="center"><img alt="Round 1 fails, the agent fixes it, round 2 passes" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/review-loop.gif" width="760"></p>
|
|
33
34
|
|
|
34
|
-
|
|
35
|
+
Other reviewers hand you a list of problems. FireCode hands you code that's fixed and re-reviewed:
|
|
35
36
|
|
|
36
|
-
|
|
|
37
|
+
| | Reviewers | What you get |
|
|
37
38
|
| --- | --- | --- |
|
|
38
|
-
|
|
|
39
|
-
|
|
|
40
|
-
|
|
|
41
|
-
|
|
|
42
|
-
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
| Claude 订阅适配 | 自动 | 请求带 Claude Code 归因;令牌换发导致的 401 自动重试一次 |
|
|
39
|
+
| **FireCode** | Any number of models, reviewing adversarially | **Fixed code that passed re-review** |
|
|
40
|
+
| Qwen Code `/review` | Up to 16 agents, one model | A findings list; `--fix` patches once, no re-review |
|
|
41
|
+
| Open Code Review (Alibaba) | One model, file by file | A findings list to fix yourself |
|
|
42
|
+
| PR-Agent / Qodo | Specialist agents, one model | Comments and suggestions |
|
|
43
|
+
| multi-model-review (Pi) | Several model families | One combined verdict |
|
|
44
|
+
|
|
45
|
+
## Clear sub-agent status
|
|
46
|
+
|
|
47
|
+
Every sub-agent sits above the input box. Click one to read its whole run and talk to it directly.
|
|
48
48
|
|
|
49
|
-
|
|
49
|
+
<p align="center"><img alt="A sub-agent's full run with a follow-up typed into its own input box" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/shot-worker-view.png" width="720"></p>
|
|
50
50
|
|
|
51
|
-
##
|
|
51
|
+
## An ultra-light core
|
|
52
52
|
|
|
53
|
-
|
|
53
|
+
Built the Pi way: sub-agents add just two small tools, and review and the watcher add none. Here is what sub-agent tools cost on every request (tool definitions sent to the model, measured October 2026):
|
|
54
|
+
|
|
55
|
+
| | Sub-agent tools | Characters |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| **FireCode** | 2 | **926** |
|
|
58
|
+
| omp | 2 | 3,140 |
|
|
59
|
+
| Codex CLI | 5–6 | 4,766–9,378 |
|
|
60
|
+
| pi-subagents | 2–3 | 4,703–23,182 |
|
|
61
|
+
|
|
62
|
+
## Also in the box
|
|
63
|
+
|
|
64
|
+
`/fire-watch` a cheap model that speaks up only when work drifts · `/preset` switch model, thinking and tools in one go · `/quota` and `/tokens` usage at a glance · `Ctrl+R` rename the session · `Ctrl+Shift+S` OpenAI Fast mode · Works with Claude subscription login
|
|
65
|
+
|
|
66
|
+
## Install
|
|
54
67
|
|
|
55
68
|
```bash
|
|
56
|
-
|
|
57
|
-
pi -e . # 在本地仓库直接试用
|
|
69
|
+
pi install npm:pi-firecode
|
|
58
70
|
```
|
|
59
71
|
|
|
60
|
-
|
|
72
|
+
Restart Pi (1.1.0+) and it's ready; the config is created on first launch. Turn anything off with `"features": { "<name>": false }` in `~/.pi/agent/extensions/firecode/config.jsonc`.
|
|
73
|
+
|
|
74
|
+
[Contributing](.github/CONTRIBUTING.md) · MIT © Suge8
|
package/README.zh-CN.md
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-dark.svg">
|
|
4
|
+
<img alt="firecode" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/brand/logo-light.svg" height="72">
|
|
5
|
+
</picture>
|
|
6
|
+
</p>
|
|
7
|
+
|
|
8
|
+
<h3 align="center">装这一个,其余扩展都可以卸了。</h3>
|
|
9
|
+
|
|
10
|
+
<p align="center">给 <a href="https://pi.dev">Pi</a> 加上并行子代理、多模型代码审查和更干净的终端界面。装一个就够,开箱即用。</p>
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<a href="https://www.npmjs.com/package/pi-firecode"><img alt="npm" src="https://img.shields.io/npm/v/pi-firecode?color=FF7A0F"></a>
|
|
14
|
+
<a href="https://github.com/Suge8/firecode/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/Suge8/firecode/actions/workflows/ci.yml/badge.svg"></a>
|
|
15
|
+
<a href="LICENSE"><img alt="MIT" src="https://img.shields.io/badge/license-MIT-blue"></a>
|
|
16
|
+
· <a href="README.md">English</a>
|
|
17
|
+
</p>
|
|
18
|
+
|
|
19
|
+
<p align="center"><img alt="指挥官并行派出三个子代理" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/hero.zh.gif" width="860"></p>
|
|
20
|
+
|
|
21
|
+
## 为什么用 FireCode
|
|
22
|
+
|
|
23
|
+
- **开箱即用。** 默认配置就是推荐配置,支持多语言。
|
|
24
|
+
- **子代理可控。** 并行跑,每个角色独立选模型,出故障自动切换,随时点开干预。
|
|
25
|
+
- **审查交付全自动。** 不用盯着,交到你手里的就是审查通过的结果。
|
|
26
|
+
- **核心极轻。** 完美契合 Pi 原生的极简思路,上下文保持极度轻量。
|
|
27
|
+
- **视觉负担低。** 你只需要在乎真正重要的结果,中间过程全部折叠,想看再展开。
|
|
28
|
+
|
|
29
|
+
## 全自动审查交付
|
|
30
|
+
|
|
31
|
+
你只管告诉指挥官要做什么。遇到重要、难的任务,它会自动发起对抗审查:你配置的任意多个模型一起挑问题,挑出来就打回修复,修完再审,直到通过才交给你,交出来的是质量过关、满足需求的代码。反复卡住时,顾问模型会出来拿主意。想手动审,也可以随时执行 `/fire-review`。
|
|
32
|
+
|
|
33
|
+
<p align="center"><img alt="第 1 轮没过,代理修复后第 2 轮通过" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/review-loop.zh.gif" width="760"></p>
|
|
34
|
+
|
|
35
|
+
别的审查工具交给你一份问题清单,FireCode 交给你修好并复审通过的代码:
|
|
36
|
+
|
|
37
|
+
| | 审查者 | 交到你手里的是 |
|
|
38
|
+
| --- | --- | --- |
|
|
39
|
+
| **FireCode** | 任意多个模型对抗审查 | **修好、复审通过的代码** |
|
|
40
|
+
| Qwen Code `/review` | 最多 16 个代理,同一个模型 | 问题清单;`--fix` 修一次,不复审 |
|
|
41
|
+
| Open Code Review(阿里) | 同一个模型,逐文件审 | 问题清单,要你自己修 |
|
|
42
|
+
| PR-Agent / Qodo | 分工代理,同一个模型 | 评论和修改建议 |
|
|
43
|
+
| multi-model-review(Pi) | 多家模型 | 一份汇总结论 |
|
|
44
|
+
|
|
45
|
+
## 清晰的子代理状态
|
|
46
|
+
|
|
47
|
+
每个子代理都列在输入框上方,点一下就能看它的完整过程,并直接跟它说话。
|
|
48
|
+
|
|
49
|
+
<p align="center"><img alt="子代理的完整过程,在它自己的输入框里补一句话" src="https://raw.githubusercontent.com/Suge8/firecode/main/design/promo/shot-worker-view.zh.png" width="720"></p>
|
|
50
|
+
|
|
51
|
+
## 核心极轻
|
|
52
|
+
|
|
53
|
+
完美契合 Pi 原生的极简思路:子代理只加两个小工具,审查和观察员一个都不加。下表是子代理工具在每次请求里占的上下文(发给模型的工具定义字符数,2026 年 10 月实测):
|
|
54
|
+
|
|
55
|
+
| | 子代理工具数 | 字符数 |
|
|
56
|
+
| --- | --- | --- |
|
|
57
|
+
| **FireCode** | 2 | **926** |
|
|
58
|
+
| omp | 2 | 3,140 |
|
|
59
|
+
| Codex CLI | 5–6 | 4,766–9,378 |
|
|
60
|
+
| pi-subagents | 2–3 | 4,703–23,182 |
|
|
61
|
+
|
|
62
|
+
## 还有这些
|
|
63
|
+
|
|
64
|
+
`/fire-watch` 便宜模型帮你盯着,跑偏才开口 · `/preset` 一键切换模型、思考档和工具 · `/quota`、`/tokens` 看用量 · `Ctrl+R` 改会话名 · `Ctrl+Shift+S` 开关 OpenAI 加速档 · 适配 Claude 订阅登录
|
|
65
|
+
|
|
66
|
+
## 安装
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
pi install npm:pi-firecode
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
重启 Pi(1.1.0 及以上)就能用,配置文件首次启动时自动生成。不想要哪个功能,在 `~/.pi/agent/extensions/firecode/config.jsonc` 里写 `"features": { "<名字>": false }` 关掉。
|
|
73
|
+
|
|
74
|
+
[参与开发](.github/CONTRIBUTING.md) · MIT © Suge8
|
package/config.example.jsonc
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
{
|
|
2
|
-
//
|
|
3
|
-
//
|
|
4
|
-
//
|
|
2
|
+
// Recommended config: every feature on. It is written here on first launch; swap in the models you are logged in to, then restart Pi.
|
|
3
|
+
// The watcher does not activate itself in a new session; run /fire-watch to toggle it for the current session.
|
|
4
|
+
// Everywhere a model is named, use the same model atom: "provider/model/thinking" (the last segment is the thinking level).
|
|
5
|
+
// Language of the UI and of the text shown to models: follows the system locale by default (zh* → Chinese, otherwise English); uncomment the next line to pin it, "zh" | "en".
|
|
6
|
+
// "language": "en",
|
|
5
7
|
"features": {
|
|
6
8
|
"header": true,
|
|
7
9
|
"statusbar": true,
|
|
8
10
|
"tools": true,
|
|
9
11
|
"presets": true,
|
|
10
|
-
"rename": true,
|
|
11
12
|
"stats": true,
|
|
12
13
|
"claudeSub": true,
|
|
13
14
|
"openaiNative": true,
|
|
@@ -17,11 +18,10 @@
|
|
|
17
18
|
},
|
|
18
19
|
|
|
19
20
|
"keys": {
|
|
20
|
-
"
|
|
21
|
-
"fast": "ctrl+f"
|
|
21
|
+
"fast": "ctrl+shift+s"
|
|
22
22
|
},
|
|
23
23
|
|
|
24
|
-
// nativeCompaction
|
|
24
|
+
// nativeCompaction uses OpenAI's native context compaction; priority pays more for faster output and is off by default.
|
|
25
25
|
"openai": {
|
|
26
26
|
"nativeCompaction": true,
|
|
27
27
|
"providers": {
|
|
@@ -29,34 +29,34 @@
|
|
|
29
29
|
}
|
|
30
30
|
},
|
|
31
31
|
|
|
32
|
-
//
|
|
32
|
+
// New sessions activate the Master by default. Role names are yours to choose; the Master picks a role by its "use".
|
|
33
33
|
"master": {
|
|
34
34
|
"autoActivate": true,
|
|
35
35
|
"workerExcludeExtensions": [],
|
|
36
36
|
"roles": {
|
|
37
|
-
"
|
|
37
|
+
"researcher": {
|
|
38
38
|
"model": "anthropic/claude-haiku-5-5/low",
|
|
39
|
-
"use": "
|
|
39
|
+
"use": "Read-only: web search, docs and version lookups, reading logs, locating code from leads, checking references",
|
|
40
40
|
"fallback": ["openai-codex/gpt-6-luna/medium"]
|
|
41
41
|
},
|
|
42
|
-
"
|
|
42
|
+
"engineer": {
|
|
43
43
|
"model": "anthropic/claude-sonnet-5-5/high",
|
|
44
|
-
"use": "
|
|
44
|
+
"use": "Changes code: implementation, debugging; also for audits that need deep code reading to find defects (read-only)",
|
|
45
45
|
"fallback": ["openai-codex/gpt-6.1-sol/high"]
|
|
46
46
|
},
|
|
47
|
-
"
|
|
47
|
+
"batch": {
|
|
48
48
|
"model": "anthropic/claude-haiku-5-5/medium",
|
|
49
|
-
"use": "
|
|
49
|
+
"use": "Well-specified bulk changes that tests or type checks can verify: pattern migrations, renames, boilerplate; for large volumes split by file and run several in parallel",
|
|
50
50
|
"fallback": ["openai-codex/gpt-6.1-sol/medium"]
|
|
51
51
|
},
|
|
52
|
-
"
|
|
52
|
+
"designer": {
|
|
53
53
|
"model": "anthropic/claude-opus-5-5/medium",
|
|
54
|
-
"use": "
|
|
54
|
+
"use": "Visual and frontend work",
|
|
55
55
|
"fallback": ["openai-codex/gpt-6.1-sol/high"]
|
|
56
56
|
},
|
|
57
|
-
"
|
|
57
|
+
"sentinel": {
|
|
58
58
|
"model": "anthropic/claude-haiku-5-5/low",
|
|
59
|
-
"use": "CI
|
|
59
|
+
"use": "Waiting on CI, deployments and long tests",
|
|
60
60
|
"fallback": ["anthropic/claude-sonnet-5-5/low"]
|
|
61
61
|
}
|
|
62
62
|
}
|
|
@@ -71,18 +71,17 @@
|
|
|
71
71
|
"ds": { "model": "deepseek/deepseek-flash/high", "key": "alt+6" }
|
|
72
72
|
},
|
|
73
73
|
|
|
74
|
-
//
|
|
74
|
+
// Review only calls models when the user or the Master starts it.
|
|
75
75
|
"review": {
|
|
76
76
|
"advisor": "anthropic/claude-fable-5-1/high",
|
|
77
77
|
"reviewers": ["anthropic/claude-opus-5-5/low", "openai-codex/gpt-6.1-sol/low"],
|
|
78
78
|
"maxRounds": 5,
|
|
79
79
|
"advisorAfterFailures": 2,
|
|
80
80
|
"timeoutMinutes": 40,
|
|
81
|
-
"tools": ["read", "grep", "find", "ls", "bash"]
|
|
82
|
-
"language": "zh"
|
|
81
|
+
"tools": ["read", "grep", "find", "ls", "bash"]
|
|
83
82
|
},
|
|
84
83
|
|
|
85
|
-
//
|
|
84
|
+
// Once active, it evaluates what each main-session turn added, which costs extra model calls; it speaks up on the spot when needed.
|
|
86
85
|
"watcher": {
|
|
87
86
|
"enabled": false,
|
|
88
87
|
"model": "openai-codex/gpt-6.1-sol/medium",
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
{
|
|
2
|
+
// Recommended config: every feature on. It is written here on first launch; swap in the models you are logged in to, then restart Pi.
|
|
3
|
+
// The watcher does not activate itself in a new session; run /fire-watch to toggle it for the current session.
|
|
4
|
+
// Everywhere a model is named, use the same model atom: "provider/model/thinking" (the last segment is the thinking level).
|
|
5
|
+
// Language of the UI and of the text shown to models: follows the system locale by default (zh* → Chinese, otherwise English); uncomment the next line to pin it, "zh" | "en".
|
|
6
|
+
// "language": "en",
|
|
7
|
+
"features": {
|
|
8
|
+
"header": true,
|
|
9
|
+
"statusbar": true,
|
|
10
|
+
"tools": true,
|
|
11
|
+
"presets": true,
|
|
12
|
+
"stats": true,
|
|
13
|
+
"claudeSub": true,
|
|
14
|
+
"openaiNative": true,
|
|
15
|
+
"review": true,
|
|
16
|
+
"master": true,
|
|
17
|
+
"watcher": true
|
|
18
|
+
},
|
|
19
|
+
|
|
20
|
+
"keys": {
|
|
21
|
+
"fast": "ctrl+shift+s"
|
|
22
|
+
},
|
|
23
|
+
|
|
24
|
+
// nativeCompaction uses OpenAI's native context compaction; priority pays more for faster output and is off by default.
|
|
25
|
+
"openai": {
|
|
26
|
+
"nativeCompaction": true,
|
|
27
|
+
"providers": {
|
|
28
|
+
"openai-codex": { "textVerbosity": "low", "priority": false }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
|
|
32
|
+
// New sessions activate the Master by default. Role names are yours to choose; the Master picks a role by its "use".
|
|
33
|
+
"master": {
|
|
34
|
+
"autoActivate": true,
|
|
35
|
+
"workerExcludeExtensions": [],
|
|
36
|
+
"roles": {
|
|
37
|
+
"researcher": {
|
|
38
|
+
"model": "anthropic/claude-haiku-5-5/low",
|
|
39
|
+
"use": "Read-only: web search, docs and version lookups, reading logs, locating code from leads, checking references",
|
|
40
|
+
"fallback": ["openai-codex/gpt-6-luna/medium"]
|
|
41
|
+
},
|
|
42
|
+
"engineer": {
|
|
43
|
+
"model": "anthropic/claude-sonnet-5-5/high",
|
|
44
|
+
"use": "Changes code: implementation, debugging; also for audits that need deep code reading to find defects (read-only)",
|
|
45
|
+
"fallback": ["openai-codex/gpt-6.1-sol/high"]
|
|
46
|
+
},
|
|
47
|
+
"batch": {
|
|
48
|
+
"model": "anthropic/claude-haiku-5-5/medium",
|
|
49
|
+
"use": "Well-specified bulk changes that tests or type checks can verify: pattern migrations, renames, boilerplate; for large volumes split by file and run several in parallel",
|
|
50
|
+
"fallback": ["openai-codex/gpt-6.1-sol/medium"]
|
|
51
|
+
},
|
|
52
|
+
"designer": {
|
|
53
|
+
"model": "anthropic/claude-opus-5-5/medium",
|
|
54
|
+
"use": "Visual and frontend work",
|
|
55
|
+
"fallback": ["openai-codex/gpt-6.1-sol/high"]
|
|
56
|
+
},
|
|
57
|
+
"sentinel": {
|
|
58
|
+
"model": "anthropic/claude-haiku-5-5/low",
|
|
59
|
+
"use": "Waiting on CI, deployments and long tests",
|
|
60
|
+
"fallback": ["anthropic/claude-sonnet-5-5/low"]
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
|
|
65
|
+
"presets": {
|
|
66
|
+
"sonnet": { "model": "anthropic/claude-sonnet-5-5/high", "key": "alt+1" },
|
|
67
|
+
"opus": { "model": "anthropic/claude-opus-5-5/high", "key": "alt+2" },
|
|
68
|
+
"fable": { "model": "anthropic/claude-fable-5-1/medium", "key": "alt+3" },
|
|
69
|
+
"astra": { "model": "openai-codex/gpt-6-astra/medium", "key": "alt+4" },
|
|
70
|
+
"sol": { "model": "openai-codex/gpt-6.1-sol/medium", "key": "alt+5" },
|
|
71
|
+
"ds": { "model": "deepseek/deepseek-flash/high", "key": "alt+6" }
|
|
72
|
+
},
|
|
73
|
+
|
|
74
|
+
// Review only calls models when the user or the Master starts it.
|
|
75
|
+
"review": {
|
|
76
|
+
"advisor": "anthropic/claude-fable-5-1/high",
|
|
77
|
+
"reviewers": ["anthropic/claude-opus-5-5/low", "openai-codex/gpt-6.1-sol/low"],
|
|
78
|
+
"maxRounds": 5,
|
|
79
|
+
"advisorAfterFailures": 2,
|
|
80
|
+
"timeoutMinutes": 40,
|
|
81
|
+
"tools": ["read", "grep", "find", "ls", "bash"]
|
|
82
|
+
},
|
|
83
|
+
|
|
84
|
+
// Once active, it evaluates what each main-session turn added, which costs extra model calls; it speaks up on the spot when needed.
|
|
85
|
+
"watcher": {
|
|
86
|
+
"enabled": false,
|
|
87
|
+
"model": "openai-codex/gpt-6.1-sol/medium",
|
|
88
|
+
"context": "minimal"
|
|
89
|
+
}
|
|
90
|
+
}
|