The npm package carries a full copy of the reins extension. If you can't (or
don't want to) install from the
Chrome Web Store,
reins extension stages it for Chrome's Load unpacked — no repo checkout,
no build, no reins allow.
npm i -g @karnstack/reins
reins extensionThat prints the exact steps; in full:
reins extension— copies the bundled extension to~/.reins/extension/.- Open
chrome://extensions(ordia://extensions,brave://extensions, …). - Enable Developer mode (top right).
- Load unpacked → select
~/.reins/extension. reins status— the extension finds the daemon and connects on its own.
No reins allow step: the sideload build's manifest pins a public key
(packages/cli/sideload-key.json), so its extension ID is the same on every
machine and ships in the CLI's built-in allowlist.
Sideloaded extensions don't auto-update. After upgrading the CLI:
reins extension # re-stages the matching extension versionthen click ⟳ Reload on the reins card in chrome://extensions. The
target path never changes, so Chrome keeps the registration.
- Chrome shows its usual developer-mode reminders for unpacked extensions on some platforms. That's inherent to sideloading; the store build has no such nag.
- The sideloaded extension and a store-installed reins have different IDs and
can coexist — but run one at a time (disable the other in
chrome://extensions) so two connections don't both drive your tabs. - Working from a source checkout instead? That flow (per-machine dev ID +
reins allow) is RUNNING.md.