developer startnpx @kontourai/flow-agents init

Kontour for developers

install the engine, add a kit, keep the receipts

Your coding agent says the tests pass. Flow Agents installs into that agent and makes it show the work before it can call the job done — then writes a file recording what ran, what passed, and what it skipped. Anyone can re-check that file without trusting us or the agent. This page is the map: install it below, then open whichever part you want to look inside.

Start here

Install it, then check our receipts before you believe us.

Two minutes: put the engine in a workspace you already use, then take one of our published receipts and recompute under two validators yourself. Both commands on the right are the ones this site's own CI runs on every change.

install the engine + kits

$ npx @kontourai/flow-agents init

# asks which agent you use, then wires it up:

# Claude Code, Codex, Kiro, opencode, and pi —

# gates block on Claude Code and Codex; the rest

# are advisory out of the box (matrix on /trust)

Know what it costs you before you paste it. It installs into the directory you run it in — 18 top-level entries, including a README.md and a CLAUDE.md. If your agent already has Flow Agents hooks at the user level, it warns you about the collision rather than quietly running everything twice. Run it at the root of a repo you can commit, and read the diff before you push. Nothing leaves your machine unless you point it at a Console.

check the receipt, then check the checker

# download a bundle from /receipts/, then read it

# with our own validator

$ npx @kontourai/[email protected] report \

--input flow-agents-delivery.trust.bundle --format summary

Claims: 34 (proposed: 1, assumed: 1, verified: 32)

Stale: none

Disputed: none

Transparency gaps: 1

# (the report names that gap in full — trimmed here)

# now run the same file through a different

# implementation, one that reads the open spec's

# schemas instead. ajv is hachure's schema engine,

# not a second opinion; both are pinned to the

# versions CI uses.

$ npx -y -p [email protected] -p [email protected] \

hachure validate flow-agents-delivery.trust.bundle

valid TrustBundle (schemaVersion 5)

Two implementations, one file, same verdict. Surface is ours; the hachure CLI is written against the open format instead. Honest scope: both are still Kontour-maintained, so that is implementation independence, not organizational independence.

We run this on ourselves. This site's own pull requests can't merge until a required Trust Verify check passes, and the bundle it produces is published on the receipts page.

The kits

Four workflows ship with it. Pick one.

A kit is a workflow the engine runs: what the steps are, what evidence each one has to produce, and when it stops to ask you. How kits work →

Under the hood

Everything that had to agree before that receipt said valid.

You just validated a receipt. Everything below is what had to happen for that file to exist, starting with the format — which isn't ours. Take any one layer on its own, or let init assemble the whole chain and never look at this again.

The receipt format
HachureThe open format the receipt is written in. Published outside Kontour, so the rules aren't ours to bend.
SurfaceReads a receipt and tells you which claims still hold, which went stale, and which are contradicted.
Where evidence comes from
VeritasChecks a code change against your repo's own rules and writes down what it found — and what it couldn't check.
SurveyKeeps the original text, the value pulled out of it, and the reviewer's decision attached to each other.
What decides pass or block
FlowHolds work at a gate until the evidence it asked for shows up — or until a person signs off on going without it, on the record.
What runs in your agent
Flow AgentsPuts those gates inside Claude Code, Codex, Kiro, opencode, and pi, runs whichever kit you picked, and writes the receipt on the way out.
Where you watch it
ConsoleOne screen for what passed, what's stuck, what went stale, and what's waiting on you.

Every piece above is on npm today. Two things are preview-grade and say so in their own docs: the AWS Strands framework adapters, and conformance certification for third-party kits. Lane one is the odd one out — the receipt format is published outside Kontour, so we can't quietly change what a receipt is allowed to say.

Built on it

Fieldwork: the whole workflow as a finished app.

It sits on that chain rather than being a link in it, which is why it isn't a lane in the map. Start here when you want the complete workflow instead of the parts.

Fieldwork

Turn messy source text into reviewed, source-linked data you can recheck and export.

The finished app: install it and start reviewing. Survey is the review machinery inside it, if you would rather build your own screen around it.

@kontourai/fieldwork · v0.6.0

The territory

One sheet, whole suite

Every product is named for the surveyor's craft, because that is the job: go into the field, measure carefully, and bring back records you can defend. Regions are problem domains; Surface sits at the summit because it is the reference everything measures against. A line is drawn only where the relationship exists in code — gold for the grounded-knowledge pipeline, blue for artifact flows, dotted where a product speaks Hachure, the open trust format. Hover any marker for its role, what it produces, and what consumes it.

The SurveyBasecampMethodInstrumentsOutposts
forageacquireSafe, replayable crawling. SSRF-pinned egress, content-addressed snapshots of the untrusted web.feedssnapshots + source refs to traverse, lookout, bearing
traverseextractSchema-directed extraction. Every proposed value carries the exact source span that grounds it.producesextraction proposals (Survey's shape) → fieldworkusesforage
surveyreviewReview contracts — and the bundle constructor. Proposals become reviewed, attributable decisions; buildSurveyTrustBundle mints the TrustBundle on behalf of its consumers.producesTrustBundle → Surface shapeusessurface
surfacehachure formatThe trust kernel — a contract and library, not a store. No bytes pass through it. Implements Hachure, the open trust format: TrustBundle / Claim / Evidence types, validation, claim folding, trust reports, and the trust-panel web component.consumed bysurvey, flow, veritas, fieldwork, console
lookoutwatch driftSource registry + drift checks on forage snapshots. Unchanged bytes skip the model entirely; only what moved re-enters review.producesdrift observations → fieldwork recheckusesforage, traverse, datum
fieldworkruns the lineGrounded extraction review, end to end. The one place the whole pipeline runs in a single process: acquire → extract → review → validated TrustBundle export per run.producesvalidated TrustBundle (run receipt)usesforage, traverse, survey, surface, lookout, datum, dispatch, relay
bearingcapabilityEvidence-backed model capability observations. Even “model X is good at Y” is a snapshot-backed claim; catalogs + runtime-aware ranking.producescatalog snapshots → datum, dispatchusesforage
datumregistryThe model registry. Which provider, which model, whose key — resolved from bearing's capability catalog. Never makes a call itself.producesmodel policy → dispatch, lookout, fieldworkusesbearing
dispatchroute + receiptPolicy-aware model execution. Routing, budgets, fallbacks — and a receipt for every call.producesreceipts → fieldwork, flow-agentsusesrelay, datum
relayinvokeProvider-neutral invocation contracts + adapters + conformance tools. The floor of the model plane.consumed bydispatch, fieldwork, flow-agents
flowgatekeeperWorkflow definitions, gates, runs — the bundle gatekeeper. The only evidence a gate accepts is kind: trust.bundle: validated, report-derived, freshness re-checked on every evaluation.producesrun projections → consoleusessurface
flow-agentskit hostProcess discipline inside the agent tools you already use; hosts the kit ecosystem. The highest-volume bundle producer: one trust.bundle per session — its only store — handed to Flow as gate evidence.producessession trust.bundle → flow gatesusesflow, conduit, dispatch, relay, survey
┖ kitsbuilderknowledgerelease-evidencegovernance ↗ veritasThe kit shelf — swappable solutions hosted by flow-agents via the kit.json contract.built-inbuilder (the delivery workflow) · knowledge (gated knowledge store) · release-evidence (agentless CI gate)externalgovernance ships with veritas and gates the bundle veritas readiness emits
conduithost contractPortable agent-host integration contracts, lifecycle adapters, and conformance evidence — how kits plug into the coding-agent harnesses.consumed byflow-agents
veritasreadinessMerge autonomy for AI-authored code. Repo standards become a readiness record that embeds a genuine TrustBundle + TrustReport — evidence the agent reads back before merging.producesreadiness records → merge gatesusessurface
consoleinspectThe operating hub. Ingests events, projections, and telemetry records — not bundles. Trust appears only as a TrustReport derived on the fly from Flow runs, rendered via Surface's trust panel.consumesflow projections + run files, telemetryusessurface (dynamic)
uitokensThe design system. Framework-agnostic tokens + primitives — including the product marks on this map.consumed bythis site (console adoption pending)
plumbprod truthThe plumb line — standalone by design. Scheduled deployment checks that turn failures into agent-drafted repair proposals (PR or issue, never merge), behind cooldown and cap guards. Zero package edges on purpose: independence is the product.relateswatches deployed products; checks are any shell command
clisuite routerOffline-first suite router. Knows where every product lives and routes to all of them — deliberately no runtime package edges, which is why it spans the map instead of sitting on it.
KONTOUR AI · FIELD MAPEVERY EDGE VERIFIED IN CODE
pipeline route artifact flow (bundle / record) speaks Hachure (the open trust format) package dependency
  1. forageacquire
  2. traverseextract
  3. surveyreview
  4. surfacehachure format

The Survey

  • lookoutwatch drift
  • fieldworkruns the line

Instruments

  • bearingcapability
  • datumregistry
  • dispatchroute + receipt
  • relayinvoke

Method

  • flowgatekeeper
  • flow-agentskit host
  • veritasreadiness
  • conduithost contract

kits: builder · knowledge · release-evidence · governance

Basecamp

  • consoleinspect
  • uitokens
  • clisuite router

Outposts

  • plumbprod truth

More from the lab

Smaller pieces we built for ourselves and published anyway. Each does one thing, each works without the rest, and every one of them is on npm today — nothing on this list is a name you can't install.

Kontour CLI

@kontourai/cli

The kontour command. It works out which Kontour packages you already have installed and hands your command to the right one. It never reaches for the registry, downloads a missing package, or changes a version behind you — so the same command does the same thing offline.

Datum

@kontourai/datum

Your model registry. Define providers, models, and roles once, then resolve which backend, which model, whose key, what URL. It doesn't call models for you — apart from four opt-in commands that exist to test a connection.

Bearing

@kontourai/bearing

Which model is actually good at what, and where that judgement came from. Compiles observations into catalog snapshots you can diff, and ranks models for a given runtime — without calling any of them.

Relay

@kontourai/relay

One way to call a model whether it sits behind a vendor SDK, a local engine, a hosted service, or a command-line harness, so changing providers doesn't mean rewriting the call. Each adapter has to declare what it can't do — streaming, tool calls, token counts — rather than quietly approximating it.

Dispatch

@kontourai/dispatch

Chooses which model handles a job from rules you write — required capabilities, a token and cost budget, retries, fallbacks — and hands back a record of which one ran, why it was picked, and what it actually spent. Budgets can be held across concurrent calls and across restarts.

Conduit

@kontourai/conduit

Installs an agent's skills, hooks, commands, and context files into whichever coding tool someone is running, through one adapter instead of one per host. It probes each host for what it genuinely supports, and the install receipt lists every file written with its checksum — no file contents, no credentials.

Traverse

@kontourai/traverse

Pulls structured fields out of documents against a schema you supply, and hands back proposals for a person to review — each one still carrying the passage it came from.

Forage

@kontourai/forage

Fetches untrusted URLs safely and keeps a snapshot of what came back, so a crawl can be replayed instead of re-guessed. Refuses requests aimed at your internal network.

Lookout

@kontourai/lookout

Watches sources you re-check over time and tells you what changed since the last look. Built on Forage's snapshots; it doesn't extract fields itself.

Plumb

@kontourai/plumb

Runs your deployment's own health check on a schedule, and when it fails, hands the failure to an AI agent working in a separate clean clone that opens a pull request or an issue. The live checkout and production data stay outside anything that agent can reach.

Kontour UI

@kontourai/ui

The interface pieces our own screens are built from: buttons, panels, badges, dialogs, form controls, and the CSS variables behind them, for React or plain custom elements. Useful if you are building an operator screen that should match ours; skip it if you already have a design system you like.