mcpField
G
GenPilot

GenPilot

Local
genai-io.github.ioAI & Agents146Updated today

About GenPilot

GenPilot (San) is an open-source terminal agent runtime for developers who want to configure models, prompts, tools, and extensions. Its native Go binary supports multiple agents, editable behavior, and replayable run inspection.

Key features

  1. 01Native Go binary with no runtime dependencies
  2. 02Configurable models, prompts, and extensions
  3. 03Parallel subagents and graph workflows
  4. 04Session groups for agent messaging
  5. 05Permission controls and run replay

Use cases

  1. 01Running an interactive or one-shot terminal agent
  2. 02Coordinating subagents for a task
  3. 03Sharing messages across sessions
  4. 04Reviewing and debugging an agent run

MCP support

San supports MCP servers as configurable extensions and provides a `san mcp` subcommand. Project and personal MCP server definitions can be stored in `mcp.json` and `mcp.local.json`.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

No install method listed yet

We haven’t collected a package or remote endpoint for this server. Follow the instructions in the project README.

Repository

Tools

No tool list yet

Local servers expose tools only once running on your machine, and the maintainer has not provided a tool list.

Details

From the project README

< SAN ✦ />

Minimal overhead. Maximum agent.

Lean context, native speed, open all the way down.

Release Website Getting Started Docs Product Hunt License

English · 简体中文

San — animated intro

Open the full-quality intro ↗

San is an open-source terminal agent runtime: one native Go binary, no Node.js or Python. Everything the model touches — prompt, tools, providers, extensions — stays yours to change.

Why San

Three properties, and San refuses to trade any one of them for the others.

Small — ~2.3k tokens of harness reach the model before your first message; the rest of the context window goes to your work. On disk, one 12 MB binary with zero runtime deps — it drops onto a laptop, a CI runner, or a scratch container.

Fast — ~0.01s cold start, and a full tool-use task returns in ~3.3s end to end. What you wait on is the model, not the client (benchmark).

Open — plug in models, skills, subagents, and MCP servers; write your own system prompt, autopilot goals, and self-learning strategy; replay any run in san inspector.

The name — San, written 三 ("three") and drawn ☰. From the Dao De Jing, 三生万物 — "three begets the ten-thousand things": one runtime that becomes any agent, running a three-step loop (reason → act → observe). The command stays san.

Open architecture

Overview diagram
San — pluggable models, search backends, personas, skills & extensions, and a self-evolving agent

Plug in — nothing is hardwired. Models from Anthropic, OpenAI, Google, DeepSeek, Ollama, and a dozen more; the web search backend of your choice; extensions of every kind — skills, subagents, MCP servers, plugins, hooks.

Write — how the agent behaves is text you own, not something baked into the binary. Compose the system prompt (how), bundle it into a persona you can switch, give autopilot a goal, set the strategy self-learning follows.

Coordinate — more than one agent at a time. Subagents run in parallel, each on the model that suits it; workflows arrange them as a graph (how); and sessions on one machine join a group to message each other back and forth — anything that can wait holds for you (session groups).

Oversee — nothing runs unwatched. You choose how much San may do without asking, and subagents inherit that choice (permissions); the inspector replays any run exactly as the model saw it.

Installation

Homebrew (macOS / Linux)

brew tap genai-io/san
brew install san

macOS / Linux

curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash

Windows (PowerShell)

irm https://raw.githubusercontent.com/genai-io/san/main/install.ps1 | iex

On Windows, San runs commands under PowerShell (pwsh if present, else the built-in Windows PowerShell); set SAN_SHELL=bash, powershell, or a path to choose. With both installed, the other one is available too — turn it on in /tools.

Start with san. On first launch, choose a model and add its API key when prompted. San keeps itself current: a new release is installed in the background and the status line asks for a restart. Run san update to update right away, or brew upgrade san if you installed via Homebrew; turn background updates off in /settings › General (or set SAN_DISABLE_AUTOUPDATE=1). Model lineups, context windows and prices come from models.dev, refreshed daily (SAN_DISABLE_MODEL_REFRESH=1 to skip); correct any of them in ~/.san/models.json.

Other methods

Uninstall

# macOS / Linux
curl -fsSL https://raw.githubusercontent.com/genai-io/san/main/install.sh | bash -s uninstall
# Windows (PowerShell)
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/genai-io/san/main/install.ps1))) uninstall

Go Install (requires Go 1.26.9+)

go install github.com/genai-io/san/cmd/san@latest

Build from Source

git clone https://github.com/genai-io/san.git
cd san
go build -o san ./cmd/san
mkdir -p ~/.local/bin && mv san ~/.local/bin/

