Zero-Trust AI Agent
High-performance. Single binary. Sandboxed by default. Triple mode: CLI agent, CI resource, and self-hosted wiki.
cgroups v2, Network namespace (or net-guard), Seccomp BPF, Landlock, DNS allowlist. Every tool call is isolated.
read_file, write_file, list_dir, execute_cmd, fetch_url, inspect_process — all sandboxed.
Load contextual abilities via @skill_name. Frontmatter-driven, multi-path search.
GitHub Copilot (auto refresh), OpenRouter, Google Gemini, any OpenAI-compatible endpoint.
Stdio JSON-RPC client for Model Context Protocol servers. Extend without recompiling.
Same binary doubles as a Concourse CI resource type via symlink routing. Zero extra deps.
Adjustable reasoning depth: off, low, medium, high, xhigh. Compatible with Claude and o-series models.
Embedding-powered skill discovery. Skills matched by meaning, not just @name references.
Strace-based exploratory analysis that suggests safe policy expansions; human-reviewed before applying.
Override the default system prompt via CLI flag, env var, or config. AGENTS.md context is always appended.
AI-powered Markdown wiki served from the same binary. Real-time collaboration, public sharing, KaTeX math, Mermaid diagrams, syntax highlighting, role-based auth (admin/user/guest).
A full-featured, AI-powered Markdown wiki served from the same Rune binary. Zero extra dependencies.
Full browser-based editor and viewer. Start the notes server with rune notes --serve. No separate process needed.
Three roles: admin (full control), user (read/write own notes), guest (public read-only access). Per-file visibility settings.
Multiple users can edit notes simultaneously. Changes sync in real time via WebSocket — no page refresh needed.
Mark any note as public and share a direct URL. Guests can read without logging in. Great for public docs or personal wikis.
KaTeX math rendering, Mermaid diagrams, syntax-highlighted code blocks, and standard Markdown — all rendered in the browser.
Ask questions about your notes using the same AI models as the CLI. Context-aware answers grounded in your own wiki content.
Use Rune as a Concourse CI resource type. Minimal weather pipeline:
resource_types:
- name: rune-agent
type: registry-image
source:
repository: ghcr.io/fourdollars/rune
tag: latest
resources:
- name: weather
type: rune-agent
check_every: 1h
source:
api_key: ((copilot-pat))
model: gpt-4o-mini
prompt: "Fetch the weather for Taoyuan from wttr.in using curl."
policy:
allowed_commands: ["curl"]
allowed_domains: ["wttr.in"]
jobs:
- name: weather-check
plan:
- get: weather
trigger: true
Run Rune instantly via Docker. Three image variants available:
# Alpine — smallest image (~15 MB), musl-based
docker pull ghcr.io/fourdollars/rune:alpine
# Debian (Bookworm) — glibc-based, broad compatibility
docker pull ghcr.io/fourdollars/rune:debian
# Ubuntu (24.04) — familiar environment
docker pull ghcr.io/fourdollars/rune:ubuntu
# Latest tag (defaults to Debian)
docker pull ghcr.io/fourdollars/rune:latest
# Initialize config — mounts ~/.config/rune for persistence
docker run -it --rm \
-v ~/.config/rune:/home/rune/.config/rune \
ghcr.io/fourdollars/rune init
# Start an interactive session
docker run -it --rm \
-v ~/.config/rune:/home/rune/.config/rune \
-v "$PWD":/workspace -w /workspace \
ghcr.io/fourdollars/rune
# One-shot query without local installation
echo "Explain what Landlock is" | docker run -i --rm \
-v ~/.config/rune:/home/rune/.config/rune \
ghcr.io/fourdollars/rune --json --yes
# Add to ~/.bashrc or ~/.zshrc
alias rune='docker run -it --rm \
-v ~/.config/rune:/home/rune/.config/rune \
-v "$PWD":/workspace -w /workspace \
ghcr.io/fourdollars/rune'
git clone https://github.com/fourdollars/rune.git
cd rune
cargo build --release
cp target/release/rune ~/.local/bin/
rune init
echo "Get weather for Tokyo" | rune --json --yes