Make your agents
show their work.

Station is the agent workspace where work ships with receipts. It brings your agents, projects, and devices into one open-source, local-first workspace, and keeps the gates, evidence, and receipts beside the work — so "done" means proven rather than asserted. Already shipping with a coding agent? Flow Agents brings the same discipline into the tools you run today.

Station

One workspace for the whole job.

Most agent tools stop at an answer or a diff. Station keeps the work and the reason it is allowed to advance together, on your machine.

Your agents, one place

Run Station agents on a local or hosted model, or connect supported agent CLIs such as Claude Code and Codex as External agents. Each engine keeps its own tool loop; Station supplies the project context, the gates, and the record.

Work that outlives a chat

Projects, Tasks, Sessions, changed files, artifacts, and receipts stay linked. Reopen a Task later, or follow it from a phone or laptop paired to your Station, and the context is still there.

Receipts beside the work

Gate outcomes, missing evidence, route-backs, and exceptions sit next to the Task they describe. Work ends as passed gates with fresh evidence, an exception a person accepted, or unverified — stated plainly.

Station project page for a small repository called Trail Notes: its path and main branch, the latest commit, the open Coding layout, and workspace panes for Coding, Chat, Diff, Files, Terminal, and Plan.
A Project in Station: the branch and latest commit, the open Coding layout, and the panes you can add beside it. A development build (revision 74b4cf1b5) served from a temporary Station home, captured on 2026-09-05; unaltered, and not a claim about a released version.

Open source under Apache-2.0 and in active development: run it from source on macOS or Linux, or try the macOS Nightly desktop build. No stable or beta release is published yet. Station data stays on your machine by default; hosted Model connections, Engines, paired devices, remote computers, and export endpoints carry data only when you configure and use them, and desktop builds check their release feed for updates. See the Station privacy policy.

The unreliable narrator

Anyone can say the tests passed.

Agents rarely lie — they narrate. Long session, compacted context, and the story drifts from the log. You've probably watched all five of these:

Three things this doesn't catch: a check that genuinely passed isn't re-invalidated when the code changes afterward, running one test file instead of the suite looks the same as running the suite, and an edited test slips through the runtime gate. The full list of what gets past it →

How a gate knows

Don't ask the agent.
Check the toothbrush.

A kid can say "I brushed my teeth" for free. The toothbrush either got wet or it didn't. Flow Agents treats an agent's "tests passed" the same way: the claim costs nothing, so it's never what a gate checks. It is one way to bring that discipline into the tools you already run; Station applies the same rule to its own Tasks through Flow gates.

the catch · replay

agent"Ran the full test suite — everything passes. Ready to merge."

capturenpm testexit 1· written by the harness while the command ran, tamper-evident

recomputeclaim says pass · capture says fail

⨯ turn blocked — claim contradicts capture. The narration never outranks the log.

Staged replay of the runtime catch that ships in the hooks — the recognition moments above are the real cases, and the receipts recompute for real →

  1. 1 · The claim

    The agent says "tests passed."

  2. 2 · The capture

    The harness already wrote the log while the command ran — real exit codes, a tamper-evident record, never the model's narration.

  3. 3 · The recompute

    Status is recomputed from the evidence. When the claim and the capture disagree, the turn is blocked.

A prompt asks an agent to be careful; a gate refuses to let the work pass until the evidence is there. In Claude Code and Codex, Flow Agents blocks the turn when a claimed pass and the recorded result disagree — in other runtimes it surfaces the disagreement to you instead of blocking. Either way, CI re-runs the same checks fresh, in an environment the agent never touched, before "done" counts.

You don't have to take our word for any of this — this site ships through the same gates. Every change here merges behind a required check that re-runs this repo's own verification in CI and, when an agent published its claims, fails on any disagreement with what CI actually observed.

Convinced?

Run Station on your own machine, or bring us the workflow you want to make inspectable and we build the gated version with you as a design partner.

Skeptical? Good.

The trust page leads with what we can't certify — and four ways to cheat the gate.

See how to cheat it →

Beyond code

Any work with a definition of done.

A paralegal checks that every fact in an intake summary traces to a document in the file. An adjuster checks that a claim's evidence was actually collected, not assumed. Neither of those is code — but both are a list of checks, and anything that can be written down as checks can be gated the same way. The result arrives with the record of what was checked, and what wasn't.

We run this on our own tax filings. On the paths that check it, an extracted figure that can't point to the words it came from is dropped before it ever reaches the math.

Facts need the same chain code does. Survey is the producer-side review contract for it: the extracted value stays tied to its source, alternatives, and decision, then crosses a typed bridge into Surface with its honest trust status intact.

Build updates

Tell us where trust breaks.

We're building in public. Drop your email for Station build updates and an early look — or start a design-partner conversation: bring a real process, and we build the checkable version of it with you.

Developer? Two commands — install the engine, verify a receipt — on the developers page →