Skip to content

Install

One binary is the TUI, the agent, and the updater.

Terminal window
curl -fsSL https://cdn.steelframe.work/install.sh | sh
steelframe version

The same binary provides:

Terminal window
steelframe # operator TUI (multi-project console)
steelframe agent run # run a project agent
steelframe setup # install host tools (RustFS, coding runtime)
steelframe agent install # install the systemd unit
steelframe update # pull a newer build from the release channel

Set STEELFRAME_NO_UPDATE=1 to skip the launch-time update check and the agent’s release-channel poll.

  • Rust — the binary is self-contained; Rust is only needed to build from source (edition 2024, 1.85+).
  • Coding CLI — pi, installed or migrated by steelframe setup. Workers spawn it from PATH (or coding_runtime_binary). Setup runs https://pi.dev/install.sh even when pi is already present, so a pre-1.0 npm install migrates to the managed Pi 1.0 package (@earendil-works/pi-coding-agent). Later updates are pi update.
  • gh CLI — GitHub operations. A dedicated GitHub App is recommended for production (see GitHub App setup).
  • Chrome — only if you use frontend safety checks.
Terminal window
steelframe setup

Installs host tooling including RustFS (WAL/object storage) and the Pi coding runtime.

Terminal window
export STEELFRAME_MASTER_KEY='<a long random secret>'
steelframe agent install

The agent binds 127.0.0.1:7700 by default. For remote consoles, terminate TLS at nginx and expose only the agent API. Production VMs use make deploy from a checkout (see Deploy). agent install does not install the agent sentinel; install that unit beside the agent so a dead database still restarts the process and can alert Discord (Agent sentinel).

Terminal window
git clone https://github.com/chipcolate/steelframe
cd steelframe
cargo build --release
# point git at .husky so `git push` runs lint-before-push (clippy)
make hooks
# local dev agent (reads .env)
make dev
# multi-project TUI console
cargo run -p steelframe-tui
# GUI Desktop (not a workspace member)
cargo run --manifest-path gui/Cargo.toml --locked

Pull-request CI (cargo test --workspace --locked and clippy) lives in infra/github-actions/ci.yml; copy it into .github/workflows/ with make install-github-ci.

The agent polls latest.json on the release channel every auto_update_minutes (default 5; 0 disables). When a newer version is pending, dispatch is locked until in-flight workers finish; the agent then applies the binary and re-execs. See Releases and auto-update.

Manual update:

Terminal window
steelframe update