Get started

Your first X-ray in under a minute

ArchSteer is a local-first CLI (Python 3.10+). It reads your code statically — it never executes it — never uploads source, and writes everything into a local .archsteer/ folder. The X-ray needs no account, API key, or configuration.

Analyze Python, TypeScript/JavaScript, Java Spring, and Salesforce Apex repositories with the same command.

1. Install (Python 3.10+ required)

Recommended — pipx installs the CLI in its own isolated environment and always uses a modern Python:

brew install pipx # macOS — or: python3 -m pip install --user pipx
pipx install archsteer
archsteer version # print the installed version

If pipx defaults to an older Python, pin a 3.10+ one:
pipx install --python python3.11 archsteer

Prefer no extra tools? Use a virtual environment with Python 3.10+:

python3.11 -m venv ~/.archsteer-env
~/.archsteer-env/bin/pip install archsteer
~/.archsteer-env/bin/archsteer version

Troubleshooting

  • No matching distribution found for archsteer / Requires-Python >=3.10 — your pip/pip3 is tied to Python 3.9 or older. Check with python3 --version; install with pipx or a 3.11 venv (above).
  • zsh: command not found: pip — use pip3 or python3 -m pip instead.
  • archsteer: command not found after pipx — run pipx ensurepath and restart your terminal.
  • externally-managed-environment — don't pip install into Homebrew Python directly; use pipx or a venv.

No native toolchain needed — the engine runs on a regex parser, with optional tree-sitter acceleration via pipx install archsteer[treesitter].

2. X-ray any repo (zero config)

cd your-repo
archsteer xray # map + living docs + evolution + report

Open .archsteer/report.html for the live map, drift, and what changed. No rules required — this is the read-only X-ray. See it on a sample repo →

3. Govern & steer your agents

archsteer init # declare intent in architecture.yaml
archsteer steer -f src/api/payments.ts # guardrails into CLAUDE.md / AGENTS.md / .cursor/rules
archsteer baseline # accept existing debt (the ratchet)
archsteer check # fail only on NET-NEW violations

Now agents build toward your target architecture instead of copying adjacent legacy code, and CI blocks regressions without freezing features.

4. Let your agent query it directly (MCP)

archsteer mcp # MCP server ships with the base install
claude mcp add archsteer -- archsteer mcp

Your agent can now call get_target_pattern, check_file, and current_architecture mid-edit — no cloud, runs over stdio, free with the CLI.

5. Report to the situation room

archsteer push --token $ARCHSTEER_TOKEN # send a snapshot to your org dashboard

Watch org-wide conformance and the Drift Index in the situation room.

6. Gate it in CI

Add an architecture gate to every PR — block net-new violations, draft ADRs for new decisions:

# .github/workflows/archsteer.yml
- run: pip install archsteer
- run: archsteer map && archsteer adr && archsteer check

7. Put a conformance badge in your README

Once a repo pushes to the situation room, its latest conformance score is available as a live badge — green at ≥90%, grey while you're still x-ray-only:

[![ArchSteer conformance](https://img.shields.io/endpoint?url=https%3A%2F%2Fwww.archsteer.com%2Fapi%2Fbadge%2FYOUR-REPO)](https://www.archsteer.com)

Replace YOUR-REPO with the repo name from archsteer push (URL-encode it if it contains anything beyond letters, digits, ., _, or -). The badge refreshes within ~5 minutes of each push.

That's the whole loop

X-ray → govern → steer → check → push. Read the thinking behind it in the whitepaper.