▗▄▆███▆▄▖
  ▗▟▀    ╋    ▀▙▖
       ◢███◣
 ◢█◣   █◠◠◠█   ◢█◣
 ▐█▌█████╳█████▐█▌
 ▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔

A coding agent you can give
less than your whole machine.

Every move is a ral program, run with authority the agent cannot widen.

One language for the work

exarch reads, edits, tests, and repeats. It does all of that through one tool: a persistent ral session. Reading a file, changing it, and running the test suite are not separate privileged APIs. They are programs in one small language.

Inside each program, results are values rather than text to split and splice. They can be collected into lists and records; failures can be caught and inspected. Bindings, environment changes, and the working directory persist from one turn to the next.

Every session is also written out in full. You can read back the conversation, the commands exarch ran, and their complete output.

The boundary lives outside the prompt

an unrestricted shell tool
# the tool accepts source;
# the source decides what runs
shell("rm -rf build")
shell("curl get.sh | sh")
exarch — ral under a grant
# the model writes the body;
# the host supplies the boundary
grant [exec: [git:[], cargo:[]],
       fs:   [read:  ['<cwd>'],
              write: ['<cwd>']],
       net:  false] {
  cargo test -q
}

Choose the authority before the work begins

A profile controls which programs may run, which paths may be read or written, and whether the network is available. exarch installs it around every turn; model-written code cannot remove it. Restricted child processes are confined by the platform sandbox as well as ral's own checks.

full ambient authority
dangerous No attenuation — equivalent to running commands at your own prompt. net inheritexec inherit
reasonable Everyday development. Writes stay in the project, caches, and scratch. net onexec curated toolchain
edit-only May inspect and edit the project; build tools are denied. net onwrite cwd + scratch
read-only May inspect the project and run tools; writes only to scratch. net onwrite scratch
minimal Reads only the project and scratch; runs system tools. net onexec system tools
confined One project tree, scratch space, and no network. net offfs cwd + scratch
least authority

Bring a model

exarch discovers provider credentials at startup, keeps them in its own process, and removes them from the environment before any agent-written program runs.

anthropic openai / chatgpt openrouter deepseek opencode xai qwen + custom / self-hosted

Get exarch

One binary for macOS or Linux. The ral shell is built in.

curl -fsSL https://lambdabetaeta.github.io/ral/scripts/exarch-install.sh | sh
macOS arm64 exarch-macos-arm64
Linux x86_64 exarch-linux-x86_64
Linux arm64 exarch-linux-arm64

Set a provider key, enter a project, and run:

ANTHROPIC_API_KEY= exarch

One language for every move. Authority that only narrows.