Skip to content
| Marketplace
Sign in
Visual Studio Code>AI>PatchwireNew to Visual Studio Code? Get it now.
Patchwire

Patchwire

patchwire

|
1 install
| (0) | Free
Chat with an AI coding agent on a machine you control; review every change as a diff before it touches your code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Patchwire — VS Code Extension

Chat with an AI coding agent that runs on a machine you control — your Mac Mini, a homelab, any box — and review every change as a diff before it touches your code.

Your workspace stays on your laptop. Only the code you sync crosses the wire — your .env and anything git ignores never leave your machine — and the agent's edits come back as diffs you apply locally. So a Flutter dev keeps the phone on USB and runs/hot-reloads locally as usual, while the heavy AI runs on the shared box.


Prerequisites

  1. patchwire CLI on this laptop — install per the root README. The extension shells out to it for every operation.
  2. Mac Mini reachable over Tailscale with patchwire running as the agent. The setup wizard provisions this for you on first run.
  3. VS Code 1.80+ and Node 20+.

The extension does not bundle the CLI. Run patchwire --version in a terminal to confirm it is on your $PATH before launching VS Code.


Install the extension

You have two paths. Pick (A) if you are using the extension, (B) if you are developing it.

A. Install a packaged .vsix (end users)

# from repo root
pnpm install
pnpm --filter patchwire-vscode build
pnpm --filter patchwire-vscode package

This produces patchwire-vscode-0.3.0.vsix. Install it in VS Code:

  • GUI: Extensions sidebar → … menu (top right) → Install from VSIX… → pick the file.
  • CLI: code --install-extension patchwire-vscode-0.3.0.vsix

Reload VS Code when prompted. A Patchwire icon (speech bubble) appears in the activity bar.

B. Run from source (developers)

pnpm install
pnpm --filter patchwire-vscode build

Open the extension/ folder in VS Code and press F5. A new "Extension Development Host" window launches with the extension loaded. Edit code in the original window; reload the dev host with Ctrl/Cmd+R to pick up changes. For watch-mode builds use pnpm --filter patchwire-vscode dev.


First-time setup (≤ 3 minutes)

  1. Open any folder in VS Code — empty repo or existing.
  2. Open the command palette (Ctrl/Cmd+Shift+P) and run Patchwire: Setup….
  3. The wizard walks four steps:
    • Pick a peer. Lists your Tailscale peers; choose the Mac Mini, or type an IP/hostname if Tailscale isn't running.
    • Authenticate once. Enter your SSH username and system password. A per-project SSH key is installed via vendored sshpass + ssh-copy-id; the password is held in memory and zeroed afterward.
    • Bootstrap the project. Provide a Git URL. The extension git clones locally; the agent git clones into ~/workspace/<project> on the remote and writes patchwire.yml.
    • Doctor. Health checks the agent, then offers to reload the window so the extension picks up the new config.

You are done. The status bar should now show Patchwire: in sync.


Daily use

Start a chat

  • Click the Patchwire activity-bar icon, or run Patchwire: New Chat from the palette.
  • Type a prompt. Claude streams its reply into the chat panel.
  • File changes appear as diff cards at the end of the turn.

Review and apply diffs

Each diff card has three actions:

  • Open diff — VS Code's native diff editor opens with the proposed change on the right.
  • Apply — runs git apply --3way for that file (or the whole turn).
  • Reject — discards the proposed change for that file.

You stay in control: nothing is written to your working tree until you click Apply. Per-file selective apply is supported.

Multi-turn chat

  • The remote process is claude --resume <session-id> per chat, so each chat keeps full conversational context across turns.
  • + New chat to start fresh; chat list to switch; Delete chat to remove it locally and tear down the remote session.

Sync state

  • Sync-on-ask is the default: before sending a turn, the extension rsyncs your tree to the remote.
  • Live sync toggle (status bar) — turn it ON during focused pairing. A file watcher + debounced rsync keeps the remote up-to-date as you type. Turn it OFF when you're hacking locally and don't want every save shipped.
  • Out-of-sync indicators — file decorations in the Explorer mark dirty paths; the status bar shows in sync / syncing… / out of sync.
  • Ask-time guard — if live sync is OFF and your tree is dirty when you hit Send, a modal warns before proceeding.

Commands

Palette title Command id
Patchwire: Setup… patchwire.openSetup
Patchwire: New Chat patchwire.newChat
Patchwire: Toggle Live Sync patchwire.toggleLiveSync
Patchwire: Show Output patchwire.viewOutput

Troubleshooting

Symptom Try
Extension never activates Check the Patchwire output channel (Patchwire: Show Output). Most failures log the underlying CLI error there.
patchwire: command not found The extension can't find the CLI. Reinstall it on your $PATH, then reload VS Code.
Setup wizard hangs on Step 2 Tailscale or SSH connectivity issue. Confirm ssh <user>@<peer> works in a terminal.
Chat replies arrive in fragments / interleaved A previous version had a streaming throttle bug; pull latest and rebuild (pnpm -r build).
Reload mid-turn shows "session was in flight" Expected — v1 surfaces a system message and resets. Stream reattach is a v1.1 item.
Apply fails with conflict The remote tree drifted from the local tree. Re-sync (status bar) and try again, or open the diff and resolve manually.

For agent-side problems, also run patchwire doctor in a terminal.


Known v1 limitations

  • Reload reconciliation does not reattach to an in-flight stream — it surfaces a system message and resets.
  • Tool-use frames from Claude are summarized as plain text, not rendered specially.
  • One in-flight turn per chat. Concurrent turns are deferred.
  • Single-root workspaces only; one patchwire.yml per project.
  • Multi-dev isolation relies on per-user SSH accounts on the remote.
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft