Development environmentsfor the age of coding agents
DevGrail gives every project its own isolated, persistent development environment on a VPS you control — ready for you, your ideas, and your coding agents.
Self-hosted on Linux · Browser terminal, SSH, and MCP · Bring your own agent
DevGrail My projects Your VPS
One dashboard. Every environment on your own server.
PROJECT / NORTHSTAR
Two workspaces. Two agents. One box.
web-app
Running
Claude Code
image
devgrail/workspace
cpu / mem
2 vCPU · 4 GB
volume
web-app → /workspace
url
app.web-app.example.dev
api-service
Running
Codex
image
devgrail/workspace
cpu / mem
1 vCPU · 2 GB
volume
api-service → /workspace
branch
feature/search
Workflow illustration with example projects. Explore the three views above.
Why not just run it locally
Your laptop is not a machine you want it to have root on.
A coding agent is most useful when it has room to get things done — install a package, rewrite a config, drop the database and seed it again. On the machine you use every day, that can also put your SSH keys, credentials and personal files within reach. A dedicated environment gives the agent room to work without giving it access to everything else.
Give it root. Keep the blast radius.
Inside a DevGrail workspace an agent has passwordless sudo and no route to anything outside it — not your other projects, not the host. Let it install what it likes and break what it likes: nothing it touched was yours, and a clean workspace is seconds away.
Three agents, three workspaces.
One workspace per task or per branch, each with its own checkout, its own ports and its own resource limits. Running several at once stops meaning several processes fighting over one machine and one working tree.
Close the lid. It keeps going.
The work sits on a server that is awake when your laptop is not. A terminal session outlives the tab closing, the train tunnel and the walk home — reopen it from any browser and the agent is still going.
What a workspace is
One workspace per project. Batteries included.
Not a tab on somebody else’s cloud, and not another checkout cluttering your laptop. A workspace is a Docker container on your server, created for one project, with everything that project needs and nothing that belongs to another.
Image
The same box every time
Start from the DevGrail workspace image — Git, build tools and coding agents already installed — or name any Docker image you like. Two workspaces built on the same image are the same box.
Volume
Files that outlive the container
/workspace is a persistent named volume. Rebuild, resize or upgrade the container underneath it and your repositories, branches and build caches are still there.
Resources
CPU and memory you set
Give a workspace 0.5 vCPU or all of them, cap its memory, and change your mind later. The dashboard shows what each one is actually using, so a runaway build stays one workspace's problem.
Network
Isolated from its neighbours
Each workspace sits on its own Docker network with no route to the others. Root inside the container buys nothing outside it — not your other projects, not the host.
Access
Work from any browser-enabled device
Anywhere you have a browser you have the whole environment — laptop, borrowed desktop, tablet on the train, the phone in your pocket — with nothing to install first. Sessions persist: close the tab mid-task and the agent keeps working until you open it again. SSH in instead when you would rather use your own terminal.
Routing
A URL for the app inside
Publish a port on a subdomain, or on a domain of your own, and Traefik gets the HTTPS certificate from Let’s Encrypt. Show someone the branch you are working on without deploying it anywhere.
Built for coding agents
One environment. Whichever agents you pay for.
You are probably paying for more than one already, and which of them is the good one changes every few months. Here the environment is the fixed part and the agents come to it — on a server that is yours, with the work still sitting where you left it whichever one you open.
Bring the way you like to code.
Claude Code
Codex
Antigravity
OpenCode
All four are installed in the default workspace image. Sign in with the subscriptions you already hold, or install whichever agent you prefer — it is your DevGrail workspace.
Let them drive DevGrail
The built-in MCP server makes DevGrail itself a tool an agent can call: create a workspace, run a setup script, read a file, publish a port. Connect from Claude.ai, ChatGPT, or any other MCP-compatible client over OAuth or a static API key, scope each key to exactly the workspaces and tools it should reach, and revoke one connection without disturbing the rest.
Swap the agent, keep the environment
The same checkout, tools, secrets and URL, whichever agent you open today. When you change provider next year — or let a subscription lapse, or a better one ships in the spring — you change a command, not a setup.
Put two of them on the same task
Hand the same job to two agents in two workspaces off the same repository, then read both diffs and keep the better one. Neither can see the other’s work, and neither can stand on it.
Why not the cloud that came with the subscription
An environment you keep, not a sandbox that resets.
Every agent vendor will lend you a machine: one environment per subscription, set up their way, with the agent inside it chosen for you. They are good at the job they exist for — a clean box per task, a pull request at the end. That is a different thing from somewhere a project lives.
A per-task sandbox
Created for one task and thrown away after it.
Cold on every run: dependencies fetched again, caches rebuilt, services started from nothing.
The agent inside it is the one the subscription includes.
Configured per provider — and the configuration leaves with them.
A DevGrail workspace
Created for a project and kept for as long as the project is alive.
Warm: toolchains installed, build caches full, a database holding your seed data, the dev server still up.
Whichever agents you install — two of them on the same repository if that is the day you are having.
Setup, secrets, volumes and URLs stay exactly where they are when you switch.
The arithmetic is different, too. Metered environments bill by the core-hour, so anything left running is a reason to think twice. A server rented by the month costs the same whether one workspace is busy or all of them are — which is what makes it reasonable to leave a long build, a dev server and an agent working away overnight.
Everything around the code
Less setup. More making.
The environment is the point, but it is not the whole job. Reviewing, committing, wiring up secrets and keeping track of what is running all live in the same place.
Inside a workspace
The work that happens after the agent stops typing.
Read the diff before you trust it
Browse and edit files, inspect Git diffs hunk by hunk, switch branches, stage what you want and commit — from the dashboard, without opening a terminal or pulling the branch down locally.
Secrets that stay out of the repo
Store tokens, keys and certificates encrypted on your server. Scripts reference them by token; DevGrail resolves the value when the script runs and redacts it from the output — so it never lands in a terminal, a log or a commit.
Context that stays with the workspace
Each workspace carries a markdown page for its purpose, stack, conventions and current goal — so the next session, human or agent, does not start by rediscovering the project.
Across your projects
One dashboard for everything running on the box.
Group workspaces into projects
An app, its API and a scratch workspace belong together. Group them, see at a glance which are running, and start or stop them as the work moves.
Reach them from your MCP client
DevGrail is an MCP server itself — connect from Claude.ai, ChatGPT, or any other MCP-compatible client over OAuth or a static API key. Scope each key to the workspaces and tools it should reach, and revoke one connection without disturbing the rest.
Know what the server is doing
Per-workspace CPU and memory usage against host capacity, so you can size the next workspace honestly — and DevGrail says no when a memory limit would overcommit the box, rather than letting the OOM killer explain it later.
Whole-workspace snapshots
Back up the whole workspace, not just the code.
A clean image can reinstall tools, but it cannot recover the state that made a workspace yours. Take a snapshot before a risky change, then return to a known working point without starting over.
Save the whole workspace
A snapshot keeps everything under /home/dev — agent sign-ins, Git configuration, shell history and installed packages — together with a copy of /workspace.
Restore beside it or over it
Bring a saved workspace back as a separate copy, or restore it in place while keeping its name, routes, project and API-key grants.
Choose exact or current
Restore the exact saved machine, or start on the image as it resolves now while carrying /workspace and the agent and shell settings you choose.
By default DevGrail stops the workspace while it takes the snapshot, then starts it again so every saved part describes the same moment. You can keep it running instead when an interruption would cost more than that consistency.
Your next project, from start to finish
An agent can write the code. You stay in the loop.
/ 01
Set the scene
Create a workspace, choose an image and resource limits, and attach a volume. Use a setup script to prepare your tools and project.
/ 02
Put your agent to work
Launch your preferred coding agent in the terminal, or connect an MCP client with a scoped API key. Keep separate sessions for separate tasks.
/ 03
Take it from here
Check the files and diffs, try the app through its subdomain, and commit your changes. Stop the workspace when you’re done.
Self-hosted, by design
Your infrastructure. Your decisions.
For developers who want a dedicated place for their agents and projects, with the flexibility of a server they control.
The dashboard and workspace files live on your VPS. Your coding agents still connect to the AI providers you configure.
Check what you are installing
Every release names one exact set of bytes: image tarballs served from this site and verified against published SHA-256 checksums, with no registry account and no third-party host in the path. Each workspace records the image it shipped with, and an upgrade snapshots the DevGrail database and configuration before it starts — so a bad release costs you a rollback rather than an evening.
One install, individual accounts
Admins create accounts and manage host resources. Users organize their own projects, workspaces, secrets, and API keys.
Keep control of the lifecycle
Set CPU and memory limits, manage workspace volumes, and inspect resource usage. You manage the server, updates, and backups.
From a VPS to a workspace
Bring a server. Be running in minutes.
1
Prepare your VPS and DNS
Start with a fresh Linux VPS, root access, and dashboard and wildcard app DNS records pointing to it.
2
Run the installer
The guided setup installs Docker if needed and configures DevGrail and HTTPS. Then sign in with your admin account.
3
Create your first workspace
Choose your tools, connect your agent provider, and start a project.
Before you install
Ubuntu 22.04 / 24.04 LTS is the primary target. Images are available for x86-64 and ARM64.
Recommended
4 vCPU · 8 GB RAM · 60 GB+ disk
Minimum
2 vCPU · 2 GB RAM · 20 GB disk
Network
Public ports 80 and 443 + DNS
Allow more capacity for concurrent workspaces and builds.
The practical details of running your own development environments.
Do I need an AI subscription?
DevGrail provides the environment and the management tools around it. Bring the accounts or API credentials required by your chosen coding agents. AI provider charges and VPS hosting are separate from DevGrail.
Can I use it with ChatGPT or Claude.ai?
Yes. DevGrail is itself a remote MCP server, so you can connect from ChatGPT, Claude.ai or any other MCP-compatible client over OAuth or with a static API key. Each key can be limited to the workspaces and tools that client should reach, and revoked independently.
Is DevGrail open source?
No — the server is proprietary. Everything that runs as root on your machine is published and readable before you run it, though: the installer, the uninstaller, the Compose file and the Traefik config are all served straight from this site, and every release is signed with a key that never touches it. Read the whole install path before you run a line of it.
Does DevGrail collect telemetry?
No. There is no usage analytics and no tracking, and nothing about your code, your projects or what you do inside your workspaces ever leaves your server. Your VPS reaches this site to download releases, Let’s Encrypt for your certificates, and whichever AI providers you configure — all of it visible in the installer before you run it.
Does my agent keep running when I close the browser?
Work started in a persistent terminal session can continue while its workspace is running. Reopen the terminal to reconnect. Stopping the workspace or shutting down the server stops its processes.
Which of my files persist?
Project files in /workspace live in an attached persistent volume, so they survive workspace restarts and container replacement. Other changes in the container’s writable layer are not persistent by themselves. Take a workspace snapshot when you also want to preserve /home/dev, including agent sign-ins, Git configuration, shell history and installed packages.
How do workspace snapshots and restores work?
A snapshot saves the workspace’s /home/dev state together with a copy of /workspace. Restore it as a separate workspace or in place while keeping the original workspace’s name, routes, project and API-key grants. You can restore the exact saved machine, or use the image as it resolves now while carrying over the workspace and the agent and shell settings you choose.
What happens if the server goes down?
DevGrail runs on one box, deliberately — that is what keeps it cheap to rent and simple to reason about, and it also means there is no failover. While the VPS is down, so is everything on it. When it returns, your persistent workspaces remain there; if the server itself is lost, you still need an off-server backup such as snapshots from your hosting provider.
What am I taking on by running this myself?
The server. DevGrail installs and upgrades in one command and handles Docker, Traefik, routing and certificates for you — but the VPS, its operating system updates, the DNS records for the dashboard and workspace subdomains, and backups of your project volumes are yours. Nobody is on call for your box except you, which is the same trade that keeps the environment and everything inside it entirely yours.
How do updates and backups work?
Re-run the installer to upgrade. It snapshots the DevGrail database and configuration before starting the new version and provides rollback options. That pre-upgrade snapshot is separate from workspace snapshots: use those to save /home/dev and /workspace, and keep an off-server backup for recovery if the VPS itself is lost.
What if I stop using DevGrail?
Your workspaces are ordinary Docker containers and your files sit in ordinary Docker volumes, on a server you own. The uninstaller’s default tears DevGrail down and leaves your workspaces, their volumes and your data exactly where they are — it names every object it will keep before it asks the first question. Destroying them takes an explicit --purge, and that takes a backup of the database and configuration first.
Pricing & support
The details are on their way.
Pricing, licensing, and support are being finalized.
Coming soon
Pricing
Plans and pricing will be announced here.
Coming soon
Licensing
Licensing terms will be published here.
Coming soon
Support
Support options and contact details will be added here.
One VPS. Every project you have going.
Give your next project a machine of its own.
Bring a Linux server and the coding agent you already use. DevGrail handles the containers, isolation, routing, and certificates — you get a terminal and a URL.