github opensec-git/Pi-Bolt bolt-v1.0.7
Pi-Bolt 1.0.7

4 hours ago

Pi-Bolt 1.0.7 is a performance release for long sessions and long answers: in a long session a request costs about a quarter
less with OpenAI's APIs (10-25% with Anthropic, under 10% with Google) and Pi keeps about a third less memory, and a long
answer no longer costs more per chunk the longer it gets. Starting is about 1-2% cheaper. Pi behaves as in 1.0.6. Everything else is 1.0.6.

Changed

  • Requests in a long session (#202): a request no longer converts the
    whole history again. Each message's converted form, and its bytes in the request, are reused while the message is unchanged
    and in the same place; what depends on position, such as cache markers on the last messages, is still made for every
    request. The request bodies are byte for byte the same. This applies to OpenAI (Chat Completions and Responses), Anthropic
    and Google, while only Pi's own extensions are loaded; with any other extension Pi converts every request as 1.0.6 did,
    since an extension could change a message it was given. The first request after opening a session costs about the same
    as before. In pi-ai it is off unless the caller sets immutableMessages.
  • Memory in a long session (#197): the messages of a transcript no
    longer each keep what they need only while they stream, and the regular screen no longer keeps a second copy of every line.
  • Long answers (#199): the check for Mermaid diagrams no longer reads
    the whole answer at each chunk, which copied it in memory each time. A chunk now costs the same at 300,000 characters as at
    20,000.
  • Startup (#198,
    #203): the text segmenters, the Markdown parsers and the keybinding
    checker are made when first used, Bun's built-in modules share their embedded source text instead of copying it, and the
    event loop's date is computed without loading the time zone data.

With the default settings Pi draws the same screens and sends the same requests as 1.0.6. The release archives,
1.0.6 / 1.0.7: Linux and Windows on GitHub's runners (Linux pinned to one CPU), the M5 in instructions:

Linux x86-64 Linux ARM64 Apple M5 Windows x64
Ready to type 29 / 29 ms 34 / 33 ms 153.7 / 152.5 M 77 / 77 ms
pi -p, CPU 42 / 41 ms 49 / 48 ms 205.9 / 202.7 M 72 / 70 ms
pi --version, CPU 7 / 7 ms 6 / 6 ms 53.8 / 52.9 M 12 / 12 ms
-jit build, pi --version CPU 9 / 9 ms 6 / 6 ms 57.1 / 55.8 M 15 / 15 ms
60,000-character answer 1.75 / 1.51 s (-jit) 2.24 / 2.11 s 3,445 / 3,251 M 2.12 / 1.96 s
150,000-character answer 3.46 / 2.53 s 10,330 / 8,521 M
Memory after opening a 10,000-entry session 510 / 331 MB
10 turns in a 10,000-entry session, CPU 2.11 / 1.38 s
A request at 10,000 entries, CPU (OpenAI / Anthropic) 33 / 25 ms, 24 / 21 ms
Idle, CPU per second 0.029 / 0.019 ms 0.040 / 0.036 ms

The 60,000-character row on Linux x86-64 is the -jit build's: the default build's times varied as much between two copies
of 1.0.6 as between the releases on that runner. On Windows a 60,000-character answer also peaks 20 MB lower (103 / 82 MB).

Pi is 1.4.0. The runtimes are new: Bun's patch adds #203.

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, or:

  • Homebrew (macOS on Apple silicon, Linux): brew install opensec-git/tap/pi-bolt
  • Scoop (Windows): scoop bucket add opensec-git https://github.com/opensec-git/scoop-bucket, then scoop install opensec-git/pi-bolt
  • mise: github:opensec-git/Pi-Bolt with the options in the installation guide

The installer checks the release signature with OpenSSL 3, ssh-keygen (OpenSSH 8.1 or later), or an installed Pi-Bolt.
Every archive also has a GitHub build attestation: gh attestation verify <file> -R opensec-git/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.
install.sh, install.ps1 The installers, listed in the signed SHA256SUMS: pi-bolt update runs them only after checking them.

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.