Lets AI agents browse the web as short, numbered text instead of screenshots.
perzian.dev/mantis · by Perzian
It works with Claude Code, Codex, Cursor or your own agent as an MCP server. Install in two commands.
npx -y -p mantis-browser mantis install
claude mcp add mantis -- npx -y -p mantis-browser mantis-mcp
npx -y -p mantis-browser mantis read https://example.com # try it without an agent
Windows, Linux servers and other agents: SETUP. One real task (Luna, logged runs replayed): about a third less time, over 2x fewer input tokens, about half the calls. This is a selected example from 16 long tasks; medians across all 16 are in Results. Full video.
Security and threat model: SECURITY.md.
How it works
What the agent sees
Results
Mantis vs the accessibility tree (Playwright MCP) on public sites, gpt-6-luna and claude-haiku-5-5. Every cell is a per-run median; time is end-to-end wall time per run:
0.1.10: headline numbers are 0.1.9's; Haiku subset smoke-checked.
Long tasks (correct: 14 keyed tasks, 42 runs per cell; medians: all 16 tasks, 48 runs per cell; both approaches run in the same session):
Short tasks (30 tasks, 90 runs per cell; tree and screenshot columns are the earlier 20261026 run):
Versus the accessibility tree:
- Long tasks: accuracy within one run, 29-47% fewer input tokens, 29-37% fewer calls, about a third less time.
- Short tasks: accuracy equal or better, 35-57% fewer input tokens.
Versus screenshots:
- Luna: screenshots score 2 runs higher but use more tokens and time.
- Haiku: screenshots use fewer tokens.
Caveats:
- Short-task times compare a newer Mantis build with the earlier tree and screenshot run, so treat that time gap as indicative.
- Scores come from deterministic answer keys on the final page state. Two long iframe/tab tasks can't be keyed and are left out of the long-task counts.
- Method and full caveats: bench/RESULTS.md.
Limitations
- No canvas input: canvas, WebGL, maps and drawing apps are described only as canvas, with no coordinate click or draw tool.
- Login and bot walls need
ask_human, which needs a display. - Benchmarked only on read, navigate and form-fill tasks on public sites, with two models. The screenshot baseline is this project's own tool, and a few tasks were swapped after results (disclosed).
- Page content is untrusted data; see SECURITY.md.
- Small v0.1.x beta.
Learn more
- How it works in detail
- Claude skill: teaches Claude how to read Mantis output
- Install, configuration and tool reference
- Re-running the benchmarks
License
MIT