OPEN SOURCE · LOCAL FIRST · EXPERIMENTAL ALPHA
Give coding agents
a faster next step.
Small, bounded decisions and browser actions for the agent loops that do real work. A local MCP server. A short list of controls. A clear approval boundary.

THE DECISION LOOP
Keep perception and execution
simple. Make the choice explicit.
Inspect a bounded state, select a typed option, validate it, and let ordinary code handle the action.
BUILT AROUND BROWSER USE
Fast path is the page
the browser already knows.
Read accessible DOM controls before reaching for a screenshot. Keep candidate labels bounded, form values out of the snapshot, and sensitive clicks behind a second call.
Get buttons, links, supported text/date fields, and native select options.
Use the local model, or tell the agent exactly which control to click.
Return the changed excerpt. Ask the user before consequential actions.

COMPOSABLE BUILDING BLOCKS
Small tools for the
steps between big prompts.
Browser actions
Automate local Playwright browser actions, including private field copy, batch checkboxes, native drag and drop, and approval-gated custom controls.
Read the guide →Structured decisions
Ask one to eight bounded Choice, Score, or yes/no questions in a single MCP request and inspect each answer's probability, confidence source, and calibration status.
Read the guide →Local inference
Run the default semantic embedding baseline on your CPU, optionally request a supported GPU backend, or connect an OpenAI-compatible local or remote endpoint.
Read the guide →Local NLI classifier
Run bounded zero-shot text classification for coding-agent decisions with a free, optional Apache-2.0 local model and no hosted inference account.
Read the guide →Browser drag and drop
Move native draggable items to declared page drop targets through Playwright with an explicit review and approval step.
Read the guide →Chrome tab connection
Attach to a deliberately selected tab in a dedicated Chrome debugging profile through loopback CDP, without choosing a tab automatically.
Read the guide →Context pruning
Reduce tool output with a local heuristic or explicitly rerank bounded snippets against the current task, while keeping selected source text unchanged.
Read the guide →SMALL, REPRODUCIBLE SMOKE RUNS
Measure first.
Claim only what we can show.
A newer DOM-only MiniWoB integration completed 24/24 selected tasks on Windows CPU with no timeouts. It excludes ascending-numbers and daily-calendar, the two visual-only tasks in the prior 26-task run, so this is not a full-suite score. The bounded harness uses explicit synthetic task instructions, visible table rows, local field-copy and checkbox-batch tools, and keyboard slider controls; it does not act autonomously. Each submit still uses a separate local-only synthetic approval. End-to-end latency including reset was p50 1.665 s / p95 2.598 s; browser action-loop p50 was 323 ms / p95 907 ms; four local semantic calls had p50 191 ms / p95 430 ms. The prior full 26-task run completed 23/26 on Linux, including two visual descriptions without actions and an incomplete table task; the runs differ in task set and host. These CPU samples are not general speed guarantees. A separate 30-case decision fixture scored 7/10 Choice and 5/10 yes/no, with 1.04 Score MAE on a 0–4 scale; its examples are not held out and its estimates remain uncalibrated.
STANDARD MCP · LOCAL STDIO
Your coding agent.
One consistent tool set.
Use the config guide for your client. Setup snippets show local source paths until the npm package is released.
TRY IT ON A PAGE YOU CAN RESET
Start with the local demo.
Use fake data, inspect the visible actions, and see how a small browser choice returns a small result.