Most AI tools are a chatbot pretending to be a developer. xlii inverts that: it puts a language-model agent at the shell level of your own machine, under constraints most AI tooling does not adopt: your files are the source of truth, everything you curate is plain text you own, and the model is never trusted as a security boundary.
mode: — · trust: guarded · surface: code [$] git status --short M xlii/shellgate.py [$] ? what does the change to shellgate do Adds container runtimes to SYSTEM_BINARIES so `docker run` classifies as modifies-system instead of read-only. One test added. No behavior change for known binaries. [$] /plan make unknown binaries fail closed mode: plan · trust: guarded · surface: code 1. Add READ_ONLY_BINARIES allowlist 2. Default unknown → modifies-project in _classify_segment 3. Add xfail rows for docker / socat / nested $() → /execute to proceed, /cancel to drop [$] /execute edit_file xlii/shellgate.py · write_file tests/test_shellgate_fail_closed.py bash intent=network pytest -q && git push classified: network — run it? [y/N]
Everything else follows from them.
Hosted retrieval, indexes, and mirrors are derived and disposable.
Remote custody is a per-project dial that includes zero: a project
initialized with --local, and every home session, never
leaves the machine.
Personas, reference docs, API plugins, roles, skills, memory pages: all Markdown you can read, edit, version, and move. Models are interchangeable components behind a stable interface. The vendor provides primitives; you compose the system.
What the agent says it intends is advisory. Whether a command runs, whether a path may be written, whether a worker may escalate, is decided by code that classifies independently and fails closed.
?text addresses the agent. /cmd is a slash command.Not personalities layered on one agent — different tool sets, enforced in code.
The agent you talk to. Full palette, including the ability to dispatch parallel workers.
Read tools plus shell for machine diagnostics. The shell gate is the brake.
Writes unlocked; plan domain locked. The rail holds writes shut through four design stages.
Read-only, often on a different model or vendor than the builder. Starved verifiers return inconclusive, never fail.
Every shell command is classified independently of what the model declared, and the stronger classification wins.
Every client is a projection of the same kernel. The kernel never imports a client — that rule is enforced in CI.
Alpha. The architecture is settled; surfaces and details still move. It runs end-to-end against a real xAI account and is xAI-first today, with external providers supported for worker agents.
About 142k lines of Python across 519 modules, with a hermetic suite of roughly 5,400 tests that passes in three minutes without network access or API keys. Import contracts, generated documentation, and security scanning gate every push.
Known limitations are documented, including the current gaps in the shell classifier and the fact that content the agent reads is gated by consequence, not filtered on the way in. See the design document rather than discovering them.