-
Notifications
You must be signed in to change notification settings - Fork 3
reins.tech as one plain document #27
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,29 +1,30 @@ | ||
| # reins | ||
|
|
||
| > reins lets coding agents (Claude Code, Cursor, Codex, anything with a shell) drive the user's real, logged-in Chromium browser through a local CLI, an auto-spawned daemon, and a Manifest V3 browser extension. Everything runs on 127.0.0.1 — no cloud, no telemetry. Open source, MIT licensed. | ||
| > reins is a command-line tool that lets coding agents drive the user's real, logged-in Chromium browser. It has three local pieces: a CLI, a daemon the CLI starts on demand, and a Manifest V3 browser extension. Everything binds 127.0.0.1. There is no cloud half and no telemetry. Open source, MIT licensed, and still 0.x, so commands can change between releases. | ||
|
|
||
| Key facts: | ||
|
|
||
| - Install: `npm i -g @karnstack/reins`, then add the reins extension from the Chrome Web Store in any Chromium browser (Chrome, Brave, Edge, Arc, Dia). | ||
| - Teach an agent: `npx skills add karnstack/reins`; agents without skill support can read `reins help`. | ||
| - Core loop: `reins snapshot` (interactive elements with refs) → `reins click --ref e7` / `reins type --ref e3 --text "…"` → `reins text` or `reins screenshot` to verify. | ||
| - Site permissions: every site resolves to a per-site tier — deny, read-only, or full — enforced inside the extension; grants happen only via a click in the extension popup. | ||
| - Security: daemon binds 127.0.0.1 with Host-header validation; only allowlisted chrome-extension:// origins may connect; Chrome shows its native debug banner while attached. | ||
| - Teach an agent: `npx skills add karnstack/reins`. Agents without skill support can read `reins help`. | ||
| - Core loop, in three beats. Look: `reins snapshot` lists interactive elements with refs. Act: `reins click --ref e7` or `reins type --ref e3 --text "…"`. Check: `reins text` or `reins screenshot`. | ||
| - Site permissions: every site resolves to a tier, one of deny, read, or full. The extension enforces it. Grants happen only through a click in the extension popup, and the CLI can tighten the policy but never loosen it. | ||
| - Security: the daemon binds 127.0.0.1 and validates the Host header. Only allowlisted chrome-extension:// origins may connect. Chrome shows its native debugging banner the whole time the extension is attached. | ||
| - Limits: Chromium only, so no Firefox and no WebKit. No headless mode. Not built for CI. With two browsers connected, the commands that act on a page or a tab need `--browser <id>`, because reins never guesses which one you meant. | ||
|
|
||
| ## Docs | ||
|
|
||
| - [Getting started](https://reins.tech/docs): install the CLI and extension, teach your agent, verify the loop | ||
| - [Commands](https://reins.tech/docs/commands): full command reference — tabs, snapshot, click, type, fill, screenshot, console, network, eval, cdp | ||
| - [Site permissions](https://reins.tech/docs/permissions): per-site deny/read/full tiers and how grants work | ||
| - [Getting started](https://reins.tech/docs): install the CLI and extension, teach your agent, check the loop | ||
| - [Commands](https://reins.tech/docs/commands): the full command reference, covering tabs, snapshot, click, type, fill, screenshot, console, network, eval, and cdp | ||
| - [Site permissions](https://reins.tech/docs/permissions): the deny, read, and full tiers, and how grants work | ||
| - [Architecture](https://reins.tech/docs/architecture): how the CLI, daemon, and extension fit together | ||
| - [Security](https://reins.tech/docs/security): the localhost-only security model | ||
| - [Install without the store](https://reins.tech/docs/sideload): stage the bundled extension for Chrome's Load unpacked | ||
| - [How it compares](https://reins.tech/docs/comparison): reins vs agent-browser, dev3000, and playwright-mcp | ||
| - [How it compares](https://reins.tech/docs/comparison): reins next to agent-browser, dev3000, and playwright-mcp | ||
| - [FAQ](https://reins.tech/docs/faq): common questions | ||
|
|
||
| ## Optional | ||
|
|
||
| - [Changelog](https://reins.tech/changelog): release notes for the CLI and extension | ||
| - [Privacy policy](https://reins.tech/privacy): nothing leaves your machine | ||
| - [Privacy policy](https://reins.tech/privacy): nothing reins handles leaves your machine | ||
| - [GitHub repository](https://github.com/karnstack/reins): source for the CLI, daemon, extension, and this site | ||
| - [npm package](https://www.npmjs.com/package/@karnstack/reins) |
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
Repository: karnstack/reins
Length of output: 43894
🏁 Script executed:
Repository: karnstack/reins
Length of output: 50372
🏁 Script executed:
Repository: karnstack/reins
Length of output: 14435
🏁 Script executed:
Repository: karnstack/reins
Length of output: 385
🏁 Script executed:
Repository: karnstack/reins
Length of output: 561
Use
--browser <id>in browser-selection errors.The daemon and CLI pass these messages through unchanged. Users see
browserIdinstead of the public--browser <id>syntax.🤖 Prompt for AI Agents