github opensec-git/Pi-Bolt bolt-v1.2.0
Pi-Bolt 1.2.0

2 hours ago

Pi-Bolt 1.2.0 is 1.1.7 with faster starts, quicker turns, cheaper streaming of long lists, tables and code
blocks, a resumed long session that shows its end at once, cheaper Codex requests, and remote control off by default.
Pi is still 1.5.0. The engine is unchanged, so the runtimes are 1.1.7's.

Added

  • pi-bolt remote-control enable, disable and status, and a "Remote control" toggle in /settings. They set
    remoteControl.enabled in your global settings; a project's settings cannot turn it on.
  • pi-bolt service restart restarts the background service if it runs, so that it runs the installed version. The
    installers and pi-bolt update run it after an update. It never starts a service that does not run.
  • bench/benchmark.py --home-extensions DIR[,DIR] adds Pi packages to the typical home of --home realistic, to
    measure a start with extensions installed.

Changed

  • Remote control is off by default. While it is off, /remote-control is not listed and only says how to turn it
    on, and pi-bolt service install and pi-bolt service pair refuse. Turn it on with pi-bolt remote-control enable.

    • A paired phone: run pi-bolt remote-control enable once after updating. Paired phones stay paired.
    • The background service: after an update with the installer or pi-bolt update it does not serve. After an
      update through npm, Homebrew, Scoop or mise, or on Windows from 1.1.7, the service of the earlier version runs until
      you log out: run pi-bolt service restart once. To use it again, run pi-bolt remote-control enable, then
      pi-bolt service install; to remove it, run pi-bolt service uninstall.
  • The pibolt-mobile-ui skill is not part of Pi-Bolt. It is in
    skills/pibolt-mobile-ui in this repository, with the steps to add it to your own
    Pi.

  • Faster starts. Instructions until Pi is ready to type, 1.1.7 / 1.2.0:

    • a blank home: 161.6 / 143.1 M (-11%);
    • a typical home (43 prompt templates, 8 skills, a model store, AGENTS.md files, a git project): 270.5 /
      163.4 M (-40%);
    • the same home with opensec-pi-subagents and opensec-pi-todo installed: 501.3 / 390.0 M (-22%).

    Prompt templates are read after the first frame, the model list is built once, the git watcher starts after the first
    frame, settings and tool schemas are checked by generated code, and modules the start does not need (Markdown, colours,
    hashing, version parsing) load when first used. pi -p takes 9% fewer instructions in a blank home, 31% in a typical
    home and 17% with the two extensions.

  • Quicker turns. The end of a reply is drawn at once instead of on the next frame: five prompts in the interactive
    benchmark take 83 ms instead of 120 ms.

  • Cheaper streaming of long lists, tables and code blocks. A streaming reply lays out again only its last block. Per
    frame, 1.1.7 / 1.2.0: a 300-item list 16.6 / 1.1 M instructions, a 150-row table 10.2 / 1.4 M; memory while a
    long list streams 38 / 21 MB.

  • Code blocks are highlighted again only where they grew, for TypeScript, JavaScript, Python, Bash, JSON, Rust, Go,
    C, C++, Java, HTML, CSS, YAML, diff and SQL blocks of 256 characters or more; other languages and shorter blocks are
    highlighted in full, as before. Per frame: a 150-line TypeScript block 28.7 / 2.3 M instructions, a 400-line one
    74.6 / 2.5 M, a 150-line Python block 12.2 / 1.4 M.

  • Resuming a long session (pi -c, fullscreen) draws the end of the transcript first and the rest after it: the
    first frame of a 2,292-entry session is on screen after 41 ms instead of 295 ms.

  • Codex requests no longer serialize the whole conversation several times: a request after a prompt in a 9 MB
    conversation takes 8.5 M instructions instead of 179 M (default transport), 112 M instead of 164 M over SSE.

  • Known: resuming a 2,292-entry session in regular mode (not fullscreen) peaks at 90 MB instead of 83 MB. The cause is
    not found yet.

Measured on macOS on Apple silicon (an M5), 1.1.7 / 1.2.0, medians of 11 runs (21 for the interactive session),
builds interleaved:

Instructions CPU Peak memory
pi --version 55.5 / 55.5 M 4.5 / 4.6 ms 5.6 / 5.6 MB
pi -p (5 model turns), blank home 206 / 188 M 18.7 / 17.4 ms 21.8 / 20.2 MB
pi -p, typical home 296 / 205 M 23.8 / 18.5 ms 24.6 / 21.0 MB
pi -p, typical home with the two extensions 586 / 487 M 53.4 / 47.9 ms 35.6 / 33.8 MB
Interactive, 5 prompts 576 / 553 M 80 / 77 ms 28.7 / 27.0 MB
60,000-character answer 3,083 / 2,997 M
40-prompt session, CPU per prompt at prompt 40 14.6 / 14.1 ms

Peak memory is the physical footprint. The answer row streams at 1,200 characters a second (bench/long_answer.py).

Also since 1.1.7, outside the release archives:

  • Android app: its on-device engine is 1.1.7, and an open package page keeps its engine when the phone is short of
    memory.

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-x64-musl.tar.xz / .tar.gz Alpine Linux and other musl systems on x86-64 (AVX2). Needs libstdc++.
pi-bolt-linux-x64-musl-baseline.tar.xz / .tar.gz musl on any x86-64 CPU with SSE4.2.
pi-bolt-linux-x64-musl-jit.tar.xz / .tar.gz musl, JIT also on.
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-x64-musl.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-x64-musl.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; Alpine and other musl Linux on x86-64; 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.