Open-source agent harness · Apache-2.0

San — the open harness
for terminal agents

One small Go binary — a fast, open harness that runs any model and extension in an inspectable, permission-gated loop.

Watch full screen ↗

$ curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash
Release Stars License
Features

Open by design

Every layer is swappable at runtime. No lock-in.

01

🔌 Multi-LLM providers

Bring any LLM — from Anthropic to Z.ai. Switch with /model.

02

🔍 Pluggable search

Exa, Tavily, Brave, or Serper. Switch with /search.

03

🧩 Skills & extensions

Skills, plugins, MCP servers, and subagents — Claude Code compatible, run unmodified.

04

🎭 Personas

Persona bundles define reusable profiles with system prompt parts, skills, subagent visibility, and config overlays.

05

Native performance

A single Go binary. 12 MB, ~0.01s startup, no runtime.

06

💾 Session persistence

Sessions auto-save, resume, and fork, with automatic context compaction.

07

Self-evolving Level 1 · live

Every few turns, a background reviewer distills your recent work into durable memory and reusable skills — so the agent levels up as you work, no manual tuning. Level 1 is live today; deeper levels are on the way.

Lv.1 Curious Lv.10 Better Lv.50 Stronger Lv.∞ Legendary
Deploy anywhere

One binary. Runs anywhere.

A single ~12 MB binary, zero runtime dependencies — the same file runs unchanged on a laptop, a cloud node, or a 256 MB edge device.

💻 macOS & Linux laptops ☁️ Cloud nodes & VMs 📟 ARM edge devices 🐳 scratch containers ⚙️ CI steps & lifecycle hooks 🔒 Air-gapped & locked-down hosts

No Node.js, no Python, no node_modules. Why small matters & where it runs →

Footprint

Small and fast, by design

Same model (claude-sonnet-4-6), same tasks, on Apple Silicon — measured against Claude Code for reference.

MetricSanClaude CodeDifference
Download size12 MB63 MB + Node 112 MB5× smaller
Disk footprint38 MB175 MB4.6× smaller
Startup time~0.01s~0.20s20× faster
Startup memory~32 MB~189 MB5.8× less
Simple task~2.4s / 39 MB~10.4s / 286 MB4.3× faster
Tool-use task~3.3s / 39 MB~26.0s / 285 MB7.9× faster

San runs Claude Code's skills, plugins, and MCP unmodified — the gap is a native Go binary vs a Node.js runtime. Reproduce the numbers →

Get started

Try it in 30 seconds

Open source under Apache 2.0. Star the repo if it's useful — it genuinely helps.

Community

Join the conversation

Two ways in — WeChat for the Chinese community, Slack for everyone else.

WeChat official account 极客外传 QR code

关注公众号「极客外传」· 回复 san 入群