Elsewhere app icon

Work somewhere else,
stay right here.

A desktop app for running your projects on a remote dev VM. Send a project over with its Claude sessions, forward its ports automatically, and keep an eye on storage and usage.

Free and open source. macOS (Apple Silicon and Intel) and Windows (preview). Works over Tailscale, no public ports.

OverviewWorktreesVMUsageQueueSettings

Running on the VM 3 listening

5173
web · feature-loginlocalhost:5173 on this Mac
Forwarded
3001
api · feature-loginlocalhost:3001 on this Mac
Forwarded
3773
editor serverlocalhost:23773 · 3773 is busy on this Mac
Forwarded

Storage Rescan

7.5 GB used of 96 GB
~/Developer/worktrees/app/login55 MB
~/Developer/worktrees/app/billing55 MB
~/Developer/.vmc/app.git50 MB

5-hour usage resets in 3h 12m

42%

Weekly capacity resets in 1d 6h

47%
45% likely unused

Idle health healthy

34%
7-day CPU against the 20% line
What it does

Everything about your VM, in one calm window.

Elsewhere talks to your VM over the SSH connection you already have. No agent to install and nothing exposed to the internet.

Send and sync

Move work to the VM and back, and see when a copy is stale.

Send a worktree with its branch, unsaved changes and Claude sessions. When the Mac and VM copies drift apart, Elsewhere shows which side is ahead and offers a one-click sync in the safe direction. It only fast-forwards, so nothing is overwritten.

  • Unsaved work is committed as a WIP commit first
  • Refuses to guess when both sides changed
  • Claude sessions copied with their paths rewritten

lisbon Mac

The Mac copy is ahead of the VM copy by 21 unsaved changes.Unsaved changes are saved as a WIP commit on the Mac first.
Sync to the VM
Check the VM connection
Commit 21 modified files as a WIP commit
Push the branch over SSH
Copy 1 Claude session, paths rewritten
Ports

Every dev server on the VM, forwarded to your Mac on its own.

Elsewhere watches what is listening on the VM, groups it by project and branch, and opens a tunnel for each one in the background. If a port is already taken on your Mac it picks another and tells you which link to use. Pin a number you want to keep.

  • Open, copy the link, pin a port, stop forwarding
  • Kill a server on the VM, with a confirm and a force step
  • System services are listed read only

Running on the VM 1 project

A
app · lisbonfeature/new-pipeline-ui
2 ports
5173
apps/studiolocalhost:25173 · use this link, not :5173, which is busy here (node in other-project)
3001
apps/apilocalhost:3001 on this Mac
Keep it running

Close the laptop. The agent keeps going.

Claude runs on the VM inside a named tmux session, so it keeps working when your Mac sleeps. Resume any copied conversation from a button, and reattach later from any device that can SSH in. Open a worktree in Claude Desktop over SSH with a catch-up prompt already filled in.

  • Resume a specific conversation, not just the latest
  • Reattach from a phone or another PC over Tailscale
  • Open in Claude Desktop with the folder path copied

Claude sessions

Pick up where the earlier conversation stopped35 lines · 2 min agoResume
Okay, lets start by looking into those issues88,500 lines · 5 min agoResume
$ tmux attach -t cc-lisbon
claude · feature/new-pipeline-ui · running
Open in Claude Desktop Test
Clean up safely

Delete the right copy, with a deliberate press.

When a worktree is on both machines you choose which copy to delete: the Mac, the VM or both. Git refuses if there are uncommitted changes, and forcing it takes a press and hold, not a stray click. See what each project costs on the VM before you decide.

  • Mac copy, VM copy or both, in one step
  • Hold to delete anyway when changes would be lost
  • Disk use by project and by folder

Delete a copy

Mac copyVM copyBoth

Delete lisbon from the Mac and free 5.1 GB?

~/Developer/worktrees/app/lisbon · 1.7 GB on the VM

✦

Claude usage

Your 5-hour and weekly limits, reset timers and how much capacity is likely to go unused, with the Claude mark on each card.

❖

Every worktree, labelled

See where each one came from: Conductor, T3 Code, a Claude agent or by hand. Open it in the right tool, with stale and merged ones flagged.

◐

Menu bar and Tailscale

A popover with usage, VM health and your running projects' ports. Connection state, approval prompts and reconnecting without leaving the app.

⌘

Claude Code mods

The workbench mod brings the Ports pane, with Kill, and a status line into Claude Code and the Desktop Code tab. Install it from this repository.

◧

Private by design

No servers of ours, no account, no analytics. It uses your own SSH and Tailscale, and never opens a public port.

⇪

macOS and Windows

A native Electron app for Apple Silicon and Intel Macs, and a preview build for Windows 10 and 11.

How it works

From your laptop to the VM in four steps.

Connect

Enter your VM's Tailscale host name and user in Settings.

Send

Pick a worktree and send it. Elsewhere pushes the branch and copies the Claude sessions.

Work

Open it in T3 Code or a terminal on the VM. Ports forward on their own.

Bring back

Pull the result home with a fast-forward only merge. Nothing is overwritten.

Download

Get Elsewhere

Free and open source. The builds are not signed yet. On macOS, right-click the app and choose Open the first time. On Windows, choose More info, then Run anyway.

  • Loading versions…

Ready to work elsewhere?

The builds are not signed yet. On macOS, right-click the app and choose Open the first time. On Windows, choose More info, then Run anyway.