Standard Docker. Standard Linux.
Most dev platforms add a layer of abstraction on top of Linux. A custom config format. A vendor-specific API. A special way to define your environment that only works on their platform.
This makes sense from a business perspective. The more proprietary the interface, the harder it is to leave. But it's bad for the person using it.
EnvHaven doesn't do this. You get a Linux machine with Docker.
What "standard" means concretely
Your environment is a Docker container. Not something defined by a .devcontainer.json, a .gitpod.yml, or a .replit file. A standard Docker image you can run anywhere — your server, AWS, a Raspberry Pi.
# SSH in (self-hosted)
ssh [email protected] -p 2222
# Copy files out
scp -P 2222 [email protected]:~/project/dist.zip ./
# Or use Haven CLI for bidirectional sync
haven connect . myproject-alice
# Use your dotfiles inside the workspace
git clone https://github.com/you/dotfiles ~/.dotfiles && ~/.dotfiles/install.sh
These aren't features we built. They're Linux. We just didn't break them.
You have root. You can apt install whatever you want. You can run Docker inside the workspace. You can configure your shell, your editor, your tools. It's your machine.
Why this is rare
It's surprisingly hard to find a cloud dev environment that gives you a plain Linux box. Most platforms want to "improve" the experience by adding abstractions. Managed package installation. GUI-based configuration. Proprietary CLIs that wrap standard tools.
Some of this is genuinely useful. But it comes at a cost: your environment becomes tied to the platform. You can't just scp your project out and run it elsewhere. You need to export it through their tool, in their format, and hope nothing gets lost.
We went the other direction. No custom config format. No vendor API. No abstraction layer. The tradeoff is that EnvHaven is less "magical" than some alternatives. There's no GUI to click-install VS Code extensions. There's no visual diff tool built into the dashboard. You get a Linux machine and standard tools.
For some people, that's a worse product. If you want a polished, opinionated environment with managed everything, Codespaces or Replit will serve you better. They've invested heavily in that experience and it shows.
But if you want a machine you understand, that you can inspect and modify and move, then the lack of abstraction is the feature.
The sandbox confusion
People sometimes confuse EnvHaven with adjacent products that sound similar but solve different problems.
Sandbox SDKs like Vercel Sandbox and Cloudflare Sandbox are infrastructure primitives. Your application calls their API, a VM spins up, runs some code, and gets destroyed. They exist so platforms can safely execute untrusted code. The VM lasts seconds or minutes. You don't SSH into them. They're building blocks for other products.
Ephemeral AI environments like E2B and Daytona are closer: disposable containers for agents. But they're short-lived and programmatic, with no persistence between sessions, no dotfiles, no long-running dev server. They're designed for one-shot agent tasks.
Cloud dev environments like Codespaces and Gitpod are persistent, but they require proprietary config formats and tie your workflow to their platform.
EnvHaven is a workspace you develop in. Persistent. Standard Docker. With your tools and your projects. You SSH in, run git status, fire up Claude Code, leave for lunch, come back and everything is still running. All three categories above are useful. They just solve different problems.
What we're not good at
Might as well say it.
A zero-config experience where everything is managed? Codespaces does that better, with deep GitHub integration that lets you open a repo and get a working environment immediately.
Collaborative editing with multiple cursors and shared sessions? We don't have it. Some platforms do.
GPU access for ML work isn't available yet, and the workspaces are sized for web development and scripting, not heavy compilation on 32-core machines.
What you get
EnvHaven is mostly other people's excellent work, composed together. The base image is linuxserver.io's code-server build, which gives you code-server (VS Code in the browser) and s6-overlay for process supervision. Runtimes are managed by mise — Node, Python, Go, Bun, Rust, all pinned and reproducible. Terminal sessions run in tmux, so agents keep working after you disconnect. File sync uses Mutagen. Browser automation uses Playwright.
On top of that: 12+ AI coding tools pre-installed (Claude Code, OpenCode, Aider, Codex, Gemini CLI, Goose, and others), SSH access, and on managed hosting, instant public URLs.
We didn't reinvent anything. We composed tools that already work and made sure they play nicely together in a container. The Docker image is MIT-licensed. Self-host it for free or use managed hosting for $10/mo if you'd rather not deal with infrastructure.
Related Articles
Your Tools, Your Keys, Your Models
Twelve AI coding tools built-in. Authenticate with your own API keys and talk directly to the providers. Nothing is proprietary.
Who Owns Your Dev Environment?
Cloud dev environments are convenient until the vendor changes their mind. Owning your environment means your workflow survives regardless.
What Happens When Claude Code Gets Full Access
The --dangerously-skip-permissions flag isn't actually dangerous if you're not running it on your laptop. A week of unrestricted Claude Code in a container.