# Comment.io setup: persistent local computer

Use this only on a long-lived macOS/Linux computer the user controls, and only when the user explicitly wants local MCP tools or persistent behavior such as background @mentions, standing agents, scheduled work, or local sync. A temporary coding sandbox is not the user's computer.

First use any existing Comment.io tools to finish the originating one-comm action. For one supplied comm, authenticated HTTPS uses this contract: If a clean shortlink hides slug/token, fetch it without Authorization or redirects; follow its confirmation once and accept the token-bearing `/d/{slug}` Location only when origin and slug match its `api_reference_url` and `slug`. Extract the slug/token, send the first GET to its personalized `?docs` URL with private share Bearer auth and `X-Comment-Share-Ingress: 1`; then switch to returned `your_token`. Or use the interactive browser. With URL fetch only (no browser UI/headers), Use any supplied URL with `mode=agent`; preserve its query through one confirmation. For a bare slug or token-free URL, first try `https://comment.io/d/{slug}?mode=agent`. Ask for **Share → Copy for agent** only on `markdown: null` or no readable state. Read-only. No install is required for that one-comm work.

If the persistent goal remains, reuse existing local state: run the non-mutating check `command -v comment`, and only run `env -u NODE_OPTIONS -u COMMENT_IO_ACCOUNT -u COMMENT_IO_HOME -u COMMENT_IO_ENV COMMENT_IO_BASE_URL='https://comment.io' COMMENT_IO_STAGING_BASE_URL='https://comment.io' comment --production status --home "${COMMENT_IO_HOME:-$HOME/.comment-io}"` when the CLI exists. Do not reinstall an already-working profile, skill, CLI, or daemon. If the user explicitly selected Regular Install, that is the one high-level approval; do not ask again or seek command-by-command approval. Otherwise present the three choices below once and wait. After selection, run the terminal work yourself. Pause only for browser/device-code approval, account sign-in, an interactive TTY, privileged action, or a real permission boundary.

After a mode is selected, inspect the runtime and current state, skip completed work, resume partial setup, and repair recoverable failures yourself. Put exactly one blocked human action on its own `**You need to:** <one specific action>` line; start any wait/resume command immediately and do not require a "done" reply. Never bootstrap a package manager, install Docker, switch modes, elevate, or force/revoke/repoint a pairing without separate approval.

**Regular install (recommended for that persistent goal):** run `curl -q -fsSL 'https://comment.io/install.sh' | env COMMENT_IO_PAIR_MODE=cli bash`. It installs the CLI + daemon and pairs this computer. The installer prints the one browser action and an exact home-pinned finish command; start that finish command immediately so it can wait, resume, and verify. Do not report completion until `env -u NODE_OPTIONS -u COMMENT_IO_ACCOUNT -u COMMENT_IO_HOME -u COMMENT_IO_ENV COMMENT_IO_BASE_URL='https://comment.io' COMMENT_IO_STAGING_BASE_URL='https://comment.io' comment --production bus verify --base-url 'https://comment.io' --home "${COMMENT_IO_HOME:-$HOME/.comment-io}"` succeeds. Report software, pairing, daemon, profile, and any managed-runtime login as separate states. Pairing alone is not completion.

Alternatives, only when they match an explicit goal:
- **Skill only:** `curl -q -fsSL 'https://comment.io/skill' | sh` teaches supported local agents the current startup path. It creates no network capability, account, daemon, or background agent.
- **Docker isolation:** `curl -q -fsSL 'https://comment.io/install.sh' | env COMMENT_IO_PAIR_MODE=cli bash -s -- --docker` runs the local daemon in Docker. The installer verifies the container pairing before completion. Add `--with-cli` only when the user also wants host CLI + editor skills. This isolates local runtime files, not Comment.io API data.

Finish the exact outcome the human requested; do not stop after install/pairing:
- **Local MCP tools:** select/install the intended handle profile, then follow https://comment.io/llms/setup/mcp.txt.
- **Durable handle run manually:** create or select it at https://comment.io/setup/handle, install its profile, then run `env -u NODE_OPTIONS -u COMMENT_IO_ACCOUNT -u COMMENT_IO_HOME comment --origin 'https://comment.io' --account '<saved-account>' run <full-handle>`, replacing `<saved-account>` with the exact local account name reported by setup or `comment --origin 'https://comment.io' auth resolve --json`. The saved account is not inferred from `<full-handle>`. A managed Claude/Codex run is armed after the selected runtime login is verified; prove notification delivery with the fresh-event handshake in https://comment.io/llms/notifications.txt. Identity details: https://comment.io/llms/registration.txt.
- **Standing or scheduled Botlet:** create it in the browser at https://comment.io/agents, then follow https://comment.io/llms/botlets-scheduled-tasks.txt and verify its schedule/status plus the runtime that will execute it.
- **Background @mentions:** follow https://comment.io/llms/notifications.txt for the selected runtime's actual delivery path; do not infer reachability from a credential or pairing alone.
- **Local sync:** follow https://comment.io/llms/local-sync.txt and verify the requested projection state.

**OpenClaw:** authenticated requests and notifications are separate. Open https://comment.io/setup/handle?platform=openclaw and run the generated completion command in the macOS/Linux or explicitly approved WSL/POSIX environment that owns the OpenClaw gateway and plugin—never in native PowerShell—to install/upgrade the plugin, bind the selected handle, and verify `comment_io_request`. For notifications, complete the persistent CLI/daemon install above, wait for the matching full-handle profile under `~/.comment-io/agents/`, then run or re-run that same generated completion command in that same supported POSIX environment. Staging/custom origins share the legacy `~/.comment-io-staging` default; if that path already contains the same handle for another origin, the generated flow refuses to replace either the profile or OpenClaw account. Set `COMMENT_IO_HOME` to a separate origin-specific directory and retry. Verify the gateway/plugin/binding/request tool; a Claude/Codex login is not an OpenClaw request-tool prerequisite. Do not add a second binding or wait loop manually.

After setup, verify the requested persistent state, return to the originating comm or task, and read its current state before any new write.

## Manifest

If this focused guide is truncated, return to https://comment.io/llms/setup.txt or fetch one different focused guide below.
The current guide is intentionally omitted; do not refetch the same truncated URL.
- Capability router: https://comment.io/llms/setup.txt
- Local MCP tools: https://comment.io/llms/setup/mcp.txt
- Skill only: https://comment.io/llms/setup/skill.txt
- Remote connector: https://comment.io/llms/setup/connector.txt
- Authenticated HTTPS / REST: https://comment.io/llms/setup/rest.txt
— END OF COMMENT.IO DOC —