Self-hosted
control plane
for AI agents.
.NET 10 · SQLite · Yours to run
An auditable agent runtime that lives on your machine, talks to the providers you choose, and persists everything to a local SQLite file. Five providers. MCP-native. Tamper-evident audit chain. No cloud. No telemetry. No surprises.
Every prompt walks fourteen named steps.
Most agent runtimes are a while(notDone) loop nobody can reason about. SRVSH's TurnLoop is a deterministic, numbered pipeline. Every run — CLI, browser, Telegram, agent orchestrator — passes through the same fourteen stages. Each stage emits events. Each transition is auditable. You can stop the world at step 09 and know exactly what's happened.
Three things most runtimes skip.
Auditable by construction
Every event — run start, tool call, model swap, vault unlock, policy violation — appends to a hash-linked SHA-256 chain in your local SQLite. Tamper-evident. Verifiable. You can prove what your agent did, when, and with what permission.
Audit chainGated, not optional
A two-layer security pipeline runs before any tool executes. PolicyEngine maps tools to risk tiers. ApprovalEngine asks the user when needed. AES-GCM vault for secrets. Approval decisions persist across restarts.
Policy + approvalStreaming-first, end to end
Provider APIs return IAsyncEnumerable<StreamDelta>. Events flow through SSE to the browser, through long-poll to Telegram, through stdout to the CLI — without a single buffering layer. What the model is saying, you see now.
Five providers. One key, if you want.
Bring whatever models you trust. Local Ollama for free runs. OpenRouter for one key across 300+ models. Anthropic, Gemini, or any OpenAI-compatible endpoint when you want first-party. Each provider is a single project implementing one interface — adding a new one is a weekend.
Talk where you already talk.
SRVSH ships with a channel abstraction. One agent, many surfaces — the same audit chain, the same memory, the same policy engine, whether the prompt arrives from your browser or your phone.
Five commands. Zero hosted services.
Clone, set one env var, start two processes, open the browser. No Docker. No Kubernetes. No "create an account first." Your machine, your data, your model keys.