FAQ
Missing something? Ask on GitHub.
Is anything ever sent to a remote server?
Not by default. The extension talks only to the reins daemon on 127.0.0.1. No analytics, no telemetry, no remote code. The one opt-in exception is reins do: once you save a TypeSafe key, it sends page state to TypeSafe while a run is working. The security page lists exactly what.
Which browsers work?
Any Chromium browser with Manifest V3 extensions: Chrome, Brave, Edge, Arc, Dia. Install the extension in each one; one daemon serves them all.
Which agents work?
Anything with a shell: Claude Code, Cursor, Codex, Copilot, Gemini CLI, plain scripts. Teach it with npx skills add karnstack/reins, or point it at reins help.
Why does Chrome show an "is being debugged" banner?
reins drives tabs through chrome.debugger, the same protocol DevTools uses, and Chrome shows that banner whenever a debugger is attached. It is how you know an agent is acting.
Do I need to run or configure the daemon?
No. Any reins command starts it, and the extension finds it on its own. reins status shows what is connected; reins kill stops it.
How do I update reins?
Run npm i -g @karnstack/reins@latest. The next command restarts the daemon on the new version, or run reins restart. The Web Store extension updates itself.
How is this different from an MCP browser server?
Nothing to register per agent. reins is a plain CLI, so anything that runs shell commands can use it, and it drives your real logged-in browser rather than a separate one.
How do I stop an agent while it is running?
Click the reins toolbar icon and press Disconnect. reins kill stops the daemon entirely.
Can I install the extension without the Chrome Web Store?
Yes. reins extension stages the copy bundled in the npm package for Chrome's Load unpacked. See Install without the store.
Does reins work with unpacked dev builds of the extension?
Yes. Load the unpacked build, then run reins allow <extension-id> once.