AginxBrowser
<div align="center">
# ⚠️ This project has moved
**AginxBrowser is now [diting](https://github.com/yinnho/diting).**
Same engine, same team, new name. **All active development, releases, and
issues live at the new address** — this repository is frozen at v0.6.4 and
kept readable for history.
</div>
---
<div align="center">
[](https://github.com/yinnho/diting/stargazers)
[](https://github.com/yinnho/diting/releases/latest)
</div>
# → [github.com/yinnho/diting](https://github.com/yinnho/diting)
**The engine-first browser for AI agents.** One Rust binary, built-in V8,
no Chromium — HTTP is the only protocol face. Everything this repo was,
plus a year of engine work since: ~25 MB cold start, own CSS/layout/paint
stack, receipts on every response, flow replay, and a v0.8.x release line.
If you starred this repo, star [diting](https://github.com/yinnho/diting) —
that's where the next release lands.
```bash
# install the current release (from the new repo)
curl -fsSL https://browser.aginx.net/install.sh | sh
# or Homebrew
brew tap yinnho/diting && brew install yinnho/diting/diting
```
## Migration notes
| | here (aginxbrowser) | new ([diting](https://github.com/yinnho/diting)) |
|---|---|---|
| Last release | v0.6.4 (frozen) | [v0.8.x](https://github.com/yinnho/diting/releases/latest) |
| Binary name | `aginxbrowser` | `diting` |
| Config dir | `~/.aginxbrowser` | `~/.diting` (env bridge in place) |
| Env prefix | `AGINXBROWSER_*` | `DITING_*` (old names still accepted) |
| HTTP API | same shape — port your calls, only the process name changes |
Old v0.6.x release assets and the `homebrew-aginxbrowser` tap stay up so
existing installs keep working; they will not receive updates.
## Why the rename
The engine grew its own identity: own V8 integration, own runtime
(`diting_runtime`), own CSS/layout/paint stack — no Chromium anywhere.
The new name owns that story. Full continuity notes in the
[new repo's docs](https://github.com/yinnho/diting/tree/main/docs).
---
*The Chinese README carries the same migration notice:
[中文迁移说明](README.zh-CN.md).*
*Historical description, superseded by
[diting](https://github.com/yinnho/diting):*
> # AginxBrowser
>
> **The Browser for AI Agents.** See the live web. Read it. Act on it.
> Remember it. One Rust binary with built-in V8, no Chromium required.
>
> Humans have Chrome. Agents have diting.
TDQS
Scored across 40 tools
Tool families are cleanly separated: stateless fetch/eval/click are explicitly distinguished from their session_* counterparts, and account_*/render_*/session_* names signal intent. The main fuzzy boundaries are session_challenges vs session_verdict (both report anti-bot/risk status) and the three render_* tools, though descriptions usually resolve them.
Most tools follow predictable families—account_<verb>, session_<operation>, render_<format>—and bare stateless verbs (fetch, search, eval, click) are easy to read. Deviations such as flow_run instead of run_flow and noun-style read tools like session_state/session_network/session_cookies keep it from being perfectly uniform.
40 tools is a heavy surface, especially with 26 session_* variants; even though each is a real browser action, the set will tax an agent's selection and context budget. The server's broad scope explains the count, but it still exceeds what most MCP clients handle gracefully.
The surface covers the full browser workflow: read/search/download, session lifecycle and input, login-state persistence, risk-control verdicts, flow replay, and render/export targets. Minor gaps such as no explicit multi-tab/window management or standalone proxy/user-agent configuration are workaroundable.