npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

open-browser-use

v0.1.35

Published

Open Browser Use native host and CLI binary.

Readme

Open Browser Use CLI

This npm package installs the open-browser-use native host and CLI binary. It also exposes the short obu command.

The CLI is useful when your agent runtime is shell-first or when you want a small action plan instead of a JavaScript/Python SDK script.

Install

npm install -g open-browser-use
obu version

The package contains prebuilt Go binaries for macOS, Linux, and Windows on amd64 and arm64.

Setup

Run open-browser-use with no subcommand to print the CLI version, browser extension status, extension version when available, and the next setup or upgrade command.

After installation, run setup to register the Chrome native messaging host and open the Chrome Web Store page for the matching extension:

open-browser-use setup

Install or enable Open Browser Use from that page, then restart Chrome if Chrome asks or the extension does not appear immediately.

If the Chrome Web Store item is temporarily unavailable, use the latest GitHub Release zip as an unpacked extension instead:

open-browser-use setup beta

That command opens chrome://extensions/ and reveals a keyed release ZIP so the user can drag it into Chrome with a stable fallback extension id.

Verify the browser connection:

open-browser-use ping
open-browser-use info

One-Shot Commands

Use direct subcommands for simple inspection and single browser actions:

open-browser-use tabs
open-browser-use user-tabs
open-browser-use history --query "browser use" --limit 20

open-browser-use name-session --name "Docs scan - OBU"
open-browser-use open-tab --url https://docs.browser-use.com
open-browser-use navigate --tab-id <tab-id> --url https://github.com/iFurySt/open-codex-browser-use
open-browser-use cdp --tab-id <tab-id> --method Runtime.evaluate --params '{"expression":"document.title","returnByValue":true}'
open-browser-use finalize-tabs --keep '[]'

Use --socket <path> when a runtime gives you a specific Open Browser Use socket. Otherwise the CLI discovers /tmp/open-browser-use/active.json. Direct subcommands and run use the same default browser session, obu-cli, so a final open-browser-use finalize-tabs --keep '[]' cleans up tabs opened by either style. Pass --session-id <id> only when you intentionally want a separate tab group and cleanup scope.

Action Plans

Use run when you want CLI-level orchestration without writing JS or Python. The format is intentionally small: one action per line, optional # comments, shell-like quotes, shared session/turn, and a default tab set by open-tab or claim-tab.

open-browser-use run -c '
name-session "Docs scan - OBU"
open-tab https://docs.browser-use.com
wait-load domcontentloaded
page-info
finalize-tabs []
'

You can also load the same action plan from a file:

open-browser-use run --file ./docs-scan.obu

Supported actions:

  • Session/info: ping, info, tabs, user-tabs, turn-ended
  • Browser tabs: open-tab, claim-tab, navigate, wait-load, page-info
  • Browser methods: history, cdp, call
  • Input/files: move-mouse, wait-file-chooser, set-file-chooser-files
  • Cleanup: finalize-tabs

Example with explicit CDP and default tab reuse:

open-browser-use run -c '
name-session "GitHub issue scan - OBU"
open-tab https://github.com/iFurySt/open-codex-browser-use/issues
wait-load domcontentloaded
cdp Runtime.evaluate "{\"expression\":\"document.body.innerText.slice(0, 1000)\",\"returnByValue\":true}"
finalize-tabs []
'

Example claiming an existing user tab:

open-browser-use run -c '
claim-tab <tab-id>
page-info
finalize-tabs [{"tabId":<tab-id>,"status":"handoff"}]
'

MCP Server

Use mcp when an agent runtime supports local MCP servers over stdio:

obu mcp

For Codex, add a server entry similar to this in ~/.codex/config.toml:

[mcp_servers.open_browser_use]
command = "obu"
args = ["mcp"]

The MCP server exposes browser tools such as user_tabs, open_tab, claim_tab, navigate, wait_load, page_info, cdp, history, run_action_plan, finalize_tabs, and unrestricted call. It uses the same socket discovery as the CLI; pass --socket <path> or --socket-dir <dir> in args only when the runtime needs an explicit socket.

Low-Level JSON-RPC

Use call when no convenience command or action exists:

open-browser-use call --method getInfo --params '{}'
open-browser-use call --method executeCdp --params '{"target":{"tabId":123},"method":"Runtime.evaluate","commandParams":{"expression":"document.title","returnByValue":true}}'

Cleanup

End browser work by finalizing tabs:

open-browser-use finalize-tabs --keep '[]'

Keep a tab only when the live tab is the deliverable or the user should continue from that state:

open-browser-use finalize-tabs --keep '[{"tabId":123,"status":"handoff"}]'