Bootstrap model

Updated Aug 02, 2026

The Rust bootstrap is split into two phases:

  • system
  • Changes the machine layer.
  • Configures Ubuntu APT sources and third-party package repositories.
  • Installs APT packages, updates certificates, and applies optional global settings such as the mold linker override.
  • Uses a temporary helper checkout and does not intentionally manage the durable checkout under $HOME.
  • home
  • Changes the user layer under $HOME.
  • Adds helper tool paths to shell startup files.
  • Clones or updates the managed helper checkout.
  • Installs user tools such as uv, bun, rustup, cargo tools, Bun global packages, skills, hooks, and sub-agent configuration.
  • Does not run APT, change /etc, change /usr, or mutate APT state.
  • both
  • Runs system first and then home.
  • This is the default for the compatibility wrapper.

Run system for a fresh or reset system layer. Run home when creating or refreshing a warm $HOME cache. In a warm-cache environment, run the phases separately:

RUST_ENTRYPOINT_PHASE=system bash rust-entrypoint
RUST_ENTRYPOINT_PHASE=home bash rust-entrypoint

For a normal one-shot setup, use the default:

bash rust-entrypoint

The home phase expects the system phase to have prepared the packages and shared libraries required by the user tools.