Skip to content
6 changes: 6 additions & 0 deletions .changeset/tab-groups-read.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
---
"@karnstack/reins": minor
"@reins/extension": minor
---

`reins groups` lists tab groups (title, color, collapsed, tab count) across connected browsers, and `reins tabs` marks each grouped tab with `g<id>`. A browser without the tab-group API answers with an error that names it (`<browser> (b2) doesn't support tab groups …`), and `reins groups` lists such browsers as skipped instead of dropping them silently. Dia supports tab groups. The extension asks for the `tabGroups` permission, which shows no install prompt.
13 changes: 10 additions & 3 deletions docs/CHROME_WEB_STORE.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ Each answer below fits its field's 1,000-character limit. Paste verbatim.
**Single purpose description**

```text
reins has one narrow purpose: let the user's own coding agent (software running on their machine) drive their own browser. A local companion daemon — installed by the user via the reins CLI (npm: @karnstack/reins) and bound to 127.0.0.1 — sends commands that this extension executes: list/open/close/focus tabs, navigate, click, type, fill forms, scroll, take screenshots, read page text, and read console messages and network requests for debugging. All communication is confined to the user's machine; the extension never contacts a remote server and never sends data anywhere except the user's own local daemon.
reins has one narrow purpose: let the user's own coding agent (software running on their machine) drive their own browser. A local companion daemon — installed by the user via the reins CLI (npm: @karnstack/reins) and bound to 127.0.0.1 — sends commands that this extension executes: list/open/close/focus/group tabs, navigate, click, type, fill forms, scroll, take screenshots, read page text, and read console messages and network requests for debugging. All communication is confined to the user's machine; the extension never contacts a remote server and never sends data anywhere except the user's own local daemon.
```

**debugger justification**
Expand All @@ -56,7 +56,13 @@ Core function of the extension: executes the user's agent commands on tabs via t
**tabs justification**

```text
Lists open tabs (title and URL) so the user's agent can pick a target tab, and opens, closes, and focuses tabs — plus resizes the tab's window — on the agent's behalf. Tab metadata is sent only to the user's own local daemon on 127.0.0.1, never to a remote server.
Lists open tabs (title, URL, and tab group) so the user's agent can pick a target tab, and opens, closes, and focuses tabs — plus resizes the tab's window — on the agent's behalf. Tab metadata is sent only to the user's own local daemon on 127.0.0.1, never to a remote server.
```

**tabGroups justification**

```text
Lists the user's tab groups (title, color, collapsed state) and, on the agent's behalf, creates groups, adds or removes tabs, and edits a group's title and color — so the user can see which tabs their agent is working in. Group metadata is sent only to the user's own local daemon on 127.0.0.1, never to a remote server.
```

**storage justification**
Expand Down Expand Up @@ -134,7 +140,7 @@ Once both are in place, the extension discovers the daemon on its own and the to

WHAT YOUR AGENT CAN DO

• Tabs — list, open, close, and focus tabs across every connected browser
• Tabs — list, open, close, focus, and group tabs across every connected browser
• Navigate — go to a URL, or back / forward / reload
• Inspect — snapshot the page's interactive elements, read visible text, capture screenshots
• Interact — click, type, fill inputs, choose dropdown options, hover, scroll, press keys, upload files
Expand All @@ -153,6 +159,7 @@ PERMISSIONS, AND WHY

• debugger — runs your agent's commands (click, type, screenshot, read console/network) on tabs via the Chrome DevTools Protocol. Chrome shows its native debugging banner while attached.
• tabs — list, open, close, and focus tabs, and resize the tab's window.
• tabGroups — list, create, and edit tab groups, so you can see which tabs your agent is working in.
• storage — stores the auto-connect setting, cached daemon port, and connection status on your device.
• offscreen — hosts the persistent WebSocket to your local daemon; MV3 service workers can't hold long-lived connections.

Expand Down
4 changes: 2 additions & 2 deletions docs/PRIVACY.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
# reins — Privacy Policy

_Last updated: 2026-07-04_
_Last updated: 2026-09-26_

reins is a browser extension that lets a **local** daemon on your own
machine (installed by you, via the `@karnstack/reins` CLI) drive your
browser. It is a developer tool; you install both halves yourself.

## What data reins handles

- **Page content and tab metadata** (titles, URLs, screenshots, console and
- **Page content and tab metadata** (titles, URLs, tab group names and colors, screenshots, console and
network activity of tabs you interact with through your agent) are read via
the Chrome DevTools Protocol **only when the local reins daemon asks**, and
are sent **only** to that daemon over a WebSocket bound to `127.0.0.1` on
Expand Down
Loading
Loading