Skip to content

Feature Request: Open Current Workspace Directly in VS Code (Local or Remote SSH) #63

Closed

Description

@malys

Summary

If Visual Studio Code is installed, users should be able to open the currently selected workspace directly from Claude Code Studio.

This should work for both:

  • Local workspaces
  • Remote SSH workspaces

Proposed Solution

Add an "Open in VS Code" action from:

  • Workspace menu
  • Project menu
  • File browser
  • Context menu

Local Workspace Behavior

For a local project:

Claude Code Studio
        ↓
Open in VS Code
        ↓
code <workspace>

VS Code opens directly on the selected workspace.

Remote SSH Workspace Behavior

For a remote SSH project:

Claude Code Studio
        ↓
Open in VS Code
        ↓
VS Code Remote SSH
        ↓
Remote Workspace

If VS Code Remote SSH is installed, the user should be taken directly to the remote workspace without having to reconnect manually.

Detection

Automatically detect:

  • VS Code installation
  • VS Code Insiders (optional)
  • Remote SSH extension availability
  • Remote workspace type

Fallback Behavior

If VS Code is not installed:

  • Display a clear message
  • Provide installation instructions
  • Optionally allow configuring a custom editor

Additional Enhancements

  • "Open Folder in VS Code"
  • "Open File in VS Code"
  • "Reveal Current File in VS Code"
  • "Open Terminal in VS Code"

Benefits

  • Faster navigation between Claude Code Studio and the IDE.
  • Improved developer workflow.
  • Better support for remote development.
  • Reduced friction when switching between planning and coding.

Use Case

As a developer, I want to open the current local or SSH workspace directly in VS Code so that I can move seamlessly from project management and AI-assisted workflows to code editing without manually locating or reconnecting to the workspace.

Priority

Medium-High

Activity

  1. malys commented on Aug 23, 2026

    @malys
    Author

    Thanks with your high reactivity, CCS is improved quickly. Thanks.

  2. Lexus2016 commented on Aug 24, 2026

    @Lexus2016
    Owner

    Shipped in #65 (v7.8.0). Thanks for the detailed write-up — the local/remote split in it is exactly the shape the implementation took.

    What landed

    • Open in editor from the project row and from the file viewer.
    • Local → code <workspace>.
    • Remote SSH → VS Code Remote-SSH straight at the recorded path, no manual reconnect. A non-standard port is carried into the authority.
    • Editor choice in Settings → UI: VS Code, Insiders, VSCodium, Cursor, Windsurf.

    On detection and the fallback

    The studio is not always running on the machine the browser is on, so there are two launch paths and the server picks between them:

    • it finds a code binary on $PATH → it opens the window itself and can report a failure honestly;
    • it finds none (Docker, headless host, Windows) → it hands your browser a vscode:// deep link, which lands on the machine with the screen.

    One rule, no platform detection, correct in every deployment. The honest caveat: nothing about the deep-link outcome is observable — no browser reports whether a protocol handler exists or ran — so on that path the UI states the condition ("if nothing opened, …") rather than claiming an error it cannot see. The same is true of the Remote-SSH extension: its presence isn't detectable from here, so it's named in that hint instead of being probed.

    What I deliberately left out

    • Remote per-file open. The remote folder link works; VS Code's own URL handler opens a remote file URI as a folder (vscode-remote-release#4333). A button that opens the wrong thing is worse than no button, so it's hidden for remote files — the project row still opens the remote workspace. Per-file open works locally.
    • "Reveal current file" / "Open terminal in VS Code." Neither has a URI or CLI primitive that behaves correctly across the local/remote split. Happy to revisit if you know one.

    One thing worth flagging: a remote project recorded with a ~/project workdir is refused by name rather than opened. A URI has no shell, so Remote-SSH would look for a directory literally called ~. If you hit that, re-create the project with the full path on the host.

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions