github opensec-git/Pi-Bolt bolt-v1.1.6
Pi-Bolt 1.1.6

26 minutes ago

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-baseline and -musl-jit, plus the musl runtime and kit.
    • Installing and updating: the installer picks musl by itself. pi-bolt update and pi-bolt compile know the musl
      variants, and the npm launcher picks them on musl.
    • ICU: built in with its full data, so Intl works with no ICU package installed.
    • Needs: libstdc++.
  • 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) with ctx.ui.setView, updateView and showView.
    • 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 check validates a view and pi-bolt mobile-ui preview renders it. The
      pibolt-mobile-ui skill lets Pi write views for a package. An example package is in
      examples/extensions/mobile-ui-board. See docs/mobile-ui.md.

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 compile no longer rewrites this.#require(), #import() or #__dirname. This had broken extensions such
    as pi-fabric. A private field with one of those names no longer hides a real require().

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-ui skill 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 | 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.