Your Tools, Your Keys, Your Models
Most AI coding platforms bundle their own chat and their own inference. That's not unreasonable. It's simpler to build one integrated thing, and the user experience can be very good. But it means your workflow gets coupled to their specific offering, their models, their update timeline.
EnvHaven doesn't have a built-in AI chat and doesn't bundle models. Your workspace comes with twelve coding tools pre-installed. Claude Code, OpenCode, Aider, Codex, Gemini CLI, Goose, and others. The upstream binaries, not wrappers or platform-specific forks. You pick what to use.
You authenticate each tool yourself, with your Anthropic subscription, your OpenAI API key, your Google account. When you run claude, you're talking directly to Anthropic's servers with your key.
# Set your own keys
export ANTHROPIC_API_KEY=sk-ant-...
export OPENAI_API_KEY=sk-...
# Run the real tools
claude --dangerously-skip-permissions
opencode
aider --model gpt-4
Why this matters
With standard tools and your own keys, you switch models by changing an environment variable. New agent comes out next month? npm install -g @something/new-agent works because it's a real Linux machine with a real package manager. You're not waiting for a platform to integrate it.
The tools are other people's excellent work. Anthropic built Claude Code. SST built OpenCode. Paul Gauthier built Aider. We composed them into one container and keep the image current. When meaningful new tools ship, we add them. But if we're slow, or if you disagree with our choices, you can always install whatever you want. It's your environment.
What we're not
Lovable gives you an AI that builds apps through a chat interface. v0 generates UI components from prompts. Replit has an AI agent that writes and deploys code within their platform. These are products where the AI is the product.
That's a legitimate approach, and for many projects it's the right one. They've invested heavily in making that experience smooth, and it shows.
The tradeoff is that they're closed systems. You use their models, their interface, their deployment pipeline. For a lot of work, that's completely fine. It starts to matter when you want a model they don't offer, or an agent that doesn't exist in their ecosystem, or when your project outgrows the chat-first workflow.
What this costs you
Managing your own API keys across multiple providers is annoying. There's no unified billing, no single dashboard. You're signing up for Anthropic and OpenAI and Google separately, managing rate limits separately, tracking costs separately. If you want one account that handles everything, an integrated platform is genuinely simpler.
Even though most people just stick to one tool, the reality is that there's no shared context across tools, let alone environments. At least not built-in. An agent could build this for you, but on an integrated platform, your AI chat knows about your projects, your history, your preferences. With standalone tools and environments, each one starts fresh. Portability comes at the cost of convenience.
And if you don't already have opinions about which AI coding tools to use, twelve options might be overwhelming. Integrated platforms make this choice for you, and for a lot of people that's a feature, not a limitation.
This approach is for developers who want to own their toolchain. If you'd rather have everything managed and integrated, the platforms mentioned above are genuinely good at it.
EnvHaven is MIT-licensed. Self-host it or use managed hosting. Either way, it's yours.
Related Articles
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.
The Local Editor Problem
You shouldn't have to choose between your local editor and remote AI agents. Haven CLI bridges the two with bidirectional file sync.