Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>DeskBridgeNew to Visual Studio Code? Get it now.
DeskBridge

DeskBridge

DeskBridge

| (0) | Free
DeskBridge inside VS Code: remote screens, files, Codex/Claude chats, Insights and integrated SSH terminals.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

DeskBridge for VS Code

Open DeskBridge: Open Workspace (or click DeskBridge in the status bar) for DeskBridge's chat, files, Insights, screen access and settings inside VS Code. The extension uses the same screens and native services as the desktop app. Keep the local DeskBridge desktop app 1.1.94 or newer running; remote hosts must be enrolled and grant the requested access. An older local app displays an upgrade message rather than silently substituting a limited chat.

The connection is ordinary Remote-SSH over a ProxyCommand, so scp, rsync and git work from the same configuration. This extension is the part that saves you knowing that.

Commands

Command What it does
DeskBridge: Open Workspace Full embedded workspace; also the status-bar action
DeskBridge: Browse Files Shared file browser, uploads/downloads, progress, recent files, opening/sharing
DeskBridge: Open Session Chat Rich chats, attachments, questions, access/model controls, saved conversations and Insights
DeskBridge: Open Remote Screen Connect using the normal screen access/consent workflow
DeskBridge: Settings Shared foldable DeskBridge settings
DeskBridge: Connect to Another Machine… Quick menu including the embedded screens and existing SSH tools
DeskBridge: Open a Terminal on Another Machine A shell in this window, beside your project
DeskBridge: Forward a Port from Another Machine Reach a service running there on your own loopback
DeskBridge: Open a Folder on Another Machine Edit its files, in a separate window
DeskBridge: Open or Continue an Agent Task Start Codex/Claude Code on an owned remote computer, or continue a resumable session, and follow its output in VS Code
DeskBridge: Enable Agent-to-Agent Tools Add the DeskBridge MCP adapter to Codex or Claude Code so an agent in VS Code can delegate work to another computer
DeskBridge: Write SSH Configuration Generate the ssh hosts (happens by itself)
DeskBridge: Refresh the Machine List Re-read the mesh now

Seeing what is happening

The DeskBridge view in the activity bar shows every machine and, under each, what is open to it right now — tunnels, terminals, forwards, and how long they have been up. Its refresh interval is configurable (30 seconds by default).

This matters most for the connections nobody clicked. An agent running ssh <machine> '…' opens a tunnel without touching the editor, and the first thing it does is reuse one that is already there. The view is where that becomes visible rather than something happening under the floor.

Everything shown is observed rather than remembered: a tunnel appears because the process holding it open exists, so nothing can claim a connection that has gone.

Debugging something running on another machine

Keep your project open and bring the remote to it:

  • Forward a port — the service on that machine appears on your own 127.0.0.1, so a debugger attaches to it, a browser opens it, curl talks to it. Close the terminal it opened to stop it.
  • Open a terminal — a shell there, in the panel beside your code.
  • From anywhere at all — once the ssh hosts exist, ssh <machine> '<command>' works from any tool: a script, CI, Claude Code, Codex. Nothing needs to know DeskBridge is involved. Connections are pooled, so later commands can reuse an existing connection; network and host latency still apply.

Opening a folder is different, and this is a VS Code constraint rather than ours: a window has one remote authority, so a local project and a remote folder cannot share a window. Opening a machine's files therefore uses a separate window, and your project stays where it is.

Current scope

25 October implementation: the shared React app is bundled into the VSIX. A same-user local bridge calls the registered native command handlers, rather than maintaining a separate chat/file/Insights implementation. These source changes require rebuilding the local desktop app as well as the extension. A version number alone does not prove that an earlier installer includes this bridge.

Feature Current extension support
Machines, connections, SSH, port forwarding Implemented
Open/edit remote project files Through Microsoft's Remote-SSH and VS Code Explorer, in a remote window
DeskBridge Files UI: downloads/uploads, progress, recent files, local external editor, OS sharing Shared Files UI embedded; native transfers and OS actions remain resident-owned
Start/continue Codex or Claude tasks Implemented, with output in an Output channel
Remote delegation via MCP Implemented through the resident service
Full chat UI, attachments, question forms, steer/store, saved conversations Shared Chat UI embedded
Insights/project programme, usage and model/effort controls Shared session controls and Insights UI embedded
Remote screen, mixed video/chat, detached panes, app settings Shared UI embedded; detached panes use VS Code editor/auxiliary windows

The older quick-task form still selects provider and permissions; use Open Session Chat for model/effort and the full conversation interface. Neither provides automatic cheapest-model routing or additional free provider usage. Shared/paired/guest machines are not remote agent targets. The Android APK is not an extension host.

Validation of the embedded workspace (25 October)

Passed: real VS Code extension-host/webview checks for session loading, file listing and settings navigation under the editor's CSP; an isolated Linux native resident check for owner-only IPC, real file copying with byte verification, completed progress and terminal launch specifications; Windows native compile check; editor IPC/reconnection, detach/return (including a closed main tab), permission-prompt and shared desktop UI regression tests. The VS Code UI test uses a fixture host; the separate native check uses the real compiled host. Installed Windows remote-screen/SSH/OS-share end-to-end acceptance remains a release check, not a result implied by cross-compilation.

The existing installed desktop app is not changed by extension packaging. Build and distribute a matching desktop release before the first Marketplace publication of these embedded screens.

