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 compiletakes Pi's other module names (#174,
#176): extensions that import@mariozechner/pi-tui,
@mariozechner/pi-coding-agent,@mariozechner/pi-ai,@sinclair/typeboxor the oldgetModelfrom@earendil-works/pi-ai
(such aspi-system-prompt) compile, as they load in stock Pi. An extension's owntsconfig.jsonno longer gives it a second
copy of Pi's packages.--only,--excludeand--includetake 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;--listprints the plan. A new
--excludeadds to the recorded ones, and--includetakes 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 compileandpi-bolt update --rollbacknever 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.
- An extension the bundler cannot build (an import that does not resolve, a syntax error) is left out with one line naming
- Compiled extensions load and find what stock Pi does (#179):
CommonJS output fromtsc,__dirname,__filename,require.resolve()andimport.meta.resolve()(data files and native
addons such asnode-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 doctorandpi-bolt compile --statuslist 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_searchfinds a tool by its exact name.- 32-bit ARM and x86 no longer download x86-64
fdandrg. - The example
todoextension no longer crashes the screen on a call that fails validation. - Sign-in pages, streamed message parts and the
pi-aiauth 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 | shirm https://pi-bolt.opensec.in/install.ps1 | iexpowershell -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, thenscoop install opensec-git/pi-bolt - mise:
github:opensec-git/Pi-Boltwith 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.