Latest: 2026-07-11
Orka runs LLM coding agents inside containers. Each session gets only the file-system context you choose to mount. This gives you agent sessions that don't have unrestricted access to your home directory.
Three runtimes are supported: pi, claude-code, and Codex.
The container image is built on each run first run and cached for subsequent runs.
See getting started, what is orka, or how it works for more details.
Download the binary for your platform from Releases, make it executable, and put it on your PATH:
curl -Lo orka https://github.com/kzsh/orka/releases/latest/download/orka-x86_64-unknown-linux-musl
chmod +x orka
mv orka ~/.local/bin/| File | Platform |
|---|---|
orka-x86_64-unknown-linux-gnu |
Linux x86_64 (glibc) |
orka-x86_64-unknown-linux-musl |
Linux x86_64 (static) |
orka-aarch64-unknown-linux-gnu |
Linux ARM64 (glibc) |
orka-aarch64-unknown-linux-musl |
Linux ARM64 (static) |
Run orka from a project directory to mount it into the container and start the agent:
orkaMount specific files instead of the entire directory:
orka -f src/main.rs -f Cargo.tomlUse a temporary directory as the workdir (persists after the container exits):
orka --tmpUse a named scratch directory (created at ~/.local/share/orka/scratch/<NAME> (XDG_DATA_HOME)):
orka --scratchpad my-task| Flag | Description |
|---|---|
--runtime |
Agent runtime: pi (default), claude, codex |
--preset <NAME> |
Apply a named preset from environments.yaml. Repeatable. |
--env <KEY=VALUE> |
Inject an env var into the container. Repeatable. |
--file / -f <FILE> |
Mount a specific file instead of the CWD. Repeatable. |
--tmp |
Use a temporary directory as the container workdir. |
--scratchpad <NAME> |
Use a named persistent scratch directory as the workdir. |
--harness-version / -v |
Pin the agent version to install (pi only). |
--no-browser |
Skip installing agent-browser and Chromium (pi only). |
--preserve-container |
Keep the container after it exits instead of removing it automatically. |
--no-cache |
Rebuild the agent image without Docker layer cache. |
--dry-run |
Print Docker commands without running them. |
--verbose |
Show Docker build output (suppressed by default). |
--print-license |
Print the license text and exit. |
Presets are named configurations defined in ~/.config/orka/environments.yaml. Each preset can specify volumes to mount and environment variables to inject. Presets can be stacked with multiple --preset flags.
See config/environments.yaml for the format.