Pi-Bolt Docs

Reference

Security

Every Pi-Bolt release is signed. The installers verify what they download before installing it, need no administrator rights, and change nothing outside your own folders.

Signed releases#

Each release publishes SHA256SUMS, the SHA-256 checksum of every file, and SHA256SUMS.sig, an Ed25519 signature of that file made with Pi-Bolt's release key. The public key is in the repository as keys/release.pub and inside the installers:

-----BEGIN PUBLIC KEY-----
MCowBQYDK2VwAyEAoLboJqtKaoISPqffk03vHZr+1sRBG3uIRIWeKOew+aY=
-----END PUBLIC KEY-----

The installers and pi-bolt update refuse a download whose checksum or signature does not verify. Checksums and signatures always come from the GitHub release, so a download from the npm registry's CDN is checked against them too.

Verify a download yourself#

$ sha256sum -c --ignore-missing SHA256SUMS
$ openssl pkeyutl -verify -pubin -inkey release.pub -rawin -in SHA256SUMS -sigfile SHA256SUMS.sig

The second command needs OpenSSL 3 or later; macOS's own openssl (LibreSSL) cannot check Ed25519, but Homebrew's openssl@3 can.

What the installer does#

  • Installs into your home folder (~/.pi-bolt, or %USERPROFILE%\.pi-bolt on Windows) and links one command. It needs no administrator rights and changes no security setting.
  • On Windows, asks before adding Pi-Bolt to your PATH.
  • Installs OpenSec's optional extensions only when you say yes, at the versions the release pins, and only if the registry's package matches the pinned integrity hash.
  • Does not touch your Pi installation. In ~/.pi/agent it only installs the extensions you accepted.

Running Pi safely#

Pi-Bolt runs Pi's tools with your permissions, as Pi does: the agent can read and write files and run commands in your project. Pi's Run Pi safely and Isolate Pi apply to Pi-Bolt.

  • Extensions run inside the Pi process with your permissions. Only install extensions from sources you trust.
  • A project's .env is not loaded into Pi-Bolt's environment. See .env files.
  • Crash reports contain an encoded stack trace and nothing else: no file names, paths or data of yours. See A crash.

Report a vulnerability#

Report security issues privately through GitHub's private vulnerability reporting, not in public issues. We acknowledge the report, investigate, and coordinate a fix and disclosure with you.

In scope: the Pi-Bolt runtime and engine changes, the release executables, and the scripts and installers in the repository. Vulnerabilities in Pi itself belong to Pi; vulnerabilities in Bun or JavaScriptCore that Pi-Bolt does not change belong to their projects.