pi-orchestrator-config 4.3.7 → 4.3.9
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 +191 -173
- package/agents/git-expert.md +30 -1
- package/extensions/openai-compatible-discovery/index.ts +204 -0
- package/extensions/orchestrator/extended-autocomplete.ts +4 -0
- package/extensions/orchestrator/mcpc.ts +172 -0
- package/extensions/orchestrator/session-validation.ts +4 -2
- package/extensions/pidiff/pidiff-ui/dist/assets/{angular-html-mp_sY19l.js → angular-html-ghA4VuM0.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{angular-ts-BG7dz03J.js → angular-ts-BiEwt-Qs.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{apl-D0TQH1Y8.js → apl-DmYAGNOL.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{astro-cuP4968W.js → astro-Bju7L81l.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{blade-ClqnBqi9.js → blade-C_YtSRJN.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{c-VbuMUaRD.js → c-DxcP9pmN.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{chapel-Cs_P4bPZ.js → chapel-BjVM8zvB.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{cobol-B1_QfE_s.js → cobol-CyAifE-8.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{coffee-DngpUQ-g.js → coffee-BNW4Zttb.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{cpp-BJ9Ee2yy.js → cpp-De6s9lN-.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{crystal-ClUiGo15.js → crystal-JzhjW33_.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{css-DqTo82CB.js → css-DAnI1EKT.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{edge-DNO_p1iz.js → edge-DlbkxEj4.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{elixir-D9BFTDA2.js → elixir-BXz6vpDX.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{elm-DViZ7oy1.js → elm-CJcSKM6_.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{erb-BkoQ4OFP.js → erb-VHOaTR5g.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{git-rebase-7gJjIY6i.js → git-rebase-PAYwCVk-.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{glimmer-js-BsUtNNHb.js → glimmer-js-CspJJiU_.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{glimmer-ts-D-0tIMzg.js → glimmer-ts-CSMIai5o.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{glsl-B_FkRuRZ.js → glsl-Cw9yKL2B.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{graphql--F2JnwKx.js → graphql-D0OMgGsM.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{hack-oDlxgxMa.js → hack-DfiAACVA.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{haml-BZwbB22w.js → haml-DU8pAbRK.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{handlebars-D5xaEd_e.js → handlebars-CoaiK3xT.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{html-DBGhw7-O.js → html-B4C3aTRB.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{html-derivative-0H2oo-Br.js → html-derivative-C_NJUsxF.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{http-BH6WBJxg.js → http-Cr9w59E3.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{hurl-pKbsDPF3.js → hurl-BEScLvfg.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/index-CcrT73jQ.css +1 -0
- package/extensions/pidiff/pidiff-ui/dist/assets/{index-D9FMfzhy.js → index-CisAus9r.js} +10 -10
- package/extensions/pidiff/pidiff-ui/dist/assets/{java-DAIRA2DV.js → java-hb-3TTCg.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{javascript-0oTH0XMX.js → javascript-Bc0DeQtz.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{jinja-Cr2SKvYs.js → jinja-DoEIYL2y.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{jison-DkQ5WAwI.js → jison-C2OZYR2e.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{json-Dso4xRBa.js → json-DKeabECb.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{jsx-6lZH5KCN.js → jsx-Dadu-wAB.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{julia-D5nsVlA4.js → julia-CpUr0nh2.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{just-BJmCTT8q.js → just-BysHL69Z.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{latex-RNBDVFOB.js → latex-iNrlK36R.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{liquid-BNfcDoyE.js → liquid-g8x_A5Ru.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{lua-C5h0aGmI.js → lua-B4BSWsUC.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{marko-DNEK1bML.js → marko-CHSFXjEi.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{mdc-B2NVBmGf.js → mdc-js2C5rVG.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{nginx-_X9UmOgs.js → nginx-BblTQvRl.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{nim-DOS51HeY.js → nim-ChxMAPPZ.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{org-Rx4519lx.js → org-CHoj3SWZ.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{perl-Daok6kZs.js → perl-3zusLAIc.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{php-XTt5v859.js → php-DVx3dbu3.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{pug-f7ey1fQl.js → pug-DITNjLsK.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{qml-juoUuAUN.js → qml-BYmD788c.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{r-BOYZHofT.js → r-Dp_qVPOX.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{razor-BcuibiM6.js → razor-DT4CEDjF.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{regexp-BMJaNING.js → regexp-DVFGbBOe.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{rst-CJY1LueG.js → rst-njZM0E3u.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{ruby-r3j2HpTd.js → ruby-gu2hDDCx.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{sas-D60aovOU.js → sas-Bo6NwyH7.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{scss-DsQ9e_9i.js → scss-COdGMqPA.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{shellscript-C0CTDLfP.js → shellscript-DSg7qNC1.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{shellsession-CYQ4mhku.js → shellsession-CD1RmUpx.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{soy-K7-GBqQU.js → soy-C0QWCEMl.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{sql-BPU0aGlV.js → sql-VoWQdTUw.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{stata-BBQHbN5d.js → stata-BEj75h4q.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{surrealql-DaVLur3e.js → surrealql-Cj1XbW6j.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{svelte-CPKe6KLX.js → svelte-HcwCBvjC.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{templ-4FsggzCO.js → templ-D775vyzu.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{tex-Bz9V0XEc.js → tex-DNmK_71Q.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{ts-tags-BAJP-RsL.js → ts-tags-KERjFDJj.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{tsx-CaD50Q9K.js → tsx-CMT8AiHA.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{twig-Bo_rsqRW.js → twig-B5uxCA6R.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{typescript-BTuHo9Ga.js → typescript-5zwf3bJw.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{typst-BvQMhY4k.js → typst-xx02l63O.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{vue-D8h9s3oH.js → vue-BvvQRkFj.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{vue-html-UkoLjlSQ.js → vue-html-BrBDvgBy.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{vue-vine-lVry86q7.js → vue-vine-1CllPWUz.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{xml-BxyPU0Nr.js → xml-C3nsfg4x.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{xsl-BUb2EUMx.js → xsl-DDOShcMh.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/{yaml-qnjzIwGf.js → yaml-BGNXenqm.js} +1 -1
- package/extensions/pidiff/pidiff-ui/dist/index.html +2 -2
- package/extensions/pidiff/pidiff-ui/package.json +1 -1
- package/extensions/pidiff/pidiff-ui/src/App.tsx +95 -36
- package/extensions/pidiff/pidiff-ui/src/hooks/useWebSocket.ts +52 -10
- package/extensions/pidiff/pidiff-ui/src/lib/app-reconnect-watch.tsx +32 -0
- package/extensions/pidiff/pidiff-ui/src/lib/app-refresh-actions.tsx +47 -0
- package/extensions/pidiff/pidiff-ui/src/lib/create-logger.ts +37 -0
- package/extensions/pidiff/pidiff-ui/src/lib/file-cache-key.ts +34 -0
- package/extensions/pidiff/pidiff-ui/src/lib/refresh-control.tsx +43 -0
- package/extensions/pidiff/pidiff-ui/src/lib/request-diffs.ts +91 -0
- package/extensions/pidiff/pidiff-ui/src/lib/ws-send.ts +141 -0
- package/extensions/shared/openai-compatible-discovery.ts +558 -0
- package/package.json +5 -2
- package/rules/00-orchestrator-core.md +2 -2
- package/rules/15-mcpc.md +35 -0
- package/rules/20-code-review-loop.md +11 -1
- package/scripts/pidiff-git-ignore.ts +55 -0
- package/scripts/pidiff-server.ts +27 -26
- package/settings-keys.json +1 -1
- package/extensions/pidiff/pidiff-ui/dist/assets/index-CHmSwztf.css +0 -1
- package/rules/15-mcp-launchpad.md +0 -46
package/README.md
CHANGED
|
@@ -10,78 +10,79 @@ A [pi package](https://github.com/badlogic/pi-mono) that implements an **orchest
|
|
|
10
10
|
|
|
11
11
|
Single extension that provides:
|
|
12
12
|
|
|
13
|
-
| Feature
|
|
14
|
-
|
|
15
|
-
| **Subagent tool**
|
|
16
|
-
| **`list_models`**
|
|
17
|
-
| **Async background agents**
|
|
18
|
-
| **CLI / ACPX providers**
|
|
19
|
-
| **`/btw` command**
|
|
20
|
-
| **`/async-status` command**
|
|
21
|
-
| **`/async-kill` command**
|
|
22
|
-
| **`ask_user` tool**
|
|
23
|
-
| **Python/pip enforcement**
|
|
24
|
-
| **Git protection**
|
|
25
|
-
| **Remote script exec block**
|
|
26
|
-
| **Dangerous command gate**
|
|
27
|
-
| **Rule injection**
|
|
28
|
-
| **Git status**
|
|
29
|
-
| **Desktop notifications**
|
|
30
|
-
| **File preview**
|
|
31
|
-
| **Pidash dashboard**
|
|
32
|
-
| **Pidiff viewer**
|
|
33
|
-
| **Dreaming**
|
|
34
|
-
| **Memory enforcement**
|
|
35
|
-
| **Upgrade changelog**
|
|
36
|
-
| **Task tracking**
|
|
37
|
-
| **Neovim integration**
|
|
38
|
-
| **Inter-agent communication**
|
|
39
|
-
| **Slash commands**
|
|
40
|
-
| **GitHub autocomplete**
|
|
41
|
-
| **Command arg completions**
|
|
42
|
-
| **Discord bot**
|
|
13
|
+
| Feature | Description |
|
|
14
|
+
| ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
15
|
+
| **Subagent tool** | Delegate tasks to specialist agents (single, parallel, chain, async modes); optional `model` param for model override |
|
|
16
|
+
| **`list_models`** | List available models and providers for subagent model override |
|
|
17
|
+
| **Async background agents** | Spawn agents in background with `async: true` — results surface automatically when complete. Fullscreen overlay dashboard with live output, keyboard nav, and kill support (`/async-status`, `/async-kill`). On **acpx** parents, optional async is coerced to sync; dream/cron need `internal_operations_provider` + `internal_operations_model`. `cli-*` providers support async natively (see `dev-docs/cli-provider.md`) |
|
|
18
|
+
| **CLI / ACPX providers** | Optional `cli_agents` / `acpx_agents` register `cli-*` / `acpx-*` via native `createProvider` (pi ≥ 0.84): `/login cli-<agent>` or `/login acpx-<agent>`, model refresh, filter when unavailable. Missing context window / maxTokens / cost filled from models.dev (`~/.pi/pi-config/models.dev.json`, 1-day refresh). Cold-start default restore (#753): gates `startup`\|`new`, empty `enabledModels`, trusted project merge — see `dev-docs/cli-provider.md`. Headless Cursor `--approve-mcps` when `CLI_APPROVE_MCPS` is set (`false` opts out) or the process is a sidecar (`SIDECAR_PORT`; `startSidecar()` stamps it while running and restores it on `close()`). Executable sidecar consumers should call `bindSidecarListenExit()` so bind/`stopped` fatals exit 1. Headless Gemini defaults `GEMINI_CLI_TRUST_WORKSPACE=true` and preserves an explicit parent value (including `false`). |
|
|
19
|
+
| **`/btw` command** | Quick side questions without polluting conversation history — ephemeral overlay |
|
|
20
|
+
| **`/async-status` command** | Show status of background agents — select one for live output streaming |
|
|
21
|
+
| **`/async-kill` command** | Kill async agents (overlay picker or by name/id) |
|
|
22
|
+
| **`ask_user` tool** | Structured user input with options and free-text — used by workflows |
|
|
23
|
+
| **Python/pip enforcement** | Auto-fixes `python`/`python3` → `uv run python`; blocks `pip`/`pip3` — requires `uv` |
|
|
24
|
+
| **Git protection** | Blocks commits/pushes to main/master, merged branches, `--no-verify`, `git add .` |
|
|
25
|
+
| **Remote script exec block** | Blocks `curl \| bash`, `eval $(curl)`, etc. Allows safe `VAR=$(curl ...)` variable assignments |
|
|
26
|
+
| **Dangerous command gate** | Confirms `rm -rf`, `sudo`, `mkfs`, etc. |
|
|
27
|
+
| **Rule injection** | Injects orchestrator routing rules into system prompt |
|
|
28
|
+
| **Git status** | Live git status in status line with colored icons — updates after every tool call. Shows clickable `#N` when the branch has an open PR. Last-activity clock `⏱ HH:MM (Xm/Xh ago)` shows time since last response |
|
|
29
|
+
| **Desktop notifications** | Notifies via `notify-send` on task completion, waiting for input, and action required |
|
|
30
|
+
| **File preview** | Serves generated HTML/frontend files via HTTP for browser preview from container |
|
|
31
|
+
| **Pidash dashboard** | Live web dashboard — multi-session monitoring, browser messaging, model switching, live session name updates, reasoning token display |
|
|
32
|
+
| **Pidiff viewer** | Per-project diff viewer with review comments — branch diffs, file tree, inline comments, git-based ignore rules |
|
|
33
|
+
| **Dreaming** | Background memory consolidation — extracts memories from sessions, deduplicates, maintains topic-based memory |
|
|
34
|
+
| **Memory enforcement** | Code-enforced memory entries — triggers on bash/tool/file events, actions: block, run_after, warn. LLM cannot ignore enforced rules. Dreaming-safe via _(enforced)_ marker |
|
|
35
|
+
| **Upgrade changelog** | Shows release notes on session start after pi-config version upgrade |
|
|
36
|
+
| **Task tracking** | Structured task lists for multi-step workflows — live widget, progress tracking, reminder nudges (owned, based on [@tintinweb/pi-tasks](https://github.com/tintinweb/pi-tasks) MIT) |
|
|
37
|
+
| **Neovim integration** | Send changed files and review findings to nvim's quickfix list — only active when running inside nvim |
|
|
38
|
+
| **Inter-agent communication** | P2P (`/coms`) agent communication — on-demand activation via slash command |
|
|
39
|
+
| **Slash commands** | `/pr-review`, `/issue-review`, `/release`, `/review-local`, `/review-status`, `/query-db`, `/btw`, `/async-status`, `/async-kill`, `/status`, `/dream`, `/remember`, `/coms`, `/pi-config-settings`, `/mcpc connect` — with autocomplete argument hints |
|
|
40
|
+
| **GitHub autocomplete** | Type `#` in the editor to get issue/PR suggestions from the current repo — lazy-loaded, 5min cache |
|
|
41
|
+
| **Command arg completions** | Tab-complete arguments for slash commands — providers and models for `/external-ai`, branches for `/review-local`, PR numbers for `/pr-review`, and more |
|
|
42
|
+
| **Discord bot** | Control pi sessions from your phone via Discord DMs — send prompts, answer ask_user dialogs, switch sessions |
|
|
43
43
|
|
|
44
44
|
### Agents (26)
|
|
45
45
|
|
|
46
|
-
| Category
|
|
47
|
-
|
|
48
|
-
| Languages
|
|
49
|
-
| Infrastructure | docker-expert, kubernetes-expert, jenkins-expert
|
|
50
|
-
| Dev workflow
|
|
51
|
-
| Documentation
|
|
52
|
-
| Code review
|
|
53
|
-
| Security
|
|
54
|
-
| Workflow
|
|
46
|
+
| Category | Agents |
|
|
47
|
+
| -------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
48
|
+
| Languages | python-expert, go-expert, ts-expert, java-expert, bash-expert |
|
|
49
|
+
| Infrastructure | docker-expert, kubernetes-expert, jenkins-expert |
|
|
50
|
+
| Dev workflow | git-expert, github-expert, test-runner, test-automator, debugger |
|
|
51
|
+
| Documentation | technical-documentation-writer, api-documenter, docs-fetcher |
|
|
52
|
+
| Code review | code-reviewer-quality, code-reviewer-guidelines, code-reviewer-security, code-reviewer-docs, code-reviewer-spec |
|
|
53
|
+
| Security | security-auditor |
|
|
54
|
+
| Workflow | scout, planner, worker, reviewer |
|
|
55
55
|
|
|
56
56
|
### Prompt Templates
|
|
57
57
|
|
|
58
|
-
| Prompt
|
|
59
|
-
|
|
60
|
-
| `/implement <task>`
|
|
61
|
-
| `/scout-and-plan <task>`
|
|
62
|
-
| `/implement-and-review <task>`
|
|
63
|
-
| `/pr-review [number\|url]`
|
|
64
|
-
| `/issue-review`
|
|
65
|
-
| `/release [flags]`
|
|
66
|
-
| `/review-local [branch]`
|
|
67
|
-
| `/review-handler [url] [--autorabbit] [--autoqodo]`
|
|
68
|
-
| `/domain-model [focus area]`
|
|
69
|
-
| `/refine-review <url>`
|
|
70
|
-
| `/coderabbit-rate-limit [number\|url]`
|
|
71
|
-
| `/create-coms-feature-manager`
|
|
72
|
-
| `/query-db <command>`
|
|
73
|
-
| `/external-ai <agent> [--model <model>] [--session-id <id>] [--fix\|--peer\|--resume] <prompt>` | Run prompts via AI CLIs directly (cursor, claude, gemini) — full model access
|
|
74
|
-
| `/external-ai-models-refresh`
|
|
75
|
-
| `/dream`
|
|
76
|
-
| `/remember <what>`
|
|
77
|
-
| `/dream-auto`
|
|
78
|
-
| `/cron add\|list\|list-all\|remove`
|
|
79
|
-
| `/async-kill [name\|id\|all]`
|
|
80
|
-
| `/pi-config-settings [project\|global]`
|
|
81
|
-
| `/status`
|
|
82
|
-
| `/nvim-changed-files`
|
|
83
|
-
| `/pidiff start\|stop\|restart\|status`
|
|
84
|
-
| `/coms start\|stop\|status`
|
|
58
|
+
| Prompt | Description |
|
|
59
|
+
| ----------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
60
|
+
| `/implement <task>` | scout → planner → worker |
|
|
61
|
+
| `/scout-and-plan <task>` | scout → planner |
|
|
62
|
+
| `/implement-and-review <task>` | worker → 5 reviewers → worker |
|
|
63
|
+
| `/pr-review [number\|url]` | Fetch PR diff, check past review comments, review with guidelines, post and track comments |
|
|
64
|
+
| `/issue-review` | Review a GitHub issue spec and fix it |
|
|
65
|
+
| `/release [flags]` | Create GitHub release with changelog and version bumping |
|
|
66
|
+
| `/review-local [branch]` | Review local uncommitted or branch changes |
|
|
67
|
+
| `/review-handler [url] [--autorabbit] [--autoqodo]` | Process PR review comments, fix approved items |
|
|
68
|
+
| `/domain-model [focus area]` | Scan codebase and build/update a CONTEXT.md domain glossary for consistent AI vocabulary |
|
|
69
|
+
| `/refine-review <url>` | Refine and improve existing PR review comments |
|
|
70
|
+
| `/coderabbit-rate-limit [number\|url]` | Handle CodeRabbit rate limiting on PRs |
|
|
71
|
+
| `/create-coms-feature-manager` | Generate a coms feature-manager prompt customized for the current project (source template: `templates/coms-feature-manager-prompt.md`) |
|
|
72
|
+
| `/query-db <command>` | Query the review comments database |
|
|
73
|
+
| `/external-ai <agent> [--model <model>] [--session-id <id>] [--fix\|--peer\|--resume] <prompt>` | Run prompts via AI CLIs directly (cursor, claude, gemini) — full model access |
|
|
74
|
+
| `/external-ai-models-refresh` | Refresh cached AI CLI models for autocomplete |
|
|
75
|
+
| `/dream` | Run memory consolidation — extract, deduplicate, maintain topic-based memory |
|
|
76
|
+
| `/remember <what>` | Save a memory for future sessions |
|
|
77
|
+
| `/dream-auto` | Toggle automatic memory dreaming (every 3h + session end) |
|
|
78
|
+
| `/cron add\|list\|list-all\|remove` | Schedule recurring tasks within the pi session (e.g., `/cron add every 2h check for new issues`, `/cron add at 12:00 /review-handler`). `/cron list` and `/cron list-all` open overlay UI (view / remove; list-all = all sessions). Tasks run while pi is active, survive `/reload`, and stop on exit |
|
|
79
|
+
| `/async-kill [name\|id\|all]` | Kill async agents (overlay picker or by name/id) |
|
|
80
|
+
| `/pi-config-settings [project\|global]` | Interactive TUI settings editor — browse all pi-config settings with scope indicators, smart pickers for providers/models, and immediate save |
|
|
81
|
+
| `/status` | Unified session snapshot — async agents, cron tasks, git branch, context usage |
|
|
82
|
+
| `/nvim-changed-files` | Send git changed files to nvim's quickfix list (only inside nvim) |
|
|
83
|
+
| `/pidiff start\|stop\|restart\|status` | Manage the pidiff diff viewer server (per-project) |
|
|
84
|
+
| `/coms start\|stop\|status` | P2P local agent communication (Unix socket) |
|
|
85
|
+
| `/mcpc connect` | Connect MCP servers from `~/.pi/pi-config/mcp.json` (`mcpc connect --stdio`). Run after editing that file. |
|
|
85
86
|
|
|
86
87
|
### Inter-Agent Communication (coms)
|
|
87
88
|
|
|
@@ -97,12 +98,12 @@ Two systems for Pi agents to communicate with each other, activated on-demand vi
|
|
|
97
98
|
|
|
98
99
|
**Tools available once activated:**
|
|
99
100
|
|
|
100
|
-
| Tool
|
|
101
|
-
|
|
102
|
-
| `*_list`
|
|
103
|
-
| `*_send`
|
|
104
|
-
| `*_get`
|
|
105
|
-
| `*_await` | Block until response arrives
|
|
101
|
+
| Tool | Description |
|
|
102
|
+
| --------- | --------------------------------------------------------------- |
|
|
103
|
+
| `*_list` | List peer agents with names, models, context usage, queue depth |
|
|
104
|
+
| `*_send` | Send a prompt to a peer agent |
|
|
105
|
+
| `*_get` | Non-blocking poll for a response |
|
|
106
|
+
| `*_await` | Block until response arrives |
|
|
106
107
|
|
|
107
108
|
Forked from [disler/pi-vs-claude-code](https://github.com/disler/pi-vs-claude-code) coms extensions. We own these files — FIFO message queue, structured task delegation via coms protocol.
|
|
108
109
|
|
|
@@ -144,8 +145,8 @@ uv run scripts/install.py
|
|
|
144
145
|
The installer covers:
|
|
145
146
|
|
|
146
147
|
- **Pi Packages** — pi-config, pi-vertex-claude, pi-web-access, myk-pi-tools, bun
|
|
147
|
-
- **Python Tools** —
|
|
148
|
-
- **npm Packages** — acpx, agent-browser
|
|
148
|
+
- **Python Tools** — prek
|
|
149
|
+
- **npm Packages** — mcpc, acpx, agent-browser
|
|
149
150
|
- **Browser Automation** — playwright + chromium
|
|
150
151
|
- **Environment Setup** — gitignore configuration
|
|
151
152
|
|
|
@@ -201,6 +202,7 @@ Add retry logic to the HTTP client in src/api.py
|
|
|
201
202
|
/release --dry-run
|
|
202
203
|
/review-local main
|
|
203
204
|
/query-db stats
|
|
205
|
+
/mcpc connect
|
|
204
206
|
```
|
|
205
207
|
|
|
206
208
|
### Direct subagent usage
|
|
@@ -214,25 +216,44 @@ Run scout and planner in a chain to analyze the auth module
|
|
|
214
216
|
|
|
215
217
|
```bash
|
|
216
218
|
# Discover available models
|
|
217
|
-
list_models(provider="
|
|
219
|
+
list_models(provider="my-provider")
|
|
218
220
|
|
|
219
221
|
# Run agent with explicit model
|
|
220
|
-
subagent(agent="worker", task="...", model="
|
|
222
|
+
subagent(agent="worker", task="...", model="my-provider/model-id")
|
|
221
223
|
|
|
222
224
|
# Parallel tasks with per-task models
|
|
223
|
-
subagent(tasks=[{agent: "worker", task: "...", model: "
|
|
225
|
+
subagent(tasks=[{agent: "worker", task: "...", model: "my-provider/model-id", cwd: "..."}])
|
|
224
226
|
```
|
|
225
227
|
|
|
228
|
+
### OpenAI-compatible model discovery
|
|
229
|
+
|
|
230
|
+
Set `discoverModels: true` on a static `openai-completions` provider in `models.json` to load
|
|
231
|
+
its `/v1/models` catalog at interactive session start. Discovery never writes `models.json`. It
|
|
232
|
+
augments the configured provider in Pi's runtime registry, so Pi's ordinary `/model` picker
|
|
233
|
+
displays each result under the exact configured provider key, for example
|
|
234
|
+
`chatgpt-image-latest [litellm]`. The selected model keeps that same provider key and streams
|
|
235
|
+
through the configured provider. Existing static models remain available. Only exact duplicate
|
|
236
|
+
returned IDs are deduplicated.
|
|
237
|
+
|
|
238
|
+
After discovery and runtime registration both succeed, Pi appends a durable transcript entry such
|
|
239
|
+
as `Providers: litellm (242)`. The key and count come from that session's configured provider and
|
|
240
|
+
discovery response. Failed discovery or registration appends no entry, so a prior session's count
|
|
241
|
+
is never presented as current.
|
|
242
|
+
|
|
243
|
+
Each returned string ID remains selectable, including opaque, blank, and whitespace-preserved IDs.
|
|
244
|
+
Discovery materializes a complete Pi `Model` object for every result. It uses source metadata for
|
|
245
|
+
`name`, `reasoning`, `input`, `cost`, `contextWindow`, and `maxTokens` when the response provides
|
|
246
|
+
it. Missing or invalid metadata uses Pi's static-model compatibility defaults: `reasoning: false`,
|
|
247
|
+
zero costs, `contextWindow: 128000`, and `maxTokens: 16384`. Unknown input declares
|
|
248
|
+
`['text', 'image']` so Pi can safely inspect `model.input`. That declaration only satisfies Pi's
|
|
249
|
+
model contract. It does not filter discovery results or claim that the endpoint accepts image input.
|
|
250
|
+
|
|
226
251
|
## Code Review Loop
|
|
227
252
|
|
|
228
|
-
|
|
253
|
+
`review_loop_enforcement` controls automatic review-agent dispatch and commit enforcement.
|
|
229
254
|
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
3. **code-reviewer-security** — Bugs, logic errors, security
|
|
233
|
-
4. **code-reviewer-docs** — Documentation quality, completeness, accuracy
|
|
234
|
-
5. **code-reviewer-spec** — Code/PR/issue spec alignment
|
|
235
|
-
6. **test-automator** — Runs project tests (pytest, node tests, pre-commit)
|
|
255
|
+
- `true` automatically dispatches 6 agents in parallel (5 reviewers + `test-automator`) after code changes and requires a clean review before commits.
|
|
256
|
+
- `false` disables automatic review-agent and test-agent dispatch. Manual reviews and test runs are optional. No review state, cycle, or result is required before commit.
|
|
236
257
|
|
|
237
258
|
When `review_loop_enforcement` is enabled, the loop stops once all reviewers approve with 0 findings and tests pass
|
|
238
259
|
(`tests_passed: true` in `pi-config-review-state.jsonl`), OR after `review_loop_max_cycles` total cycles (default `3`,
|
|
@@ -273,10 +294,10 @@ See `dev-docs/project-settings.md` for the full settings table.
|
|
|
273
294
|
|
|
274
295
|
These are set automatically by the orchestrator when spawning reviewer agents:
|
|
275
296
|
|
|
276
|
-
| Variable
|
|
277
|
-
|
|
278
|
-
| `PI_REVIEW_BASE_BRANCH` | Base branch for diff comparison (auto-detected from PR or falls back to main)
|
|
279
|
-
| `PI_HAS_PR`
|
|
297
|
+
| Variable | Description |
|
|
298
|
+
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
299
|
+
| `PI_REVIEW_BASE_BRANCH` | Base branch for diff comparison (auto-detected from PR or falls back to main) |
|
|
300
|
+
| `PI_HAS_PR` | `true` if a PR exists for the current branch, `false` for pre-push reviews. When `false`, reviewers skip Review History and `code-reviewer-spec` runs a reduced flow (issue-only checks) |
|
|
280
301
|
|
|
281
302
|
#### Per-Project Resource Management
|
|
282
303
|
|
|
@@ -298,11 +319,11 @@ Priority: project > user > package (bundled).
|
|
|
298
319
|
|
|
299
320
|
The orchestrator loads rules from three directories (later layers override same-filename entries):
|
|
300
321
|
|
|
301
|
-
| Layer
|
|
302
|
-
|
|
303
|
-
| Package | `<pi-config>/rules/`
|
|
304
|
-
| User
|
|
305
|
-
| Project | `<project>/.pi/rules/` | Current project only
|
|
322
|
+
| Layer | Path | Scope | Number range |
|
|
323
|
+
| ------- | ---------------------- | -------------------------- | ------------ |
|
|
324
|
+
| Package | `<pi-config>/rules/` | All users, all projects | `00-69` |
|
|
325
|
+
| User | `~/.pi/agent/rules/` | All projects for this user | `70-89` |
|
|
326
|
+
| Project | `<project>/.pi/rules/` | Current project only | `90-99` |
|
|
306
327
|
|
|
307
328
|
To add a custom rule, create a `.md` file in the appropriate directory:
|
|
308
329
|
|
|
@@ -361,10 +382,10 @@ The `generate_image` tool creates images from structured descriptions via Gemini
|
|
|
361
382
|
|
|
362
383
|
Set `image_model` in `pi-config-settings.json` or use `PI_IMAGE_MODEL` env var.
|
|
363
384
|
|
|
364
|
-
| Setting / Variable
|
|
365
|
-
|
|
366
|
-
| `image_model` / `PI_IMAGE_MODEL`
|
|
367
|
-
| `GEMINI_API_KEY` or `GOOGLE_API_KEY` | Gemini API key (env only)
|
|
385
|
+
| Setting / Variable | Description |
|
|
386
|
+
| ------------------------------------ | -------------------------------------------------------------------------------------------------- |
|
|
387
|
+
| `image_model` / `PI_IMAGE_MODEL` | Google/Gemini image model for `generate_image` (Settings TUI filters to google; empty = disabled). |
|
|
388
|
+
| `GEMINI_API_KEY` or `GOOGLE_API_KEY` | Gemini API key (env only) |
|
|
368
389
|
|
|
369
390
|
**Usage:** Ask naturally — "generate an image of a sunset" — or use structured params: `subject`, `action`, `scene`, `composition`, `lighting`, `style`, `text`, `aspect_ratio`.
|
|
370
391
|
|
|
@@ -485,10 +506,6 @@ GH_CONFIG_DIR=/home/youruser/.config/gh
|
|
|
485
506
|
|
|
486
507
|
# Gemini (optional — required for image generation)
|
|
487
508
|
GEMINI_API_KEY=xxx
|
|
488
|
-
|
|
489
|
-
# mcpl (MCP Launchpad) config path inside the container (must match mount target)
|
|
490
|
-
# Use your actual home path — it resolves inside the container via the PI_HOST_USER symlink
|
|
491
|
-
MCPL_CONFIG_FILES=/home/youruser/.config/mcpl/mcp.json
|
|
492
509
|
```
|
|
493
510
|
|
|
494
511
|
Pass via `--env-file /path/to/.env` in the docker run command.
|
|
@@ -503,7 +520,8 @@ files organized by category (lessons, preferences, patterns, decisions, completi
|
|
|
503
520
|
|
|
504
521
|
The `.pi/memory/` directory is auto-added to the global gitignore in the container
|
|
505
522
|
(along with `.pi/`, `.worktrees/`, `.cursor/agents/`, `.claude/agents/`, and
|
|
506
|
-
`.gemini/agents/`).
|
|
523
|
+
`.gemini/agents/`). This repo's `.gitignore` also ignores those three `*/agents/`
|
|
524
|
+
dirs so `uv build` does not pack local specialist symlinks.
|
|
507
525
|
|
|
508
526
|
For **native** (non-container) usage, add memory (and optionally CLI agent dirs) to your
|
|
509
527
|
global gitignore:
|
|
@@ -602,6 +620,8 @@ Pidiff is a per-project diff viewer that opens in your browser, providing rich b
|
|
|
602
620
|
|
|
603
621
|
- Branch diff and commit comparison
|
|
604
622
|
- File tree with search and filtering
|
|
623
|
+
- Header **Refresh** (and the stale-file banner) updates the current diff in place — the file tree and panes stay mounted; only the button spins
|
|
624
|
+
- Refresh is disabled while pidiff is disconnected
|
|
605
625
|
- Inline review comments on specific lines
|
|
606
626
|
- Publish review comments back to the pi session
|
|
607
627
|
- Per-project isolation — no port conflicts between sessions
|
|
@@ -628,65 +648,64 @@ PI_PIDIFF_ENABLE=false pi
|
|
|
628
648
|
|
|
629
649
|
### Optional mounts
|
|
630
650
|
|
|
631
|
-
| Mount
|
|
632
|
-
|
|
633
|
-
| `-v "
|
|
634
|
-
| `-v "$HOME/.
|
|
635
|
-
| `-v "$HOME/.config/
|
|
636
|
-
| `-v "$HOME/.
|
|
637
|
-
| `-v "$HOME/.
|
|
638
|
-
| `-v "$HOME/.
|
|
639
|
-
| `-v "$HOME
|
|
640
|
-
| `-v
|
|
641
|
-
| `-v /var/run/
|
|
642
|
-
| `-v /var/run/podman/podman.sock:/var/run/podman/podman.sock:ro` | Podman container inspection via `docker-safe` |
|
|
651
|
+
| Mount | Purpose |
|
|
652
|
+
| ------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
|
|
653
|
+
| `-v "$HOME/.agents":"$HOME/.agents":rw` | User-level skills (install/uninstall from container) |
|
|
654
|
+
| `-v "$HOME/.config/gcloud/application_default_credentials.json":"$HOME/.config/gcloud/application_default_credentials.json":ro` | Google Cloud ADC (for Claude via Vertex AI) |
|
|
655
|
+
| `-v "$HOME/.config/cursor/auth.json":"$HOME/.config/cursor/auth.json":ro` | Cursor CLI auth (for acpx-cursor / cli-cursor models) |
|
|
656
|
+
| `-v "$HOME/.claude/credentials.json":"$HOME/.claude/credentials.json":ro` | Claude CLI auth (for acpx-claude / cli-claude models) |
|
|
657
|
+
| `-v "$HOME/.config/glab-cli":"$HOME/.config/glab-cli":ro` | GitLab CLI config (auth tokens, host settings) |
|
|
658
|
+
| `-v "$HOME/.coderabbit":"$HOME/.coderabbit":rw` | CodeRabbit CLI auth and review data |
|
|
659
|
+
| `-v "$HOME/screenshots":"$HOME/screenshots"` | Share screenshots/images with the agent |
|
|
660
|
+
| `-v /var/run/docker.sock:/var/run/docker.sock:ro` + `--group-add $(stat -c '%g' /var/run/docker.sock)` | Docker container inspection via `docker-safe` |
|
|
661
|
+
| `-v /var/run/podman/podman.sock:/var/run/podman/podman.sock:ro` | Podman container inspection via `docker-safe` |
|
|
643
662
|
|
|
644
663
|
### What's in the image
|
|
645
664
|
|
|
646
|
-
| Tool
|
|
647
|
-
|
|
648
|
-
| `pi`
|
|
649
|
-
| `git`
|
|
650
|
-
| `gh`
|
|
651
|
-
| `glab`
|
|
652
|
-
| `gcc`
|
|
653
|
-
| `uv` / `uvx`
|
|
654
|
-
| `go`
|
|
655
|
-
| `libxml2-dev`
|
|
656
|
-
| `
|
|
657
|
-
| `myk-pi-tools`
|
|
658
|
-
| `prek`
|
|
659
|
-
| `acpx`
|
|
660
|
-
| `kubectl` / `oc`
|
|
661
|
-
| `agent-browser`
|
|
662
|
-
| `procps`
|
|
663
|
-
| `passwd`
|
|
664
|
-
| `docker` / `podman` | Container CLIs (used via `docker-safe` read-only wrapper)
|
|
665
|
-
| `docker-safe`
|
|
666
|
-
| `jq`
|
|
667
|
-
| `rg` (ripgrep)
|
|
668
|
-
| `cr`
|
|
669
|
-
| `curl`
|
|
665
|
+
| Tool | Purpose |
|
|
666
|
+
| ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
667
|
+
| `pi` | Coding agent |
|
|
668
|
+
| `git` | Version control |
|
|
669
|
+
| `gh` | GitHub CLI (PRs, issues) |
|
|
670
|
+
| `glab` | GitLab CLI (MRs, issues, pipelines) — install [gitlab-cli-skills](https://github.com/vince-winkintel/gitlab-cli-skills) for full agent support |
|
|
671
|
+
| `gcc` | C compiler — needed for building Python C extensions (e.g. ovirt-engine-sdk-python) |
|
|
672
|
+
| `uv` / `uvx` | Python execution (enforced by orchestrator) |
|
|
673
|
+
| `go` | Go development and code review |
|
|
674
|
+
| `libxml2-dev` | libxml2 headers — needed for building Python C extensions (e.g. ovirt-engine-sdk-python) |
|
|
675
|
+
| `mcpc` | MCP CLI (`npm: @apify/mcpc`). Put servers in `~/.pi/pi-config/mcp.json` (already on the `~/.pi` mount). Pi runs `mcpc connect … --stdio` on start. After editing the file, `/mcpc connect`. `entrypoint.sh` reinstalls `@apify/mcpc` on every start so `PI_HOST_USER` host `.npm-global` mapping does not hide the image copy. |
|
|
676
|
+
| `myk-pi-tools` | PR review, release, and other CLI utilities |
|
|
677
|
+
| `prek` | Pre-commit hook runner |
|
|
678
|
+
| `acpx` | Agent proxy for remote models |
|
|
679
|
+
| `kubectl` / `oc` | Kubernetes and OpenShift CLI |
|
|
680
|
+
| `agent-browser` | Browser automation CLI (navigate, click, screenshot, forms) |
|
|
681
|
+
| `procps` | Process utilities (ps, top, pgrep, pkill) |
|
|
682
|
+
| `passwd` | `usermod`/`groupmod` — init remaps user `node` to `PI_HOST_UID`/`PI_HOST_GID` |
|
|
683
|
+
| `docker` / `podman` | Container CLIs (used via `docker-safe` read-only wrapper) |
|
|
684
|
+
| `docker-safe` | Restricted Docker/Podman wrapper — container only (ps, logs, inspect, top, stats) |
|
|
685
|
+
| `jq` | JSON processing |
|
|
686
|
+
| `rg` (ripgrep) | Fast recursive search |
|
|
687
|
+
| `cr` | CodeRabbit CLI — local AI code reviews |
|
|
688
|
+
| `curl` | HTTP requests |
|
|
670
689
|
|
|
671
690
|
#### `myk-pi-tools` subcommands
|
|
672
691
|
|
|
673
|
-
| Command
|
|
674
|
-
|
|
675
|
-
| `myk-pi-tools pr diff`
|
|
676
|
-
| `myk-pi-tools pr info`
|
|
677
|
-
| `myk-pi-tools pr post-comment`
|
|
678
|
-
| `myk-pi-tools pr store-pr-review`
|
|
679
|
-
| `myk-pi-tools pr update-resolution`
|
|
680
|
-
| `myk-pi-tools pr get-review-history`
|
|
681
|
-
| `myk-pi-tools pr get-skipped-comments` | Get previously skipped review comments for a PR
|
|
682
|
-
| `myk-pi-tools pr claude-md`
|
|
683
|
-
| `myk-pi-tools release create`
|
|
684
|
-
| `myk-pi-tools db`
|
|
685
|
-
| `myk-pi-tools reviews`
|
|
686
|
-
| `myk-pi-tools memory`
|
|
687
|
-
| `myk-pi-tools ai-cli`
|
|
688
|
-
| `myk-pi-tools coderabbit`
|
|
689
|
-
| `myk-pi-tools settings get [key ...]`
|
|
692
|
+
| Command | Description |
|
|
693
|
+
| -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
694
|
+
| `myk-pi-tools pr diff` | Fetch PR diff and metadata |
|
|
695
|
+
| `myk-pi-tools pr info` | Fetch PR information as structured JSON |
|
|
696
|
+
| `myk-pi-tools pr post-comment` | Post inline comments to a PR |
|
|
697
|
+
| `myk-pi-tools pr store-pr-review` | Store posted PR review comments to `pr-reviews.db` |
|
|
698
|
+
| `myk-pi-tools pr update-resolution` | Update resolution status for a previously posted review comment. Used by Phase 1c of `/pr-review` to persist LLM evaluation verdicts |
|
|
699
|
+
| `myk-pi-tools pr get-review-history` | Return complete review history for a PR as JSON (posted, skipped, resolved findings). Used by reviewers to avoid re-raising dismissed findings |
|
|
700
|
+
| `myk-pi-tools pr get-skipped-comments` | Get previously skipped review comments for a PR |
|
|
701
|
+
| `myk-pi-tools pr claude-md` | Fetch `CLAUDE.md` and `AGENTS.md` content for a PR's repository |
|
|
702
|
+
| `myk-pi-tools release create` | Create a GitHub release with changelog |
|
|
703
|
+
| `myk-pi-tools db` | Review database query commands |
|
|
704
|
+
| `myk-pi-tools reviews` | Review handling commands |
|
|
705
|
+
| `myk-pi-tools memory` | Project memory commands — persistent per-repo learning |
|
|
706
|
+
| `myk-pi-tools ai-cli` | AI CLI commands (cursor, claude, gemini) |
|
|
707
|
+
| `myk-pi-tools coderabbit` | CodeRabbit commands (check, trigger, retry) |
|
|
708
|
+
| `myk-pi-tools settings get [key ...]` | Resolve settings (project → global → env → default). No args = all keys |
|
|
690
709
|
|
|
691
710
|
### What's protected
|
|
692
711
|
|
|
@@ -702,7 +721,7 @@ PI_PIDIFF_ENABLE=false pi
|
|
|
702
721
|
**Network** — `--network host` shares the host network stack,
|
|
703
722
|
so the container can reach any service your host can (LAN, localhost),
|
|
704
723
|
and the host can reach services started inside the container.
|
|
705
|
-
This is required for local MCP servers,
|
|
724
|
+
This is required for local MCP servers, OpenAI-compatible proxy, and file preview
|
|
706
725
|
(agents serve generated HTML/frontend files via HTTP for browser access).
|
|
707
726
|
If your LLM provider is cloud-based, you don't use local MCPs,
|
|
708
727
|
and you don't need file preview, you can omit `--network host`.
|
|
@@ -725,7 +744,6 @@ alias pi-docker='docker pull ghcr.io/myk-org/pi-config:latest && \
|
|
|
725
744
|
-v "$HOME/.gitignore-global":"$HOME/.gitignore-global":ro \
|
|
726
745
|
-v "$HOME/.ssh":"$HOME/.ssh":ro \
|
|
727
746
|
-v "$HOME/.config/gh":"$HOME/.config/gh":ro \
|
|
728
|
-
-v "$HOME/.config/mcpl/mcp.json":"$HOME/.config/mcpl/mcp.json":ro \ # adjust host path to your mcpl config location
|
|
729
747
|
-v "$HOME/.agents":"$HOME/.agents":rw \
|
|
730
748
|
-v "$HOME/.config/gcloud/application_default_credentials.json":"$HOME/.config/gcloud/application_default_credentials.json":ro \
|
|
731
749
|
-v "$HOME/.config/cursor/auth.json":"$HOME/.config/cursor/auth.json":ro \
|
|
@@ -786,15 +804,15 @@ Control your pi sessions from your phone via Discord DMs.
|
|
|
786
804
|
|
|
787
805
|
### Discord Commands
|
|
788
806
|
|
|
789
|
-
| Command
|
|
790
|
-
|
|
791
|
-
| `!sessions` | List active pi sessions
|
|
792
|
-
| `!watch N`
|
|
793
|
-
| `!status`
|
|
794
|
-
| `!abort`
|
|
795
|
-
| `!help`
|
|
796
|
-
| Any text
|
|
797
|
-
| `/command`
|
|
807
|
+
| Command | Description |
|
|
808
|
+
| ----------- | ----------------------------------- |
|
|
809
|
+
| `!sessions` | List active pi sessions |
|
|
810
|
+
| `!watch N` | Watch/switch to session N |
|
|
811
|
+
| `!status` | Show current session info |
|
|
812
|
+
| `!abort` | Abort current operation |
|
|
813
|
+
| `!help` | Show commands |
|
|
814
|
+
| Any text | Send as prompt to watched session |
|
|
815
|
+
| `/command` | Forward slash command to pi session |
|
|
798
816
|
|
|
799
817
|
### How It Works
|
|
800
818
|
|
|
@@ -824,10 +842,10 @@ See [DEVELOPMENT.md](DEVELOPMENT.md) for tips on testing extensions locally, run
|
|
|
824
842
|
|
|
825
843
|
A standalone HTTP sidecar wrapping the Pi SDK, living under `packages/pi-sidecar/`.
|
|
826
844
|
|
|
827
|
-
| Package
|
|
828
|
-
|
|
829
|
-
| `@myk-org/pi-sidecar` | TypeScript | npm
|
|
830
|
-
| `pi-sidecar-client`
|
|
845
|
+
| Package | Language | Registry |
|
|
846
|
+
| --------------------- | ---------- | -------- |
|
|
847
|
+
| `@myk-org/pi-sidecar` | TypeScript | npm |
|
|
848
|
+
| `pi-sidecar-client` | Python | PyPI |
|
|
831
849
|
|
|
832
850
|
CLI commands: `npx pi-sidecar` (start server), `npx pi-sidecar-start` (background start/stop).
|
|
833
851
|
|
|
@@ -838,9 +856,9 @@ See [`packages/pi-sidecar/CONSUMER-GUIDE.md`](packages/pi-sidecar/CONSUMER-GUIDE
|
|
|
838
856
|
|
|
839
857
|
Google Vertex AI Claude provider for Pi, living under `packages/pi-vertex-claude/`.
|
|
840
858
|
|
|
841
|
-
| Package
|
|
842
|
-
|
|
843
|
-
| `@myk-org/pi-vertex-claude` | TypeScript | npm
|
|
859
|
+
| Package | Language | Registry |
|
|
860
|
+
| --------------------------- | ---------- | -------- |
|
|
861
|
+
| `@myk-org/pi-vertex-claude` | TypeScript | npm |
|
|
844
862
|
|
|
845
863
|
See [`packages/pi-vertex-claude/README.md`](packages/pi-vertex-claude/README.md) for full documentation.
|
|
846
864
|
|