{"id":"pi-plugin-mcowger","repo":"mcowger/paseo-plugins","url":"https://github.com/mcowger/paseo-plugins/tree/main/pi-plugin-mcowger","name":"pi-plugin-mcowger","description":"`pi-plugin-mcowger` is a Paseo provider for the [pi coding agent](https://github.com/earendil-works/pi). It targets Paseo `v0.8.0` and embeds pi through `@earendil-works/pi-coding-agent` instead of running the `pi` CLI in RPC mode.","categories":["provider"],"platforms":[],"caveats":[],"images":["https://raw.githubusercontent.com/mcowger/paseo-plugins/91058be73840ae11b130b6bb7d34b07652462217/pi-plugin-mcowger/images/pi-provider.png","https://raw.githubusercontent.com/mcowger/paseo-plugins/91058be73840ae11b130b6bb7d34b07652462217/pi-plugin-mcowger/images/pi-provider.svg"],"health":{"manifestValid":true,"hasReadme":true,"hasLicense":true,"hasTests":true,"hasTypecheckScript":true,"updatedRecently":true},"scannedAt":"2026-09-11T14:51:55.437Z","path":"pi-plugin-mcowger","security":{"status":"passed","blockingFindings":0,"advisoryFindings":0,"scannedAt":"2026-09-11T14:50:21.783Z","commit":"91058be73840ae11b130b6bb7d34b07652462217"},"license":"MIT","paseoVersionRequirement":">=0.8.0","manifest":{"id":"pi-plugin-mcowger","requirements":{"paseo":">=0.8.0"}},"repoMeta":{"stars":1,"defaultBranch":"main","pushedAt":"2026-09-10T21:50:56Z"},"owner":{"login":"mcowger","avatarUrl":"https://avatars.githubusercontent.com/u/1929548?v=4"},"installNotesHtml":"<p>Install from a checkout of this repository:</p>\n<pre><code class=\"language-bash\">cd /absolute/path/to/pi-plugin-mcowger\nnpm install\nnpm run typecheck\npaseo plugin install \"$PWD\"\npaseo plugin reload pi-plugin-mcowger\n</code></pre>\n<p><code>npm install</code> patches broken declaration probes in third-party dependencies and builds the vendored\npi/MCP SDK bundle required by Paseo's plugin compiler. See\n<a href=\"./docs/packaging.md\"><code>docs/packaging.md</code></a> for the details.</p>","readmeText":"# Pi provider (mcowger)\n\n`pi-plugin-mcowger` is a Paseo provider for the\n[pi coding agent](https://github.com/earendil-works/pi). It targets Paseo\n`v0.8.0` and embeds pi through `@earendil-works/pi-coding-agent` instead of\nrunning the `pi` CLI in RPC mode.\n\n## Status\n\nThe plugin is ready for use with Paseo `v0.8.0`. Paseo's provider API is stable for this release.\n\n## Preview\n\n![Pi provider preview](./images/pi-provider.svg)\n\n## Screenshot\n\n![Pi provider in Paseo](./images/pi-provider.png)\n\n## What it does\n\n- Loads pi models, auth, settings, extensions, skills, and prompt templates from `~/.pi/agent`.\n- Exposes pi models with per-model thinking levels in Paseo's composer.\n- Stores Pi presets in Paseo host settings and exposes them as composer modes. Manage presets in\n  Settings → Plugins → Pi Presets. Selecting one applies its model, thinking level, tool patterns,\n  and appended system prompt.\n- Provides a branch-aware `todo` tool when no loaded Pi extension already contributes one, and emits\n  its results (along with `@juicesharp/rpiv-todo` results) as native Paseo todo items.\n- Maps foreground pi subagent calls to native Paseo subagent tool rows.\n- Bridges pi extension dialogs to Paseo permission questions.\n- Bridges Paseo-provided MCP servers to pi custom tools in-process.\n- Publishes Pi extension slash commands alongside built-in commands and prompt templates.\n- Exposes native composer selectors for compact and retry.\n- Emits startup diagnostics for failed resources, MCP connections, model fallbacks, and unsupported\n  session configuration instead of hiding those problems in daemon logs.\n- Persists sessions with pi's `SessionManager` and supports replay from the active branch, steering,\n  interruption, compaction, and usage reporting.\n\n## Runtime settings and diagnostics\n\nActive Pi agents expose native composer selectors for `Compact` and `Retry`. Each selector shows\nits current state and opens a small popup with explicit on/off choices.\n\nThe embedded SDK cannot safely apply per-session environment overrides or provider-native options\nwithout mutating shared process state. It also does not expose MCP approval enforcement. The plugin\nleaves those values unchanged and emits a visible startup diagnostic when `env`, `providerOptions`,\nor `toolPolicy` is supplied.\n\nStartup diagnostics also cover failed Pi extensions, skills, prompts, themes, MCP tool discovery,\nunavailable requested models, and model fallbacks.\n\n## Preset behavior\n\nPreset modes apply their model and thinking level when selected on an existing live session. In a\nnew-agent draft composer, Paseo `v0.8.0` provider modes cannot declare model or thinking defaults,\nso selecting a preset updates the mode pill but leaves the draft's model and thinking pills unchanged.\nThe preset is still applied when the session is created. Updating the draft pills immediately will\nrequire a future Paseo host/API change. When no presets are configured, the provider publishes no\nmodes and Paseo hides the mode pill.\n\n## Installation\n\nInstall from a checkout of this repository:\n\n```bash\ncd /absolute/path/to/pi-plugin-mcowger\nnpm install\nnpm run typecheck\npaseo plugin install \"$PWD\"\npaseo plugin reload pi-plugin-mcowger\n```\n\n`npm install` patches broken declaration probes in third-party dependencies and builds the vendored\npi/MCP SDK bundle required by Paseo's plugin compiler. See\n[`docs/packaging.md`](./docs/packaging.md) for the details.\n\n## Pi configuration\n\nThe plugin uses pi's normal configuration directory, including:\n\n- `~/.pi/agent/settings.json`\n- `~/.pi/agent/auth.json`\n- `~/.pi/agent/extensions/`\n- `~/.pi/agent/packages`\n\nPresets are managed by Paseo in the plugin's host-scoped settings document. The plugin no longer\nreads pi `presets.json` files. Project-local `.pi` settings and resources are loaded for the active\nworkspace.\n\n## Development\n\n```bash\nnpm run build:vendor\nnpm run lint\nnpm run typecheck\nnpm test\nnpx vitest run --config vitest.smoke.config.ts\n```\n\nSet `PI_SMOKE_MODEL` to override the smoke-test model. The default is\n`plexus/gemini-3.5-flash-lite`.\n"}