ʕ•ᴥ•ʔ self-hosted · qemu/kvm · mit

Your own
cloud lab.

Real Linux VMs with full root — for you and your AI agents.

An open-source, self-hosted alternative to Replit and Codespaces that runs on your hardware — and, through its MCP server, an agent sandbox like E2B. A browser IDE and a built-in agent for you; ten task-shaped tools for the agents you already use.

Three commands. Your hardware. No per-seat billing.

you@homelab:~
$ git clone https://github.com/HectorPulido/pequeroku.git
$ cd pequeroku/source && ./start.sh
✔ lab online → http://localhost/dashboard/
pequeroku — demo.mp4

A real Debian VM, opened from the browser. Phone, tablet or laptop — no setup, no waiting.

// 01 — why

A machine, not a sandbox_

#root

Real root, real VM

Install Docker, run systemd, build a kernel. It's a Linux machine (QEMU/KVM), not a container with guardrails.

24/7

Always on

No cold starts: your workspace is ready when you are, and resets to a clean slate when you want one.

ʕ•ᴥ•ʔ

An agent inside

Pequenin edits files, runs your tests, starts servers and verifies they respond — live, inside the VM. Bring your own OpenAI-compatible provider.

/mcp

Hands for your agent

Claude Code, Cursor, or your own bot get disposable root VMs over MCP. The blast radius is one VM — not your laptop.

:443

From any device

The IDE is responsive — laptop, tablet, phone — with a live preview of whatever your VM serves.

MIT

Yours

Open source, hackable at every layer, cheap to run on a homelab — with quotas and roles for when you share it with a team.

// 02 — agents

Give your agent a real computer_

Everything the dashboard does is a versioned public API — and the MCP server is just a client of it. Point any MCP-capable agent at /mcp and it can create VMs, run code, move files and inspect ports on its own.

API keys carry scopes (read < exec < admin), destroying needs confirmation, and runs carry a timeout and TTL. Sane defaults, one isolated VM of blast radius.

run_code list_types list_containers get_or_create_container container_exec process_status write_files read_path get_preview destroy_container

10 task-shaped tools, plus ready-made prompts and on-connect instructions.

claude mcp add --transport http \
  pequeroku http://localhost/mcp \
  --header "Authorization: Bearer pk_xxx"

Works with Claude Code, Claude Desktop, Cursor, opencode — anything that speaks MCP.

curl -X POST http://localhost/api/v1/runs \
  -H "Authorization: Bearer pk_xxx" \
  -d '{"command":"python main.py",
       "files":[{"path":"main.py",
                 "content":"print(\"hi\")"}]}'
# → {"status":"succeeded","stdout":"hi\n"}

One-shot: boots a throwaway VM, runs, returns output, destroys it. OpenAPI spec at /api/v1/schema/.

from pequeroku import PequeRoku

pq = PequeRoku(api_key="pk_xxx",
               base_url="http://localhost")
print(pq.run("echo hello").stdout)

A thin Python SDK over the same API — no privileged side paths.

// 03 — self-host

Up in three commands_

01

Clone

git clone https://github.com/\
HectorPulido/pequeroku.git
02

Start

cd pequeroku/source
./start.sh

Idempotent — generates secrets, enables KVM if available, runs Docker Compose.

03

Code

open http://localhost/dashboard/

Log in, create your first VM, or let the agent scaffold the project.

Needs Docker Compose. A Linux box with /dev/kvm gives fast VMs — a homelab is plenty.

★ Star on GitHub Getting-Started guide
// 04 — trade-offs

Pick your trade-offs_

PequeRoku Cloud IDEs Agent sandboxes
built forhumans + agentshumansagents
hostingyour hardwaretheir cloudtheir cloud
computereal VMs (KVM)containersmicroVMs
rootfulllimitedephemeral
lifespanalways-onboot & waitminutes
costyour electricityper seatper second

Cloud IDEs: Replit, Codespaces, Gitpod · Agent sandboxes: E2B, Daytona

// 05 — help

Run it yourself. You're not alone_

“I built PequeRoku because I couldn't find a dev platform that was open, root-access, always-on and affordable to run myself. If you want it running in your rack — I'll help you get there.” — Héctor Pulido, author

$ ./start.sh

Take back your dev environment.

★ Star on GitHub Need a hand? Talk to me