Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

PurrCode

Installation

macOS and Linux installer

curl -fsSL https://raw.githubusercontent.com/Weilin0723/PurrCode/v0.9.0/scripts/install.sh | sh

The installer detects the host platform, downloads the release archive, verifies it against the release SHA256SUMS, and installs into ~/.local/bin. Use a custom installation directory:

PURRCODE_INSTALL_DIR="$HOME/bin" \
  curl -fsSL https://raw.githubusercontent.com/Weilin0723/PurrCode/v0.9.0/scripts/install.sh | sh

npm

Node.js 18 or newer:

npm install --global @minaovo/purrcode

The package selects the correct macOS, Linux, or Windows binary, verifies its pinned SHA-256 digest, and exposes both purrcode and purrcoded.

You can also install the signed-release launcher directly from GitHub:

npm install --global https://github.com/Weilin0723/PurrCode/releases/latest/download/purrcode-0.9.0.tgz

Windows

Download and extract purrcode-x86_64-pc-windows-msvc.zip from the latest release.

Build from source

Requirements:

  • Rust 1.88 or newer;
  • Git;
  • platform build tools.
git clone https://github.com/Weilin0723/PurrCode.git
cd PurrCode

cargo install --locked --path crates/purrcode-cli
cargo install --locked --path crates/purrcode-daemon

Verify the install

purrcode --version
purrcoded --version

Upgrade and rollback

purrcode upgrade check --channel stable
purrcode upgrade download /tmp/purrcode-release.tar.gz
purrcode upgrade install --channel stable
purrcode upgrade rollback

install verifies the checksum manifest and both Sigstore bundles before extraction, rejects unsafe archive paths, atomically rotates purrcode and purrcoded, and preserves the prior pair for rollback.

Optional isolation dependencies

  • macOS: /usr/bin/sandbox-exec when available.
  • Linux: bubblewrap (bwrap).
  • Windows: process filtering and job controls; inspect with purrcode sandbox doctor.

PurrCode reports degraded isolation explicitly and does not reinterpret it as a full sandbox.