Skip to content

Pi-Bolt 0.8.6

Choose a tag to compare

@github-actions github-actions released this 15 Oct 09:11
· 164 commits to pi-bolt since this release
880a260

Pi-Bolt 0.8.6 runs Pi 1.2.0. Everything else is 0.8.5.

Pi 1.2.0

Everything in Pi 1.2.0, among it:

  • OpenRouter model lists per key: with an OpenRouter key, /model lists only the models that key may use, with its context
    size, output limit and prices, including regional endpoints set in models.json.
  • Configuration schemas: add $schema to settings.json, models.json, keybindings and themes for validation and
    completion in your editor.
  • Copying over remote sessions: PI_CLIPBOARD_OSC52=1 sends copied text to a remote client's clipboard when Pi-Bolt cannot
    tell it runs remotely, for example in a multiplexer attached from another machine.
  • Codemode: tool declarations show input constraints (integer, minimum, maximum, default), and codemode rows show how long a
    script has run.
  • pi-bolt -p exits 1, with a warning, when the answer was cut off at the model's output limit.
  • Anthropic requests that the provider refuses for the size of the strict tool set are retried once; "The upstream provider
    returned an error" is retried like other temporary provider errors.
  • MCP: tool calls accept structured content that is not an object, servers with resources register their tools at once, and a
    call cancelled while waiting for a sign-in refresh is not sent.
  • Key bindings that name a shifted symbol, such as ctrl++, match under the Kitty keyboard protocol.
  • On Windows, reading or writing auth.json retries briefly instead of failing while a previous lock is still being removed.

For extension authors

Pi 1.2.0 changes two things extensions can see:

  • before_agent_start also fires for runs that pi.sendMessage(..., { triggerTurn: true }) starts. Its event has a
    messageType: "user" events carry prompt and images, "custom" events the starting message. A handler meant only
    for prompts should check event.messageType === "user".
  • The session counts as busy while a run starts: pi.sendUserMessage() then needs deliverAs.

OpenSec's extensions (opensec-pi-subagents, opensec-pi-todo, opensec-pi-fff) work with both unchanged.

Themes: the theme schema is now https://pi.dev/schemas/theme.schema.json. A theme that fails it is reported when it loads.

Startup

Pi 1.2.0 builds the models.json and theme schemas, and compiles a checker for each, when it starts. Pi-Bolt keeps both out of
its start: models.json is checked against the same schema as plain JSON Schema, generated from 1.2.0's definitions, and the
theme schema is built the first time a theme of your own is loaded.

Engine

Unchanged since 0.8.5: this release's runtimes are 0.8.5's.

Install

curl -fsSL https://pi-bolt.opensec.in/install.sh | sh
irm https://pi-bolt.opensec.in/install.ps1 | iex
powershell -c "irm https://pi-bolt.opensec.in/install.ps1 | iex"

or pi-bolt update, or npm install -g --allow-scripts=pi-bolt pi-bolt, or bun add -g --trust pi-bolt.

Asset For
pi-bolt-linux-x64.tar.xz / .tar.gz Recommended on Linux. CPUs with AVX2 (Intel Haswell 2013+, AMD Zen+).
pi-bolt-linux-x64-baseline.tar.xz / .tar.gz Any x86-64 CPU with SSE4.2.
pi-bolt-linux-x64-jit.tar.xz / .tar.gz JIT also on, for plugins loaded at run time.
pi-bolt-darwin-arm64.tar.xz / .tar.gz macOS. Macs with Apple silicon, macOS 13 or later.
pi-bolt-darwin-arm64-jit.tar.xz / .tar.gz macOS, JIT also on.
pi-bolt-win32-x64.zip Windows. Windows 10 (1809) or 11 on x64; compiled code on AVX2 CPUs, bytecode on others.
pi-bolt-win32-x64-jit.zip Windows, JIT also on.
pi-bolt-runtime-linux-x64.tar.gz, pi-bolt-runtime-darwin-arm64.tar.gz, pi-bolt-runtime-win32-x64.zip The Pi-Bolt Bun runtime, for compiling plugins in.

Linux x86-64 with glibc 2.17 or later; macOS 13 or later on Apple silicon; Windows 10 1809 or later, or Windows 11, on x64.