github opensec-git/Pi-Bolt bolt-v1.0.0
Pi-Bolt 1.0.0

latest release: bolt-v1.0.1
18 hours ago

Pi-Bolt 1.0.0 makes the work Pi does on every frame, every request and every idle second cheaper, without changing what Pi
does: the same requests to the model, the same tool results, the same screen. Pi is 1.4.0, as in 0.9.9.

Long sessions no longer slow the screen down

Every frame used to visit every message of the session, so a frame cost more the longer the session was: at 2,292 entries (a
session that ran for hours) a frame took 25 million instructions on 0.9.9, and with sub-agents streaming in the same process
that could fill a core and make typing choppy. Pi on Node has the same design, at 182 million instructions per frame.

  • A frame costs the same at any length: only the messages that changed are drawn again, and in fullscreen only what the
    viewport needs. CPU while an answer streams into a resumed session (Linux x86-64, one CPU):

    Session 0.9.9 1.0.0 PiG 0.5.1
    2,292 entries, fullscreen 1.86 s 0.27 s 0.22 s
    2,292 entries, regular mode 4.29 s 0.73 s 0.22 s
    4,000 entries, fullscreen 4.46 s 0.48 s 0.54 s

    Typing while it streams echoes in 0.8 ms at the 95th percentile, against 12.9 ms on 0.9.9.

  • Slow frames cannot starve input: if a frame ever takes long, the next streaming or timer frame waits three times its
    duration, so drawing takes at most about a third of the thread. Frames for keys, paste, mouse and resize are drawn at once,
    as before.

  • Streaming: a chunk costs the same at any length of the reply, and a 60,000-character answer takes 12% less CPU (2.61 to
    2.31 s on Linux x86-64).

A faster start, lighter requests, a quieter idle

  • The model catalog is built per provider, when first needed: a start builds only the providers you have credentials for.
    pi -p runs 10% fewer instructions (294M to 266M on macOS) and 8% less CPU on Linux (63 to 58 ms).
  • Request bodies are not copied: a request's parts are sent as they are, not joined into one more copy first (a long
    session sends 9 MB per request). Over 40 prompts, CPU per prompt goes from 69.5 to 46.9 ms and Pi's own memory from 70 to
    39 MB (Linux x86-64); on ARM64 from 57.3 to 41.3 ms and from 114 to 44 MB.
  • Idle: the engine's garbage-collection timer stops while nothing is allocated, and the memory allocator's background pass
    backs off: 0.043 to 0.017 ms of CPU a second after two minutes idle (Linux x86-64), 0.41 to 0.20 on Windows.
  • The engine image is laid out hot first: compiled code and the start of the static heap are ordered by first use, so a
    session maps fewer pages. Peak memory of an interactive session: 134 to 116 MB on Linux x86-64; footprint 40 to 31 MB on
    macOS.

New

  • /usage: session tokens, cost and context, and your account's balance or limits where the provider exposes them
    (DeepSeek, OpenRouter, Codex, and Claude Code's cached limits when Pi is signed in to Anthropic with a Claude subscription)
    (#93 by @KrishBnsl).

Against PiG 0.5.1

Same work against the same local model; lower is better; Pi-Bolt 1.0.0 / PiG 0.5.1.

Linux x86-64 Linux ARM64 Windows x64 Apple M5
CPU per prompt, 40 prompts into a session, ms 46.9 / 49.5 41.3 / 43.3 61 / 69 19-26 / 31-53
Answer streaming into a 4,000-entry session, CPU s 0.48 / 0.54 0.32 / 0.45 0.50 / 0.61 0.21 / 0.23
CPU, interactive session, ms 176 / 165 171 / 160 274 / 378 78 / 118
Ready to type, ms 43 / 16 39 / 15 93 / 106 25 / 17
CPU, one prompt (pi -p), ms 58 / 24 55 / 26 97 / 93 34 / 24
CPU, streaming a 60,000-character answer, s 2.31 / 1.33 2.40 / 0.96 3.25 / 3.08 1.58 / 1.11
Peak memory, interactive, MB (own) 33 / 20 38 / 18 90 / 67 31 / 26

Pi-Bolt now uses less CPU than PiG deep into a session on every platform, and a third of PiG's CPU writing files through a
terminal. PiG still starts sooner, answers pi -p and streams a long answer with less CPU, peaks lower in memory and is a third
of the size: it is a native Go program. Pi-Bolt runs Pi's own code, so every Pi extension works unchanged.

The runtimes are new. Every speed and memory row improves on 0.9.9 or ties on every platform; the executable is about 1 MB
larger. Raw data and method: bench/results/2026-10-23-1.0.0 and
docs/BENCHMARKS.md.

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 x86-64. 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-linux-arm64.tar.xz / .tar.gz Linux on ARM64, any 64-bit ARM CPU; Android in Termux, with the installer.
pi-bolt-linux-arm64-jit.tar.xz / .tar.gz Linux on ARM64, JIT also on.
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-linux-arm64.tar.gz, pi-bolt-runtime-darwin-arm64.tar.gz, pi-bolt-runtime-win32-x64.zip The Pi-Bolt Bun runtime, for compiling plugins in.
pi-bolt-kit-linux-x64.tar.gz, pi-bolt-kit-linux-arm64.tar.gz, pi-bolt-kit-darwin-arm64.tar.gz What pi-bolt compile builds with, besides the runtime.

Linux x86-64 or ARM64 with glibc 2.17 or later; Android 7 or later on 64-bit ARM, in Termux; macOS 13 or later on Apple silicon;
Windows 10 1809 or later, or Windows 11, on x64.

Don't miss a new Pi-Bolt release

NewReleases is sending notifications on new releases.