Production install

Prefer a local prebuilt archive. The archive carries one binary with the viewer embedded, so installing it requires neither Rust nor Node:

./scripts/install.sh \
  --archive ./dist/premier-0.1.0-aarch64-apple-darwin.tar.gz \
  --signature-bundle ./dist/premier-0.1.0-aarch64-apple-darwin.tar.gz.sigstore.json

The installer does not accept a URL, download code, or execute the supplied binary. It validates archive paths, checks required file hashes, and atomically installs to $CARGO_HOME/bin/premier unless --prefix is supplied. Release archives publish per-archive Sigstore bundles plus an authenticated aggregate checksum manifest; the installer pins the Premier GitHub workflow identity and OIDC issuer before extraction. Verify the release for the complete asset-set workflow. This path needs Bash, Python 3, Cosign, and a SHA-256 utility, but no Rust or Node.

When no matching local archive is available, build from source:

From a Premier checkout:

./scripts/install.sh

This builds the viewer, embeds it into the binary, and installs premier to $CARGO_HOME/bin (usually ~/.cargo/bin).

Requirements: Rust (cargo), Node.js 22+, npm.

Verify

premier --version
premier demo
premier open .premier/traces/multi-agent-demo.atrace

You should get a multi-agent demo trace and a browser on the embedded viewer — with no apps/viewer/dist required at runtime.

Alternative: cargo after viewer build

npm install && npm run build
cargo install --path crates/premier-cli --locked --force

Local update and removal

./scripts/version-check.sh --archive ./dist/premier-0.1.1-aarch64-apple-darwin.tar.gz
./scripts/update.sh --archive ./dist/premier-0.1.1-aarch64-apple-darwin.tar.gz --dry-run
./scripts/update.sh --archive ./dist/premier-0.1.1-aarch64-apple-darwin.tar.gz
./scripts/uninstall.sh --prefix "${CARGO_HOME:-$HOME/.cargo}" --dry-run
./scripts/uninstall.sh --prefix "${CARGO_HOME:-$HOME/.cargo}"

The update path requires an explicit local archive. Uninstall removes only the resolved <prefix>/bin/premier path and never recursively removes the prefix.

PATH note

If premier is not found after install, add cargo’s bin directory:

export PATH="$HOME/.cargo/bin:$PATH"

Local UI development

By default, open / serve use the embedded viewer. To iterate on the Svelte app from disk:

npm run build --workspace @premier/viewer
premier serve --viewer-dir apps/viewer/dist