Open source · Apache-2.0

GUS asks before it acts.

A secure open-source AI agent. Secure by architecture, boring by process, capped by default — the spend limits, the vault, and the approvals live in a control plane the agent itself cannot reach.

GUS on GitHubInstall guide
GUS
109/109
Unit tests passing
$0.484
Settled of a $0.50 cap in the runaway drill
5
Actions to onboard — no terminal after install
$2 · $10 · $100
Starter caps: per task · per day · per month
Every figure above comes from a named, runnable drill in the repository — inspect them yourself.
Architecture

Built backwards from how agents fail

Updates that break the install. Runaway bills with no ceiling. Credentials sitting inside the model's context. Safety instructions silently dropped when the conversation is compacted. GUS is split in two so none of that happens quietly: the agent loop runs in a sandboxed container with no network and no secrets, and everything that keeps it honest — the spend Governor, the credential Vault, the Approval Engine, the Updater — runs in a separate control plane the agent cannot reach.

💸
Hard spend caps, outside the modelPer-task, daily, and monthly ceilings enforced by the Governor. In the runaway drill a runaway task settled $0.484 of its $0.50 cap — then the tool layer refused, full stop. The model cannot argue with it.
🔐
A vault, not a contextCredentials live encrypted in the vault and are injected at the edge, for one request, when a call needs them. There is no API that returns a secret, and no secret ever enters the agent's context.
✋
Approvals that holdDestructive, bulk, and external actions park for a human yes — hash-bound to the exact action, single-use, and a timeout means no. The requirement lives in the control plane, so context compaction cannot erase it.
🔁
Boring updatesSigned releases, staged into an idle slot and replayed against your own recorded automations before they go live; anything that fails rolls back automatically. Your data — ledger, vault, approvals — is never part of a rollback.
🧾
No silent failureEvery job ends in exactly one state: verified-done (a control-plane check passed, not the agent's self-report), failed-loudly, or needs-approval — and every ending issues a signed receipt. Even a crash is covered: orphaned jobs are settled failed-loudly on the next start.
🛡️
Agent-Shield on every pathEvery tool call, skill install, and MCP connection passes the Agent-Shield scan gate before it happens — a “do not install” verdict has no override. Paste a secret into chat and the secret-guard flags it and refuses to forward, store, or ingest it.
The Yue drill

Named for the failure it prevents

In February 2026, an agent whose “confirm before acting” instruction was compacted away bulk-deleted more than 200 emails while ignoring stop commands. In GUS, the approval requirement is not an instruction in the conversation — it is a property of the tool layer. The Yue drill proves it still holds after compaction and restarts, against a model that insists. And the kill switch — in the panel, or /stop from your phone — halts everything until you say otherwise.

Evidence

Proved by drills, not promises

Each promise is a mechanism, and each mechanism is proved by a named, runnable test in the repository's Promise Suite. If a change ever requires loosening one of those tests, the release does not ship.

📦

Sandbox & control plane

The agent loop runs isolated — no network, no secrets — while the Governor, Vault, and Approval Engine run outside its reach. The secret-guard gate holds from the first drill on.

🔑

Vault & egress red-team

A credential red-team went hunting for a planted canary secret through every path the agent has. The canary surfaced nowhere — credentials are used in flight, never read.

✋

Governor & approvals

The runaway-cap drill settles at $0.484 of a $0.50 cap; the Yue drill keeps approvals binding after the instruction that asked for them is compacted away.

🔁

Boring updates

A deliberately bad update is staged, replayed against recorded automations, caught, and rolled back automatically — the working version is never replaced by a broken one, and data never rolls back.

🛡️

Shield gate

Tool calls, skill installs, and MCP connections are scanned and receipted before they happen; a “do not install” verdict has no override.

🚀

Five-minute onboarding

A new operator goes from install to a first verified job in five actions in the panel wizard — no terminal, no config files, starter caps accepted or changed in one step.

Providers

Bring your own brain

Pick the model service in the setup wizard. Keys are entered in the panel and go straight into the encrypted vault — never into a chat — and every call is priced by the Governor against your caps.

✨

Gemini — the recommended starter

A free Google AI Studio key is enough to begin. One honest catch: on Google's free tier, Google may use what you send to improve its models — a paid Gemini key removes that.

🔌

OpenAI-compatible

Point GUS at any OpenAI-compatible endpoint with your own key — Anthropic, OpenAI, or your own gateway — under the same caps and receipts.

🏠

Ollama — fully local

Run a model on your own machine. Nothing leaves your hardware, and the same Governor, vault, and approvals apply.

Gateways

The Gmail Gateway

Capabilities reach GUS through Gateways — governed connections that execute in the control plane, under the same approvals, caps, and receipts as everything else. Gmail is the first Gateway; Calendar is a separate, later one.

📥
Read, search, summarize — scanned firstInbound mail is Agent-Shield-scanned before the model reads it. A message the gate blocks is withheld: the model hears that it was withheld, and why — never the content.
✉️
Draft, send, reply — secret-guardedOutbound mail passes the secret-guard before anything leaves: the pattern screen, plus a check against the actual values in the vault. A hit refuses the send outright, naming the pattern class or the secret's name — never a value.
🏷️
Label, archive, spam controlFiling, junk reporting, and sender blocking run as ordinary governed actions — and every action verifies its post-condition against the mailbox afterwards, so “done” means it actually happened.
🔑
Once · Always · NeverOnce is the default: one exact action, hash-bound, single use. Always is a standing approval scoped to a person, a domain, or a group you name. Never is a deny rule, and it beats everything. Bulk actions and deletes are never always-eligible — each one parks with the exact message IDs listed. That is the Yue rule, and no settings file can soften it. First-time external recipients always prompt, too.

Setup is one short guided step: a Google OAuth credential stored in the vault under your control, revocable in one click from either side. The token never enters the agent's context.

Get started

Five minutes, one command

You need a computer that stays on — a home machine or a small rented server is plenty; GUS is built to fit in 1 GB of memory — and Docker installed. One compose command starts both halves. After that, the five-step panel wizard takes over: connect the Shield, add Telegram for approvals in your pocket, pick a provider, accept or change the starter caps, and run your first job to its signed receipt.

GUS on GitHubRead the install guideJoin the discussion
Status

Honest limits

What GUS does not do — published in the same place as what it does.

🧪

Drill vehicles, for now

The container drills to date ran the same OCI images via podman instead of a Docker daemon, and the Shield-gate drill replays responses captured from the live Agent-Shield API (the receipts earned are real, and were verified live). A re-run on a stock Docker host is scheduled and retires both caveats.

🧩

Skills are gated, not executed

In v1, third-party skills are scanner-gated and stored, but GUS does not yet run third-party skill code. The built-in job types are the working surface, and safety is never the upsell — everything on this page ships in the open-source core.

🧾

What a receipt means

A signed receipt proves a scan happened, what it covered, and what it found — “no known-bad patterns detected.” It is not a guarantee that content is safe, and GUS never markets the gate as one.

GUS sends nothing home by default; the one anonymous install heartbeat is opt-in and off unless you turn it on. “GUS” is a working name pending formal trademark clearance.