Pi-Bolt 1.1.4 is 1.1.3 with an opt-in background service for remote control, so a paired phone reaches
this computer with no terminal open. Pi is still 1.5.0, and the engine and runtimes are 1.1.1's.
Added
-
pi-bolt service(#262):pi-bolt service installstarts
remote control at login and keeps it up:- macOS: a LaunchAgent;
- Linux: a systemd
--userunit; - Windows: a per-user logon task, with no admin needed.
The other subcommands:
statusshows the addresses, the tunnel and the connected phones;pairpairs a new phone from a terminal while the service runs;logsprints the service log;uninstallremoves everything it wrote.
Behaviour:
- Paired phones can list this computer's projects and sessions, open one, or start a new session in a folder
Pi-Bolt already knows. - The Cloudflare tunnel follows
remoteControl.tunnel(install --no-tunnelkeeps it to the LAN and Tailscale). - The service sends paired phones its current addresses over the encrypted session, so a phone follows a quick
tunnel's new address. No outside lookup service is involved. - When
/remote-controlstarts in a terminal, the service hands over its port and tunnel and takes them back
afterwards. - Only phones that are already paired can connect.
- Interactive startup is unchanged: the service code loads only when it runs.
Also since 1.1.3, outside the release archives:
- Android app 0.5.x, released under
android-vtags:- Mermaid diagrams;
- Git and GitHub;
- per-turn review and undo;
- a terminal, dev-server preview, files in and out, and voice input;
- several sessions at once;
- project secrets;
- a code editor and esbuild for Vite;
- plain chats;
- background runs;
- a full redesign.
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.
Performance
At par with 1.1.3, measured on the release archives on an Apple M5 (macOS, darwin-arm64), 15 interleaved runs per
scenario after 2 warm-ups. A second copy of 1.1.3 shows the run-to-run noise.
| Scenario | Build | Wall | CPU | Peak memory | Instructions |
|---|---|---|---|---|---|
startup (pi --version)
| 1.1.4 | 15 ms (+9%) | 9 ms (+0%) | 19 MB (+0%) | 53 M (+0%) |
| 1.1.3 again | 14 ms (+1%) | 9 ms (−1%) | 19 MB (+0%) | 53 M (+0%) | |
| 1.1.3 | 14 ms | 9 ms | 19 MB | 53 M | |
headless (pi -p, 5 turns)
| 1.1.4 | 46 ms (+1%) | 37 ms (+2%) | 52 MB (+1%) | 207 M (+0%) |
| 1.1.3 again | 48 ms (+6%) | 38 ms (+5%) | 52 MB (+0%) | 206 M (+0%) | |
| 1.1.3 | 45 ms | 36 ms | 52 MB | 206 M | |
| interactive (TUI, 25 turns) | 1.1.4 | 575 ms (−1%) | 180 ms (−1%) | 77 MB (+1%) | 650 M (+0%) |
| 1.1.3 again | 582 ms (+0%) | 179 ms (−1%) | 77 MB (+0%) | 648 M (−0%) | |
| 1.1.3 | 581 ms | 182 ms | 77 MB | 649 M |
The service code loads only when it runs; interactive startup loads the same 1544 modules as 1.1.3.