Usage

san                          # interactive
san "explain this function"  # one-shot
san -p "do something"        # print mode (no TUI), pipe-friendly
san --continue               # resume the latest session
san --resume                 # pick a past session to resume

Subcommands: inspector · agent · plugin · mcp — run san <command> --help for each.

WhatHow
Model · thinking budget/models · Ctrl+T
Permission modeShift+Tab (ask · auto-accept · autopilot)
Long-running work · learning/autopilot · /goal · /evolve
Message your other sessions/group join · /group members · /group hold on|off
All slash commands/help
KeysEnter send · Alt+Enter newline · Esc stop · Ctrl+O expand tool · Ctrl+C cancel · Ctrl+D exit

docs/guides/getting-started.md

Configuration
Credentials
ServiceVariable
Anthropic (Claude)ANTHROPIC_API_KEY or Vertex AI
OpenAI (GPT, o-series, Codex)OPENAI_API_KEY, or a ChatGPT subscription (sign in via /models)
GitHub Copilot (all Copilot models)a Copilot subscription (sign in via /models)
Google (Gemini)GOOGLE_API_KEY, or Vertex AI (gcloud auth application-default login + GOOGLE_CLOUD_PROJECT)
DeepSeek (DeepSeek V4)DEEPSEEK_API_KEY
Moonshot (Kimi)MOONSHOT_API_KEY
Alibaba (Qwen)DASHSCOPE_API_KEY
MiniMaxMINIMAX_API_KEY
Z.ai (GLM / GLM Coding Plan)BIGMODEL_API_KEY
SenseNovaSENSENOVA_API_KEY
MimoMIMO_API_KEY
Volcengine (Ark)VOLCENGINE_API_KEY
Ollama (local)OLLAMA_BASE_URL (default http://localhost:11434/v1)
Agnes-AIAGNESAI_API_KEY
Exa searchnone (default)
Tavily searchTAVILY_API_KEY
Brave searchBRAVE_API_KEY
Serper searchSERPER_API_KEY
Config files & layout

Settings load from ~/.san/ and <project>/.san/, with project settings overriding user settings. Project instructions follow the AGENTS.md standard: ~/.san/AGENTS.md, every AGENTS.md from the repository root down to the working directory (the nearest one wins), and a git-ignored AGENTS.local.md at the root.

User-level (~/.san/):

providers.json    # Provider connections and current model
models.json       # Your corrections to model windows, prices and reasoning efforts
settings.json     # Permissions, hooks, env, active persona
skills.json       # Skill states
personas/         # Persona bundles: system prompt parts, skills, settings
skills/           # Custom skill definitions
agents/           # Agent definitions
commands/         # Custom slash commands
plugins/          # Installed plugins
projects/         # Session transcripts + indexes

Project-level (.san/):

settings.json       # Permissions, hooks, disabled tools
mcp.json            # MCP server definitions (team shared)
mcp.local.json      # MCP server definitions (personal, git-ignored)
personas/           # Project-scoped persona bundles (override user-level)
agents/*.md         # Subagent definitions
skills/*/SKILL.md   # Skills
commands/*.md       # Slash commands
plugins/            # Project-level plugins
plugins-local/      # Local plugins (git-ignored)

Benchmark: San vs Claude Code

Compared with Claude Code v2.1.112 on Apple Silicon, same model (claude-sonnet-4-6):

MetricSanClaude CodeAdvantage
Download size12 MB63 MB (+ Node.js 112 MB)5x smaller
Disk footprint38 MB175 MB4.6x smaller
Startup time~0.01s~0.20s20x faster
Startup memory~32 MB~189 MB5.8x less
Simple task~2.4s / 39 MB~10.4s / 286 MB4.3x faster, 7.3x less memory
Tool-use task~3.3s / 39 MB~26.0s / 285 MB7.9x faster, 7.2x less memory
Harness context*~2.3k tokens~20.9k tokens~9x leaner

*Context overhead is system prompt + tool schemas on an empty first turn, measured separately on San v1.22.0 vs Claude Code v2.1.220 — see method. All other rows are from the v1.13.2 / v2.1.112 run.

Comparable feature sets — the gap is client-side overhead, not capability. docs/operations/benchmark.md

Documentation

Related Projects

  • Claude Code — Anthropic's AI coding assistant
  • Aider — AI pair programming in terminal
  • Continue — Open-source AI code assistant

Community

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

  • WeChat — 关注公众号「极客外传」· 回复 san 或 三 入群
  • Slack — Join our Slack

Contributing

Contributions welcome! See CONTRIBUTING.md for guidelines.

License

Apache License 2.0 - see LICENSE for details.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.