Getting started
reins gives coding agents full control of your actual, logged-in Chromium browser, through a CLI and a Manifest V3 extension. Claude Code, Cursor, Codex, Copilot, anything with a shell. This page takes you from nothing to an agent driving a tab.
1. Install the CLI
$ npm i -g @karnstack/reinsThis installs the reins command and the daemon it manages. You never run the daemon yourself: any command starts it on demand, it binds 127.0.0.1, and reins kill stops it. There is nothing to configure and nothing to keep running.
2. Teach your agent
$ npx skills add karnstack/reinsThe skill teaches agents the command set and the loop below. This is the step people skip, and skipping it is why an agent with reins installed still says it cannot open a browser. Agents without skill support can run reins help; the CLI is self-describing.
3. Add the extension
Install the reins extension from the Chrome Web Store in every Chromium browser you want agents to reach. Chrome, Brave, Edge, Arc and Dia all work. The extension finds the daemon on its own through localhost port discovery, and the toolbar popover turns green when it is connected.
Prefer to skip the store? reins extension stages the bundled copy for Chrome's Load unpacked. The walkthrough is on Install without the store.
Working from a dev build instead? Load the unpacked extension and allow its ID once:
$ reins allow <extension-id>4. Check
$ reins status # daemon state, port, connected browsers$ reins tabs # every tab across every connected browser$ reins doctor # diagnostic checks when something looks off
The loop agents use
Every page interaction is the same three beats: look, act, check.
$ reins snapshot e3: input "Email" e7: button "Sign in"$ reins type --ref e3 --text "you@work.dev"$ reins click --ref e7$ reins text
The commands that act on a page or a tab share three flags: --tab <id> (the active tab by default), --browser <id> (only needed when several browsers are connected) and --json for raw output.