How karnstack/reins works
reins lets a coding agent use CLI commands to inspect and control an already-running Chromium browser: the CLI contacts a local daemon, which bridges requests to the browser extension; the extension enforces site permissions and performs browser actions. The main loop is snapshot, act, and check, with tab management, screenshots, console/network inspection, and raw CDP also documented. The graph includes policy and audit as internal layers, plus the public site. Some extension and daemon wiring is inferred only from README descriptions, so uncertain internal calls are omitted.
Main entry points: dispatch.ts Action dispatch · commands.ts Command mapping · daemon.ts Daemon · serve.ts Bridge server
Components 20
CLI and daemon
- CLI entry
packages/cli/src/cli.ts - Command mapping
packages/cli/src/commands.ts - RPC client
packages/cli/src/rpc.ts - Daemon
packages/cli/src/daemon.ts - Bridge server
packages/cli/src/serve.ts - Audit log
packages/cli/src/audit.ts
Browser extension
- Background worker
packages/extension/src/background.ts - Bridge client
packages/extension/src/lib/bridge-client.ts - Action dispatch
packages/extension/src/lib/dispatch.ts - CDP control
packages/extension/src/lib/cdp.ts - Tab operations
packages/extension/src/lib/tab-handler.ts - Permission policy
packages/extension/src/lib/policy.ts - Policy controls
packages/extension/src/popup.ts
Shared protocol
- Bridge frames
packages/protocol/src/bridge.ts - Command schemas
packages/protocol/src/cdp.ts
Public site
- Site routes
packages/web/src/routes/index.tsx - Changelog
packages/web/src/routes/changelog/route.tsx - Site delivery
packages/web/worker/index.ts
Other components
- Coding agent
- Chromium browser
Connections 21
- Coding agent → CLI entry: runs commands
- CLI entry → Command mapping: maps arguments
- Command mapping → RPC client: sends method
- RPC client → Daemon: RPC request
- Daemon → Bridge server: serves bridge
- Bridge server → Background worker: bridge messages
- Background worker → Bridge client: starts client
- Bridge client → Action dispatch: dispatches method
- Action dispatch → Tab operations: manages tabs
- Action dispatch → CDP control: controls pages
- Action dispatch → Permission policy: checks access
- Policy controls → Permission policy: edits policy
- Chromium browser → Background worker: connects extension
- Tab operations → Chromium browser: uses tabs API
- CDP control → Chromium browser: uses debugger
- Daemon → Audit log: records commands
- Command mapping → Command schemas: uses schemas
- Bridge server → Bridge frames: uses frames
- Coding agent → Site routes: visits site
- Site routes → Changelog: links releases
- Site delivery → Site routes: serves site