I moved my dev environment to a remote shell. The 'it works on my machine' jokes stopped cold.
Most of us have spent a Monday morning fixing a broken local environment, then hours later mumbling "works on my machine" on a call. It's a joke, until it eats three afternoons a month. That's environment drift. The fix isn't another provisioning script. It's moving your active development environment to a persistent remote shell.
The drift tax you're already paying
Every developer's laptop is a snowflake. Left unchecked, it drifts from your teammate's setup by one-off system packages, stale compiler versions, or a Python virtualenv that no longer matches the lockfile. This isn't a "you" problem. It's the natural outcome of treating development as transient.
The cost shows up in hours lost to debugging why a test passes locally but fails in CI, in onboarding new hires with a 40-page setup guide, and in the quiet friction of context switching. If you're a team lead, you've probably watched a senior engineer burn an afternoon chasing a LD_LIBRARY_PATH issue that was just a stray .so.
Remote shells are not just for servers
A decade ago, SSHing into a remote machine for daily coding felt sluggish and fragile. That's changed. Mosh gives low-latency, resilient connections over flaky WiFi. Tmux keeps your sessions alive even if the client disconnects. Combined with a modern terminal emulator, the experience is indistinguishable from local.
What makes it powerful is that the shell never sleeps. You can start a long-running build, close your laptop, grab coffee, and reconnect to see the result. You can switch from your desk to a meeting room laptop and pick up exactly where you left off, with the same shell history and running processes.
Persistence changes the way you work
When your environment is always on, you stop rebuilding it. Dependencies get installed once on the server, not on three separate machines. If you need a bleeding-edge Rust nightly, you install it in one place and every session uses it. The "works on my machine" problem shrinks because the baseline machine is the same for everyone, or at least it's the same for you across devices.
You can also run lightweight services that would kill your laptop battery: a local database, a message broker, or a dev server that answers webhooks. Since the remote shell stays online, external integrations can hit your dev endpoint without your laptop being open. That makes testing webhooks and APIs far less of a ceremony.
AI agents love a stable home
AI coding tools, whether they run inside your editor or directly in the terminal, depend heavily on context. Tools like Copilot, Claude Code, and our own terminal-native agent borg read files, run commands, and build a mental model of your project. If that environment vanishes every time you close your laptop, the agent starts from scratch.
A persistent remote shell gives the agent a long-lived workspace. It can cache project analysis, maintain a running language server, and remember the build artifacts it created yesterday. borg, for instance, keeps a tmux-like session open on your xShellz box. You can ask it to continue work from last night, and it will recall the exact state of the repository and the command history. That turns a code generator into something closer to a continuous collaborator.
(Disclosure: I work at xShellz. We offer persistent Linux shells and borg, a terminal coding agent. I used the remote-shell pattern long before I joined; now I help build it for others.)
What this looks like in practice
You grab a persistent remote shell from a provider or spin up a VPS and lock it down. Then you SSH in and set up your project once. Use tmux or screen to persist sessions. If you prefer a local GUI editor, VS Code's Remote SSH extension works out of the box: you edit as if it were local, but all terminals and language servers run on the remote host.
For teams, you can pre-bake an image with your toolchain and give everyone a shell that starts from a known state. Some platforms (including ours) offer one-click shells with common dev tools pre-installed and an AI agent ready to go. The point is that the workspace is no longer ephemeral. It's a permanent home base.
Worth the shift
Moving your daily development to a remote shell is a small habit change with an outsized payoff. The jokes about "works on my machine" become rarer because everyone knows which machine matters. The drift tax drops. And if you're experimenting with AI coding agents, you'll quickly find they do their best work when they have a persistent home, not a hotel room.
If you want a zero-config persistent Linux environment with an agent that already understands your stack, that's what we build at xShellz. Whether you use us or not, the principle holds: your dev environment shouldn't be a campsite. Make it a home.