Repository navigation
docs(mcp): Claude Desktop guide first, set up via totalreclaw_pair, phrase never in the host config - #725
Draft
p-diogo wants to merge 3 commits into
Draft
docs(mcp): Claude Desktop guide first, set up via totalreclaw_pair, phrase never in the host config#725p-diogo wants to merge 3 commits into
p-diogo wants to merge 3 commits into
Conversation
Passkey onboarding review 2026-11-03 §4.5 (F9): - claude-code-setup.md: the setup steps now register the server with no env block, restart the host, call totalreclaw_pair (generate or import), then restart again. An existing ~/.totalreclaw/credentials.json is picked up automatically. - Removed the `jq -r .mnemonic` instruction (broken after the Phase 2 bundle migration, and it taught printing the phrase), the "trusted offline tool" seed-generator path, and the plaintext TOTALRECLAW_RECOVERY_PHRASE placeholder as the default. The env var stays only as a clearly marked advanced path with its risks stated. - Replaced "To migrate, copy credentials.json (or just the mnemonic field)" with pairing in import mode on the new computer. - mcp/README.md Quick Start follows the same default. Canonical install prompt is unchanged and resolves to stable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bd3G1BkVMFSXkcdAQ7nFax
- The pairing page ends on "You're all set", not "Pairing complete" (relay pair-html.ts), so tell users to wait for that text. - Drop "the link expires in about 5 minutes": the MCP server stops waiting after 60 seconds (PAIR_TOOL_HARD_TIMEOUT_MS), so make no time promise and say to ask for a new link if it stops working. - `claude mcp restart` does not exist; say quit and reopen `claude`. - An existing credentials.json is not always picked up: the server can't read a Hermes phrase kept in the system keychain. Say so, and tell the agent to use import, never generate, when TotalReclaw is already in use on the computer, because pairing replaces the shared credentials.json. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bd3G1BkVMFSXkcdAQ7nFax
The MCP server's first audience is chat apps, so the primary guide is now docs/guides/claude-desktop-setup.md: the user adds the server to claude_desktop_config.json, restarts, asks Claude to set up, finishes on the pairing page, restarts again. No phrase in the config, chat, env or tool arguments; the phrase-in-config path stays as a marked advanced fallback. claude-code-setup.md now covers coding tools only (Claude Code, Cursor, Windsurf, IronClaw), notes the planned coding-harness integration, and matches the fixed server behaviour: ~10 min link, refusal to pair over an existing credentials file, not_configured with a reason for a Hermes keychain file. Dispatcher, README and cross-links route chat apps to the new guide. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Bd3G1BkVMFSXkcdAQ7nFax
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR implements review §4.5 (passkey onboarding review, 2026-11-03, F9), which Pedro approved on 2026-11-03. It is docs only, but it is rail-adjacent: it changes phrase-handling guidance and adds a new public guide. Draft for Pedro's look.
It is retargeted per Pedro's direction (parity plan D5, decided 2026-11-03). The MCP integration's first audience is chat apps: Claude Desktop first, then other MCP-capable chat apps and personal agents. Coding harnesses get a separate hook/CLI-skill integration later. So the primary guide is now a Claude Desktop guide. The Claude Code guide stays accurate but is secondary.
Setup uses
totalreclaw_pair. The recovery phrase is created or entered in the browser, and never goes into chat, a config file, an env var or a tool argument.Depends on (merge order)
The guides describe the fixed server behaviour, so this should merge after these ship in a published
@totalreclaw/mcp-serverstable (3.5.1):credentials.json, and a Hermes keychain file givesnot_configuredwith areasoninstead of a crash. These guide statements depend on it: "setup never replaces an existing account file", "already_configured", and "not_configuredwith areason… don't pair". If fix(mcp): pair never replaces existing credentials; start unconfigured on keychain files #730 does not make 3.5.1, those lines need softening before this merges.The canonical install command everywhere is the bare
npx -y @totalreclaw/mcp-server, which resolves to stable.@rcappears only in the "pin a version" aside.Changes by file
docs/guides/claude-desktop-setup.md(new, primary MCP guide). The flow:claude_desktop_config.jsonvia Settings → Developer → Edit Config, with noenvblock.totalreclaw_pairand gives a link and PIN; the user finishes on the page.The guide also has: tool-permission advice (Always allow for recall/remember), "Already using TotalReclaw on this computer?" (shared
credentials.json, the Hermes keychain gap, pairing never replaces the file), agent instructions for a chat assistant that can't edit config, troubleshooting (npx/nvm PATH, logs location, expired link / old server, keychain reason), the phrase-in-config path as a marked Advanced (not recommended) section (moved here from the Claude Code guide's role), and an "Other chat apps" note that dedicated guides are planned. No steps are invented for ChatGPT desktop or others.docs/guides/claude-code-setup.md. Retitled "TotalReclaw for Claude Code, Cursor, and Windsurf". It points chat-app users to the Desktop guide and says a dedicated coding-harness integration (hooks plus CLI skill) is planned. Claude Desktop is removed from Steps 1/2B/3 and from the config table. Step 4 now matches the fixed server: thetotalreclaw_statusbranches (configured → skip;not_configuredwithreason→ explain, don't pair),already_configuredfrom 3.5.1 on, "alwaysimport, nevergenerate" kept for older servers, and "link works for about 10 minutes". The "needs 3.5.0" line is now 3.5.1. Troubleshooting covers the 60 s failure andalready_configured. The leaked-phrase advice no longer says to create a new account withgenerate, which 3.5.1 refuses on a configured machine; it says to treat the phrase as exposed and usetotalreclaw_support. The previous reviewer's corrections stand: noclaude mcp restart, the short-link wording (now concrete), and alwaysimportwhen TotalReclaw is already on the machine. The canonical prompt still points at this guide, as the QA harness expects.mcp/README.md. The quick start adds the ~10 min link and the quit-and-reopen step, and links the Desktop guide. The Hermes-keychain sentence now says the server reports it and leaves the account untouched; it no longer says "set up with your existing phrase". The Advanced link now targets the Desktop guide.docs/guides/install.md. The dispatcher routes chat apps (Claude Desktop, other chat apps) to the Desktop guide, and coding tools / IronClaw to the Claude Code guide. Its ambiguity question was updated to match.README.md. The Quick Start row "Claude Desktop / Cursor / Windsurf →npx @totalreclaw/mcp-server setup" (the phrase-printing wizard) is split into a Claude Desktop row (config + "Set up TotalReclaw", links the guide) and a coding-tools row. The per-client links are split the same way.docs/README.md,docs/guides/{hermes-setup,openclaw-setup,client-setup-v1,feature-comparison,env-vars-reference,beta-tester-guide,beta-tester-guide-detailed}.md. Cross-links send Claude Desktop to the new guide.beta-tester-guide-detailed.mdno longer says MCP has "no account-setup flow".Copy for Pedro's review (new and changed user-facing lines)
env. There is no recovery phrase to add here and noenvblock.totalreclaw_recallandtotalreclaw_remember… Keep the prompt for tools that change or remove things.credentials.json… alwaysimport, nevergeneratetotalreclaw_pairrefuses withalready_configuredwhen the file exists; never move/rename/delete it. Older servers replaced it, so still alwaysimportwith the same phrase if TotalReclaw is already used here.totalreclaw_pair(mode: "generate").totalreclaw_supportfor help moving to a new account.npx @totalreclaw/mcp-server setupnpx -y @totalreclaw/mcp-serverto the MCP config, restart, ask "Set up TotalReclaw"; Claude Code / Cursor / Windsurf →claude mcp add …or the JSON config, then the same.The earlier rows of this table (intro, Step 2B/3/5, prerequisites, manual install, Advanced section, multi-device, troubleshooting, MCP notes,
mcp/README.md) still apply to the Claude Code guide as reviewed. The Advanced section's text is reused unchanged in the Desktop guide, with "host" changed to Claude Desktop.Open items (not verified from the repo)
mcp/README.md). Please confirm on a current build.~/Library/Logs/Claude/,%APPDATA%\Claude\logs\) and the nvm / npx PATH advice: common Claude Desktop MCP troubleshooting, not verified here..mcpbdesktop extension: the parity plan's target for guide 1 (one-click install, no JSON editing) does not exist in the repo yet, so this guide usesclaude_desktop_config.json. When the.mcpbships, step 1 becomes "double-click the extension".Test plan
scripts/check-docs.sh: OK (relative links resolve; I also checked the new anchors by hand).scripts/check-phrase-safety.sh: 82 artifacts clean.mcp/src/index.tsmain()), so a restart is needed after pairing. RelaySESSION_TTL_MS= 10 min. The relay page's success heading is "You're all set". The pair guard andnot_configured.reasonmatch fix(mcp): pair never replaces existing credentials; start unconfigured on keychain files #730. The env phrase takes precedence overcredentials.json.Follow-ups (not in this PR)
not_configuredmessage and the server instructions (mcp/src/prompts.ts, owned by feat(mcp): fit server instructions in 512 / 2,000 characters #717) still tell users to paste the phrase into the host config.README.md's "Then set one env var on your host:export TOTALRECLAW_RECOVERY_PHRASE…" still reads as applying to every client.docs/guides/client-setup-v1.md's MCP section still defaults to the env var..mcpb+ Claude skill plugin for guide 1.claude-code-setup.mdandmcp/README.md. Expect a small rebase.🤖 Generated with Claude Code
https://claude.ai/code/session_01Bd3G1BkVMFSXkcdAQ7nFax