PATH, Node.js 22.19 or later, curl, and system tar.
The Pi bootstrap needs no checkout, npm installation, system Python, uv, or Pkl.
Setup downloads its private hook runtime before activating configuration.
tools/install-pi.sh.
Setup admits the release tag, asset digests, source identity, and successful main validation before configuration writes.
Download failures
The launcher and installer use curl for HTTPS downloads. They use curl certificate trust and proxy settings. UseCURL_CA_BUNDLE for an approved certificate bundle.
TLS checks remain enabled. Redirects must use HTTPS.
For a GitHub API rate-limit error, supply GH_TOKEN or GITHUB_TOKEN in the setup shell.
The installer sends it only to https://api.github.com through curl input.
Release downloads receive no authorization header.
Older installers used Node fetch after curl.
A fetch failed error can reflect different certificate trust or proxy routes.
The current installer reports the host and curl exit code or HTTP status.
An error string alone does not establish its network cause.
Checkout dependency failures
Consumer setup does not need checkout dependencies. For maintainer projection,ERR_MODULE_NOT_FOUND for ajv means the checkout lacks its schema dependencies.
Install locked production dependencies for projection alone:
npm ci --ignore-scripts.
An npm E403 means the registry denied the request.
Use the registry administrator’s access process when that dependency set is necessary.
A fresh checkout or a peer-dependency notice does not explain the denial.
Installed Pi compatibility
Setup needspi --version to succeed within 10 seconds.
It accepts local version strings.
PI_COMPATIBILITY_UNVERIFIED reports a best-effort warning rather than a version rejection.
Executability alone cannot establish native discovery or event support.
Restart Pi after installation.
The aggregate exposes the five catalog plugins through native resources.
Shared skills register once. Each plugin also has a native local-package manifest.
Install the aggregate or selected plugin directories, without duplicate registration.
Use native commands such as /skill:semantic-ratchet or /skill:kotlin-review.
The two /slopsentral-* review prompts use the current session and model.
They do not start separate agents.
Turn hooks on or off
Slopsentral hooks start off in Pi, including after an upgrade from the old settings format. Pi still loads native project instructions and the package’s shared instructions, skills, and review prompts.- Enter
/hooksin interactive Pi. - Select a hook. Press Enter or Space to switch it between
onandoff. - Press Esc to return.
Choices apply at the next request or turn end. An admitted turn keeps its current result.
Choices persist across Pi sessions in
slopsentral-hooks.json in Pi’s global instruction directory.
The old format stored opt-outs only. Use /hooks to turn on a hook after an upgrade.
The menu saves the new format on the first change.
Invalid choices stop hook effects. The menu reports the file path for repair.
Hook runtime
The bootstrap provisions CPython 3.12.14 under~/.pi/slopsentral-hook-runtime.
Personal and project packages share that private runtime; project files cannot select its executable.
It verifies a pinned uv 0.12.9 archive, uses that setup tool to install Python, and removes the tool afterward.
Setup needs network access for these downloads. It keeps TLS verification enabled.
The runtime targets macOS and Linux with glibc on arm64 and x64.
Managed hooks invoke the private interpreter directly, with isolated imports and bytecode writes disabled.
Hook execution needs neither network access nor system Python or uv.
Emitted status and review commands keep the private interpreter and instruction scope, including when status returns the next review command.
The runtime receipt binds the platform, relative executable path, and interpreter digest.
Repeat setup verifies the interpreter before reporting it ready.
Setup writes no host settings when runtime preparation fails.
Direct native package installation bypasses the bootstrap and retains the external uv requirement.
The private runtime supports the current hooks, whose declared dependency lists are empty.
A future hook with third-party dependencies requires an explicit runtime update and otherwise reports HOOK_RUNTIME_UNSUPPORTED_DEPENDENCIES.
Missing or changed runtime files produce explicit failures.
A context-hook failure blocks tool calls until a later request succeeds.
Processes obey time limits, output limits, and cancellation.
Scope, updates, and recovery
Personal scope uses~/.pi/agent or PI_CODING_AGENT_DIR.
For project scope, append -s -- --project after sh in the bootstrap command.
For a named release, append -s -- --version X.Y.Z.
Run the same command for updates. An identical version returns CURRENT.
Setup migrates recognized personal and current-project registrations.
It preserves unrelated settings and saves private preimages.
Ambiguous legacy extensions and edited installed bytes stop setup.
Use --rollback from the same project and scope to restore recorded preimages.
Project recovery needs both --project --rollback.
Rollback still admits the release, but needs neither Pi nor tar.
It never runs project-cached recovery code.
If you return to a release that expects the old hook settings format, move the new settings file aside before you restart Pi.
Later edits return CONFIG_CHANGED and remain intact.