terminal is a free, open source data extraction & web scraping project written in Rust and released under MIT. It has 650 GitHub stars, 40 forks and 15 open issues, and was last pushed 2 months ago. On this registry it ranks #129 of 137 tracked projects in Data Extraction & Web Scraping, with 5 head-to-head comparisons available.

What is terminal?

Browser Use Terminal is a Rust terminal UI for driving and steering LLM-powered browser agents in your own Chrome or a headless Chromium, aimed at developers who want to automate real web tasks from the command line.

What it is

Browser Use Terminal is a Rust TUI for browser agents: Rust owns the agent loop and durable state, while the browser runtime gives the model direct CDP control over Chrome. Its architecture stacks a custom Ratatui UI for watching, steering, stopping and resuming tasks; a Rust LLM harness providing tools, subagents, compaction and cancellation; a SQLite event log holding history, screenshots, artifacts and traces; and a CDP browser runtime handling profiles, doctor, recovery and ownership. The model receives raw browser capability in the form of CDP, page JavaScript, screenshots, files and helper code, while the terminal keeps the human in control with follow-ups and a custom Ratatui renderer for live work.

The problem it addresses is automating repetitive, account-bound web work that script-only scrapers cannot handle, such as getting a San Francisco parking permit, giving an employee admin permission in Azure, or finding the cancellation policy for a current hotel reservation. It lives in the browser automation ecosystem, replacing manual clicking through a terminal-based harness that works with your logged-in Chrome when a task needs real account state, and offering headless Chromium or the Browser Use cloud for clean or remote runs.

Key capabilities

  • Runs browser tasks from a terminal UI with a custom Ratatui renderer, and lets you watch, steer, stop, retry and resume work while it runs.
  • Works with your logged-in Chrome for real account state, and supports headless Chromium plus Browser Use cloud for clean or remote runs.
  • Keeps local history, screenshots, artifacts and follow-ups in a SQLite event log.
  • Exposes raw browser capability to the model: CDP, page JavaScript, screenshots, files and helper code.
  • Offers slash commands inside the TUI (/auth, /model, /browser, /update) and shell commands such as browser auth status, browser config show and browser diagnostics.
  • Plugs into coding assistants with browser-use-terminal skill install, then accepts browser-use-terminal browser exec snippets using new_tab(), wait_for_load() and capture_screenshot(), saving screenshots as files for Claude Code Read, Codex view_image and OpenCode read.
  • Ships a managed ripgrep binary at bin/agent-tools/rg, prepended to PATH for agent shell commands, and disables telemetry entirely with BUT_TELEMETRY=0.

Who uses it and how

  • Developers who automate account-bound administrative web tasks, relying on their real logged-in Chrome session rather than a fresh profile.
  • Contributors running the full verification gate before merging terminal UI changes: cargo fmt --check, cargo test, uv run --with pytest python -m pytest -q scripts/verify-terminal-ui.sh, which executes Rust tests, Python tests, deterministic Ratatui dumps and a real tmux smoke test.
  • Users of Claude Code, Codex or OpenCode who install the skill so the assistant learns the CLI and drives the browser runtime, reading saved screenshot paths with its native file-reading tools.
  • Teams that need either clean headless runs or remote Browser Use cloud runs, switching between them with /browser.
  • Operators who manage model and account configuration through /auth, /model, browser auth status and browser config show.

Getting started

Install with curl -fsSL https://browser-use.com/terminal/install.sh | sh, then launch the app with browser and sign in via /auth; add assistant integration with browser-use-terminal skill install.

How it compares

The project positions its Rust LLM harness as 2x cheaper and 2x faster than Browser Harness, while adopting Browser Harness-style CDP control so assistants get the same hands-on browser capability. Compared with wiring a coding assistant to a browser one script at a time, it hands over the whole persistent browser runtime between calls, with local artifacts kept on disk.

When to use it — and when not to

A self-hoster operates a local Chrome or headless Chromium, the local SQLite event log of history and artifacts, and a model account signed in through /auth, so it is a poor fit for someone who only wants a headless scraper without an LLM in the loop. It is also MIT-licensed and open, but with 15 open issues and a project whose rendering changes must clear a heavy tmux-and-Ratatui verification suite, expect a tool tuned to its own workflow rather than a general-purpose browser driver.

