github opensec-git/Pi-Bolt bolt-v1.0.5
Pi-Bolt 1.0.5

2 hours ago

Pi-Bolt 1.0.5 is a pi-bolt compile release: extensions that stock Pi loads now compile, one extension that cannot compile
or fails no longer stops the build or Pi, and compiling works offline from its cache. Starting touches fewer pages on macOS and
Linux, long replies stream with less work, and nine fixes from upstream Pi land early. Everything else is 1.0.4.

Fixed

  • pi-bolt compile takes Pi's other module names (#174,
    #176): extensions that import @mariozechner/pi-tui,
    @mariozechner/pi-coding-agent, @mariozechner/pi-ai, @sinclair/typebox or the old getModel from @earendil-works/pi-ai
    (such as pi-system-prompt) compile, as they load in stock Pi. An extension's own tsconfig.json no longer gives it a second
    copy of Pi's packages.
  • --only, --exclude and --include take an extension's name, its package's name or source, its folder or its file. A
    value that matches nothing stops before anything is downloaded and lists the extensions there; --list prints the plan. A new
    --exclude adds to the recorded ones, and --include takes one back (#176).
  • One extension no longer stops everything (#181):
    • An extension the bundler cannot build (an import that does not resolve, a syntax error) is left out with one line naming
      the file and import, and loads from its files; the others are compiled in.
    • A compiled-in extension runs only when Pi loads it. One that fails compiled in loads from its files, as in stock Pi, and
      pi-bolt doctor, pi-bolt compile and pi-bolt update --rollback never run extension code, so a broken extension cannot
      lock you out.
    • After building, compile starts the new build once with every extension; one that fails there is left out and the build
      is redone.
    • A function over the 256 KB compile limit raises the limit up to 1 MB on machines with 8 GB of memory or more; otherwise
      its extension is left out.
  • Compiled extensions load and find what stock Pi does (#179):
    CommonJS output from tsc, __dirname, __filename, require.resolve() and import.meta.resolve() (data files and native
    addons such as node-pty), modules loaded from disk that import Pi's packages, peers and packages above an extension, the
    same discovery rules and enabled list as Pi, and file names with " or \.
  • Compiling offline, with progress (#177): the signed checksums are
    cached with the runtime and kit, so a later compile needs no network; a download that stalls for 20 s stops with the URL and
    what to do. Compile says what it is doing, lists a project's extensions as not compiled in, passes Ctrl-C on to the build,
    and removes folders and logs left by an interrupted compile. An extension counts as changed only when a file it imports
    changes, so one that writes a file next to itself stays compiled.
  • pi-bolt doctor and pi-bolt compile --status list what is compiled in, and the installer says when an update replaced a
    build that had extensions compiled in (#181).
  • From upstream Pi, ahead of its next release (#175):
    • OpenRouter: the footer and HTML export show the billed cost; it was 2-3 times off.
    • tool_search finds a tool by its exact name.
    • 32-bit ARM and x86 no longer download x86-64 fd and rg.
    • The example todo extension no longer crashes the screen on a call that fails validation.
    • Sign-in pages, streamed message parts and the pi-ai auth file are checked more strictly.

Changed

  • Startup (#178): the profile that lays out Pi's code was recorded
    again for the macOS and Linux builds. Starting touches fewer pages, takes about 2-3% fewer instructions on the M5, and uses
    3-6 MB less memory (Linux, interactive: 100 MB at most instead of 106; macOS: 44 MB when ready to type instead of 47).
  • Streaming (#180): a long reply is no longer copied whole for each
    chunk that arrives, about 2% fewer instructions for a 60,000-character answer on the M5.

With the default settings Pi draws the same screens and sends the same requests as 1.0.4, at the same speed. The release
archives, 1.0.4 / 1.0.5: 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 40 / 39 ms 32 / 32 ms 174.8 / 170.1 M 62 / 62-65 ms
pi -p, CPU 57 / 57 ms 47 / 47 ms 226.9 / 222.4 M 63-70 / 65-69 ms
60,000-character answer 1.71 / 1.69 s 1.93 / 1.91 s 3,640 / 3,546 M 2.12 / 2.15 s
An answer in a 4,000-entry session 0.32 / 0.24 s
Memory, interactive 106 / 100 MB 105 / 100 MB 47.1 / 43.7 MB, ready 91 / 91 MB

Pi is 1.4.0, with the fixes above. The runtimes are 1.0.3'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, 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.