falsegreen
Independent verification for coding agents.
FalseGreen gives your AI coding agent an independent completion-authority loop. When the agent says "I'm done," FalseGreen runs your frozen acceptance criteria against an immutable source snapshot and tells the agent whether the work actually passes — instead of trusting the agent's own self-assessment.
This crate is the client shim — a tiny native binary that:
- speaks STDIO MCP to your coding agent (Codex, Claude Code, Cursor, etc.)
- authenticates to the FalseGreen service with your API key
- snapshots the active local workspace before source-sensitive tools
- forwards tool calls over HTTPS to
mcp.falsegreen.com - manages device activation and credentials locally
The actual verification engine lives server-side. This binary contains no verification logic.
Install
Quick start
# 1. Log in (activates this device with your Polar license key)
# 2. Install into your agent
# 3. Verify
The agent launches falsegreen mcp locally so it can snapshot the workspace
before forwarding each source-sensitive operation.
| Tool | Purpose |
|---|---|
falsegreen_create_task |
Register a new task with a goal |
falsegreen_save_contract_draft |
Draft acceptance criteria |
falsegreen_validate_contract |
Validate the contract draft |
falsegreen_freeze_contract |
Freeze the contract (locks criteria + verifier) |
falsegreen_get_assignment |
Get compact immutable requirements |
falsegreen_check_completion |
Run the independent verifier |
falsegreen_get_status |
Check task status without verifying |
falsegreen_get_repair_feedback |
Get failure details from the last run |
falsegreen_get_contract_schema |
Get the JSON schema for contracts |
falsegreen_get_contract |
Get the frozen contract |
falsegreen_mark_unresolved |
Mark a task as unresolved |
How it works
Coding agent (Codex, Claude Code, Cursor, ...)
│
│ STDIO MCP (JSON-RPC over stdin/stdout)
▼
falsegreen ← this binary
│
│ workspace snapshot upload + MCP calls (HTTPS + X-API-KEY)
▼
mcp.falsegreen.com
│
├─ validate API key via Polar (cached 5 min)
├─ check per-tenant rate limit
├─ resolve tenant state directory
└─ run verification engine
│
├─ materialize the uploaded workspace source
├─ snapshot an immutable source artifact
├─ execute frozen acceptance criteria
└─ return accepted / incomplete / unsafe
Commands
falsegreen mcp
Run the MCP server over STDIO. This is what Codex launches automatically. You rarely run this manually.
falsegreen login --token <key>
Activate this device and store credentials. Uses one of your device activation slots (2 by default, managed by Polar). The key is stored in ~/.config/falsegreen/credentials.toml.
falsegreen logout
Deactivate this device (frees the activation slot) and remove local credentials.
falsegreen status
Show authentication state, device activation ID, and API endpoint.
falsegreen install <agent>
Install FalseGreen into an agent's MCP configuration. Supported agents:
| Agent | Command | Mode | Config file |
|---|---|---|---|
| Codex CLI & VS Code | falsegreen install codex |
STDIO | ~/.codex/config.toml |
| GitHub Copilot | falsegreen install github-copilot |
STDIO | .vscode/mcp.json |
| Claude Code | falsegreen install claude-code |
STDIO | .mcp.json |
| OpenCode | falsegreen install opencode |
STDIO | opencode.json |
| Cursor | falsegreen install cursor |
STDIO | .cursor/mcp.json |
Each agent spawns falsegreen mcp as a local subprocess. The shim authenticates
and communicates with the hosted service over HTTPS.
Configuration
Environment variables
| Variable | Default | Description |
|---|---|---|
FALSEGREEN_KEY |
(none) | API key (overrides stored credentials) |
FALSEGREEN_API_URL |
https://mcp.falsegreen.com/v1/mcp |
MCP service URL |
FALSEGREEN_WORKSPACE_URL |
derived from MCP URL | Workspace upload URL (self-hosted overrides only) |
Credentials file
~/.config/falsegreen/credentials.toml:
= "POLAR_xxxxxxxxxxxxxxxx"
= "uuid-of-device-activation"
Why the shim is required for local workspaces
The hosted verifier cannot read paths on your machine. The shim snapshots the local workspace and uploads it before task creation, contract validation and freezing, and completion checks. Connecting directly to the HTTP MCP endpoint does not provide that filesystem bridge and therefore cannot verify a local workspace.
License
Apache-2.0. See LICENSE for details.