project readme (upstream, from github) — read inline

Browser Use Terminal

Automate the boring stuff in the browser.

Browser Use Terminal is a Rust TUI for browser agents. It combines a new LLM harness, Browser Harness-style CDP control, real Chrome sessions, and a terminal UI you can actually steer.

curl -fsSL https://browser-use.com/terminal/install.sh | sh
browser

What It Does

  • runs browser tasks from a terminal UI
  • works with your logged-in Chrome when the task needs real account state
  • supports headless Chromium and Browser Use cloud for clean or remote runs
  • lets you watch, steer, stop, retry, and resume tasks
  • keeps local history, screenshots, artifacts, and follow-ups
  • uses a new LLM harness built to be 2x cheaper and 2x faster than Browser Harness

How It Works

Browser Use Terminal is a browser-first LLM harness: Rust owns the agent loop and durable state, while the browser runtime gives the model direct CDP control over Chrome.

you
 │
 ▼
browser terminal
 │
 ├─ custom Ratatui UI      watch · steer · stop · resume
 ├─ Rust LLM harness       tools · subagents · compaction · cancellation
 ├─ SQLite event log       history · screenshots · artifacts · traces
 └─ CDP browser runtime    profiles · doctor · recovery · ownership
      │
      ▼
 real Chrome  |  headless Chromium  |  Browser Use cloud
  • The model gets raw browser capability: CDP, page JavaScript, screenshots, files, and helper code.
  • The terminal stays controllable: history, artifacts, follow-ups, browser recovery, and a custom Ratatui renderer for live work.

Try It

Get my San Francisco parking permit.
Give this employee admin permission in Azure.
Find the cancellation policy for my current hotel reservation.

Setup

Launch the app:

browser

Use slash commands inside the TUI:

/auth      sign in
/model     choose a model
/browser   choose local, headless, or cloud browser
/update    update the app

Useful shell commands:

browser auth status
browser config show
browser diagnostics

Use It From Claude Code, Codex, or OpenCode

Browser Use Terminal plugs into any coding assistant that can run shell commands, browser-harness style: a skill teaches the assistant the CLI, and the CLI hands it the whole browser runtime.

browser-use-terminal skill install        # registers the skill for detected assistants

Then ask your assistant to browse:

browser-use-terminal browser exec <<'PY'
new_tab("https://example.com")
wait_for_load()
print(capture_screenshot())
PY

Screenshots are saved as files and the path is printed, so assistants view them with their native file-reading tools (Claude Code Read, Codex view_image, OpenCode read). The browser persists between calls. See docs/assistant-plugins.md.

Development

cargo fmt --check
cargo test
uv run --with pytest python -m pytest -q
scripts/verify-terminal-ui.sh

Terminal UI changes must pass the full verification script. It runs Rust tests, Python tests, deterministic Ratatui dumps, and a real tmux smoke test.

Agent Tools

Release archives include a managed ripgrep binary at bin/agent-tools/rg. Agent shell commands prepend Browser Use Terminal's temporary tool shim and managed tools directory to PATH, so rg, rg --version, and rg --files work without depending on the user's shell dotfiles or DotSlash. Source checkout entry points and local dev wrappers install the same managed ripgrep under target/debug/agent-tools/rg; run scripts/install-agent-ripgrep.sh target/debug/agent-tools to refresh it manually.

Telemetry

You can disable (100% completely anonymous) telemetry with BUT_TELEMETRY=0.

Docs

  • docs/terminal-ui-product-ux.md
  • docs/terminal-ui-testing.md
  • docs/terminal-renderer-architecture.md
  • docs/assistant-plugins.md

License

MIT

Frequently asked questions

Is terminal free to use?

terminal is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does terminal do?

Terminal UI to get stuff done in the browser

What is terminal written in?

terminal is primarily written in Rust. Its source is publicly available at https://github.com/browser-use/terminal, and it has 650 GitHub stars.