STET //

Review your AI coding agent's plan before it writes the code.

Your agent pushes the spec, plan or mockup it just made and waits. You read it as a page, approve it or request changes, and the agent acts on your verdict.

Not code review. Review of the plan, before the code.

Works with Codex, Cursor, Aider, Gemini CLI, Claude Code and any agent that can run a shell command.

$ curl -fsSL https://stet.fyi/cli/install.sh | sh Windows: irm https://stet.fyi/cli/install.ps1 | iex

How the review loop works

1 / Your agent pushes

It sends the spec, plan or mockup it just made under a name it picks, prints the review link, and waits.

2 / You decide from a page, not a diff

Open the link. Read it as a finished page, then approve it or request changes with a note.

3 / Your agent reads the verdict

It has been waiting the whole time. It reads your note and moves on, or revises and pushes a new version.

One flag puts a human in the loop. The agent runs stet push <slug> <file...> --wait and waits until you decide; stet wait <slug> does the same for work already pushed.

$ 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
$

Review what the agent made, not a diff of it

Know what every agent is building without opening the repo or reading a line of code.

The STET dashboard: everything the agents pushed, grouped by day, with a review status on each card
Everything your agents pushed, by day, filterable by agent, each with its review status.
A mermaid flowchart pushed by an agent, rendered as a zoomable diagram inside STET
A mermaid block in a spec, rendered as a diagram you can zoom.
  • Read the diagram, not the mermaid source.

  • An HTML mockup that needs scripts the preview can't run gets flagged

    and the agent is told too.

  • Tick a checklist item once

    and it stays ticked on the next version.

  • Every version stays, with its own status

    and a banner tells you when a new one lands.

  • Send a read-only link to someone without an account.

    It expires on its own.

Steer your agents from a page

Your verdict is an instruction, not a yes-or-no button. The note you write is what the agent works from next.

The STET review screen: a pushed spec with its version history, and Approve and Request changes buttons
The screen you decide on. The agent is waiting for what you type here.
$ stet wait auth-spec
stet: waiting for review of auth-spec v3 (every 15s, Ctrl-C to stop)…
auth-spec v3  CHANGES REQUESTED
    Use the existing session table. Drop the new migration.
$ echo $?
1

A changes-requested verdict, exactly as the agent receives it.

  • Approve or request changes.

    Those are the only verdicts, and each version gets its own.

  • Your note reaches the agent word for word,

    printed in its terminal.

  • The exit code carries the verdict

    (0 approved, 1 changes requested), so a script can branch on it.

  • The agent waits until you decide.

    A time limit is optional.

  • A verdict lasts.

    If the agent stops waiting, it still finds your answer in its next session.

  • Pause one agent, or cut it off, from the web UI.

    The others keep running.

Works with the agent you already use

STET is one static binary for Linux, macOS and Windows, plus your password-manager CLI if you use one. No SDK, no plugin, no vendor client. If your agent can run a shell command, it can use STET.

1 / Sign up

Create an account with email and password, then confirm your email.

2 / Install the CLI

One line in sh or PowerShell, shown at the top of this page.

3 / Hand your agent a token

The welcome page or Settings gives you an enroll token at the press of a button. On the welcome page it fills the lines to copy, plus a prompt to paste into your agent.

4 / Your agent enrolls itself

It runs stet enroll once per project, which writes a .stet file you can commit, then says what it does with stet set-identity and starts pushing.

Without a password manager the CLI keeps the token in your macOS Keychain or Linux keyring, or in a private file. 1Password, Bitwarden, pass, gopass and KeePassXC work too, and an environment variable covers CI and containers.

Where your work lives

  • On our own server in Germany,

    over HTTPS, not in a third-party object store.

  • Agent tokens are stored hashed

    (SHA-256).

  • Share links expire

    after 24 hours.

  • Archived content is deleted on a schedule

    set by your plan.

Pricing

Every price includes tax. Monthly, cancel any time.

Free

free

  • 10 MB storage
  • 30 lifetime pushes to try it
  • 3 agents
  • Archive cleaned periodically

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

Enterprise

custom

Let's discuss how to make STET available in your enterprise.

No card to start. Questions about a plan or a charge: [email protected].

Questions

Which agents does this work with?
Any agent that can run a shell command: Codex, Cursor, Aider, Gemini CLI, Claude Code, Copilot CLI, or your own script. Any model, any harness, no SDK.
What happens if I never review something?
The agent waits until you decide. Give it a time limit and it stops waiting when the limit runs out; your verdict still reaches it later through stet feedback. To see what is waiting, open the dashboard or the link the agent printed.
Why not just read the file in my editor?
You can. STET adds what an editor doesn't: diagrams and mockups rendered, every version kept with its verdict, and a note the agent reads while it waits.
How do I make sure my agent actually stops for review?
Tell it to. The enroll prompt and the markdown page both instruct the agent to push its work and wait. Claude Code can also get a session briefing with stet install-hooks. STET can't force an agent to stop; its instructions do.
Is this code review?
No. It's review of what the agent makes before the code: specs, plans, mockups, diagrams, research. Your pull-request review stays where it is.
Do I need a password manager?
No. Without one, the CLI keeps the agent's token in your macOS Keychain or Linux keyring, or in a private file. A password manager is optional hardening; an environment variable works for CI and containers.
Does it work in CI or containers?
Yes. Put the token in an environment variable, and the agent pushes and waits like anywhere else.
How do I point an agent at this?
Sign up and generate an enroll token. Then give your agent the markdown version of this page, and it onboards itself.
What will my statement show?
Stripe handles payment and tax as the seller of record, through Link. Your statement shows LINK.COM*, and receipts come from Link.
stet /stɛt/ verb · proofreading

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. //

Try it on your agent's next plan.

Start free — no card