Skip to content

One-click setup: install everything and sign in to Claude from one button - #258

Merged
danielehrhardt merged 3 commits into
mainfrom
feat/one-click-setup
Oct 28, 2026
Merged

danielehrhardt merged 3 commits into
mainfrom
feat/one-click-setup

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

Summary

Onboarding is now one click. The flow is Set up, then Vault (only if it is still needed), then Done. In server mode the remote dashboard step stays between Vault and Done.

  • Set up: the user types a name and clicks Set up Godmode. Godmode installs whatever is missing, in order (Claude Code, then the browser tools), and shows live progress for each row: waiting, installing, done, or failed. As soon as Claude Code is installed, the Claude sign-in starts and the browser opens. The browser tools keep installing in the meantime. While the user waits, they can pick Easy or Professional mode.
  • Sign-in link: the link is copied to the clipboard automatically. A confirmation reads "Sign-in link copied. No browser window opened? Paste it into your browser." Below it are Open sign-in page and Copy again buttons, plus a field to paste the code the page shows. The sign-in can be cancelled and restarted. The signed-out banner, Settings > System and chats use the same panel and copy the link the same way.
  • Failures: a failed row shows one line with the reason and a Retry button. Show details opens the install log and the command to install it by hand. A separate Show details under the list shows versions, paths and Mac permissions. If something is still missing, Continue anyway lets the user carry on.
  • Already set up: if everything is installed and the user is already signed in, every row shows as done and the button reads Continue.
  • Done: the summary has two inline actions. One imports Chrome sign-ins (pick a profile, one click). The other is a Godmode Pro row: it shows the free week or trial, or an Activate button that opens the trial and licence key panel. A blocked licence still has to be activated before Start working works, as before.
  • Wording: the main copy is plain and has no jargon (no "CLI", "uv" or "dependencies"). Technical details stay behind the disclosures.

Clipboard

The desktop webview (WKWebView) only lets the page write to the clipboard during a click, and the link arrives seconds after the click. So the core copies the link for the sign-in that is waiting, using a new POST /api/doctor/claude-login/copy endpoint (pbcopy, clip, or wl-copy/xclip/xsel). The endpoint takes no input; it copies only the link the core already holds. It is refused through Godmode Cloud. When the dashboard is opened from another device, or the user clicks Copy again, the page clipboard is used instead.

How to test

  1. Start with a fresh data dir (GODMODE_HOME=/tmp/x). To test the sign-in, point CLAUDE_CONFIG_DIR at a temp dir.
  2. Open the app: the onboarding shows Step 1 of 3. Type a name and click Set up Godmode.
  3. Check that missing tools install one after another with progress, and that the Claude sign-in starts by itself once Claude Code is there.
  4. Check that the browser opens, the panel says the link was copied, and the clipboard holds the sign-in link. Copy again and Open sign-in page should work. Cancel should turn the row into a Sign in button.
  5. Approve the sign-in in the browser: the row turns green by itself, and Continue leads to the vault.
  6. Create the vault. On Done, try the Chrome import and the Godmode Pro row, then click Start working.
  7. Later, with Claude signed out: the banner's Sign in again copies the link the same way.
  8. Core tests: bun test test/claude-login.test.ts test/cloud-scope.test.ts in packages/core.

Screenshots

Start Installing
Sign-in link copied Install failed, with details
Ready Vault
Done Signed-out banner
Dark, signing in Dark, sign-in cancelled

…tton

Onboarding is now Set up, Vault (when needed), Done. One click installs the
missing tools in order with live progress per item, starts the Claude sign-in
as soon as Claude Code is there and copies the sign-in link to the clipboard.
Failed installs show the reason, Retry and the log with the manual command.
Activation and the Chrome import moved into the Done step.

The core copies the sign-in link to this computer's clipboard
(POST /api/doctor/claude-login/copy) since the desktop webview only lets the
page write it during a click. The signed-out banner, Settings and chats copy
the link the same way.
…loading

Buttons inside the sign-in panel and the Mac permissions card no longer submit
the setup. A refresh that fails after an install marks the row failed instead
of spinning, a stale check right after an install is re-run once, and Start
working waits for the licence state.
@danielehrhardt

Copy link
Copy Markdown
Contributor Author

Verified without mocks on a fresh home folder (macOS, isolated HOME and CLAUDE_CONFIG_DIR): one click on Set up Godmode installed Claude Code 2.1.312, uv 0.13.6 and browser-use 0.13.10 by itself in about a minute, started the Claude sign-in automatically and put the real sign-in link on the clipboard after ~30 s (core copy via pbcopy, so it does not depend on the webview's clipboard rules).

@danielehrhardt
danielehrhardt merged commit 81c67ce into main Oct 28, 2026
8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant