Skip to content

[FEATURE]: macOS tray icon with background persistence, browser auth, and mobile QR access #18796

Closed as not planned

Description

@ndraiman

Feature hasn't been suggested before.

  • I have verified this feature I'm about to request hasn't been suggested before.

Describe the enhancement you want to request

I run OpenCode as a persistent daemon (after seeing Dax's tweet about it a while ago) and access it from my phone over Wireguard.
I always kept forgetting about it in the background and wanted to have a UI for it.
So I thought, why not add it to the desktop app? :)

Before I invest time cleaning this up for a proper PR, is this something you'd want contributed?
In any case, branch name and screenshots are at the bottom.
Thank you for making OpenCode <3

What I built (branch on my fork, ~600 lines across Rust/TS):

  1. Tray icon + background persistence — closing the window hides to tray instead of killing the sidecar.
    Menu: Show App, Open in Browser, Copy Browser URL, Show QR Code, Server Info submenu, Quit. (a lot of options just because i was experimenting, will remove most)
  2. Browser access with cookie auth — the server's Basic Auth triggers browser auth dialogs. Solved with a
    /-/launch?token= endpoint that exchanges a launch token for an HMAC-signed HttpOnly session
    cookie (signed with server password, survives server restarts). ~30 lines of server-side changes.
  3. QR code — scannable from phone, encodes the authenticated launch URL. In tray menu + settings UI. Uses
    solid-qr-code.
  4. Settings UI (Settings > Server) — configurable port, network access toggle (0.0.0.0), external
    hostname override for QR URLs (auto-detects Mac hostname when blank), password with randomize (4-word
    passphrases via random_word crate), Save & Restart.
  5. Persistent credentials — passphrase auto-generated and saved to Tauri store on first launch.
    Human-readable like tiger-castle-river-maple.

Caveats:

  • Built and tested on macOS only. Uses Tauri's cross-platform tray/menu APIs so it should compile on
    other platforms, but I haven't tested Windows or Linux at all.
  • This is vibe-coded slop — built for personal use, not production quality.

Related to

ndraiman/desktop-tray-icon - https://github.com/ndraiman/opencode/tree/ndraiman/desktop-tray-icon

Image
ScreenRecording_03-23-2026.16-39-05_1.mov

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Mar 23, 2026
  2. github-actions commented on Mar 23, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    Since your implementation covers multiple areas already tracked in those issues, it may be worth commenting there with your branch/approach rather than opening a new issue — especially since you're asking whether the maintainers want a PR before polishing it up.

  3. removed
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    webRelates to opencode on web / desktop
    on May 3, 2026
  4. github-actions commented on Jul 3, 2026

    @github-actions
    Contributor

    To stay organized issues are automatically closed after 60 days of no activity. If the issue is still relevant please open a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions