Your AI coding agent stops
and waits for your verdict.
STET is a human-in-the-loop review gate for AI coding agents. Your agent pushes the spec, mockup, diagram or research it just produced, then blocks — until you approve it or send it back with notes. It reads the verdict and keeps going, or revises and pushes again.
$ curl -fsSL https://stet.fyi/cli/install.sh | sh
Works with Claude Code, Codex, and any agent that can run a command.
How the review loop works
1 / Your agent pushes
Versioned, immutable content sets — Markdown, HTML, images, PDFs, whole file sets. Every push is a new version, so nothing is overwritten and the history stays readable.
stet push <slug> <file...> --wait
2 / You approve, or you don't
Open the link. Read the rendered page — the mockup as a page, the diagram as a diagram, the checklist as a checklist. Approve it, or request changes with notes.
3 / Your agent reads the verdict
It was blocked this whole time. Now it knows: it moves on, or it revises and pushes again. No polling loop for you to write.
stet wait <slug>
One flag turns a push into a checkpoint
$ stet push auth-spec spec.md --wait {"slug":"auth-spec","version":3,…} https://stet.fyi/contents/auth-spec stet: waiting for review of auth-spec v3 (every 15s, Ctrl-C to stop)… ▋ auth-spec v3 APPROVED ship it $
That pause is the product. stet push <slug> <file...> --wait blocks the agent
until there's a verdict; stet wait <slug> does the same for something
already pushed. Nothing to orchestrate, no webhook to receive, no callback server to run.
Review what the agent made, not a diff of it
Agents produce documents, not just code: specs, research write-ups, architecture diagrams, HTML mockups. STET renders them.
-
Diagrams render on the server
A mermaid or vega-lite block in your Markdown becomes an SVG — zoomable, fullscreen, no client-side JavaScript.
-
HTML previews are sandboxed, and honest
STET lints every HTML push, flags what the sandboxed preview can't render, and tells the agent — so it fixes the mockup instead of you discovering it was wrong.
-
Checklists survive the next version
Ticks are keyed to the item's text, so they follow the item when the agent pushes a new version.
-
Every version stays
Immutable pushes, full history, and a signed view link you can send to someone without an account.
Any agent, any machine, one binary
Per-agent tokens, not a vendor session. An unattended agent on any model can push and block on a verdict — and you can revoke one agent without touching the others.
The CLI is a single static binary: Linux, macOS and Windows, amd64 and arm64. No SDK, no runtime, no vendor client. The only other thing it needs is your password-manager CLI, so the token stays in your vault instead of a dotfile.
Agents enroll themselves from an enroll token you generate —
stet enroll, once, per project. For Claude Code,
stet install-hooks wires the session context so every session knows
what STET is for. Install the CLI.
Where your work lives
Worth knowing before you push a spec you care about.
-
On a server in Germany
Content you push is stored on STET's own machine in Germany and served to you over HTTPS — not handed to a third-party object store.
-
Tokens are stored hashed
Agent tokens live as SHA-256 digests. STET can't show you a token after it's issued, and neither can anyone who reads the database.
-
Share links expire
The login-free view links (/v/…) are signed, read-only, scoped to one version, and expire after 24 hours.
-
Revoke one agent, not all of them
Every token is per-agent and revocable from the web UI. Revoking one doesn't disturb the others.
-
Archives are deleted on a schedule
Archived content is cleaned up on a window that depends on your plan — the numbers are in Pricing, below.
Pricing
Every price includes tax. Monthly, cancel any time.
mini
€4,99/mo
incl. tax
- 100 MB storage
- Unlimited pushes
- Unlimited agents
- Archive kept 30 days
ultra
€19,99/mo
incl. tax
- 500 MB storage
- Unlimited pushes
- Unlimited agents
- Archive kept indefinitely
Start free — no card to begin. Payments and tax are handled by Stripe as the seller of record; your statement shows LINK.COM* and receipts come from Link. Questions about a plan, a charge or an invoice — [email protected].
Questions
- Which agents does this work with?
- Any of them. STET is a CLI, not an integration: if your agent can run a shell command, it can push and block on a verdict — any model, any harness, no SDK. Claude Code additionally gets stet install-hooks to wire the session context for you.
- What happens if I never review something?
- The agent blocks until you do, or until you stop it (Ctrl-C). stet feedback is idempotent, so an agent can re-read verdicts safely.
- Is this code review?
- No. It's review of what the agent produced before the code — specs, plans, mockups, diagrams, research. Your existing pull-request review stays where it is.
- Can I try it without paying?
- Yes. The free tier gives you 30 pushes and 3 agents, no card.
- How do I point an agent at this?
-
Agents enroll themselves from an enroll token you generate; no manual wiring per agent.
Run
stet enroll, then sign up to get one. This page has a markdown version written for agents — hand them the URL and they can onboard themselves.
To cancel a marked correction and let the original stand — from the Latin stet, “let it stand.” An editor writes it beside a change they’ve decided to keep.
Here, it’s the one word your agent is waiting for. //