Skip to content
▚ About

Open infrastructure for agents.

Agent browsers are becoming core infrastructure. That layer should be yours to read, run, and change — not a black box you rent. So we built one and open-sourced it.

Own the stack

The full source is auditable and self-hostable. Run it in your own infra, pin a version, patch what you need. No per-session meter, no lock-in.

Drop-in, not rewrite

100% Anchor wire-compatible — the anchor-api-key header, {data:{…}} envelopes, and root-path CDP. Migration is a base-URL change, so leaving costs nothing either.

Built in the open

Architecture, implementation plan, and design patterns all live in /docs. Decisions are visible; the roadmap is public.

Contribute

Ways to help.

Bug reports, docs, and provider backends all land the same way: a PR against one repo. The codebase is deliberately small and pattern-driven so a first change is a small change.

Good first issues

Small, self-contained tasks with clear scope — the fastest way into the codebase. Filed and labeled on GitHub.

Browse good first issues →

Add a provider

The provider registry is the extension point: implement the interface in one file, add one Register line. New model backends drop in the same way Claude, Codex, Grok, and Kimi do.

Read docs/06-design-patterns.md →

Discuss & ask

Design questions, RFCs, and help go in GitHub Discussions. Real-time chat is on Discord.

Open Discussions →

Adding a provider

Providers are wired through a registry — the pattern is documented in docs/06-design-patterns.md. Implement the provider interface in a new file, register it with one line, and it participates in the same key / OAuth / ACP auth flow as the built-ins. No changes to the task loop or the API layer.

// internal/provider/grok.go
type grok struct{ /* … */ }
func (g *grok) Run(ctx, task) (Result, error) { /* … */ }

// internal/provider/registry.go
func init() {
  Register("grok", newGrok)   // ← one line
}
Roadmap

What’s shipped vs. what’s next.

Sessions, CDP, OS-control REST, perform-web-task, the provider registry, and the native MCP server are shipped and on the site today. The items below are planned, not built — tracked against docs/04-implementation-plan.md.

OS-level input (xdotool / useOs)Multi-tab managementNative file dialogs & uploadClipboard (copy / paste / xclip)drag-and-drop · hover · select_optionwait_for synchronizationnoVNC live desktop controlManaged cloud

Every tag above is a roadmap item — not yet in the open-source build.


License & credits

Open-source, and standing on shoulders.

The Agent Browser is open-source — read the license in the repository. Self-host it, fork it, ship agents on it. Contributions come in under the same license.

It’s built and maintained by the team behind the ByteDesk platform, and it interoperates with the wider ecosystem it grew out of: the Anchor wire format for drop-in compatibility, and Playwright, Puppeteer, and the Model Context Protocol on the client side.

Credits
ByteDesk platformAnchor wire formatPlaywrightPuppeteerModel Context ProtocolChrome DevTools Protocol

View the license →

Come build it with us

Open-source and free to self-host. Managed cloud is coming.