Open source · v0.1.1

Rune

An AI coding harness, built from scratch.

Your models. Your machine. A coding engine you can inspect and control.

Version
v0.1.1
Released
16 September 2026
Platforms
macOS · Linux · Windows preview
Licence
Apache-2.0
macOS · Linuxcurl -fsSL https://savoir.services/install.sh | bash
Windowsirm https://savoir.services/install.ps1 | iex
rune · example session

Example session. Rune installs and verifies itself against published checksums, reports an active sandbox and healthy model routes, then plans a three-step task in first gear: each finished step shows its proof, and the last waits for approval.

Under the surface

Power, with control.

Why we built it

You cannot make an AI system safe from the outside. So we built the whole harness ourselves: the provider gateway, the tool executor, the sandbox, the permission ladder, the session store. The same engineering goes into every system we build for clients.

“Will it act without asking?”
Five permission levels. First gear asks before everything.
“Can we see what it did?”
Every step is logged with its proof and its reason.
“Will it leak our data?”
Commands run in a sandbox. Stored credentials stay unreadable.
“Are we tied to one AI company?”
Thirty-odd providers or local models, with automatic fallback.
“Will the bill run away?”
A spending cap stops the run and hands over cleanly.
“What if it crashes?”
Checkpoints and rewind. Interrupted work resumes where it stopped.
Explore the engine

One engine, four clients: the terminal, rune serve, ACP for editors and headless rune -P. Every feature below is in the same binary.

Multi-provider gateway
Thirty-odd cloud presets and local Ollama from one /login, with fallback, retry and backoff. A quota cap stops the turn and writes a resume handoff first, instead of silently swapping models under you.
Tool suite
read, write, edit, multi-edit, glob, grep, list, bash, symbol search, AST query, web fetch and search, todos, plus task sub-agents for read-only investigation and worker sub-agents for implementation. File and shell tools run through a native Rust executor.
Permissions and sandbox
A five-rung ladder on Shift+Tab: 1st gear asks about everything, 4th is full autonomy, Auto is classifier-reviewed. Beneath it a separate OS sandbox policy, Seatbelt on macOS and bubblewrap on Linux, with credential stores unreadable to tool calls.
The plan ledger
A step closes on a write, a run or a passing check the harness measured, not on the model’s say-so. A step with nothing behind it is shown as unproven, and rune audit prints the whole run: goal, plan with receipts, safety decisions and their reasons, cost.
Sessions and recovery
A SQLite session store, checkpoints and /rewind. A run killed mid-tool resumes with its work, its worker’s work, its contract and its counters intact; orphaned processes die with the engine.
Extensions and surfaces
Hooks, user skills, custom slash commands, plugin bundles and MCP connectors. rune -P "<prompt>" --stream-json for CI, rune serve plus rune attach for a remote engine, rune acp for editors. Telemetry is off by default.

Install

One command per operating system.

The installer downloads the release for your machine, verifies it against the release’s SHA256SUMS, and only then writes to the install directory. A mismatch installs nothing.

  1. 01

    Run the installer

    Downloads rune and rune-tools for your chip to a staging directory, verifies both against SHA256SUMS, then moves them into ~/.rune/bin. Nothing reaches the install directory before verification passes.

    zsh
    curl -fsSL https://savoir.services/install.sh | bash
  2. 02

    Put ~/.rune/bin on your PATH

    When piped from curl there is nobody to ask, so the installer prints the exact line and does not edit your shell profile. Add it yourself, or re-run with --path to have it appended for you.

    zsh
    echo 'export PATH="$HOME/.rune/bin:$PATH"' >> ~/.zshrc
    source ~/.zshrc
    Or let the installer write it
    zsh
    curl -fsSL https://savoir.services/install.sh | bash -s -- --path
  3. 03

    Check the install

    doctor reports the state of the install and which of your routes are healthy. tools-smoke exercises the native file, search and shell tools.

    zsh
    rune --version
    rune doctor
    rune tools-smoke
  4. 04

    First run

    Type rune with no configuration. /setup chooses a provider and model, adds a key or signs in, and sets search, a spend cap and a sandbox policy, inside the terminal, without editing a file. Free routes are listed first: OpenRouter’s free tier, Google AI Studio, or a local Ollama.

    zsh
    rune

From source

Needs Bun and Rust. install.sh compiles the CLI and the native rune-tools executor into ~/.rune/bin, then runs rune serve --check against the staged binary before promoting it onto your PATH, so a binary that cannot host a session never lands. On Windows, build under WSL2.

bash
git clone https://github.com/ritikkyyadav/Rune.git && cd Rune
./scripts/install.sh
export PATH="$HOME/.rune/bin:$PATH"

After the install

Pin a version
curl -fsSL https://savoir.services/install.sh | RUNE_VERSION=v0.1.1 bash
Relocate
curl -fsSL https://savoir.services/install.sh | RUNE_INSTALL_DIR=/usr/local/bin bash
Check for a release
rune upgrade --check
Upgrade
rune upgrade # download, verify, install; keeps one .backup
Uninstall (macOS, Linux)
curl -fsSL https://savoir.services/install.sh | bash -s -- --uninstall
Uninstall (Windows)
.\install.ps1 -Uninstall
Verify by hand
curl -fsSLO https://github.com/ritikkyyadav/Rune/releases/latest/download/SHA256SUMS sha256sum -c SHA256SUMS --ignore-missing # shasum -a 256 -c on macOS

Uninstall removes the binaries and the PATH line and nothing else. Sessions, config and credentials stay in ~/.rune until you remove them. Rune looks for a newer release at most once a day and prints one line at startup; nothing is replaced without rune upgrade being typed.

Platforms

Where it runs.

PlatformArchitectureSandboxCredentialsStatus
macOSarm64 · x64Seatbelt (sandbox-exec)KeychainSupported
Linuxx64 · arm64bubblewrapSecret Service, plaintext fallbackSupported
Windowsx64None, path guards onlyDPAPIPreview

Each platform ships a rune and rune-tools pair, and the pair is required: file, search and shell tools run through the native executor. Every release publishes SHA256SUMS generated in the same job that built the binaries; both installers refuse a release without it, and refuse a download that does not match it.