Skip to content

Hide Install Coder Desktop / Install CLI items in UserDropdown when already installed #28288

Description

@blinkagent

Background

Follow-up from #28244 (DEVEX-722), which added an Install Coder Desktop item to the UserDropdown, sitting above the existing Install CLI item.

During review, Christin suggested that we only surface these install options when the respective tool has not been installed yet. It was intentionally left out of scope for that PR, and we agreed to track it as a follow-up.

Proposal

Hide the Install Coder Desktop and Install CLI items in UserDropdownContent when the user already has the respective tool installed.

Considerations / open questions

  • There is no reliable browser-side API to detect whether a native desktop application is installed. Some ideas to explore:
    • Custom URL scheme / protocol handler probing (e.g., attempt to open a coder:// deep link and detect success/failure).
    • A signal sent from Coder Desktop itself (e.g., a local endpoint, a cookie, or a header) that the web app can read.
    • Detecting a running local agent/session initiated by Coder Desktop.
  • For the CLI, detection is even trickier from the browser; we may need to rely on a heuristic (e.g., "has the user ever downloaded the CLI or authenticated a session via CLI on this deployment").
  • UX: decide whether to hide the item entirely, collapse it into a submenu, or show it with a "installed" state.

Acceptance criteria (draft)

  • Investigate feasible detection mechanisms for Coder Desktop (and, if practical, the CLI).
  • If a reliable signal is available, hide the corresponding Install … item in the UserDropdown when the tool is installed.
  • If no reliable signal is available, document the findings and close the issue.

References

Created on behalf of @jakehwll

Metadata

Metadata

Assignees

No one assigned

    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