Skip to content

feat(desktop): add local device pairing - #49291

Merged
Brendonovich merged 3 commits into
v2from
device-pairing
Sep 22, 2026
Merged

Brendonovich merged 3 commits into
v2from
device-pairing

Conversation

@Brendonovich

@Brendonovich Brendonovich commented Sep 16, 2026 •

Copy link
Copy Markdown
Member

Summary

  • Add desktop Settings → Pairing and a Pair device command with a local-network QR code and copyable direct connection link.
  • Keep an optional persisted Keep screen active setting for the desktop app.
  • Encode credentials in the direct server URL fragment so they are not sent in the initial HTTP request.
  • Load /connect before server connections and health checks so pairing credentials are saved before API requests.
  • Serve the web shell and assets before authentication while keeping API and OpenAPI requests authenticated.
  • Use a compact, theme-aware QR dialog with visible titles, copy feedback, and responsive sizing.

Pairing URL

http://<server>/connect#<base64url({ username: "opencode", password })>

The URL points straight at the advertised OpenCode server. The /connect route derives the server address from its own origin and stores the fragment-carried credentials before authenticated requests begin.

Validation

  • App pairing URL tests — 6 passed.
  • App typecheck — passed.
  • Desktop typecheck — passed.
  • Desktop migration registry check — passed.
  • CLI web-shell/authentication tests — 2 passed.

@opencode-agent opencode-agent Bot changed the title feat(desktop): add device pairing over local networks and Tailscale feat(desktop): add local device pairing Sep 22, 2026
@Brendonovich
Brendonovich merged commit 080b767 into v2 Sep 22, 2026
10 checks passed
@Brendonovich
Brendonovich deleted the device-pairing branch September 22, 2026 08:25
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