Description
Improve how users to connect to their workspace via generic desktop applications via URL schemes such as rdp
, nice
, vnc
and postgres
.
Note
This is a concept and the design/schema is not final.
Related #13212. Blocked on Coder Desktop (#14859).
Background
Today, we build native IDE plugins (e.g. coder/vscode-coder) and also offer users the ability to connect via a web app via the coder_app.
However, connecting to a workspace via another desktop client such as Microsoft Remote Desktop is possible, but non-trivial. See our docs. The primary issue here is that the CLI and port-forwarding is required but there is also not a great way to promote the use of such apps in the web UI.
Proposal
Support unique type(s) of coder_app to support VNC, RDP, DCV, PostgreSQL, and other custom URI schemes. I am not sure if type = desktop
will suffice, or type=<rdp,vnc,dcv,postgresql,slack,desktop_custom>
is needed to support some intricacies of each URI scheme/port forwarding thing.
Render desktop apps in the UI

And render desktop CTAs in Coder Desktop:

When clicked:
flowchart TD
A[Is Coder Desktop installed?] --> |No| B[Prompt user to download]
A --> |Yes| C[Is user logged in?]
C --> |No| D[Prompt user to log in]
C --> |Yes| E[Is VPN on?]
E --> |No| F[Port forward]
E --> |Yes| G[Use VPN hostname]
F --> H["Open to native URL scheme (e.g. rdp://) to open local client"]
G --> H
Product Requirements
- List desktop apps in the web UI
- List desktop apps (and web apps/helper apps) in Coder Desktop with one button to get to them
- Play nicely with known protocols such as
rdp
,vnc
, anddcv
. If necessary, add support for these types if extra handling is needed besides a simple URI scheme - Support custom URI schemes and configurable ports being forwarded from workspace->local via
coder_app
schema - Support opening via the CLI with
coder open
command.