First run

Rebuild/update DeskBridge locally and keep it running, then choose Open Workspace. No separate sign-in or device identity is created for VS Code. Settings/drafts are local VS Code state (not Settings Sync). Host-side settings such as external Markdown editor selection remain shared with the desktop app.

Use the pane's detach control to move it to a VS Code auxiliary window; use its return control or close that window to restore it. Editors without auxiliary windows keep it as a side-by-side tab. Project terminals open in VS Code's integrated terminal using the same pinned, persistent SSH connection. Closing an editor tab does not cancel remote agent work or file transfers.

Write SSH Configuration remains available for command-line/Remote-SSH use.

Opening a folder needs Microsoft's Remote-SSH extension. Opening a terminal does not.

Agent tasks

Use Open or Continue an Agent Task from the Command Palette or the action on an owned computer in the DeskBridge sidebar. Choose a new Codex/Claude Code session or an existing resumable session, its permission boundary, its remote working folder, and the task. The conversation is owned by the DeskBridge resident, so closing the Output panel or VS Code does not end it; the same session remains available in DeskBridge Chat on desktop and Android.

Task text is sent on stdin to the local owner-only resident API. It is never a shell fragment or a process argument. Agent actions are intentionally absent for shared, paired, and guest computers.

To let Codex or Claude Code itself delegate, run Enable Agent-to-Agent Tools once and select the provider. This installs deskbridge-agent mcp only after confirmation. Start a new provider chat afterwards so it loads the MCP server. The tools can list your machines and sessions, create/open a session, send work, replay results, and stop a turn.

Access

Connections and tasks use the installed DeskBridge CLI/resident and its existing server/host authorization. The extension does not grant access, alter billing, or bypass host permissions. Provider credentials, costs and limits are separate; agent work uses the remote host's provider login. Account controls use the shared settings UI; purchasing and other website operations open the normal account site. The extension runs in the local UI extension host even for Remote-SSH workspaces, and is unavailable in untrusted workspaces. There is no public HTTP bridge or credential copied into the webview. Native dialogs are adapted to VS Code prompts.

Packaging, publication and updates

build.py and npm run package stamp the actual DeskBridge release version into the VSIX; renaming a 0.1.0 package to DeskBridge_1.1.93.vsix is not sufficient. Packaging does not change source package versions, create commits or create tags. The main build verifies the packaged identity/version. A requested extension build failure stops the release; --skip-extension is an explicit app-only opt-out.

Website publication includes the signed artifact in vscode/. Every file named in releases.json must exist before login/upload; none is silently skipped.

VS Code automatic updates require a Marketplace release. As checked on 25 October, the deskbridge publisher has been created, but first publication has not been completed. The website download is not a Marketplace update channel. Publishing authentication or manual upload is still an operator step.

To upload the latest existing build without rebuilding, run from the project root:

python3 upload.py --dry-run
python3 upload.py

upload.py defaults to VS Code Marketplace, selects the newest timestamped directory under versions/, verifies its VSIX identity/version and manifest checksum, shows the selected release, then asks for confirmation. It never falls back to an older release if the newest build is incomplete. Use --release DIR to select a particular build. Authentication uses VSCE_PAT, a private mode-600 .local-secrets/marketplace-token file containing only the token, or a hidden interactive prompt. The prompt does not save the token. Alternatively use --marketplace-azure-credential with configured Microsoft Entra credentials. Node.js/npm (npx) is required for Marketplace upload.

--destination website uploads the signed app release to DeskBridge's download and update site; --destination both uploads the website release first, then the extension to Marketplace. These reuse the existing administrator/MFA upload path. Website uploads require the complete signed release manifest; --without-android explicitly permits keeping the previous APK. --allow-unsigned-windows is an explicit Authenticode exception, not permission to regenerate the manifest or add an omitted installer. The current 1.1.94 build omits the unsigned Windows installer from its manifest, so it is ready for Marketplace upload only, not website publication as-is. Prepare a complete signed release separately.

No upload is automatically retried. A combined upload is not atomic: if the website succeeded and Marketplace failed, retry Marketplace only after checking its status. --dry-run reads local artifacts only and never logs in or uploads; --yes skips confirmation, not authentication or validation.

After setting up the publisher, add --publish-marketplace to the usual build.py --publish ... command. Authenticate with --marketplace-azure-credential (Microsoft Entra ID) or VSCE_PAT supplied privately in the environment. To publish only the extension from an existing correctly versioned/signed release:

python3 build.py --publish-extension-only versions/deskbridge_TIMESTAMP --marketplace-azure-credential

That command validates the VSIX hash/size and internal version and publishes the existing file without rebuilding apps. A Marketplace failure is reported separately and is not automatically retried. No token is placed on a command line. Keep any local credential file under the project's ignored .local-secrets/ with mode 600, not in source control or synchronized folders.

Once published, VS Code's Extensions view manages updates. Existing VSIX installs have auto-update disabled by default; install the Marketplace listing or enable Auto Update for DeskBridge in its extension menu. Respect user/enterprise settings: this extension does not turn on global updates or install itself behind the editor. See Microsoft's update behavior and publisher setup.

Settings

  • deskbridge.agentPath — where deskbridge-agent is, if it is not somewhere obvious.
  • deskbridge.refreshSeconds — how often to re-read the machine list.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft