image

MOB³ is a small indie web browser for the terminal

Written in Go, MOB³ features its own HTML rendering engine with JavaScript support, an ANSI renderer, and inline image support. No GUI toolkit or persistent browser profile required. Built as a true terminal web browser for humans and AI agents.

Project page: mob3.net

GitHub: github.com/mob3net/mob3

Documentation

Try it with Docker:

docker run --rm -it ghcr.io/mob3net/mob3 -graphics blocks

Download and install

Download the latest MOB³ release from GitHub Releases.

Release archives cover Linux (386, amd64, armv6, armv7, arm64) and macOS (amd64, arm64). Choose the archive for your OS and architecture, for example mob3_vX.Y.Z_linux_amd64.tar.gz. Each archive contains the static mob3 binary.

Example:

tar -xzf mob3_vX.Y.Z_linux_amd64.tar.gz
sudo install -m 0755 mob3 /usr/local/bin/mob3
mob3 -version

Screenshots



Show your support

If MOB³ has been useful to you, please consider giving the project a star on GitHub. It helps others discover it and supports the continued development of the project.

What to expect

MOB³ is a content browser, not a full browser engine. It is happiest with text-focused pages and gets rough on modern JavaScript-heavy apps.

Works well

Rough edges

Using command line options

Start reading Wikipedia in dark mode:

mob3 -dark -reader 'https://en.wikipedia.org/wiki/Vim_(text_editor)'

See all available options with -h flag. Every flag and default is listed in the command-line reference.

Capture a PNG screenshot:

mob3 -png -width 120 bbc.com/news > bbc.png

Automation (MCP)

mob3 -mcp runs a headless browser as a Model Context Protocol server over stdin/stdout. It accepts an optional starting URL and fixed -width:

{
  "mcpServers": {
    "mob3": {
      "command": "/path/to/mob3",
      "args": ["-mcp", "-width", "100", "about:home"]
    }
  }
}

Tools: navigate, snapshot, screenshot, click (link number, CSS selector or x/y), type, press, scroll, back, forward, reload, evaluate and history. snapshot returns the current page viewport as text, visible links as [n] and form controls with coordinates. Results are text only: there is no pixel screenshot because MOB3 renders to terminal cells.

The server is local and unauthenticated, sessions and storage are memory-only, and nothing is written to disk. Do not expose it as a network service. See the full MCP reference for the protocol, snapshot format, tool details, and setup instructions for OpenCode, Claude Code, Cursor and Claude Desktop.

Development

Build from source and start browsing:

make
./bin/mob3 https://example.com

Requires Go 1.27 or newer. Interactive mode runs on Linux and macOS terminals; Windows users can run it under WSL. When stdin/stdout are not a terminal, MOB³ automatically falls back to dump mode.

Press ? inside the app for keys, mouse and forms help. Run mob3 -h for the full list of command-line flags. mob3 -version prints the embedded version.

Contributing

Contributions are welcome. Every pull request must include the broad license-grant CLA statement described in CONTRIBUTING.md; it keeps MOB³ available under both AGPL-3.0-only and a commercial license. The PR workflow checks the statement. The CI workflow runs formatting, vet and tests.

License

MOB³ is licensed under the GNU Affero General Public License, version 3 only (AGPL-3.0-only). Copyright (c) 2026 Milos Stojanovic. See LICENSE.

A separate commercial license is available on request for use without the AGPL's source-disclosure requirements.

MOB³ is provided “as is”, without warranty of any kind. See the warning at the top: this is not a security boundary.

Third-party module licenses are listed in THIRD_PARTY_NOTICES.