v5.3.2 is out. Since 5.3.1, a failed connect no longer shows “Connected”. Read the release · CHANGELOG

Home / Guides

Why GitHub Codespaces is hard outside VS Code

Short answer: GitHub's Codespaces extension and Microsoft's Remote-SSH extension are not on Open VSX, which most VS Code forks use. Each fork has its own Remote-SSH, the tunnel depends on a signed-in GitHub CLI with the codespace scope, and the editor has to be told that the codespace runs Linux.

In VS Code, opening a codespace is one click. In Cursor, Antigravity or Windsurf the same task often ends with a cryptic exit code. The reasons are specific and fixable, and they are worth understanding before you start.

1. Why can't forks install the official Codespaces extension?

VS Code uses Microsoft's Visual Studio Marketplace. Most forks, including Cursor, Google Antigravity, Windsurf and VSCodium, install extensions from Open VSX instead. GitHub's own Codespaces extension and Microsoft's Remote-SSH extension are not published there. You can check this yourself: the Open VSX API returns not found for GitHub/codespaces and for ms-vscode-remote/remote-ssh.

So the first thing a fork user loses is the button that does everything in VS Code. What remains is plain SSH, which works, but has to be configured by hand.

2. Why does every fork have a different Remote-SSH?

Without Microsoft's extension, each editor solves SSH its own way. Cursor bundles anysphere.remote-ssh. VSCodium and Kiro rely on the community jeanp413.open-remote-ssh. Windsurf ships its own SSH support, and its documentation warns against installing other Remote-SSH extensions because they conflict. Trae and Positron have built-in Remote SSH. A setup guide written for one editor is often wrong for the next.

3. Why isn't a codespace a normal SSH server?

You cannot point SSH at a hostname and a key. GitHub exposes codespaces through the GitHub CLI, which opens the tunnel: gh codespace ssh --stdio runs as the SSH ProxyCommand. That means the editor's SSH client depends on gh being installed, on PATH and signed in, with a token that has the codespace scope. When any of that is missing, gh exits at once and the editor reports something like exit code 255, the process tried to write to a nonexistent pipe, which says nothing about the real cause.

4. Why does the editor guess the wrong operating system?

Remote-SSH extensions decide which shell to use from remote.SSH.remotePlatform. If that entry is missing or wrong, a Windows machine may try to run PowerShell commands on the Linux codespace. The result is exit code 127, command not found. Codespaces always run Linux, so the fix is a one-line setting, but you have to know it exists.

5. How do several GitHub accounts make it worse?

Many developers keep a personal account and a work account in gh. Which codespaces you see, which token opens the tunnel and which quota you are spending all depend on the active account. Switching it in one place and not another is a common source of “codespace not found”.

6. Why do AI agents leave connections idle?

An agent can run for a long time while you are not typing. Idle SSH connections are exactly the ones that routers and proxies drop. Without keepalive settings the agent's session ends mid-task.

What does the extension do about each one?

ProblemWhat Antigravity Codespaces Pro does
Missing official extensionsPublished on Open VSX, and as a .vsix for any editor.
Different Remote-SSH per editorDetects the installed one and uses its connect command. Setup Doctor installs a compatible one if none is found.
gh tunnel failuresA preflight checks gh, sign-in, scope and active user before connecting, and offers a fix for each.
Wrong platformSets remotePlatform to linux for codespace hosts automatically.
Multiple accountsOne switcher; the hub, SSH hosts and usage follow it.
Idle dropsWrites ServerAliveInterval 30 and ServerAliveCountMax 10 by default.

Next: the step-by-step guides for Antigravity, Cursor and Windsurf, and the Remote-SSH comparison.

Frequently asked questions

Is GitHub's Codespaces extension available on Open VSX?

No. GitHub's Codespaces extension and Microsoft's Remote-SSH extension are not published on Open VSX, which Cursor, Google Antigravity, Windsurf and VSCodium use.

Why do I get exit code 127 when connecting?

The Remote-SSH extension guessed the wrong operating system from remote.SSH.remotePlatform. Codespaces always run Linux, so the fix is to set that platform to Linux.

Why does gh exit immediately when the editor connects?

The tunnel runs gh codespace ssh --stdio as the SSH ProxyCommand, so gh must be installed, on PATH and signed in with a token that has the codespace scope.

Found something wrong or out of date? Open an issue or edit the source of this page in a pull request.