Selko

Know what your agent actually did.

Every file it touched, every command it ran, every connection it made — one signed record, from a witness the agent can't see.

selko run <agent>
Get early access In active development.
the problem

The test passed. The agent touched production.

Agents take shortcuts — a skipped check, a hard-coded value, a connection to production. Whatever gets the task done. Afterwards, this is the entire record:

"Fixed the failing auth test. 34 passing, no unrelated changes. Done."

  • tests ✓ green
  • diff ✓ clean
  • summary ✓ confident
  • files touched?
  • commands run?
  • connections made?

The report may even be true. But it's the agent grading its own work — the only witness is the suspect. Claims, not evidence.

how Selko works

A witness, not another log.

One line. The agent doesn't know Selko is there.

While the agent works, Selko watches from outside: files, commands, connections. When the run ends — one signed Behaviour Commit.

The first run is your baseline. Every run after shows only what changed.

sample run / 0184capture complete
during the run selko run <agent>
inside Your agent, working — unchanged

Selko, watching from outside

  • 00:03 / FILEsrc/auth.ts
  • 00:08 / EXECnpm test
  • 00:11 / NETprod-db:5432
after the run

Behaviour Commit

signed by the witness

  • 14 files edited
  • 9 commands run
  • connected to production databaseNEW

baseline first, then only changes · capture quality stated in every record

The agent's log said the tests passed. Selko saw the connection.

the ladder

Selko is the first rung.

Selko knows. When the work demands it, Rauha contains the run inside a boundary you declare, and Vartio remembers what changed across every agent your teams run.

the record

The limits are part of the result.

A Behaviour Commit binds three things: what the agent was told, what the run journaled, what the witness saw. Signed, content-addressed, and history is append-only.

Every record states its own capture quality. On Linux, Selko can watch from inside the kernel. Elsewhere it records at the level the platform allows — and says so.

capture depth / linuxebpf attached
rauha cell · optional — destinations you didn't declare don't exist
userspace — the run Your agent, working — unchanged
kernel — ebpf probes Every action crosses here

openatexecveconnect — seen where the agent can't reach

userspace — separate process Selko witness

correlates the stream, signs the Behaviour Commit

eBPF on Linux · platform APIs elsewhere · the capture level is stated in every record

Two runs that can't be compared fairly get one answer: can't compare. Selko never guesses.

for organizations

One witness for the whole fleet.

Copilot on one team, Claude Code on another, Codex on a third — and each vendor's tool governs only itself. The organization owns the harness instead: any agent runs inside it, recording always on, every run producing the same Behaviour Commit.

Then one rule, enforced by the CI already in place: no Behaviour Commit, no merge.

When the auditor asks what the agents did, the answer is a query, not an investigation.

organization control planerecording always on
organization-owned harness — recording always on

Any coding agent

Copilot Claude Code Codex
every run

Selko records

regardless of agent vendor

common output

Behaviour Commit

one signed record per run

every Behaviour Commit feeds both controls and memory

CI gate

no Behaviour Commit, no merge

Vartio

shared baselines · what changed across the fleet

Selko can also hold the agent's claims against what the witness saw: the claimed action nobody observed, the observed action nobody claimed.

contact + updates

Start with one run.

For developers

Run the agent you already use through Selko.

  • one line, no agent changes
  • free · local · yours
  • baseline first, then only the diff
Get early access →

For organizations

Bring one question about a mixed-agent fleet.

  • one record format, every vendor
  • no Behaviour Commit, no merge
  • the audit becomes a query
Contact →

Get product updates.

Occasional product updates and early-access invitations.

Unsubscribe at any time. Submissions are processed by FormSubmit.

You're on the list. Product updates will arrive by email.