Agent Machine follows the same installation philosophy as TurtleTerm and BearBrowser:
- Homebrew is a first-class distribution surface for immediate developer use.
- Direct repository formula installs work before the public tap is promoted.
- The public SourceOS tap is the preferred long-term install surface.
- Release artifact installers come later and must preserve manifests, SBOMs, and attestations.
- Installation should expose diagnostics before it performs privileged setup.
- Runtime setup must be explicit and policy-aware.
Install directly from this repository formula:
brew install --HEAD https://raw.githubusercontent.com/SourceOS-Linux/agent-machine/main/packaging/homebrew/Formula/agent-machine.rbValidate:
agent-machine version && agent-machine paths && agent-machine probe --format jsonAfter promotion to SourceOS-Linux/homebrew-tap:
brew install SourceOS-Linux/tap/agent-machineCurrent tap HEAD formula flow after the tap is published:
brew install --HEAD SourceOS-Linux/tap/agent-machineFrom a local checkout:
brew install --HEAD ./packaging/homebrew/Formula/agent-machine.rbThe bootstrap formula installs:
agent-machineCLI;- draft contracts;
- architecture docs;
- example payloads;
- Python package source under
src/; pyproject.tomlandrequirements-dev.txt.
The bootstrap formula does not yet create privileged runtime directories, install systemd services, configure LVM, modify container runtime policy, download models, or start inference providers.
That is deliberate. Agent Machine setup must separate install from activation.
doctor and probe are safe bootstrap commands implemented directly in the shell CLI. Render commands delegate to the Python package source when available.
Supported render commands:
agent-machine render plan examples/local-podman-llama-cpp.agent-pod.json --pretty
agent-machine render receipt examples/local-podman-llama-cpp.agent-pod.json --pretty
agent-machine render quadlet examples/local-podman-llama-cpp.agent-pod.json
agent-machine render k8s examples/k8s-topolvm.agent-pod.jsonThe Homebrew formula installs src/ under the package share directory so the bootstrap CLI can find the package source in an installed context. Render commands require the Python dependencies listed in requirements-dev.txt, currently jsonschema and PyYAML.
Render output is not authorization. It is a deterministic plan, manifest, or receipt artifact. Policy Fabric admission and Agent Registry grants remain required before activation.
Future setup commands should manage these paths explicitly:
/etc/agent-machine
/var/lib/agent-machine
/var/lib/agent-machine/models
/var/lib/agent-machine/cache
/var/lib/agent-machine/evidence
/run/agent-machine
agent-machine doctor
agent-machine init --profile m2-asahi-linux
agent-machine init --profile sourceos-workstation --storage local-lvm
agent-machine init --profile kubernetes-node --storage topolvm-k8s
agent-machine probe --format json --fail-closed
agent-machine storage plan --profile local-lvm
agent-machine storage apply --profile local-lvm
agent-machine provider list
agent-machine provider enable llama.cpp
These are target commands, not all implemented behavior yet.
| Surface | Role |
|---|---|
| Homebrew direct formula | Immediate bootstrap install from this repo. |
| SourceOS Homebrew tap | Preferred developer/operator install after tap promotion. |
| SourceOS package/channel | Future Linux-native package lane. |
| rpm-ostree / image composition | Future immutable SourceOS host integration. |
| systemd / Quadlet | Future local AgentPod runtime activation. |
| Kubernetes / TopoLVM | Future cluster AgentPod runtime activation. |
M2 Asahi is Linux on Apple Silicon. The install path must not assume macOS-only Metal or MLX acceleration. The initial local path is:
- install CLI through Homebrew or Linux package lane;
- run
agent-machine probe --format json; - inspect CPU, Vulkan, LVM, Podman, SELinux, and cgroup facts;
- configure local LVM only through explicit setup;
- enable
llama.cppor another Linux-compatible provider through a governed provider contract.
TurtleTerm uses tapless Homebrew install from its repository formula and a future SourceOS-Linux/tap/turtle-term path. BearBrowser uses immediate direct Homebrew formula install and a future SourceOS-Linux/tap/bearbrowser path.
Agent Machine follows that same pattern:
brew install --HEAD https://raw.githubusercontent.com/SourceOS-Linux/agent-machine/main/packaging/homebrew/Formula/agent-machine.rb
brew install SourceOS-Linux/tap/agent-machine
brew install --HEAD SourceOS-Linux/tap/agent-machineMinimum post-install checks:
agent-machine version
agent-machine paths
agent-machine probe --format jsonRender validation after Python dependencies are present:
agent-machine render plan examples/local-podman-llama-cpp.agent-pod.json --prettyThe probe must remain secret-free. It must not emit raw prompts, raw KV-cache contents, private memory content, unredacted credentials, or model-provider secrets.