Footwork
Verified computer-use agent: a Jev guard checks claimed completions and gates irreversible actions; Jev also takes simple steps.
Overview
Footwork is a verified computer-use agent for the browser and native macOS apps. It puts a cheap, calibrated Jev guard in front of whoever drives: every claimed completion is checked against observed state and the trajectory before it counts, every irreversible action passes a gate, and every action returns a receipt describing what visibly changed. On top of the guard, Jev can take fast mechanical steps itself as System 1 while the driver, System 2, keeps the reading, comparing and deciding.
The driver can be an LLM loop using browser-use as a library, or an operator at the keyboard such as a person or a Claude Code session issuing one command at a time. Native apps are driven in the background through the Cua Driver's accessibility tree. The Python package is jevdual; every number in the README comes from a results directory, and every experiment was pre-registered before running. Optional browser inspection utilities collect redacted, timestamped evidence.
What the decision model decides
| Type | Question | Answers |
|---|---|---|
| Yes / no | Is the claimed completion supported by observed state and trajectory? | yes · no |
| Yes / no | Is this action irreversible and should it be gated? | yes · no |
| Choice | System 1: which action should be taken on this observation? | — |
How it works
- Start a task with a required completion condition
- Driver (LLM or operator) proposes actions; Jev may propose mechanical steps
- Gate irreversible actions; act, settle and re-observe with a receipt
- Accept completion only if Jev verifies it against evidence
Strengths
- Pre-registered, measured experiments
- Completion claims verified, not trusted
- Works for browser and native macOS
Caveats
- Multi-component setup (Python, Rust, Cua Driver)
- Requires a TypeSafe key
Getting started
footwork start "Compute 48 times 13" --app Calculator --require "The display shows 624", then footwork look / s1 --act / do click <id>.At a glance
- Type
- Project
- Status
- beta
- Language
- Python
- Runtime
- CLI (browser-use, Cua Driver)
- Has code
- yes
- Has tests
- yes
- License
- MIT
Use cases and integrations
How curated lists describe it
A verified browser agent: a cheap Jev guard (evidence-checked completions, a destructive gate) in front of any LLM browser driver, with Jev taking the mechanical steps in dual mode. Built on browser-use; every number pre-registered and measured.
hellogumbo/awesome-jev
Frequently asked questions
What does Jev verify?
That claimed completions match observed state, and it gates irreversible actions.
Who drives?
An LLM loop via browser-use, or a person or agent issuing commands.
Are results reproducible?
Experiments are pre-registered and numbers come from committed run directories.
Related projects
Claude Code plugin adding typed Jev decisions to hooks: task kind, command risk, failure class, completion; never grants permissions.
PluginbetaJavaScriptAccessibility-first macOS computer-use MCP server and CLI, with optional Jev guards on targets and inputs before irreversible actions.
PluginbetaPythonDeepSeek Harness plugin with 12 opt-in Jev or Luna Decisions judgments: skill and file selection, supervision, filtering and approval help.
PluginbetaTypeScriptMCP server that lets agents observe and control Android phones over ADB, with Jev picking controls and judging goal completion.
MCP serverbetaTypeScriptFlutter integration-test package where Jev picks the next registered UI action and judges whether the test goal is reached.
LibrarybetaDartPlain-English end-to-end tests for Android and iOS apps where Jev works out the taps and a lockfile replays every decision exactly.
AppbetaPython