diff --git a/packages/web/src/lib/site.ts b/packages/web/src/lib/site.ts
index 942dd7a..c429b0e 100644
--- a/packages/web/src/lib/site.ts
+++ b/packages/web/src/lib/site.ts
@@ -8,6 +8,12 @@ export const GITHUB_URL = "https://github.com/karngyan";
export const INSTALL_COMMAND = "npm i -g @karnstack/reins";
+/** The step people skip. Named here so no page can quote it differently. */
+export const SKILL_COMMAND = "npx skills add karnstack/reins";
+
+export const CHROME_WEB_STORE_URL =
+ "https://chromewebstore.google.com/detail/reins/hnjcfgochepemjndccfblpmfmlblkofo";
+
/** Primary header links (kept short — the command menu covers the long tail). */
export const HEADER_LINKS = [
{ to: "/docs", label: "Docs" },
diff --git a/packages/web/src/routes/docs/index.tsx b/packages/web/src/routes/docs/index.tsx
index 9c838f5..fb5896e 100644
--- a/packages/web/src/routes/docs/index.tsx
+++ b/packages/web/src/routes/docs/index.tsx
@@ -1,10 +1,7 @@
import { createFileRoute } from "@tanstack/react-router";
import { A, Arrow, Code, H1, H2, P, Shell } from "@/components/md";
import { seo } from "@/lib/seo";
-import { INSTALL_COMMAND } from "@/lib/site";
-
-const CHROME_WEB_STORE_URL =
- "https://chromewebstore.google.com/detail/reins/hnjcfgochepemjndccfblpmfmlblkofo";
+import { CHROME_WEB_STORE_URL, INSTALL_COMMAND, SKILL_COMMAND } from "@/lib/site";
export const Route = createFileRoute("/docs/")({
head: () => ({
@@ -36,7 +33,19 @@ function GettingStarted() {
reins kill stops it. There is nothing to configure and nothing to keep running.
+ The skill teaches agents the command set and the loop below. This is the step people skip,
+ and skipping it is why an agent with reins installed still says it cannot open a browser.
+ Agents without skill support can run reins help; the CLI is self-describing.
+
Install the reins extension from the Chrome Web Store in every Chromium browser you want agents to reach. Chrome, Brave, Edge, Arc and Dia all work. @@ -50,13 +59,6 @@ function GettingStarted() {
Working from a dev build instead? Load the unpacked extension and allow its ID once:
- The skill teaches agents the command set and the loop below. Agents without skill support
- can run reins help; the CLI is self-describing.
-
The npm package carries a full copy of the reins extension. If you cannot (or would rather
- not) install from the{" "}
-
- Chrome Web Store
-
- , one command stages it for Chrome's Load unpacked. No repo checkout, no build, no{" "}
+ not) install from the Chrome Web Store, one command
+ stages it for Chrome's Load unpacked. No repo checkout, no build, no{" "}
reins allow.
- then add the{" "} - - extension - {" "} - in every browser you want agents to reach -
+{INSTALL_COMMAND}],
+ ["Skill", {SKILL_COMMAND}],
["Browsers", "Chrome, Brave, Edge, Arc, Dia. Any Chromium that takes MV3 extensions."],
["Agents", "Claude Code, Cursor, Codex, Copilot, Gemini CLI. Anything with a shell."],
["Binds", 127.0.0.1],
@@ -309,19 +297,60 @@ function Limits() {
/* ------------------------------------------------------------------------ */
+/**
+ * Install, at the top, where the reader still is.
+ *
+ * It used to close the page, under the facts and the limits, and the skill
+ * was the last line of it. People installed the CLI, installed the
+ * extension, and stopped: two visible halves that plainly do something, and
+ * a third step below the fold that reads like an optional extra. It is not.
+ * Without the skill the agent has the CLI on its PATH and no idea the
+ * commands exist.
+ *
+ * So the skill is step two, between the two shell one-liners, rather than
+ * step three on the far side of a trip to the Chrome Web Store. The order of
+ * the three does not matter to the software. It matters to whether anyone
+ * finishes.
+ */
function Install() {
return (
<>
- The first line installs the CLI, and the daemon rides along inside it. The second teaches
- any agent with skill support the command set; the rest can read reins help.
- Then install the extension in every browser you want agents to reach, and{" "}
- reins status shows what is connected.
+ Three pieces, and the third is the one people skip. Without the skill, your agent has the
+ CLI installed and no idea the commands exist.
reins help instead, but do not skip this if yours supports it.
+
+ Then reins status shows what is connected.
+
No Chrome Web Store access? reins extension stages the bundled copy for
Chrome's Load unpacked, with no reins allow step.