agentos
Runs disposable local environments as Ubuntu Docker containers with SSH, terminal, browser, git, and dev servers; used as a local VM provider.
Clones GitHub repositories into environments and pushes branches through a git gateway using per-repository deploy keys or tokens, keeping credentials on the node.
Rents and manages Hetzner Cloud VMs as short-lived environments, including server size selection, snapshot/image builds, and API token setup.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
You open a chat and ask your coding agent to work in agentos. It asks for an environment: a fresh VM with your repository, a terminal and a browser. It builds, runs the tests and checks the page there, pushes a branch, and the VM is deleted. You watch its browser live, and take over whenever you like.
agentos is not another agent, chat or IDE. It is an MCP server (Model Context Protocol) that runs on a machine you own and rents short-lived machines for the agent you already use.
How it works
flowchart TB
agent["Your agent<br/>Claude Code, Codex, T3 Code"]
you["You<br/>live view, web app, CLI"]
mcp["agentos node<br/>MCP server, grants, limits, audit log"]
browser["Browser on the node<br/>no account, no login"]
vm["Environment: a disposable VM<br/>terminal, /work/your-repo, dev server"]
gateway["Git gateway on the node<br/>the key stays in the vault"]
github[("GitHub")]
agent -- "MCP" --> mcp
mcp -- "terminal over SSH" --> vm
mcp --> browser
you -. "watch, take over" .-> browser
browser -- "SOCKS tunnel through the VM" --> vm
vm -- "git push" --> gateway
gateway --> githubThe agent calls
environment_open(title="Fix checkout", repo="github.com/you/shop"). The node rents a VM (Hetzner Cloud, or a Docker container on your own computer), clones the repository into/work/shopand opens a browser whose traffic leaves from that VM.Calls without a target go to that environment:
lane_exec(cmd="npm test", cwd="/work/shop"),lane_job_start(cmd="npm run dev", cwd="/work/shop"),browser_navigate(url="http://localhost:3000"). In the browser,localhostis the VM.git pushon the VM goes through the node's git gateway. The VM never holds your key, only a token for that one repository, which dies with the environment.environment_close()refuses while work is not pushed, then deletes the VM and the browser. If the agent forgets, the node closes it when it sits idle or reaches its time limit.
A real run, from Claude Code in T3 Code: a Hetzner cx23 in Nuremberg was ready about 1.5
minutes after environment_open, with no approval. The agent cloned this repository through the
gateway, ran pnpm dev on the VM, and its browser opened in T3 Code's preview pane. ui_check
found text at 4.47:1 contrast (WCAG AA asks for 4.5:1); the agent fixed it on the VM, ui_check
confirmed the fix, the commit went up as a branch, and the environment closed. 13 minutes,
0.01 EUR.
Related MCP server: instanode-mcp
Why not just run the agent on your laptop?
Your laptop stays yours. Builds, test suites, dev servers and browsers run on the VM. Close the lid and the work carries on.
Nothing the agent runs can reach your keys or accounts. The VM holds no login, no key and no password, so it can run anything without asking you each time.
A real browser. The agent sees its own dev server the way a user would, and so do you.
Every chat starts clean. One environment per chat, deleted when it is done: no leftovers from the last task, no "works on my machine".
Quickstart: Docker on your laptop (5 minutes)
You need git, uv, Docker running, and Claude Code or Codex. Each environment is an Ubuntu container with SSH instead of a cloud VM.
git clone https://github.com/sabalys-ramunas/agentos && cd agentos
uv sync --extra studio
mkdir -p ~/agentos-try && echo 'provider = "docker"' > ~/agentos-try/vms.toml
uv run agentos dev up --home ~/agentos-trydev up starts a node on 127.0.0.1:7450 and registers it with Claude Code and Codex (when they
are installed) as agentos-dev, with the agentos-environment skill. Leave it running. In a
second terminal, build the environment image once (a few minutes):
export AGENTOS_HOME=~/agentos-try
uv run agentos environments setup --buildConnect the repository the agent should work on. One command makes a deploy key on the node and
prints its public half to paste into the repository's deploy keys (with write access), or stores a
fine-grained token with --token. A public repository clones without this, read only; a private
one that is not connected is refused before anything is rented, with this command in the error.
uv run agentos environments repo add github.com/you/appNow start a new Claude Code session and ask:
Work on this in agentos: clone github.com/you/app, start the dev server, check the home page with ui_check, fix what it finds, push a branch and close the environment.
The agent gives you a live view link (http://localhost:7450/view/...) to watch its browser.
uv run agentos environments list shows what is open, and uv run agentos environments close ID
closes one. On the dev node the account lanes are simulated; the environment's container, terminal,
browser, git and studio's checks are real.
Real cloud: Hetzner
A node is a Linux machine that runs agentos: Ubuntu 22.04 or later, or Debian 12, x86_64 or arm64 (a small VPS is enough). Make a Hetzner Cloud project that holds nothing but these VMs, and a read-write API token in it. On the node:
git clone https://github.com/sabalys-ramunas/agentos && cd agentos
sudo deploy/install-node.sh --systemd --user agentos --hardened
sudo agentos vm setup # paste the Hetzner token
sudo agentos vm image build dev # a snapshot with git, build tools, Python, Node 22, Docker
sudo agentos environments repo add github.com/you/app # a deploy key to paste, or --token
sudo agentos environments setup # says what is still missing, and the command that fixes itThen, from your computer (the node in your ~/.ssh/config as mynode):
curl -fsSL https://raw.githubusercontent.com/sabalys-ramunas/agentos/main/scripts/install.sh | sh
agentos connect mynodeconnect keeps an SSH tunnel to the node, gives your agents a grant of their own (kept in the
macOS Keychain or a chmod 600 file), registers the MCP server with Claude Code and Codex, and
installs the Claude Code skills. The node rents the cheapest server type that fits, unless you set
a size. Install, hardening, backups and upgrades: deploy/README.md.
Works with
Client | How it connects |
Claude Code |
|
Codex |
|
T3 Code | nothing more: its Claude threads read Claude Code's settings and its Codex threads read Codex's; open the live view in its preview pane |
Any other MCP client (Cursor, for example) | by hand: the node's MCP URL over Streamable HTTP with a grant token; |
What the agent gets
Tool | What it does |
| rents the VM ( |
| state, time left, cost so far, listening ports, git (branch, ahead, dirty, pushed), the last calls |
| refuses with |
| a command on the VM, with its output |
| long jobs and dev servers on the VM |
| the environment's browser: read the page as an outline, act by reference |
| studio's page check at each width and theme: layout, contrast, tap targets, names, page health |
About 150 more tools, grouped in toolsets the agent loads when it needs them, are listed in docs/TOOLS.md.
Safety, in plain words
No key on the VM. Git goes through the node's gateway, which keeps the credential in its vault. The VM holds one gateway token: good for the repository it was opened with, only through its own tunnel, and only while it is open. A force push or a delete of the default branch is refused.
Nothing inside asks you. Because the VM holds nothing worth stealing, commands, the browser and pushes there never wait for a person, even after the agent read a web page.
Limits instead of questions. By default at most 3 environments open at once, 8 hours each, and 50 EUR a month. Past a limit the open is refused, whatever the agent read. Set your own with
agentos environments allow --max-live 2 --max-hours 4 --monthly-eur 20(the limits).Deleted when done. The node closes a forgotten environment after an idle hour or at its time limit. One with unsaved work is never deleted for being idle: it waits to its time limit, and you are told first.
One agent's machine. Only the agent that opened an environment can see it or act on it. You see and close every one.
The audit log. Every call, tied to the grant that allowed it.
agentos access freeze nodestops every agent at once.Your own accounts stay behind a person. Logged-in browser lanes for your accounts are a separate feature, and there posts, payments and secrets after untrusted text still ask you.
What this defends against, and what it does not: docs/THREAT-MODEL.md.
Watch it work
The web app (web/, served by the node at /) lists every environment with its state, repository,
agent, cost and time left, and gives each one a page with its live browser, terminal commands, git
and ports. Build it once with Node.js 22 and pnpm: cd web && pnpm install --frozen-lockfile && pnpm build (web/README.md).
Without a build, the live view link the agent gives you works on its own. Here is the live view
of a real environment on Hetzner: its browser shows the VM's own localhost:3000, and
Take control lets you drive it:
The CLI shows the same: agentos environments list, show ID and close ID.
More features
Studio page checks:
ui_check,ui_diffandsystem_checkmeasure the pages you build at each width and theme, and say what a change did (docs/STUDIO.md).Profiles and brand: who the work is for, with tokens and rules that
ui_checkmeasures (docs/PROFILES.md).Browser lanes for your own accounts: persistent, logged-in browsers with their own proxy, which you watch and take over (docs/PROXIES.md, docs/RESPONSIBLE-USE.md).
Routines: flows you record and replay, and workflows on a schedule (docs/WORKFLOWS.md).
The engagement engine: a slow, capped program of posts and replies for your own business accounts, which you approve (docs/ENGAGEMENT.md).
FAQ
How is this different from running the agent locally?
The agent still runs where it runs now (your terminal, T3 Code, Codex). Only its work moves: the commands, the dev server and the browser run on a VM that holds none of your keys or accounts, so it can work without asking you at each step, and your laptop stays free.
How is it different from E2B, Daytona or GitHub Codespaces?
E2B and Daytona are sandbox platforms that your own code drives through their SDKs and APIs; they fit well when you build a product that runs code for your users. Codespaces is a hosted dev environment for a person in an editor. agentos is for the agent in your chat: it is an MCP server the agent calls itself, with a real browser you can watch and take over, git through a gateway so the key stays off the machine, and limits and an audit log on a node you run.
What does it cost?
agentos is free (Apache-2.0). You pay your provider: Docker costs nothing, and a Hetzner cx23
(2 vCPU, 4 GB) is about 0.011 EUR an hour, billed per started hour. The real run above, 13 minutes
from open to close, cost 0.01 EUR. environment() and the web app show the cost so far.
Is my code or my key on the VM?
Your code is: the repository is cloned there, so the agent can work on it. Your key is not, and neither is any token, password or account. Pushes go through the node, which holds the key.
Can I self-host it?
It is self-hosted. The node runs on your own Linux server or laptop, and the VMs are rented with your own provider account. There is no agentos account and no hosted service in the loop.
Which providers are supported?
Docker (any computer with Docker) and Hetzner Cloud. The provider layer (agentos.vms) is small,
and more are welcome.
Which agents work with it?
Claude Code and Codex are set up by agentos connect; T3 Code uses both. Any client that speaks MCP
over HTTP can connect by hand (see Works with).
Status
Alpha. Environments are new in 0.1.0; expect the most change there. Not yet: providers other than Docker and Hetzner, a file copy tool for the VM (files move through commands and git), and a link to a VM's port on your own computer (you see it through the environment's browser). The full list: docs/ENVIRONMENTS.md and docs/ARCHITECTURE.md.
Docs
environments: setup, use, costs, limits, troubleshooting | |
the design and the exact tool shapes | |
git through the node: keys in the vault, declared repositories | |
install, harden, back up and upgrade a node | |
Hetzner, home box and Mac mini templates | |
every MCP tool, every error code and its fix (generated) | |
studio's page checks | |
how it is built, and where it is going | |
what it defends against, and the lines it will not cross | |
the dev loop, the tests, the fake node | |
the design docs, with what is built and what is not |
Contributing
Issues and pull requests are welcome. CONTRIBUTING.md has the dev loop (no
cloud account needed: uv run agentos dev up and the unit tests run on a laptop). For a security
problem, see SECURITY.md and report it privately.
License
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
This server cannot be deployed
Maintenance
Related MCP Connectors
Persistent cloud workspaces for AI agents: run commands, edit files, use git and a browser.
Cloud desktops for AI agents: create a Linux computer, see its screen, click, type and run tasks.
Persistent Linux computers for AI agents: desktop, signed-in browser, vault, apps and shell.
Your AI dev team: agents that build, test, review and ship, each on its own cloud machine.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceProvisions Docker-based development environments on demand, allowing AI agents to create, manage, and inspect containerized dev environments without manual setup.-

instanode-mcpofficial
AlicenseAqualityDmaintenanceEnables AI coding agents to instantly provision ephemeral developer infrastructure like Postgres, Redis, MongoDB, and container deployments over HTTPS, with no Docker or signup required for the free anonymous tier.31MIT
MileHost MCP Serverofficial
AlicenseCqualityBmaintenanceEnables AI coding agents to manage cloud containers, create and edit files, run commands, and deploy projects directly.247MIT- AlicenseAqualityBmaintenanceEnables AI agents to spin up disposable Tenki microVM sandboxes in seconds and use them to run code, manage files, run git commands, and expose preview URLs.71514 npmMIT