Take the reins of your real browser
reins lets coding agents — Claude Code, Cursor, Codex, anything with a shell — drive the logged-in browser you already use. No debug profile, no launch flags, no MCP server to register.
npm i -g @karnstack/reins
agent session
How it works
Install once, drive everything
Three pieces, all yours: a CLI your agent calls, a daemon it auto-spawns, and an extension that dials in. Nothing to keep running, nothing to register per agent.
01
Install the CLI
The daemon ships inside and starts on demand — any command spawns it.
npm i -g @karnstack/reins
02
Add the extension
It discovers the daemon on its own and the toolbar icon turns green when connected.
reins status
03
Teach your agent
The skill teaches any coding agent the command loop. From here, the agent drives.
npx skills add karnstack/reins
Everything an agent needs to work a page
A small, curated command set covers the whole loop: look at the page, act on it, verify the result.
- Every tab, every browser
- List, open, focus, and close tabs across Chrome, Brave, Edge, Arc, and Dia — one daemon serves every connected browser.
- Real interaction
- Click, type, fill, select, hover, scroll, press keys, and upload files — addressed by stable element refs, not brittle selectors.
- See the page
- Snapshot interactive elements, read visible text, and capture screenshots your agent can open and reason about.
- Debug signals
- Read a tab's recent console messages and network requests without ever opening DevTools.
- An escape hatch
- Evaluate JavaScript in the page, or issue raw Chrome DevTools Protocol commands when the curated set isn't enough.
- Your sessions intact
- It is your real profile — logins, cookies, and state included. No separate automation browser to babysit.
Local by design
reins has no cloud half. The extension talks to one thing — your own daemon on 127.0.0.1 — and collects nothing, for anyone. The whole stack is open source and auditable.
Everything binds 127.0.0.1 — nothing is reachable from the network.
Host-header validation blocks DNS rebinding, so web pages can't reach the daemon.
Only allowlisted chrome-extension:// origins may connect — an identity pages can't forge.
Chrome shows its native debugging banner whenever the extension is attached.
The popup's Disconnect toggle severs the connection instantly.
Hand your agent the reins
Two installs and a skill — your agent is driving your browser in under a minute.
npm i -g @karnstack/reins