Pi-Bolt 1.1.6 is 1.1.5 with Alpine Linux support, native UIs for Pi packages in the phone app, and lower
memory in long sessions. Pi is still 1.5.0. The runtimes are rebuilt for one engine change (#286) and the new musl
runtime.
Added
- Alpine Linux and other musl systems (x86-64) (#298, based on
the patch set by @nthrow in #280):- Builds:
linux-x64-musl,-musl-baselineand-musl-jit, plus the musl runtime and kit. - Installing and updating: the installer picks musl by itself.
pi-bolt updateandpi-bolt compileknow the musl
variants, and the npm launcher picks them on musl. - ICU: built in with its full data, so
Intlworks with no ICU package installed. - Needs:
libstdc++.
- Builds:
- Native UIs for Pi packages in the phone app (#295):
- How it works: an extension describes a view as JSON (cards, lists, key-value, progress, chips, buttons, forms,
markdown, code, images and more) withctx.ui.setView,updateViewandshowView. - Where it shows: the Pi-Bolt app draws it natively as a panel, an inline card, a page or a sheet. In the
terminal the same view falls back to widgets, chat lines and dialogs. It works over remote control and RPC. - For authors:
pi-bolt mobile-ui checkvalidates a view andpi-bolt mobile-ui previewrenders it. The
pibolt-mobile-uiskill lets Pi write views for a package. An example package is in
examples/extensions/mobile-ui-board. See docs/mobile-ui.md.
- How it works: an extension describes a view as JSON (cards, lists, key-value, progress, chips, buttons, forms,
Changed
- Less memory in long sessions (#293): finished transcript
entries keep their rendered lines and drop what drew them. A resumed long session rests at 73 MB instead of 88 MB
(-17%; -14% on-jit), with identical screens. - One copy of repeated lines (#288): short lines that many
messages draw alike are stored once (-4% at rest). - fetch frees the request body early (#286): once the response
starts. Less memory while a large-context answer streams (-2.5%, -5% on-jit).
Fixed
- Compiled extensions with private names (#300, from
#294 by @silentsokolov):
pi-bolt compileno longer rewritesthis.#require(),#import()or#__dirname. This had broken extensions such
as pi-fabric. A private field with one of those names no longer hides a realrequire().
Also since 1.1.5, outside the release archives:
- Android app 0.6.1:
- package browsing and private registries;
- live subagents on the phone;
- the background internet fix.
- The iOS app (remote control) is in development under
ios/.
Measured against 1.1.5
On an Apple M5, from the release archives (darwin-arm64), with 1.1.5 against itself as the noise baseline.
| Row | Default | -jit |
|---|---|---|
| Resumed 2,292-entry session at rest | 87-89 → 71 MB (-19 to -20%) | -17 to -20% |
| Resumed session, peak memory | -4.5 to -6.4% | about the same |
| Long transcript, instructions per frame | 3-11% fewer | 3-11% fewer |
| Startup, instructions | at par | at par |
pi -p, instructions
| +0.3 to +0.5% | +0.5 to +0.7% |
pi -p / TUI, peak memory
| +0.6 / +1.2 MB | +0.6 / +1.2 MB |
| RPC session (200 prompts), memory floor | +2.0 MB | +0.7 MB |
| Long answers, big output, idle | at par | at par |
The small pi -p and memory costs come from the new mobile UI kit:
- its code makes the binary about 1 MB larger;
- its
pibolt-mobile-uiskill adds one line to every system prompt; - the RPC memory floor is +2 MB.
Reducing the RPC memory floor is planned for 1.1.7.
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-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.