Skip to content
VerifAIer
Solutions · Developers

Governance that installs like a dev tool.

One command into the editor you already use. No account, no cluster, no bytes leaving your machine.

python scripts/install_claude_mcp.py

The SDK packages are not published yet, so the documented install paths are the local ones. Nothing on this site can be purchased yet.

InstallHow long until it does something?

One command. Then your agent is governed.

~/project
$ python scripts/install_claude_mcp.py
Writing MCP server entry…
Registering tools…
Installed. Restart Claude Code to load the server.

$ python scripts/install_cursor_mcp.py
Installed.

# nothing else. no signup, no key, no daemon.
1 cmd
Per editor. The script writes an MCP server entry into the editor’s own config.
0 acct
No sign-up to install, and no sign-up to run an assessment.
0 deps
Added to your project. The entry lands in the editor’s own config, not in your lockfile.
0 queue
The evaluation resolves inside the tool call that started it. There is no worker, no job and no progress bar, because there is nothing to wait for.
LoopWhat actually changes while I work?

Nothing about how you work. Everything about what survives it.

Before
agent reads the repo
agent proposes a change
agent writes files
nothing records what it was allowed to do
nothing records what it actually did
After
agent reads the repo
agent proposes a change → evaluated
agent writes files → recorded
ev_bf6442d03d1d4…  envelope written
rcpt_711e51de6f0…  receipt sealed

The evaluation is synchronous and in-process, so the same input reaches the same outcome every time. It resolves inside the tool call. There is nothing to await and nothing to poll.

Your prompt, your agent, your keybindings and your review habits are unchanged. Your CI, your linters and your review process keep doing exactly what they do; nothing here replaces them or asks to run before them. The runtime is beside the work, not in front of it.

MCPWhy does it integrate this way?

A protocol your editor already speaks.

Where you work
  • Claude Code
  • Cursor
  • any MCP client
One MCP server
  • evaluate
  • record
  • verify
What comes back
  • A decision
  • A receipt
  • A timeline entry
No plugin to maintain

One server, not one extension per editor. A new MCP client works without new code on our side.

Runs beside the agent

The server sees the operation the agent is about to perform, not a log of what it already did.

No model in the loop

The server evaluates against adopted policy. It does not ask a model what to think.

SurfacesDoes it work where I already am?

Two install paths today, and no list of the ones we have not built.

SurfaceAvailable today: AVAILABLE

Claude Code

python scripts/install_claude_mcp.py

SurfaceAvailable today: AVAILABLE

Cursor

python scripts/install_cursor_mcp.py

The runtime is not built for a particular editor.

It speaks MCP. The editors are clients. Claude Code and Cursor are the first two we install for and test against, not the two it depends on.

An editor, agent or development environment that speaks the protocol reaches the same runtime with no new code on our side. That is why this list names surfaces we have verified rather than surfaces that are theoretically reachable. The architecture is open; the claims are not.

Note

AVAILABLE means an install path exists in this repository and this page can name the file. There is no list of PLANNED editors here, because PLANNED means declared and not built, and nothing in the repository declares one. Three surfaces install today across the whole product: the MCP server, the vai command line and the browser extension. There is no packaged installer, and the download page says so rather than offering a button that downloads nothing.

DisclosureHow much has to leave?

Start at the shallowest level that answers your question.

RECEIPT_ONLY
The receipt, and nothing that produced it. The disclosed body is empty by construction.
OPT-IN
SUMMARY
The result, the finding counts, the risk categories and the coverage figures. No excerpt, no claim, no reference.
OPT-IN
REVIEW
Findings, claims and evidence references, every excerpt and locator redacted before it leaves.
OPT-IN
DETAILED
Everything above, in full. Gated on the sentinel_advanced plan feature, and refused without it.
OPT-IN · PLAN
Every level is opt-in

Nothing is disclosed until you choose a level, and the default is the one that discloses an empty body.

Depth is not a setting you outgrow

Level 4 is not the goal. Most questions are answered at level 1 and never move.

Absence is reported, not assumed

A level you never enabled produces no record, and that is returned as such, never as a pass.

EvidenceWhat do I get back?

Files you can diff, hash and check offline.

Written by one operationev_bf6442d03d1d461589a3b708bbd19d28
evidence-envelope.json
The operation, as it was evaluated.
receipt.json
The seal over that envelope.
provenance.json
Where the operation came from.
trust.json
The posture derived from it.
Five more from the same operation
api-passport.json
The credential that cites it.
compliance.json
Control coverage read from it.
quality.json
Quality signal derived from it.
risk.json
Risk signal derived from it.
signal-export.json
The export that carries it outward.
Verify without us418 bytes

proof/provenance.json

We published
f042bf6c191f12bd…41c16ff061febb25
Your browser computed
not checked
not checked

Recomputed in your browser from the bytes you received. Nothing was sent anywhere.

Records are identified by the digest of their own bytes. Change one character and the identifier no longer resolves, which is what makes tampering visible instead of arguable.

LocalWhere does my code go?

Nowhere. That is the whole answer.

0

Bytes of egress

No hosted service is in the path of an evaluation.

0

Accounts required

Install and first run need no identity.

0

External assets

No CDN, no webfont, no remote call to render a surface.

1

Machine

Runtime, record and verification all sit on it.

This is not a privacy setting that can be toggled off. It is where the code runs. An air-gapped machine behaves identically to a connected one, because there was never a call to lose.

SDKWhat if my stack is not an editor?

11 typed services. Same runtime underneath.

Each service declares the authorization boundary it routes to, so a call cannot land on the wrong one by omission.

receipts
MIXED
resolution
MIXED
governance
OPEN
sentinel
OWNER
zk
OWNER
zk2
OWNER
marketplace
ORGANIZATION
integrations
ORGANIZATION
passport
ORGANIZATION
certification
ORGANIZATION
sla
ORGANIZATION
What the SDK is not
  • Not a second engine
  • Not business logic
  • Not a new auth model
  • Not remote execution
  • Not code generation
  • Not billing
  • Not an LLM
It is a typed surface over the runtime that already exists. Nothing is reimplemented behind it, and client.info() returns those seven refusals as fields rather than leaving them to a page like this one.
ContractWhat will it never return?

The absent fields are the ones worth knowing about.

no score
Coverage returns covered / total. There is no composite, and no percentage anywhere in the response.
no severity
Findings come back in engine order. Nothing ranks one above another, because nothing in the platform computes a ranking.
no trend
Nothing is written to a time series, so no field claims improvement or decline over a period.
empty
Everything that could look, looked, and nothing matched. A real answer.
unknown
Nothing could look. A different answer, with a different glyph and a stated reason.
8 states
The full vocabulary. Import-time validation refuses a table where two of them share a glyph or a word.

More governance.
More evidence.
More protection.Without more setup.

That combination is architectural, not a claim about effort. There is one runtime, so there is no cluster to provision, no pipeline to maintain and no separate store to reconcile.

Governance stops being a discipline somebody owns and becomes a property of the loop you already work in. Nothing about that makes the governance lighter. It makes the operating cost of it smaller.

Install it on one agent. Decide afterwards.

Nothing to provision, nothing to migrate, nothing to undo. Delete the config entry and the machine is exactly as it was.