The Proxmox guide gives you the clean, opinionated path: make one container, then it's just the Linux guide inside. This page is the honest second pass: why each choice was made, what else you could have done, what we deliberately left out, the trending tools worth a look, how to get ready for Mythos, and how to lock the whole home lab down.
Written May 2026. The AI-tooling world moves weekly — this is a snapshot of the landscape and the reasoning, not gospel.
Each guide step made one choice for clarity. Here's the reasoning and the roads not taken.
We chose: a single Ubuntu LXC container called ai-box, created through the Proxmox web UI.
Why: an LXC is light, starts instantly, and sips resources — one always-on box for the whole house without the overhead of a full virtual machine. The UI wizard is the most teachable path.
Alternatives worth knowingWe chose: install Node LTS, then npm-install Claude Code, Codex, and Gemini, plus Hermes as the bonus 4th agent — all inside the container.
Why: once the container exists, it's just a small Linux machine. From here the setup is identical to the Linux guide, so the reasoning and alternatives are the same too.
Same as the Linux guideWe chose: Tailscale, with two options — on the host, or inside the container after granting it the host's TUN device.
Alternatives & the trade-offlxc.cgroup2.devices.allow / lxc.mount.entry lines hand the container direct access to a host kernel device — that widens what the container can do and weakens its isolation. It's the right trade for many people, but it is a trade. Running Tailscale on the host avoids it entirely.We chose: Ollama + llama3.2 inside the container, CPU-only by default, with GPU passthrough noted as advanced.
qwen3, deepseek-r1, gemma3) and the LM Studio / Jan / llama.cpp alternatives are the same as in the Linux analysis. llama3.2 is a gentle start, not the ceiling. Without a GPU, keep models small or use a GPU cloud.Proxmox is the hypervisor — the box that runs the box that runs the agents. The editor question on Proxmox has a hard rule baked into it: never put an editor (or any GUI tool) on the host itself. The host's job is to be lean, predictable, and snapshot-and-restore reliable. Editors belong on the workload — the LXC or VM you actually code in. Once you accept that, the editor route on Proxmox is cleaner than on any other platform on this site, because snapshots make experimentation cheap. Here are the two paths that work, and the one that doesn't.
The two real paths on Proxmoxai-box LXC. Install VS Code locally (Mac, Windows, or Linux); install the official Remote Development extension pack; Connect to Host… the LXC's Tailscale name or LAN IP. Your editor lives on your laptop; the agent CLIs and files live in the container. The host runs neither — exactly what you want.code-server LXC. Make a separate Ubuntu LXC just for code-server, install via the one-line script (curl -fsSL https://code-server.dev/install.sh | sh), bind it to 127.0.0.1:8080 and reach it over Tailscale. Snapshot the LXC before first use; revert with one click if it ever misbehaves. Useful when your client device is a Chromebook, iPad, or browser-only.openssh-server and add your public SSH key to the user you'll connect as (not root). On an unprivileged LXC this is the same step as on any Linux box.pct exec <CTID> -- ip a) — or, if you've joined the LXC to your tailnet, just its tailnet hostname.winget install Microsoft.VisualStudioCode on Windows / brew install --cask visual-studio-code on Mac) and the official Remote Development extension pack.ai@ai-box-tailscale-name. The agent CLIs and your project files are on the LXC; everything you see and click is on the laptop.ai-box before letting an agent loose. A bad agent run becomes a one-click revert in the Proxmox UI.code-server, 2 GB RAM, 2 cores) — keep it separate from ai-box so a code-server compromise can't touch the agents' files directly.curl -fsSL https://code-server.dev/install.sh | sh, then systemctl --user enable --now code-server. Bind it to 127.0.0.1:8080, not 0.0.0.0.http://code-server.tail-net:8080 from a tailnet device. Never expose port 8080 to the open internet, and never reverse-proxy code-server through a public name.ai-box agents see — otherwise you're working on a copy.ai-box use; works in both Path A and Path B.ai-box.root inside the LXC. Same hygiene as the Linux analysis: a non-root user, sudo when needed, never an editor running as root.ai-box, is so a misbehaving extension can't read every file the agents touch..env, .git, node_modules, .secrets/ to files.exclude in .vscode/settings.json so AI extensions don't index them.ai-box and the code-server LXC should have explicit CPU and RAM limits (Part 2 covers this) so a runaway extension or agent can't pin the whole host.ai-box (agents), code-server (editor), ollama (local model), and Tailscale — and you reach any of them from any device.ai-box, you see the diff before accepting.ai-box and code-server requires either a bind mount, an NFS share, or a shared dataset — none are zero-effort.ai-box. One more port to think about; mitigated by Tailscale-only access.telemetry.telemetryLevel are the answer if that matters.pct exec) if: you're comfortable in vim/nano and the agents do most of the heavy lifting. Lightest path; matches the hypervisor's "do less" ethos.ai-box if: you want visual diffs and real refactor tooling without adding a service to the home lab. The recommended path for most home labs.ai-box. Don't skip snapshots before turning agents loose.The guide is deliberately a clean six-step spine. That clarity has a cost: real omissions — and on a hypervisor, several of them are about safety. Here they are, honestly, with the reason each was cut.
| Left out | What it is | Why it was cut |
|---|---|---|
| Hermes Agent | Nous Research's self-improving, model-agnostic coding agent | Genuinely an oversight in v1 — it's newer and niche. Now added as the bonus 4th agent, installed inside the container. A good reminder that "the big three" isn't the whole field. |
| Unprivileged containers | An LXC where root inside isn't root on the host | The real security omission. We should have stressed that the AI box belongs in an unprivileged container by default — it's the single biggest "free" hardening on this page. See Part 5. |
| Proxmox backups | vzdump snapshots and Proxmox Backup Server (PBS) | Cut to keep the spine to "make it work." But a container running autonomous agents is exactly what you want backed up — set a scheduled vzdump, or stand up PBS, before you lean on it. |
| Snapshots before agents run | An instant point-in-time copy you can roll back to | Skipped for length, but it's the home-lab superpower: take a snapshot, let an autonomous agent loose, roll back in seconds if it makes a mess. Covered in Part 5. |
| Resource limits | RAM, CPU, and disk caps on the container | We set starter values and moved on. A runaway agent can pin the host; explicit limits keep one container from starving everything else on the box. |
| A non-root user inside | A normal login instead of running everything as root | The guide does everything as root for simplicity. Real setups add an unprivileged user inside the container so the agents don't run with full root rights. |
| Its own VLAN | Putting the AI box on an isolated network segment | One layer past a first setup, but the right answer for an autonomous box: a VLAN means a misbehaving agent can't reach your other machines. See Part 5. |
| The host firewall | Proxmox's built-in firewall, at datacenter / node / container level | Off by default and not covered. It's how you make sure only Tailscale — never the open internet — reaches the web UI and the container. |
Scanning the developer conversation on X and GitHub in May 2026, here's what's hot that the guide doesn't yet mention. All run happily inside your Linux container.
The open-source CLI agent everyone's talking about — 150K+ stars, ~6.5M monthly devs. LSP integration, multiple parallel sessions, shareable session links. The strongest "free, bring-your-own-model" alternative to Claude Code.
A terminal that's also an agent cockpit — runs Claude Code, Codex, and others in one windowed UI with panes. Nice if the bare terminal feels stark.
Goose (from Block) and OpenHands are open-source autonomous agents that take a goal and run a long multi-step job. The frontier of "set it and walk away."
93K+ stars. A "spec-driven development" workflow that teaches any agent (Claude Code, Copilot, Gemini, etc.) to plan before it codes. Tessl and Kiro play in the same space.
The plug-ins that matter: chrome-devtools-mcp (let an agent drive Chrome), filesystem, GitHub, database connectors. This is the fastest-moving, highest-leverage area right now.
An agentic open model with a 1M-token context and MCP-native tool use — a serious local option for Ollama if your hardware can handle it.
Mythos is Anthropic's first model specialized for one domain: defensive cybersecurity. Announced April 7 2026 as the engine of Project Glasswing, it has already found a 27-year-old vulnerability in OpenBSD and bugs in FFmpeg. It is invitation-only ($25 / $125 per million tokens), shipped to 12 founding orgs and 40+ critical-infrastructure partners — not a download. Full briefing →
So "getting ready" isn't an install — it's preparing your environment so that when domain-specialized models (Mythos and the wave behind it) open up, you can point them at something useful:
You're running a hypervisor with a web admin panel, plus a container full of tools that can read files, run commands, and reach the internet, a private network, and a local model server. That's a lot of power on one box. Here's how to keep it from biting you — Proxmox and home-lab specifics first, then universal rules.
ANTHROPIC_BASE_URL setting and exfiltrate your API key in plaintext. Anthropic patched it before disclosure — the lesson stands: keep Claude Code updated, install only from official sources, and be suspicious of any config that reroutes where a tool "phones home."8006 should never face the open internet — reach it over Tailscale only. Use the host firewall to enforce that./dev/net/tun widens what it can do and weakens isolation. If you don't strictly need Tailscale inside the container, run it on the host instead.apt update && apt upgrade on the host and inside each container — the hypervisor is a second attack surface and gets CVEs of its own..env files, SSH keys, .secrets, and certificates — and to not read its own config (which could be used to manipulate it).npm install -g and curl … | sh run other people's code. Only use the exact official sources in the guide; don't paste install one-liners from random blog posts or X replies — and be doubly careful with the community helper-scripts, which run as root on the host.apt upgrade, npm update -g); most agent fixes ship fast.OLLAMA_HOST=0.0.0.0:11434 exposes your model server to the network. Only do this behind Tailscale — never on a public IP or open Wi-Fi. There's no password on Ollama by default.