@dyyz1993/pi-coding-agent 0.70.6 → 0.74.4
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/CHANGELOG.md +266 -80
- package/README.md +48 -20
- package/dist/bun/cli.d.ts.map +1 -1
- package/dist/bun/cli.js +4 -2
- package/dist/bun/cli.js.map +1 -1
- package/dist/bun/restore-sandbox-env.d.ts +13 -0
- package/dist/bun/restore-sandbox-env.d.ts.map +1 -0
- package/dist/bun/restore-sandbox-env.js +32 -0
- package/dist/bun/restore-sandbox-env.js.map +1 -0
- package/dist/cli/args.d.ts +2 -1
- package/dist/cli/args.d.ts.map +1 -1
- package/dist/cli/args.js +34 -22
- package/dist/cli/args.js.map +1 -1
- package/dist/cli/list-models.d.ts.map +1 -1
- package/dist/cli/list-models.js +2 -1
- package/dist/cli/list-models.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -4
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +16 -8
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +238 -66
- package/dist/config.js.map +1 -1
- package/dist/core/agent-session-runtime.d.ts +10 -0
- package/dist/core/agent-session-runtime.d.ts.map +1 -1
- package/dist/core/agent-session-runtime.js +14 -0
- package/dist/core/agent-session-runtime.js.map +1 -1
- package/dist/core/agent-session-services.d.ts +2 -1
- package/dist/core/agent-session-services.d.ts.map +1 -1
- package/dist/core/agent-session-services.js +1 -0
- package/dist/core/agent-session-services.js.map +1 -1
- package/dist/core/agent-session.d.ts +25 -26
- package/dist/core/agent-session.d.ts.map +1 -1
- package/dist/core/agent-session.js +1042 -1116
- package/dist/core/agent-session.js.map +1 -1
- package/dist/core/auth-guidance.d.ts +5 -0
- package/dist/core/auth-guidance.d.ts.map +1 -0
- package/dist/core/auth-guidance.js +21 -0
- package/dist/core/auth-guidance.js.map +1 -0
- package/dist/core/auth-storage.d.ts +9 -0
- package/dist/core/auth-storage.d.ts.map +1 -1
- package/dist/core/auth-storage.js +20 -1
- package/dist/core/auth-storage.js.map +1 -1
- package/dist/core/bash-executor.d.ts.map +1 -1
- package/dist/core/bash-executor.js +9 -6
- package/dist/core/bash-executor.js.map +1 -1
- package/dist/core/compaction/compaction.d.ts +0 -1
- package/dist/core/compaction/compaction.d.ts.map +1 -1
- package/dist/core/compaction/compaction.js.map +1 -1
- package/dist/core/export-html/ansi-to-html.d.ts.map +1 -1
- package/dist/core/export-html/ansi-to-html.js +1 -1
- package/dist/core/export-html/ansi-to-html.js.map +1 -1
- package/dist/core/export-html/template.css +53 -4
- package/dist/core/export-html/template.js +84 -20
- package/dist/core/export-html/tool-renderer.d.ts +0 -6
- package/dist/core/export-html/tool-renderer.d.ts.map +1 -1
- package/dist/core/export-html/tool-renderer.js +15 -2
- package/dist/core/export-html/tool-renderer.js.map +1 -1
- package/dist/core/extensions/index.d.ts +1 -1
- package/dist/core/extensions/index.d.ts.map +1 -1
- package/dist/core/extensions/index.js.map +1 -1
- package/dist/core/extensions/loader.d.ts +0 -1
- package/dist/core/extensions/loader.d.ts.map +1 -1
- package/dist/core/extensions/loader.js +49 -137
- package/dist/core/extensions/loader.js.map +1 -1
- package/dist/core/extensions/runner.d.ts +24 -20
- package/dist/core/extensions/runner.d.ts.map +1 -1
- package/dist/core/extensions/runner.js +128 -253
- package/dist/core/extensions/runner.js.map +1 -1
- package/dist/core/extensions/types.d.ts +88 -60
- package/dist/core/extensions/types.d.ts.map +1 -1
- package/dist/core/extensions/types.js +10 -0
- package/dist/core/extensions/types.js.map +1 -1
- package/dist/core/file-store/file-snapshot-manager.d.ts +95 -0
- package/dist/core/file-store/file-snapshot-manager.d.ts.map +1 -0
- package/dist/core/file-store/file-snapshot-manager.js +508 -0
- package/dist/core/file-store/file-snapshot-manager.js.map +1 -0
- package/dist/core/file-store/index.d.ts +5 -0
- package/dist/core/file-store/index.d.ts.map +1 -0
- package/dist/core/file-store/index.js +3 -0
- package/dist/core/file-store/index.js.map +1 -0
- package/dist/core/messages.d.ts +10 -2
- package/dist/core/messages.d.ts.map +1 -1
- package/dist/core/messages.js +23 -6
- package/dist/core/messages.js.map +1 -1
- package/dist/core/model-registry.d.ts +19 -1
- package/dist/core/model-registry.d.ts.map +1 -1
- package/dist/core/model-registry.js +97 -16
- package/dist/core/model-registry.js.map +1 -1
- package/dist/core/model-resolver.d.ts.map +1 -1
- package/dist/core/model-resolver.js +24 -15
- package/dist/core/model-resolver.js.map +1 -1
- package/dist/core/package-manager.d.ts +1 -0
- package/dist/core/package-manager.d.ts.map +1 -1
- package/dist/core/package-manager.js +61 -35
- package/dist/core/package-manager.js.map +1 -1
- package/dist/core/provider-display-names.d.ts +2 -0
- package/dist/core/provider-display-names.d.ts.map +1 -0
- package/dist/core/provider-display-names.js +32 -0
- package/dist/core/provider-display-names.js.map +1 -0
- package/dist/core/resource-loader.d.ts.map +1 -1
- package/dist/core/resource-loader.js +9 -21
- package/dist/core/resource-loader.js.map +1 -1
- package/dist/core/sdk.d.ts +9 -1
- package/dist/core/sdk.d.ts.map +1 -1
- package/dist/core/sdk.js +39 -18
- package/dist/core/sdk.js.map +1 -1
- package/dist/core/session-manager.d.ts +27 -17
- package/dist/core/session-manager.d.ts.map +1 -1
- package/dist/core/session-manager.js +133 -47
- package/dist/core/session-manager.js.map +1 -1
- package/dist/core/settings-manager.d.ts +21 -3
- package/dist/core/settings-manager.d.ts.map +1 -1
- package/dist/core/settings-manager.js +51 -6
- package/dist/core/settings-manager.js.map +1 -1
- package/dist/core/skills.d.ts.map +1 -1
- package/dist/core/skills.js +3 -8
- package/dist/core/skills.js.map +1 -1
- package/dist/core/slash-commands.d.ts.map +1 -1
- package/dist/core/slash-commands.js +4 -3
- package/dist/core/slash-commands.js.map +1 -1
- package/dist/core/tools/bash.d.ts +0 -2
- package/dist/core/tools/bash.d.ts.map +1 -1
- package/dist/core/tools/bash.js +155 -110
- package/dist/core/tools/bash.js.map +1 -1
- package/dist/core/tools/edit-diff.d.ts.map +1 -1
- package/dist/core/tools/edit-diff.js +3 -2
- package/dist/core/tools/edit-diff.js.map +1 -1
- package/dist/core/tools/edit.d.ts.map +1 -1
- package/dist/core/tools/edit.js +4 -3
- package/dist/core/tools/edit.js.map +1 -1
- package/dist/core/tools/find.d.ts.map +1 -1
- package/dist/core/tools/find.js +1 -1
- package/dist/core/tools/find.js.map +1 -1
- package/dist/core/tools/grep.d.ts.map +1 -1
- package/dist/core/tools/grep.js +1 -1
- package/dist/core/tools/grep.js.map +1 -1
- package/dist/core/tools/output-accumulator.d.ts +50 -0
- package/dist/core/tools/output-accumulator.d.ts.map +1 -0
- package/dist/core/tools/output-accumulator.js +178 -0
- package/dist/core/tools/output-accumulator.js.map +1 -0
- package/dist/core/tools/read.d.ts.map +1 -1
- package/dist/core/tools/read.js +70 -13
- package/dist/core/tools/read.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/main.d.ts.map +1 -1
- package/dist/main.js +17 -39
- package/dist/main.js.map +1 -1
- package/dist/migrations.d.ts +1 -1
- package/dist/migrations.d.ts.map +1 -1
- package/dist/migrations.js +3 -3
- package/dist/migrations.js.map +1 -1
- package/dist/modes/interactive/components/config-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/config-selector.js +3 -1
- package/dist/modes/interactive/components/config-selector.js.map +1 -1
- package/dist/modes/interactive/components/extension-selector.d.ts +1 -4
- package/dist/modes/interactive/components/extension-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/extension-selector.js +14 -56
- package/dist/modes/interactive/components/extension-selector.js.map +1 -1
- package/dist/modes/interactive/components/login-dialog.d.ts +5 -1
- package/dist/modes/interactive/components/login-dialog.d.ts.map +1 -1
- package/dist/modes/interactive/components/login-dialog.js +19 -4
- package/dist/modes/interactive/components/login-dialog.js.map +1 -1
- package/dist/modes/interactive/components/model-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/model-selector.js +1 -1
- package/dist/modes/interactive/components/model-selector.js.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.d.ts +18 -6
- package/dist/modes/interactive/components/oauth-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/oauth-selector.js +93 -25
- package/dist/modes/interactive/components/oauth-selector.js.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js +1 -1
- package/dist/modes/interactive/components/scoped-models-selector.js.map +1 -1
- package/dist/modes/interactive/components/session-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/session-selector.js +3 -7
- package/dist/modes/interactive/components/session-selector.js.map +1 -1
- package/dist/modes/interactive/components/settings-selector.d.ts +5 -0
- package/dist/modes/interactive/components/settings-selector.d.ts.map +1 -1
- package/dist/modes/interactive/components/settings-selector.js +53 -1
- package/dist/modes/interactive/components/settings-selector.js.map +1 -1
- package/dist/modes/interactive/interactive-mode.d.ts +20 -4
- package/dist/modes/interactive/interactive-mode.d.ts.map +1 -1
- package/dist/modes/interactive/interactive-mode.js +423 -186
- package/dist/modes/interactive/interactive-mode.js.map +1 -1
- package/dist/modes/interactive/theme/dark.json +1 -1
- package/dist/modes/interactive/theme/light.json +1 -1
- package/dist/modes/print-mode.d.ts +3 -0
- package/dist/modes/print-mode.d.ts.map +1 -1
- package/dist/modes/print-mode.js +62 -19
- package/dist/modes/print-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-client.d.ts +80 -60
- package/dist/modes/rpc/rpc-client.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-client.js +108 -93
- package/dist/modes/rpc/rpc-client.js.map +1 -1
- package/dist/modes/rpc/rpc-mode.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-mode.js +106 -0
- package/dist/modes/rpc/rpc-mode.js.map +1 -1
- package/dist/modes/rpc/rpc-types.d.ts +115 -0
- package/dist/modes/rpc/rpc-types.d.ts.map +1 -1
- package/dist/modes/rpc/rpc-types.js.map +1 -1
- package/dist/package-manager-cli.d.ts.map +1 -1
- package/dist/package-manager-cli.js +238 -12
- package/dist/package-manager-cli.js.map +1 -1
- package/dist/utils/child-process.d.ts +1 -0
- package/dist/utils/child-process.d.ts.map +1 -1
- package/dist/utils/child-process.js +8 -0
- package/dist/utils/child-process.js.map +1 -1
- package/dist/utils/clipboard-image.d.ts.map +1 -1
- package/dist/utils/clipboard-image.js +2 -2
- package/dist/utils/clipboard-image.js.map +1 -1
- package/dist/utils/clipboard.d.ts.map +1 -1
- package/dist/utils/clipboard.js +84 -45
- package/dist/utils/clipboard.js.map +1 -1
- package/dist/utils/paths.d.ts +9 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +31 -0
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/pi-user-agent.d.ts +2 -0
- package/dist/utils/pi-user-agent.d.ts.map +1 -0
- package/dist/utils/pi-user-agent.js +5 -0
- package/dist/utils/pi-user-agent.js.map +1 -0
- package/dist/utils/structured-output.d.ts +10 -0
- package/dist/utils/structured-output.d.ts.map +1 -0
- package/dist/utils/structured-output.js +57 -0
- package/dist/utils/structured-output.js.map +1 -0
- package/dist/utils/tools-manager.d.ts.map +1 -1
- package/dist/utils/tools-manager.js +6 -2
- package/dist/utils/tools-manager.js.map +1 -1
- package/dist/utils/version-check.d.ts +14 -0
- package/dist/utils/version-check.d.ts.map +1 -0
- package/dist/utils/version-check.js +77 -0
- package/dist/utils/version-check.js.map +1 -0
- package/docs/compaction.md +14 -14
- package/docs/custom-provider.md +40 -31
- package/docs/development.md +1 -1
- package/docs/docs.json +148 -0
- package/docs/extensions.md +116 -56
- package/docs/index.md +70 -0
- package/docs/json.md +4 -4
- package/docs/models.md +150 -3
- package/docs/packages.md +10 -5
- package/docs/providers.md +62 -17
- package/docs/quickstart.md +142 -0
- package/docs/rollback-architecture.md +693 -0
- package/docs/rollback-test-cases.md +412 -0
- package/docs/rpc.md +1 -1
- package/docs/sdk.md +26 -26
- package/docs/{session.md → session-format.md} +6 -6
- package/docs/sessions.md +137 -0
- package/docs/settings.md +52 -9
- package/docs/termux.md +1 -1
- package/docs/themes.md +2 -2
- package/docs/tui.md +20 -20
- package/docs/usage.md +277 -0
- package/examples/extensions/README.md +2 -4
- package/examples/extensions/border-status-editor.ts +150 -0
- package/examples/extensions/commands.ts +2 -2
- package/examples/extensions/custom-provider-anthropic/package-lock.json +2 -2
- package/examples/extensions/custom-provider-anthropic/package.json +1 -1
- package/examples/extensions/custom-provider-gitlab-duo/package.json +1 -1
- package/examples/extensions/dynamic-resources/dynamic.json +1 -1
- package/examples/extensions/git-checkpoint.ts +1 -1
- package/examples/extensions/handoff.ts +49 -11
- package/examples/extensions/plan-mode/index.ts +1 -1
- package/examples/extensions/sandbox/package-lock.json +5 -5
- package/examples/extensions/sandbox/package.json +1 -1
- package/examples/extensions/subagent/agents.ts +126 -0
- package/examples/extensions/with-deps/package-lock.json +2 -2
- package/examples/extensions/with-deps/package.json +1 -1
- package/examples/sdk/README.md +2 -2
- package/package.json +7 -16
- package/docs/tree.md +0 -233
- package/examples/extensions/antigravity-image-gen.ts +0 -418
package/CHANGELOG.md
CHANGED
|
@@ -1,135 +1,321 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## [0.
|
|
3
|
+
## [0.74.2] - 2026-05-08
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
## [0.74.0] - 2026-05-07
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
- Added `tokensAfter` to `CompactionResult` so `compaction_end` events carry accurate post-compaction token counts
|
|
7
|
+
### Changed
|
|
9
8
|
|
|
10
|
-
|
|
9
|
+
- Updated repository links and package references for the move to `dyyz1993/pi-mono` and `@dyyz1993/*` package scopes.
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
## [0.73.1] - 2026-05-07
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
### New Features
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
- **Self-update support for the npm scope migration**: `pi update --self` now supports the upcoming package rename from `@mariozechner/pi-coding-agent` to `@dyyz1993/pi-coding-agent`. After the new package is published, existing global installs can update through the normal self-update flow; pi will uninstall the old global package and install the package name returned by the version check endpoint.
|
|
16
|
+
- **Interactive OAuth login selection**: OAuth providers can now present multiple login choices in `/login`, enabling provider-specific interactive authentication flows. See [Providers](docs/providers.md).
|
|
17
|
+
- **JSONC-style `models.json` parsing**: `models.json` now allows comments and trailing commas, making custom provider and model configuration easier to maintain. See [Providers](docs/providers.md) and [Custom Providers](docs/custom-provider.md).
|
|
17
18
|
|
|
18
19
|
### Added
|
|
19
20
|
|
|
20
|
-
- Added
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
21
|
+
- Added interactive login selection support so OAuth providers can present multiple login choices ([#4190](https://github.com/dyyz1993/pi-mono/pull/4190) by [@mitsuhiko](https://github.com/mitsuhiko)).
|
|
22
|
+
|
|
23
|
+
### Changed
|
|
24
|
+
|
|
25
|
+
- Changed `pi update --self` to honor the active package name returned by the Pi version check endpoint, defaulting to the current package when omitted and uninstalling the old global package before installing a renamed package.
|
|
26
|
+
- Changed extension loading to use upstream `jiti` 2.7 instead of the `@mariozechner/jiti` fork ([#4244](https://github.com/dyyz1993/pi-mono/pull/4244) by [@pi0](https://github.com/pi0)).
|
|
27
|
+
- Changed `models.json` parsing to allow comments and trailing commas ([#4162](https://github.com/dyyz1993/pi-mono/pull/4162) by [@julien-c](https://github.com/julien-c)).
|
|
26
28
|
|
|
27
29
|
### Fixed
|
|
28
30
|
|
|
29
|
-
- Fixed
|
|
31
|
+
- Fixed `pi -p` treating prompts that start with YAML frontmatter as extension flags instead of user messages ([#4163](https://github.com/badlogic/pi-mono/issues/4163)).
|
|
32
|
+
- Fixed pending tool results not updating in the live TUI after toggling thinking block visibility while the tool is running ([#4167](https://github.com/badlogic/pi-mono/issues/4167)).
|
|
33
|
+
- Fixed `/copy` reporting success on Linux without writing the clipboard on Wayland-only compositors (Hyprland, Niri, ...) by skipping the X11-only native addon on Linux and routing through `wl-copy`/`xclip`/`xsel` instead ([#4177](https://github.com/badlogic/pi-mono/issues/4177)).
|
|
34
|
+
- Fixed HTML session exports to strip skill wrapper XML from rendered user messages ([#4234](https://github.com/dyyz1993/pi-mono/pull/4234) by [@aliou](https://github.com/aliou)).
|
|
35
|
+
- Fixed OpenAI-compatible chat completion streams that interleave content and tool-call deltas in the same choice.
|
|
36
|
+
- Fixed OpenAI Codex OAuth refresh failures writing directly to stderr while the TUI is active ([#4141](https://github.com/badlogic/pi-mono/issues/4141)).
|
|
37
|
+
- Fixed OpenAI Codex Responses requests to send a non-empty system prompt ([#4184](https://github.com/dyyz1993/pi-mono/issues/4184)).
|
|
38
|
+
- Fixed Kimi For Coding model resolution for the Kimi K2 P6 alias ([#4218](https://github.com/dyyz1993/pi-mono/issues/4218)).
|
|
39
|
+
- Fixed Kitty inline image redraws to stay within TUI-owned terminal regions and avoid writing below the active viewport.
|
|
40
|
+
- Fixed Kitty inline image rendering by letting the terminal allocate image ids and bounding parsed image ids to valid values.
|
|
41
|
+
- Fixed inline image capability detection to disable inline images in cmux terminals.
|
|
30
42
|
|
|
31
|
-
## [0.
|
|
43
|
+
## [0.73.0] - 2026-05-04
|
|
32
44
|
|
|
33
|
-
###
|
|
34
|
-
- MCP (Model Context Protocol) module embedded into core (`src/core/mcp/`)
|
|
35
|
-
- Supports Stdio, SSE (with headers), and StreamableHTTP transports
|
|
36
|
-
- Connection/tool-call timeout control (configurable, default 30s/60s)
|
|
37
|
-
- Exponential backoff auto-reconnection (configurable, max 3 retries)
|
|
38
|
-
- Runtime dynamic server management: addServer, removeServer, setServerEnabled, refreshTools
|
|
39
|
-
- Connection status query API: getConnections, getConnection, getToolsByServer
|
|
40
|
-
- Structured error types: McpError, McpConnectionError, McpToolCallError, McpTimeoutError
|
|
41
|
-
- Structured logging with level filtering (debug/info/warn/error)
|
|
42
|
-
- Concurrent tool call throttling (configurable maxConcurrentCalls)
|
|
43
|
-
- Process cleanup hooks (beforeExit, SIGTERM, SIGINT)
|
|
44
|
-
- Configurable via settings.json under `mcp.servers` and `mcp.options`
|
|
45
|
-
- Lazy-loaded SDK imports — zero overhead when no MCP servers configured
|
|
45
|
+
### New Features
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
- **Xiaomi MiMo API billing and regional Token Plan providers** - `xiaomi` now uses API billing, with separate `xiaomi-token-plan-{cn,ams,sgp}` providers. See [docs/providers.md#api-keys](docs/providers.md#api-keys) and [README.md#providers--models](README.md#providers--models). ([#4112](https://github.com/badlogic/pi-mono/pull/4112) by [@Phoen1xCode](https://github.com/Phoen1xCode))
|
|
48
|
+
- **Incremental bash output streaming** - Bash tool output now appears while commands run instead of only after completion. ([#4145](https://github.com/badlogic/pi-mono/issues/4145))
|
|
49
|
+
- **Compact read rendering** - Interactive `read` output for Pi docs, context files, and skills is collapsed by default and shows selected line ranges.
|
|
50
|
+
|
|
51
|
+
### Breaking Changes
|
|
52
|
+
|
|
53
|
+
- Switched the built-in `xiaomi` provider from Token Plan AMS to Xiaomi's API billing endpoint, and renamed its `/login` display from "Xiaomi MiMo Token Plan" to "Xiaomi MiMo". `XIAOMI_API_KEY` now refers to the API billing key from [platform.xiaomimimo.com](https://platform.xiaomimimo.com). Users on Token Plan should switch to the appropriate `xiaomi-token-plan-*` provider and set the corresponding env var ([#4112](https://github.com/badlogic/pi-mono/pull/4112) by [@Phoen1xCode](https://github.com/Phoen1xCode)).
|
|
48
54
|
|
|
49
55
|
### Added
|
|
50
|
-
|
|
51
|
-
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
-
|
|
56
|
-
- 63 comprehensive tests (handler, lifecycle, E2E)
|
|
56
|
+
|
|
57
|
+
- Added three Xiaomi MiMo Token Plan regional providers visible in `/login`: `xiaomi-token-plan-cn` (`XIAOMI_TOKEN_PLAN_CN_API_KEY`), `xiaomi-token-plan-ams` (`XIAOMI_TOKEN_PLAN_AMS_API_KEY`), `xiaomi-token-plan-sgp` (`XIAOMI_TOKEN_PLAN_SGP_API_KEY`). Each defaults to `mimo-v2.5-pro` ([#4112](https://github.com/badlogic/pi-mono/pull/4112) by [@Phoen1xCode](https://github.com/Phoen1xCode)).
|
|
58
|
+
|
|
59
|
+
### Changed
|
|
60
|
+
|
|
61
|
+
- Changed `read` tool rendering to collapse Pi documentation, AGENTS/CLAUDE context files, and `SKILL.md` contents by default in interactive output.
|
|
57
62
|
|
|
58
63
|
### Fixed
|
|
59
|
-
|
|
60
|
-
-
|
|
61
|
-
-
|
|
64
|
+
|
|
65
|
+
- Fixed generated OpenAI-compatible model metadata for Qwen 3.5/3.6 and MiniMax M2.7, so those models work through the built-in provider catalog ([#4110](https://github.com/badlogic/pi-mono/pull/4110) by [@jsynowiec](https://github.com/jsynowiec)).
|
|
66
|
+
- Fixed Bedrock Claude Opus 4.7 `xhigh` thinking requests by preserving the provider's native effort value.
|
|
67
|
+
- Fixed OpenAI Codex WebSocket transport to fall back to SSE when setup fails before streaming starts, and surface transport diagnostics in the assistant message ([#4133](https://github.com/badlogic/pi-mono/issues/4133)).
|
|
68
|
+
- Fixed OpenAI Codex WebSocket transport keeping `--print` and JSON mode processes alive after the response by closing cached WebSocket sessions during session shutdown ([#4103](https://github.com/badlogic/pi-mono/issues/4103)).
|
|
69
|
+
- Fixed compact `read` tool calls to render directly and include selected line ranges in interactive output.
|
|
70
|
+
- Fixed interactive sessions to exit when terminal input is lost instead of continuing in a broken state.
|
|
71
|
+
- Fixed bash tool output to stream incrementally while commands run instead of waiting for command completion ([#4145](https://github.com/badlogic/pi-mono/issues/4145)).
|
|
72
|
+
- Fixed selector and autocomplete fuzzy ranking to prioritize exact matches.
|
|
73
|
+
|
|
74
|
+
## [0.72.1] - 2026-05-02
|
|
75
|
+
|
|
76
|
+
## [0.72.0] - 2026-05-01
|
|
77
|
+
|
|
78
|
+
### New Features
|
|
79
|
+
|
|
80
|
+
- **Xiaomi MiMo Token Plan provider** - New Anthropic-compatible provider with `XIAOMI_API_KEY` auth, default model (`mimo-v2.5-pro`), and `/login` display. See [docs/providers.md](docs/providers.md). ([#4005](https://github.com/badlogic/pi-mono/pull/4005) by [@Phoen1xCode](https://github.com/Phoen1xCode)).
|
|
81
|
+
- **Model thinking level metadata** - Models can now declare which thinking levels they support via `thinkingLevelMap`, replacing the old `reasoningEffortMap`. See [docs/models.md#thinking-level-map](docs/models.md#thinking-level-map) and [docs/custom-provider.md](docs/custom-provider.md). ([#3208](https://github.com/badlogic/pi-mono/issues/3208)).
|
|
82
|
+
- **Custom provider base URL overrides** - `pi.registerProvider()` now respects per-model `baseUrl` settings. See [docs/custom-provider.md](docs/custom-provider.md). ([#4063](https://github.com/badlogic/pi-mono/issues/4063)).
|
|
83
|
+
- **Post-turn stop callback** - Agent loop can now exit gracefully after a completed turn via `shouldStopAfterTurn`. See [`packages/agent/README.md`](https://github.com/badlogic/pi-mono/blob/main/packages/agent/README.md).
|
|
84
|
+
- **Self-update detection fix** - `pi` now correctly identifies and applies available updates. ([#3942](https://github.com/badlogic/pi-mono/issues/3942), [#3980](https://github.com/badlogic/pi-mono/issues/3980), [#3922](https://github.com/badlogic/pi-mono/issues/3922)).
|
|
85
|
+
|
|
86
|
+
### Breaking Changes
|
|
87
|
+
|
|
88
|
+
- Replaced `compat.reasoningEffortMap` in `models.json` and `pi.registerProvider()` model definitions with model-level `thinkingLevelMap` ([#3208](https://github.com/badlogic/pi-mono/issues/3208)). Migration: move old mappings from `compat.reasoningEffortMap` to `thinkingLevelMap`. Use string values for provider-specific thinking values and `null` for unsupported pi levels that should be hidden and skipped by cycling. See `docs/models.md#thinking-level-map` and `docs/custom-provider.md`.
|
|
62
89
|
|
|
63
90
|
### Added
|
|
64
91
|
|
|
65
|
-
- Added `
|
|
66
|
-
- Added `
|
|
67
|
-
- Added `
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
- Added `ctx.extensionName` to `ExtensionContext` — the current extension's name
|
|
71
|
-
- Added `pi.setName()` to `ExtensionAPI` — override auto-derived extension name
|
|
72
|
-
- Added `pi.extensionName` to `ExtensionAPI` — read current extension name
|
|
73
|
-
- Added extension name mechanism: auto-derived from file/directory/package name, with duplicate name validation at load time
|
|
92
|
+
- Added Xiaomi MiMo Token Plan provider support with `XIAOMI_API_KEY`, default model resolution, `/login` display support, and provider documentation ([#4005](https://github.com/badlogic/pi-mono/pull/4005) by [@Phoen1xCode](https://github.com/Phoen1xCode)).
|
|
93
|
+
- Added model-level `thinkingLevelMap` support in `models.json` and `pi.registerProvider()`, allowing models to expose only the thinking levels they actually support ([#3208](https://github.com/badlogic/pi-mono/issues/3208)).
|
|
94
|
+
- Added `shouldStopAfterTurn` agent loop callback for post-turn stop control, inherited from `@mariozechner/pi-agent-core`. See [`packages/agent/README.md`](https://github.com/badlogic/pi-mono/blob/main/packages/agent/README.md).
|
|
95
|
+
|
|
96
|
+
### Fixed
|
|
74
97
|
|
|
75
|
-
|
|
98
|
+
- Fixed the default transport setting to use `auto`, allowing OpenAI Codex to use cached WebSocket context when available ([#4083](https://github.com/badlogic/pi-mono/issues/4083)).
|
|
99
|
+
- Fixed `pi.registerProvider()` to honor per-model `baseUrl` overrides ([#4063](https://github.com/badlogic/pi-mono/issues/4063)).
|
|
100
|
+
- Fixed self-update detection so `pi` correctly identifies when a newer version is available and applies updates ([#3942](https://github.com/badlogic/pi-mono/issues/3942), [#3980](https://github.com/badlogic/pi-mono/issues/3980), [#3922](https://github.com/badlogic/pi-mono/issues/3922)).
|
|
76
101
|
|
|
77
|
-
## [0.
|
|
102
|
+
## [0.71.1] - 2026-05-01
|
|
78
103
|
|
|
79
104
|
### Added
|
|
80
105
|
|
|
81
|
-
- Added `
|
|
106
|
+
- Added `websocket-cached` to the transport setting options for the OpenAI Codex provider used with ChatGPT subscription auth. This keeps the same WebSocket open for a session and, after the first request, sends only the new conversation items instead of resending the full chat history when possible.
|
|
82
107
|
|
|
83
|
-
## [0.
|
|
108
|
+
## [0.71.0] - 2026-04-30
|
|
109
|
+
|
|
110
|
+
### Breaking Changes
|
|
111
|
+
|
|
112
|
+
- Removed built-in Google Gemini CLI and Google Antigravity support. Existing configurations using those providers must switch to another supported provider.
|
|
113
|
+
|
|
114
|
+
### New Features
|
|
115
|
+
|
|
116
|
+
- Cloudflare AI Gateway provider support with `CLOUDFLARE_API_KEY`/`CLOUDFLARE_ACCOUNT_ID`/`CLOUDFLARE_GATEWAY_ID`, default model resolution, and `/login` display. See [docs/providers.md#cloudflare-ai-gateway](docs/providers.md#cloudflare-ai-gateway). ([#3856](https://github.com/badlogic/pi-mono/pull/3856) by [@mchenco](https://github.com/mchenco)).
|
|
117
|
+
- Moonshot AI provider support with `MOONSHOT_API_KEY`, default model resolution, and `/login` display.
|
|
118
|
+
- Mistral Medium 3.5 built-in model support. See [docs/providers.md#api-keys](docs/providers.md#api-keys). ([#4009](https://github.com/badlogic/pi-mono/pull/4009) by [@technocidal](https://github.com/technocidal)).
|
|
119
|
+
- Extension APIs can replace finalized `message_end` messages, wrap custom editor factories via `ctx.ui.getEditorComponent()`, and observe thinking level changes. See [docs/extensions.md#message_start--message_update--message_end](docs/extensions.md#message_start--message_update--message_end), [docs/extensions.md#widgets-status-and-footer](docs/extensions.md#widgets-status-and-footer), and [docs/extensions.md#thinking_level_select](docs/extensions.md#thinking_level_select).
|
|
120
|
+
- `PI_CODING_AGENT_SESSION_DIR` configures session storage from the environment. See [docs/usage.md#environment-variables](docs/usage.md#environment-variables).
|
|
121
|
+
|
|
122
|
+
### Added
|
|
123
|
+
|
|
124
|
+
- Added Cloudflare AI Gateway as a built-in provider with `CLOUDFLARE_API_KEY`/`CLOUDFLARE_ACCOUNT_ID`/`CLOUDFLARE_GATEWAY_ID` setup, default model resolution, `/login` display support, and provider documentation ([#3856](https://github.com/badlogic/pi-mono/pull/3856) by [@mchenco](https://github.com/mchenco)).
|
|
125
|
+
- Added Moonshot AI as a built-in provider with `MOONSHOT_API_KEY` setup, default model resolution, and `/login` display support.
|
|
126
|
+
- Added Mistral Medium 3.5 built-in model support via `@mariozechner/pi-ai` ([#4009](https://github.com/badlogic/pi-mono/pull/4009) by [@technocidal](https://github.com/technocidal)).
|
|
127
|
+
- Added routed OpenAI-compatible response model metadata in assistant messages, so providers such as OpenRouter can expose the concrete model used ([#3968](https://github.com/badlogic/pi-mono/pull/3968) by [@purrgrammer](https://github.com/purrgrammer)).
|
|
128
|
+
- Added `PI_CODING_AGENT_SESSION_DIR` as an environment equivalent to `--session-dir` ([#4027](https://github.com/badlogic/pi-mono/issues/4027)).
|
|
129
|
+
- Added `message_end` extension result support for replacing finalized messages, enabling extensions to override assistant usage cost ([#3982](https://github.com/badlogic/pi-mono/issues/3982)).
|
|
130
|
+
- Added top-level `name` support to `pi.registerProvider()` so extension-registered providers can show a friendly name in `/login` ([#3956](https://github.com/badlogic/pi-mono/issues/3956)).
|
|
131
|
+
- Added `ctx.ui.getEditorComponent()` so extensions can wrap the currently configured custom editor factory ([#3935](https://github.com/badlogic/pi-mono/issues/3935)).
|
|
132
|
+
- Added a `thinking_level_select` extension event for observing thinking level changes ([#3888](https://github.com/badlogic/pi-mono/issues/3888)).
|
|
133
|
+
|
|
134
|
+
### Fixed
|
|
135
|
+
|
|
136
|
+
- Fixed WSL clipboard image paste by passing the PowerShell save path directly instead of through a custom environment variable ([#2469](https://github.com/badlogic/pi-mono/issues/2469)).
|
|
137
|
+
- Fixed Google Vertex Gemini 3 tool call replay for unsigned tool calls ([#4032](https://github.com/badlogic/pi-mono/issues/4032)).
|
|
138
|
+
- Fixed blocked `edit` tool results rendering the rejection reason twice after interactive extension confirmation ([#3830](https://github.com/badlogic/pi-mono/issues/3830)).
|
|
139
|
+
- Fixed extension-triggered thinking level changes refreshing the interactive editor border immediately ([#3888](https://github.com/badlogic/pi-mono/issues/3888)).
|
|
140
|
+
- Fixed the coding-agent README See Also link to point at `@mariozechner/pi-agent-core` ([#4023](https://github.com/badlogic/pi-mono/issues/4023)).
|
|
141
|
+
- Fixed `grep` and `find` tool argument injection for flag-like search patterns ([#4018](https://github.com/badlogic/pi-mono/issues/4018)).
|
|
142
|
+
- Fixed PowerShell shell command output on Windows by only spawning detached processes on Unix ([#4013](https://github.com/badlogic/pi-mono/pull/4013) by [@picasso250](https://github.com/picasso250)).
|
|
143
|
+
- Fixed Bun package manager `node_modules` discovery when `npmCommand` is configured to use Bun ([#3998](https://github.com/badlogic/pi-mono/pull/3998) by [@thirtythreeforty](https://github.com/thirtythreeforty)).
|
|
144
|
+
- Fixed edit and edit-preview access failures to report filesystem errors correctly ([#3955](https://github.com/badlogic/pi-mono/pull/3955) by [@rwachtler](https://github.com/rwachtler)).
|
|
145
|
+
- Fixed `ProcessTerminal` sizing to use `COLUMNS` and `LINES` before falling back to 80x24 ([#4004](https://github.com/badlogic/pi-mono/issues/4004)).
|
|
146
|
+
- Updated `@anthropic-ai/sdk` to clear GHSA-p7fg-763f-g4gf audit findings ([#3992](https://github.com/badlogic/pi-mono/issues/3992)).
|
|
147
|
+
- Updated `@mariozechner/clipboard` to an attested release so package managers with trust policies do not reject installs ([#3946](https://github.com/badlogic/pi-mono/issues/3946)).
|
|
148
|
+
- Fixed project context discovery to load `AGENTS.MD` files in addition to `AGENTS.md` ([#3949](https://github.com/badlogic/pi-mono/issues/3949)).
|
|
149
|
+
- Fixed `/handoff` to use compacted session context instead of pre-compaction raw messages ([#3945](https://github.com/badlogic/pi-mono/issues/3945)).
|
|
150
|
+
- Fixed DeepSeek V4 Flash `xhigh` thinking support so requests map to DeepSeek's `max` reasoning effort ([#3944](https://github.com/badlogic/pi-mono/issues/3944)).
|
|
151
|
+
- Fixed Anthropic streams that end before `message_stop` to be treated as errors instead of successful partial responses ([#3936](https://github.com/badlogic/pi-mono/issues/3936)).
|
|
152
|
+
- Fixed generated OpenAI-compatible DeepSeek V4 reasoning compatibility outside the direct DeepSeek provider ([#3940](https://github.com/badlogic/pi-mono/issues/3940)).
|
|
153
|
+
- Fixed idle follow-up submission to clear the editor like normal message submission ([#3926](https://github.com/badlogic/pi-mono/issues/3926)).
|
|
154
|
+
- Fixed editor rendering artifacts for Thai Sara Am and Lao AM vowel characters ([#3904](https://github.com/badlogic/pi-mono/issues/3904)).
|
|
155
|
+
- Fixed DeepSeek V4 Flash and V4 Pro pricing metadata to match current official rates ([#3910](https://github.com/badlogic/pi-mono/issues/3910)).
|
|
156
|
+
- Updated the sandbox extension example lockfile to resolve the vulnerable `lodash-es` transitive dependency ([#3901](https://github.com/badlogic/pi-mono/issues/3901)).
|
|
157
|
+
- Fixed DeepSeek prompt cache hits to be tracked from OpenAI-compatible usage responses ([#3880](https://github.com/badlogic/pi-mono/issues/3880)).
|
|
158
|
+
|
|
159
|
+
### Removed
|
|
160
|
+
|
|
161
|
+
- Removed the discontinued Qwen CLI OAuth custom provider extension example ([#3832](https://github.com/badlogic/pi-mono/pull/3832) by [@4h9fbZ](https://github.com/4h9fbZ)).
|
|
162
|
+
- Removed Google Gemini CLI and Google Antigravity built-in login, default model, documentation, and example extension support.
|
|
163
|
+
|
|
164
|
+
## [0.70.6] - 2026-04-28
|
|
165
|
+
|
|
166
|
+
### New Features
|
|
167
|
+
|
|
168
|
+
- Cloudflare Workers AI provider support with `CLOUDFLARE_API_KEY`/`CLOUDFLARE_ACCOUNT_ID` setup. See [docs/providers.md#api-keys](docs/providers.md#api-keys). ([#3851](https://github.com/badlogic/pi-mono/pull/3851) by [@mchenco](https://github.com/mchenco))
|
|
169
|
+
- Pi update checks now use `pi.dev` and identify Pi with a `pi/<version>` user agent. See [docs/packages.md](docs/packages.md). ([#3877](https://github.com/badlogic/pi-mono/pull/3877) by [@mitsuhiko](https://github.com/mitsuhiko))
|
|
84
170
|
|
|
85
171
|
### Added
|
|
86
172
|
|
|
87
|
-
- Added
|
|
88
|
-
- Added `ask-notify` tool to ask-tools extension (fire-and-forget notification via `ctx.ui.notify()`)
|
|
89
|
-
- Added `multiple` option to `ask-select` tool for multi-select (checkbox) support via `ctx.ui.select(title, options, { multiple: true })`
|
|
90
|
-
- Added `editor` UI interception in `ExtensionRunner` (was missing, now `ctx.ui.editor()` calls are intercepted like confirm/select/input)
|
|
91
|
-
- Added checkbox multi-select mode to `ExtensionSelectorComponent` (Space to toggle, Enter to confirm)
|
|
92
|
-
- Added `multiple` field to `UIEvent` and `ExtensionUIDialogOptions` types
|
|
93
|
-
- Added `parseMultiSelectAnswer` to message-bridge for parsing array answers from remote
|
|
94
|
-
- Added `editor` method interception to message-bridge extension
|
|
173
|
+
- Added Cloudflare Workers AI as a built-in provider with `CLOUDFLARE_API_KEY`/`CLOUDFLARE_ACCOUNT_ID` setup, default model resolution, `/login` support, and provider documentation ([#3851](https://github.com/badlogic/pi-mono/pull/3851) by [@mchenco](https://github.com/mchenco)).
|
|
95
174
|
|
|
96
175
|
### Changed
|
|
97
176
|
|
|
98
|
-
-
|
|
99
|
-
|
|
100
|
-
|
|
177
|
+
- Changed Pi version checks to identify Pi with a `pi/<version>` user agent ([#3877](https://github.com/badlogic/pi-mono/pull/3877) by [@mitsuhiko](https://github.com/mitsuhiko)).
|
|
178
|
+
|
|
179
|
+
### Fixed
|
|
180
|
+
|
|
181
|
+
- Fixed config selector scroll indicators to show item counts instead of line counts ([#3820](https://github.com/badlogic/pi-mono/pull/3820) by [@aliou](https://github.com/aliou)).
|
|
182
|
+
- Fixed exported HTML to escape embedded image data and session metadata, preventing crafted session content from injecting markup ([#3819](https://github.com/badlogic/pi-mono/pull/3819) by [@justinpbarnett](https://github.com/justinpbarnett), [#3883](https://github.com/badlogic/pi-mono/pull/3883) by [@justinpbarnett](https://github.com/justinpbarnett)).
|
|
183
|
+
- Fixed Bun-based package manager startup by locating global `node_modules` relative to Bun's install layout ([#3861](https://github.com/badlogic/pi-mono/pull/3861) by [@thirtythreeforty](https://github.com/thirtythreeforty)).
|
|
184
|
+
- Fixed Bedrock inference profile capability checks by normalizing profile ARNs to the underlying model name.
|
|
185
|
+
- Fixed file discovery to fall back to `fdfind` when `fd` is unavailable.
|
|
186
|
+
- Fixed `pi update` to skip self-update reinstalls when the installed version is already current ([#3853](https://github.com/badlogic/pi-mono/issues/3853)).
|
|
187
|
+
- Fixed Cloudflare Workers AI attribution headers to honor the install telemetry setting.
|
|
188
|
+
- Fixed `pi update --self` detection and execution for Windows package-manager shim installs, including symlinked global package roots, and print the manual fallback command when self-update fails ([#3857](https://github.com/badlogic/pi-mono/issues/3857)).
|
|
101
189
|
|
|
102
|
-
## [0.
|
|
190
|
+
## [0.70.5] - 2026-04-27
|
|
191
|
+
|
|
192
|
+
### Fixed
|
|
193
|
+
|
|
194
|
+
- Fixed HTML export preserving ANSI-renderer trailing padding as extra blank wrapped lines.
|
|
195
|
+
|
|
196
|
+
## [0.70.4] - 2026-04-27
|
|
197
|
+
|
|
198
|
+
### Fixed
|
|
199
|
+
|
|
200
|
+
- Fixed packaged `pi` startup failing because the session selector imported a source-only utility path.
|
|
201
|
+
|
|
202
|
+
## [0.70.3] - 2026-04-27
|
|
203
|
+
|
|
204
|
+
### New Features
|
|
205
|
+
|
|
206
|
+
- `pi update` can now update pi itself in addition to installed pi packages. See [docs/packages.md](docs/packages.md). ([#3680](https://github.com/badlogic/pi-mono/pull/3680) by [@mitsuhiko](https://github.com/mitsuhiko))
|
|
207
|
+
- Azure Cognitive Services endpoint support for Azure OpenAI Responses deployments. See [docs/providers.md#api-keys](docs/providers.md#api-keys). ([#3799](https://github.com/badlogic/pi-mono/pull/3799) by [@marcbloech](https://github.com/marcbloech))
|
|
208
|
+
- Suppressible Anthropic extra-usage billing warning via `warnings.anthropicExtraUsage` in `/settings`. See [docs/settings.md](docs/settings.md). ([#3808](https://github.com/badlogic/pi-mono/issues/3808))
|
|
209
|
+
- Extension-controlled working row visibility via `ctx.ui.setWorkingVisible()`, allowing extensions to hide the built-in loader row and render custom working state. See [docs/extensions.md](docs/extensions.md) and [examples/extensions/border-status-editor.ts](examples/extensions/border-status-editor.ts). ([#3674](https://github.com/badlogic/pi-mono/issues/3674))
|
|
103
210
|
|
|
104
211
|
### Added
|
|
105
212
|
|
|
106
|
-
- Added `
|
|
107
|
-
-
|
|
213
|
+
- Added `pi update` support for updating pi itself in addition to installed pi packages ([#3680](https://github.com/badlogic/pi-mono/pull/3680) by [@mitsuhiko](https://github.com/mitsuhiko)).
|
|
214
|
+
- Added Azure Cognitive Services endpoint support for Azure OpenAI Responses base URLs ([#3799](https://github.com/badlogic/pi-mono/pull/3799) by [@marcbloech](https://github.com/marcbloech)).
|
|
215
|
+
- Added `warnings.anthropicExtraUsage` and a `/settings` warnings submenu to suppress the Anthropic extra usage billing warning ([#3808](https://github.com/badlogic/pi-mono/issues/3808))
|
|
216
|
+
- Added `ctx.ui.setWorkingVisible()` so extensions can hide the built-in interactive working loader row without reserving layout space, plus a border-status editor example that moves working state into a custom editor border ([#3674](https://github.com/badlogic/pi-mono/issues/3674))
|
|
108
217
|
|
|
109
|
-
###
|
|
218
|
+
### Fixed
|
|
110
219
|
|
|
111
|
-
-
|
|
112
|
-
-
|
|
220
|
+
- Fixed duplicate printable characters from Kitty keyboard protocol CSI-u plus raw character input on layouts such as Italian ([#3780](https://github.com/badlogic/pi-mono/issues/3780)).
|
|
221
|
+
- Fixed API-key environment discovery and Bun startup to fall back to `/proc/self/environ` when Bun's sandbox leaves `process.env` empty ([#3801](https://github.com/badlogic/pi-mono/pull/3801) by [@mdsjip](https://github.com/mdsjip)).
|
|
222
|
+
- Fixed Bun sandboxed package-manager commands when `process.env` is empty ([#3807](https://github.com/badlogic/pi-mono/pull/3807) by [@mdsjip](https://github.com/mdsjip)).
|
|
223
|
+
- Fixed symlinked packages, resources, skills, and sessions being duplicated in selectors and loaders ([#3818](https://github.com/badlogic/pi-mono/pull/3818) by [@aliou](https://github.com/aliou)).
|
|
224
|
+
- Fixed Bedrock prompt-caching and adaptive-thinking capability checks for inference profile ARNs ([#3527](https://github.com/badlogic/pi-mono/pull/3527) by [@anirudhmarc](https://github.com/anirudhmarc)).
|
|
225
|
+
- Fixed OpenAI Codex Responses default verbosity to `low` when no verbosity is specified.
|
|
226
|
+
- Stopped sending empty `tools` arrays to providers that reject them when tools are disabled ([#3650](https://github.com/badlogic/pi-mono/pull/3650) by [@HQidea](https://github.com/HQidea)).
|
|
227
|
+
- Fixed Anthropic SSE parsing to ignore unknown proxy events such as OpenAI-style `done` terminators ([#3708](https://github.com/badlogic/pi-mono/issues/3708)).
|
|
228
|
+
- Fixed provider registration with override-only `models.json` entries to preserve built-in model lists ([#3651](https://github.com/badlogic/pi-mono/issues/3651)).
|
|
229
|
+
- Fixed `/login` to show auth supplied by `models.json` provider definitions.
|
|
230
|
+
- Fixed HTML export whitespace around extension-rendered tool output and expandable output hints.
|
|
231
|
+
- Fixed bash executor temp output streams leaking file descriptors when output was truncated by line count ([#3786](https://github.com/badlogic/pi-mono/issues/3786))
|
|
232
|
+
- Fixed extension `pi.setSessionName()` updates to refresh the interactive terminal title immediately ([#3686](https://github.com/badlogic/pi-mono/issues/3686))
|
|
233
|
+
- Fixed `/tree` cancellation via `session_before_tree` leaving the session stuck in compaction state ([#3688](https://github.com/badlogic/pi-mono/issues/3688))
|
|
234
|
+
- Fixed Escape interrupt handling when extensions hide the built-in working loader row ([#3674](https://github.com/badlogic/pi-mono/issues/3674))
|
|
235
|
+
- Fixed coding-agent test expectations for current default models and missing-auth guidance.
|
|
236
|
+
- Fixed long local-LLM SSE streams aborting at 5 minutes with `UND_ERR_BODY_TIMEOUT` by disabling undici `bodyTimeout`/`headersTimeout` on the global dispatcher; provider SDKs continue to enforce their own deadlines via `retry.provider.timeoutMs` ([#3715](https://github.com/badlogic/pi-mono/issues/3715))
|
|
113
237
|
|
|
114
|
-
## [0.
|
|
238
|
+
## [0.70.2] - 2026-04-24
|
|
239
|
+
|
|
240
|
+
### Fixed
|
|
241
|
+
|
|
242
|
+
- Fixed provider retry/timeout forwarding to omit undefined provider request controls, avoiding downstream SDK validation errors such as `timeout must be an integer` when `retry.provider.timeoutMs` is not configured ([#3627](https://github.com/badlogic/pi-mono/issues/3627))
|
|
243
|
+
|
|
244
|
+
## [0.70.1] - 2026-04-24
|
|
245
|
+
|
|
246
|
+
### New Features
|
|
247
|
+
|
|
248
|
+
- DeepSeek provider support with V4 Flash/Pro models and `DEEPSEEK_API_KEY` authentication. See [README.md#providers--models](README.md#providers--models) and [docs/providers.md#api-keys](docs/providers.md#api-keys).
|
|
249
|
+
- Provider request timeout/retry controls via `retry.provider.{timeoutMs,maxRetries,maxRetryDelayMs}`, useful for long-running local inference and provider SDK retry behavior. See [docs/settings.md#retry](docs/settings.md#retry). ([#3627](https://github.com/badlogic/pi-mono/issues/3627))
|
|
115
250
|
|
|
116
251
|
### Added
|
|
117
252
|
|
|
118
|
-
- Added
|
|
119
|
-
- Added `registerChannel(name)` to `ExtensionAPI` for bidirectional Extension <-> RPC Client communication, with deferred registration support during extension loading, buffered sends/receives, and request/response via `channel.invoke()` (fork feature)
|
|
120
|
-
- Added `RpcClient.channel(name)` API for client-side channel access
|
|
121
|
-
- Added `ChannelManager` for managing channel lifecycle, inbound routing, and invoke resolution
|
|
122
|
-
- Added `callLLM()` to `ExtensionAPI` for extensions to invoke LLM completions with custom prompts
|
|
123
|
-
- Added `session_rename` event to `ExtensionAPI.on()`, fired when `setSessionName()` changes the session display name, with `oldName`/`newName` payload
|
|
124
|
-
- Added `auto-session-title` example extension that generates session names from conversation context using `callLLM`
|
|
253
|
+
- Added DeepSeek to built-in provider setup, default model resolution, and provider documentation.
|
|
125
254
|
|
|
126
255
|
### Fixed
|
|
127
256
|
|
|
128
|
-
- Fixed `
|
|
129
|
-
- Fixed
|
|
257
|
+
- Fixed `/copy` to avoid unbounded OSC 52 writes and clipboard races that could break terminal rendering or panic the native clipboard addon ([#3639](https://github.com/badlogic/pi-mono/issues/3639))
|
|
258
|
+
- Fixed extension flag docs to show `pi.getFlag()` using registered flag names without the CLI `--` prefix ([#3614](https://github.com/badlogic/pi-mono/issues/3614))
|
|
259
|
+
- Fixed provider retry/timeout settings wiring by adding `retry.provider.{timeoutMs,maxRetries,maxRetryDelayMs}`, migrating legacy `retry.maxDelayMs`, and forwarding provider controls into `streamSimple` request options ([#3627](https://github.com/badlogic/pi-mono/issues/3627))
|
|
260
|
+
- Fixed Windows git package installs to bypass `cmd.exe` for native git commands, so install paths containing spaces no longer break `pi install git:...` with `fatal: Too many arguments` ([#3642](https://github.com/badlogic/pi-mono/issues/3642))
|
|
261
|
+
- Fixed DeepSeek V4 session replay 400 errors by sending DeepSeek-compatible thinking controls and replayed assistant `reasoning_content` fields ([#3636](https://github.com/badlogic/pi-mono/issues/3636))
|
|
262
|
+
- Fixed GPT-5.5 generated context window metadata to use the observed 272k limit.
|
|
263
|
+
- Fixed CSI-u Ctrl+letter decoding inside bracketed paste, so pasted modified-key escape sequences no longer become literal editor text ([#3623](https://github.com/badlogic/pi-mono/pull/3623) by [@Exrun94](https://github.com/Exrun94))
|
|
264
|
+
|
|
265
|
+
## [0.70.0] - 2026-04-23
|
|
266
|
+
|
|
267
|
+
### New Features
|
|
268
|
+
|
|
269
|
+
- Searchable auth provider login flow: the `/login` provider selector now supports fuzzy search/filtering, making it faster to find providers when many are configured. See [docs/providers.md](docs/providers.md). ([#3572](https://github.com/badlogic/pi-mono/pull/3572) by [@mitsuhiko](https://github.com/mitsuhiko))
|
|
270
|
+
- GPT-5.5 Codex support: `openai-codex/gpt-5.5` is available as a model option, including `xhigh` reasoning support and corrected priority-tier pricing.
|
|
271
|
+
- Terminal progress indicators are now opt-in: OSC 9;4 progress reporting during streaming/compaction is off by default and can be toggled via `terminal.showTerminalProgress` in `/settings` ([#3588](https://github.com/badlogic/pi-mono/issues/3588))
|
|
272
|
+
- `--no-builtin-tools` / `createAgentSession({ noTools: "builtin" })` now correctly disables only built-in tools while keeping extension tools active. See [docs/extensions.md](docs/extensions.md) and [README.md](README.md) ([#3592](https://github.com/badlogic/pi-mono/issues/3592))
|
|
273
|
+
|
|
274
|
+
### Breaking Changes
|
|
275
|
+
|
|
276
|
+
- Disabled OSC 9;4 terminal progress indicators by default. Set `terminal.showTerminalProgress` to `true` in `/settings` to re-enable ([#3588](https://github.com/badlogic/pi-mono/issues/3588))
|
|
277
|
+
|
|
278
|
+
### Added
|
|
279
|
+
|
|
280
|
+
- Added searchable auth provider login flow with fuzzy filtering in the provider selector ([#3572](https://github.com/badlogic/pi-mono/pull/3572) by [@mitsuhiko](https://github.com/mitsuhiko))
|
|
281
|
+
- Added GPT-5.5 Codex model
|
|
282
|
+
- Added auth source labels in `/login` so provider entries can show when auth comes from `--api-key`, an environment variable, or custom provider fallback without exposing secrets.
|
|
283
|
+
|
|
284
|
+
### Changed
|
|
130
285
|
|
|
286
|
+
- Updated default model selection across providers to current recommended models.
|
|
287
|
+
- Improved stale extension context errors after session replacement or reload to tell extension authors to avoid captured `pi`/command `ctx` and use `withSession` for post-replacement work.
|
|
288
|
+
|
|
289
|
+
### Fixed
|
|
290
|
+
|
|
291
|
+
- Fixed `/model` selector cancellation to request render instead of incorrectly triggering login selector.
|
|
292
|
+
- Changed login, OAuth, and extension selectors for more consistent styling.
|
|
293
|
+
- Added Amazon Bedrock setup guidance to `/login` and updated `/model` copy to refer to configured providers instead of only API keys.
|
|
294
|
+
- Improved no-model and missing-auth warnings to point users to `/login` for OAuth or API key setup.
|
|
295
|
+
- Fixed `/quit` shutdown ordering to stop the TUI before extension UI teardown can repaint, preserving the final rendered frame while still emitting `session_shutdown` before process exit.
|
|
296
|
+
- Fixed `SettingsManager.inMemory()` initial settings being lost after reloads triggered by SDK resource loading ([#3616](https://github.com/badlogic/pi-mono/issues/3616))
|
|
297
|
+
- Fixed `models.json` provider compatibility to accept `compat.supportsLongCacheRetention`, allowing proxies to opt out of long-retention cache fields when needed while long retention is enabled by default when requested ([#3543](https://github.com/badlogic/pi-mono/issues/3543))
|
|
298
|
+
- Fixed `--thinking xhigh` for `openai-codex` `gpt-5.5` so it is no longer downgraded to `high`.
|
|
299
|
+
- Fixed git package installs with custom `npmCommand` values such as `pnpm` by avoiding npm-specific production flags in that compatibility path ([#3604](https://github.com/badlogic/pi-mono/issues/3604))
|
|
300
|
+
- Fixed first user messages rendering without spacing after existing notices such as compaction summaries or status messages ([#3613](https://github.com/badlogic/pi-mono/issues/3613))
|
|
301
|
+
- Fixed the handoff extension example to use the replacement-session context after creating a new session, avoiding stale `ctx` errors when it installs the generated prompt ([#3606](https://github.com/badlogic/pi-mono/issues/3606))
|
|
302
|
+
- Fixed session replacement and `/quit` teardown ordering to run host-owned extension UI cleanup synchronously after `session_shutdown` handlers complete but before invalidating the old extension context, preventing stale extension UI from rendering against a disposed session ([#3597](https://github.com/badlogic/pi-mono/pull/3597) by [@vegarsti](https://github.com/vegarsti))
|
|
303
|
+
- Fixed crash on `/quit` when an extension registers a custom footer whose `render()` accesses `ctx`, by tearing down extension-provided UI before invalidating the extension runner during shutdown ([#3595](https://github.com/badlogic/pi-mono/issues/3595))
|
|
304
|
+
- Fixed auto-retry to treat Bedrock/Smithy HTTP/2 transport failures like `http2 request did not get a response` as transient errors, so the agent retries automatically instead of waiting for a manual nudge ([#3594](https://github.com/badlogic/pi-mono/issues/3594))
|
|
305
|
+
- Fixed the CLI/SDK tool-selection split so `--no-builtin-tools` and `createAgentSession({ noTools: "builtin" })` disable only built-in default tools while keeping extension/custom tools enabled, instead of falling through to the same "disable everything" path as `--no-tools` ([#3592](https://github.com/badlogic/pi-mono/issues/3592))
|
|
306
|
+
- Fixed remaining hardcoded `pi` / `.pi` branding to route through `APP_NAME` and `CONFIG_DIR_NAME` extension points, so SDK rebrands get consistent naming in `/quit` description, `process.title`, and the project-local extensions directory ([#3583](https://github.com/badlogic/pi-mono/pull/3583) by [@jlaneve](https://github.com/jlaneve))
|
|
307
|
+
- Fixed `pi-coding-agent` shipping `uuid@11`, which triggered `npm audit` moderate vulnerability reports for downstream installs; the package now depends on `uuid@14` ([#3577](https://github.com/badlogic/pi-mono/issues/3577))
|
|
308
|
+
- Fixed `openai-completions` streamed tool-call assembly to coalesce deltas by stable tool index when OpenAI-compatible gateways mutate tool call IDs mid-stream, preventing malformed Kimi K2.6/OpenCode tool streams from splitting one call into multiple bogus tool calls ([#3576](https://github.com/badlogic/pi-mono/issues/3576))
|
|
131
309
|
- Fixed `ctx.ui.setWorkingMessage()` to persist across loader recreation, matching the behavior of `ctx.ui.setWorkingIndicator()` ([#3566](https://github.com/badlogic/pi-mono/issues/3566))
|
|
132
310
|
- Fixed coding-agent `fs.watch` error handling for theme and git-footer watchers to retry after transient watcher failures such as `EMFILE`, avoiding startup crashes in large repos ([#3564](https://github.com/badlogic/pi-mono/issues/3564))
|
|
311
|
+
- Fixed built-in `kimi-coding` model generation to attach the expected `User-Agent` header so direct Kimi Coding requests use the provider's expected client identity ([#3586](https://github.com/badlogic/pi-mono/issues/3586))
|
|
312
|
+
- Fixed extension shortcut conflict diagnostics to display at startup instead of only on reload, so extension authors discover reserved keybinding conflicts immediately rather than discovering them later through user feedback ([#3617](https://github.com/badlogic/pi-mono/issues/3617))
|
|
313
|
+
- Fixed `models.json` Anthropic-compatible provider configuration to accept `compat.supportsEagerToolInputStreaming`, allowing proxies that reject per-tool `eager_input_streaming` to use the legacy fine-grained tool streaming beta header instead ([#3575](https://github.com/badlogic/pi-mono/issues/3575))
|
|
314
|
+
- Fixed startup banner extension labels to strip trailing `index.js`/`index.ts` suffixes ([#3596](https://github.com/badlogic/pi-mono/pull/3596) by [@aliou](https://github.com/aliou))
|
|
315
|
+
- Fixed OSC 9;4 terminal progress updates to stay alive in terminals such as Ghostty during long-running agent work ([#3610](https://github.com/badlogic/pi-mono/issues/3610))
|
|
316
|
+
- Fixed OpenAI-compatible completion usage parsing to avoid double-counting reasoning tokens already included in `completion_tokens` ([#3581](https://github.com/badlogic/pi-mono/issues/3581))
|
|
317
|
+
- Fixed `openai-responses` compatibility for strict OpenAI-compatible proxies by allowing `models.json` to disable the underscore-containing `session_id` header with `compat.sendSessionIdHeader: false` ([#3579](https://github.com/badlogic/pi-mono/issues/3579))
|
|
318
|
+
- Fixed GPT-5.5 Codex capability handling to clamp unsupported minimal reasoning to `low` and apply the model's 2.5x priority service-tier pricing multiplier ([#3618](https://github.com/badlogic/pi-mono/pull/3618) by [@markusylisiurunen](https://github.com/markusylisiurunen))
|
|
133
319
|
|
|
134
320
|
## [0.69.0] - 2026-04-22
|
|
135
321
|
|
package/README.md
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
<p align="center">
|
|
2
2
|
<a href="https://pi.dev">
|
|
3
|
-
<img src="https://pi.dev/logo.svg"
|
|
3
|
+
<img alt="pi logo" src="https://pi.dev/logo-auto.svg" width="128">
|
|
4
4
|
</a>
|
|
5
5
|
</p>
|
|
6
6
|
<p align="center">
|
|
7
7
|
<a href="https://discord.com/invite/3cU7Bz4UPx"><img alt="Discord" src="https://img.shields.io/badge/discord-community-5865F2?style=flat-square&logo=discord&logoColor=white" /></a>
|
|
8
|
-
<a href="https://www.npmjs.com/package/@
|
|
9
|
-
<a href="https://github.com/badlogic/pi-mono/actions/workflows/ci.yml"><img alt="Build status" src="https://img.shields.io/github/actions/workflow/status/badlogic/pi-mono/ci.yml?style=flat-square&branch=main" /></a>
|
|
8
|
+
<a href="https://www.npmjs.com/package/@dyyz1993/pi-coding-agent"><img alt="npm" src="https://img.shields.io/npm/v/@dyyz1993/pi-coding-agent?style=flat-square" /></a>
|
|
10
9
|
</p>
|
|
11
10
|
<p align="center">
|
|
12
11
|
<a href="https://pi.dev">pi.dev</a> domain graciously donated by
|
|
@@ -69,7 +68,13 @@ I regularly publish my own `pi-mono` work sessions here:
|
|
|
69
68
|
## Quick Start
|
|
70
69
|
|
|
71
70
|
```bash
|
|
72
|
-
|
|
71
|
+
curl -fsSL https://pi.dev/install.sh | sh
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Or with npm:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
npm install -g @dyyz1993/pi-coding-agent
|
|
73
78
|
```
|
|
74
79
|
|
|
75
80
|
Authenticate with an API key:
|
|
@@ -100,19 +105,20 @@ For each built-in provider, pi maintains a list of tool-capable models, updated
|
|
|
100
105
|
- Anthropic Claude Pro/Max
|
|
101
106
|
- OpenAI ChatGPT Plus/Pro (Codex)
|
|
102
107
|
- GitHub Copilot
|
|
103
|
-
- Google Gemini CLI
|
|
104
|
-
- Google Antigravity
|
|
105
108
|
|
|
106
109
|
**API keys:**
|
|
107
110
|
- Anthropic
|
|
108
111
|
- OpenAI
|
|
109
112
|
- Azure OpenAI
|
|
113
|
+
- DeepSeek
|
|
110
114
|
- Google Gemini
|
|
111
115
|
- Google Vertex
|
|
112
116
|
- Amazon Bedrock
|
|
113
117
|
- Mistral
|
|
114
118
|
- Groq
|
|
115
119
|
- Cerebras
|
|
120
|
+
- Cloudflare AI Gateway
|
|
121
|
+
- Cloudflare Workers AI
|
|
116
122
|
- xAI
|
|
117
123
|
- OpenRouter
|
|
118
124
|
- Vercel AI Gateway
|
|
@@ -123,6 +129,10 @@ For each built-in provider, pi maintains a list of tool-capable models, updated
|
|
|
123
129
|
- Fireworks
|
|
124
130
|
- Kimi For Coding
|
|
125
131
|
- MiniMax
|
|
132
|
+
- Xiaomi MiMo
|
|
133
|
+
- Xiaomi MiMo Token Plan (China)
|
|
134
|
+
- Xiaomi MiMo Token Plan (Amsterdam)
|
|
135
|
+
- Xiaomi MiMo Token Plan (Singapore)
|
|
126
136
|
|
|
127
137
|
See [docs/providers.md](docs/providers.md) for detailed setup instructions.
|
|
128
138
|
|
|
@@ -216,7 +226,7 @@ Configure delivery in [settings](docs/settings.md): `steeringMode` and `followUp
|
|
|
216
226
|
|
|
217
227
|
## Sessions
|
|
218
228
|
|
|
219
|
-
Sessions are stored as JSONL files with a tree structure. Each entry has an `id` and `parentId`, enabling in-place branching without creating new files. See [docs/session.md](docs/session.md) for file format.
|
|
229
|
+
Sessions are stored as JSONL files with a tree structure. Each entry has an `id` and `parentId`, enabling in-place branching without creating new files. See [docs/session-format.md](docs/session-format.md) for file format.
|
|
220
230
|
|
|
221
231
|
### Management
|
|
222
232
|
|
|
@@ -271,7 +281,14 @@ Use `/settings` to modify common options, or edit JSON files directly:
|
|
|
271
281
|
|
|
272
282
|
See [docs/settings.md](docs/settings.md) for all options.
|
|
273
283
|
|
|
274
|
-
|
|
284
|
+
### Telemetry and update checks
|
|
285
|
+
|
|
286
|
+
Pi has two separate startup features:
|
|
287
|
+
|
|
288
|
+
- **Update check:** fetches `https://pi.dev/api/latest-version` to check whether a newer Pi version exists. Disable it with `PI_SKIP_VERSION_CHECK=1`. Disabling update checks only turns off this check.
|
|
289
|
+
- **Install/update telemetry:** after first install or a changelog-detected update, sends an anonymous version ping to `https://pi.dev/api/report-install`. Opt out by setting `enableInstallTelemetry` to `false` in `settings.json`, or by setting `PI_TELEMETRY=0`. This does not disable update checks; Pi may still contact `pi.dev` for the latest version unless update checks are disabled or offline mode is enabled.
|
|
290
|
+
|
|
291
|
+
Use `--offline` or `PI_OFFLINE=1` to disable all startup network operations described here, including update checks, package update checks, and install/update telemetry.
|
|
275
292
|
|
|
276
293
|
---
|
|
277
294
|
|
|
@@ -380,11 +397,15 @@ pi install ssh://git@github.com/user/repo@v1 # tag or commit
|
|
|
380
397
|
pi remove npm:@foo/pi-tools
|
|
381
398
|
pi uninstall npm:@foo/pi-tools # alias for remove
|
|
382
399
|
pi list
|
|
383
|
-
pi update # skips pinned packages
|
|
400
|
+
pi update # update pi and packages (skips pinned packages)
|
|
401
|
+
pi update --extensions # update packages only
|
|
402
|
+
pi update --self # update pi only
|
|
403
|
+
pi update --self --force # reinstall pi even if current
|
|
404
|
+
pi update npm:@foo/pi-tools # update one package
|
|
384
405
|
pi config # enable/disable extensions, skills, prompts, themes
|
|
385
406
|
```
|
|
386
407
|
|
|
387
|
-
Packages install to `~/.pi/agent/git/` (git) or global npm. Use `-l` for project-local installs (`.pi/git/`, `.pi/npm/`). Git packages install dependencies with `npm install --omit=dev
|
|
408
|
+
Packages install to `~/.pi/agent/git/` (git) or global npm. Use `-l` for project-local installs (`.pi/git/`, `.pi/npm/`). Git packages install dependencies with `npm install --omit=dev` by default, so runtime deps must be listed under `dependencies`; when `npmCommand` is configured, git packages use plain `install` for compatibility with wrappers. If you use a Node version manager and want package installs to reuse a stable npm context, set `npmCommand` in `settings.json`, for example `["mise", "exec", "node@20", "--", "npm"]`.
|
|
388
409
|
|
|
389
410
|
Create a package by adding a `pi` key to `package.json`:
|
|
390
411
|
|
|
@@ -412,7 +433,7 @@ See [docs/packages.md](docs/packages.md).
|
|
|
412
433
|
### SDK
|
|
413
434
|
|
|
414
435
|
```typescript
|
|
415
|
-
import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "@
|
|
436
|
+
import { AuthStorage, createAgentSession, ModelRegistry, SessionManager } from "@dyyz1993/pi-coding-agent";
|
|
416
437
|
|
|
417
438
|
const authStorage = AuthStorage.create();
|
|
418
439
|
const modelRegistry = ModelRegistry.create(authStorage);
|
|
@@ -475,7 +496,11 @@ pi [options] [@files...] [messages...]
|
|
|
475
496
|
pi install <source> [-l] # Install package, -l for project-local
|
|
476
497
|
pi remove <source> [-l] # Remove package
|
|
477
498
|
pi uninstall <source> [-l] # Alias for remove
|
|
478
|
-
pi update [source]
|
|
499
|
+
pi update [source|self|pi] # Update pi and packages (skips pinned packages)
|
|
500
|
+
pi update --extensions # Update packages only
|
|
501
|
+
pi update --self # Update pi only
|
|
502
|
+
pi update --self --force # Reinstall pi even if current
|
|
503
|
+
pi update --extension <src> # Update one package
|
|
479
504
|
pi list # List installed packages
|
|
480
505
|
pi config # Enable/disable package resources
|
|
481
506
|
```
|
|
@@ -501,7 +526,7 @@ cat README.md | pi -p "Summarize this text"
|
|
|
501
526
|
| Option | Description |
|
|
502
527
|
|--------|-------------|
|
|
503
528
|
| `--provider <name>` | Provider (anthropic, openai, google, etc.) |
|
|
504
|
-
| `--model <pattern>` | Model pattern or ID (supports `provider/id` and optional `:<thinking>`) |
|
|
529
|
+
| `--model <pattern>` | Model pattern or ID (supports `provider/id` and optional `:<thinking>`). Tier aliases: `fast` (quick), `pro` (standard), `max` (deep reasoning). See [Model Tier Aliases](docs/models.md#model-tier-aliases) |
|
|
505
530
|
| `--api-key <key>` | API key (overrides env vars) |
|
|
506
531
|
| `--thinking <level>` | `off`, `minimal`, `low`, `medium`, `high`, `xhigh` |
|
|
507
532
|
| `--models <patterns>` | Comma-separated patterns for Ctrl+P cycling |
|
|
@@ -522,8 +547,9 @@ cat README.md | pi -p "Summarize this text"
|
|
|
522
547
|
|
|
523
548
|
| Option | Description |
|
|
524
549
|
|--------|-------------|
|
|
525
|
-
| `--tools <list>` |
|
|
526
|
-
| `--no-tools` | Disable
|
|
550
|
+
| `--tools <list>`, `-t <list>` | Allowlist specific tool names across built-in, extension, and custom tools |
|
|
551
|
+
| `--no-builtin-tools`, `-nbt` | Disable built-in tools by default but keep extension/custom tools enabled |
|
|
552
|
+
| `--no-tools`, `-nt` | Disable all tools by default |
|
|
527
553
|
|
|
528
554
|
Available built-in tools: `read`, `bash`, `edit`, `write`, `grep`, `find`, `ls`
|
|
529
555
|
|
|
@@ -599,9 +625,11 @@ pi --thinking high "Solve this complex problem"
|
|
|
599
625
|
| Variable | Description |
|
|
600
626
|
|----------|-------------|
|
|
601
627
|
| `PI_CODING_AGENT_DIR` | Override config directory (default: `~/.pi/agent`) |
|
|
628
|
+
| `PI_CODING_AGENT_SESSION_DIR` | Override session storage directory (overridden by `--session-dir`) |
|
|
602
629
|
| `PI_PACKAGE_DIR` | Override package directory (useful for Nix/Guix where store paths tokenize poorly) |
|
|
603
|
-
| `
|
|
604
|
-
| `
|
|
630
|
+
| `PI_OFFLINE` | Disable startup network operations, including update checks, package update checks, and install/update telemetry |
|
|
631
|
+
| `PI_SKIP_VERSION_CHECK` | Skip the Pi version update check at startup. This prevents the `pi.dev` latest-version request |
|
|
632
|
+
| `PI_TELEMETRY` | Override install/update telemetry. Use `1`/`true`/`yes` to enable or `0`/`false`/`no` to disable. This does not disable update checks |
|
|
605
633
|
| `PI_CACHE_RETENTION` | Set to `long` for extended prompt cache (Anthropic: 1h, OpenAI: 24h) |
|
|
606
634
|
| `VISUAL`, `EDITOR` | External editor for Ctrl+G |
|
|
607
635
|
|
|
@@ -619,6 +647,6 @@ MIT
|
|
|
619
647
|
|
|
620
648
|
## See Also
|
|
621
649
|
|
|
622
|
-
- [@
|
|
623
|
-
- [@
|
|
624
|
-
- [@
|
|
650
|
+
- [@dyyz1993/pi-ai](https://www.npmjs.com/package/@dyyz1993/pi-ai): Core LLM toolkit
|
|
651
|
+
- [@dyyz1993/pi-agent-core](https://www.npmjs.com/package/@dyyz1993/pi-agent-core): Agent framework
|
|
652
|
+
- [@dyyz1993/pi-tui](https://www.npmjs.com/package/@dyyz1993/pi-tui): Terminal UI components
|