Skip to content

Repository files navigation

reins logo

reins

Take the reins of your real browser from any coding agent.

reins.tech · docs · changelog

npm CI MIT Chrome Web Store

An agent driving a real browser through reins: a login page with e3/e7 element refs, and an agent session running reins snapshot then reins click --ref e7

reins gives your coding agent control of the real, logged-in Chromium browser you already use, through a CLI and a Manifest V3 extension. Claude Code, Cursor, Codex, Copilot: anything with a shell. No MCP server to register, no debug profile, no launch flags, no tokens.

Quick start

npm i -g @karnstack/reins        # the CLI (daemon included, starts on demand)
npx skills add karnstack/reins   # the skill, into your agent(s) of choice

Then install the extension in every Chromium browser you want agents to reach: Chrome, Brave, Edge, Arc, Dia.

Add reins from the Chrome Web Store. It finds the local daemon and connects on its own.

No store access? reins extension installs it through Load unpacked instead. See docs/SIDELOAD.md. That is the whole setup, and reins status shows what is connected.

The loop

reins snapshot              # look: interactive elements with refs → e5: button "Submit"
reins click --ref e5        # act: by ref
reins text                  # check: or reins screenshot, which prints an image path

Shared flags, on the commands that act on a page or a tab: --tab <id> (default: active tab), --browser <id> (only when several are connected), and --json for raw output. reins help is self-describing, and reins cdp reaches the full Chrome DevTools Protocol when the curated commands are not enough.

Limits

Chromium only, so no Firefox and no WebKit. No headless mode: reins drives a browser you already have open, which also makes it the wrong tool for CI. With two browsers connected, commands need --browser <id>, because reins never guesses which one you meant. Releases are still 0.x, so commands, flags, and output can change.

Learn more

The full story lives on the site:

  • Docs: getting started, architecture, and the complete command reference
  • How it compares: reins next to agent-browser, dev3000, and playwright-mcp
  • Security: per-site permissions, 127.0.0.1-only binding, and the threat model
  • Site permissions: the deny, read, and full tiers, and how to tighten them

Report vulnerabilities privately via GitHub security advisories.

Develop

mise install        # Node 24.18.0 + pnpm 11.9.0 (exact, via mise)
pnpm install
pnpm dev            # watch-build all packages (extension → dist/)
pnpm test           # protocol + cli + extension unit/integration tests
pnpm lint && pnpm typecheck && pnpm build
pnpm reins tabs     # build + run any CLI command

Local walkthrough (load unpacked, allow the dev ID, drive tabs): docs/RUNNING.md. Releasing: docs/RELEASING.md.

Packages: protocol (shared zod frames), cli (@karnstack/reins, bin reins), extension (MV3), web (reins.tech), and skills/reins (the agent skill).

License

MIT

Releases

Contributors

Languages