Skip to content

[FEATURE]: Workspace provider abstraction to discover and switch between remote OpenCode servers #15752

Closed as not planned

Description

@MakonnenMak

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

Problem

I believe OpenCode supports connecting to multiple servers via opencode attach , but there's no way to discover servers from platforms where opencode serve is already running.

Vision

A workspace provider abstraction that lets OpenCode discover remote servers from external platforms and surface them in the sidebar alongside local projects.

The sidebar would show a section per configured provider (e.g., Coder, Railway) with workspaces listed as connectable targets. Clicking a running workspace switches to that server. Lifecycle actions (start/stop) available inline.

Something like this..

┌─ Icon Rail ─┐
│ [project-a] │  ← local projects (existing)
│ [project-b] │
│             │
│ ── Coder ── │  ← workspace provider section (new)
│ [ws-1]  ●   │  ← running, click to connect
│ [ws-2]  ○   │  ← stopped, click to start
│ [+]         │
└─────────────┘

Design questions

  • Built-in vs plugin-extensible? Built-in providers are simpler to ship, but a plugin hook would let third parties add providers without PRs to core. The tradeoff is designing a reactive data contract between server-side plugins and the frontend.

  • Auto-detect vs explicit config? Auto-detecting provider availability (e.g., Coder CLI installed -> show Coder workspaces) is convenient but magical. Explicit config in opencode.json is clearer.

  • Home server concept: The workspace list needs to come from somewhere stable (the local/sidecar server), even when the active server is a remote workspace. How should this work?

  • Scope of first implementation? Start with one provider to prove the abstraction, or design the interface first and let providers come after?

Wanted to start the design conversation going, I'm not exactly sure where / how to tackle something like this tbh. I also think it's important to make it flexible depending on what platforms exist for remote dev and such too.

Inspiration has been via tooling like:

Activity

  1. added
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    on Mar 2, 2026
  2. added
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on Mar 2, 2026
  3. github-actions commented on Mar 2, 2026

    @github-actions
    Contributor

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

  4. MakonnenMak commented on Mar 3, 2026

    @MakonnenMak
    Author

    Perhaps this is in the works already, just saw this banger trailer https://x.com/jlongster/status/2028616190004740366

  5. assigned and unassigned on Apr 26, 2026
  6. removed
    discussionUsed for feature requests, proposals, ideas, etc. Open discussion
    coreAnything pertaining to core functionality of the application (opencode server stuff)
    on May 3, 2026
  7. 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