A self-hosted company OS for Claude Code and Codex agents is server software you install yourself. It turns separate AI coding agents into a shared staff, organized into departments with rules about who can hand work to whom. The project behind the Hacker News post making the rounds is called Oto Dock, and I wanted to know if it was a real, working tool or just a demo video. So I pulled the code, ran the install script on a spare Ubuntu box, and pointed it at a live Claude subscription to watch what happens when two agents in different departments try to collaborate. This piece walks through the exact setup, what it costs, and where I'd stop trusting it before handing over a real team's work.
Short answer: Oto Dock is a free-to-self-host, open-source platform that runs Claude Code and Codex as persistent, sandboxed agents on your own Linux server. Install it with a one-line script plus Docker Compose, group agents into departments with delegation rules, and it stays free for up to 5 users before you need a paid seat license.

What you'll need
You need a Linux server with Docker and at least 4 GB of RAM. That's the project's own stated floor, and Ubuntu 24.04 or newer gets you automatic host-level setup during install. You also need a Claude Pro or Max subscription (or an Anthropic API key) to run Claude Code agents. For Codex agents, you need a ChatGPT Plus subscription or an OpenAI API key. Oto Dock is a wrapper around those two CLIs, not a model of its own, so it can't run agents without them. No signup or account creation is required to install it. The whole stack runs on hardware you control.
Step-by-step: setting up Oto Dock
1. Download and run the install script
“ mkdir otodock && cd otodock curl -fsSLO https://raw.githubusercontent.com/OtoDock/oto-dock/main/scripts/install.sh bash install.sh “
In my test, this pulled a release-pinned docker-compose.yml, generated a .env file with an auto-generated database password, and brought the stack up. It didn't ask me anything yet. The exact commands and defaults are documented in the project’s GitHub README, which is worth a skim before you deploy this on anything besides a scratch box.
2. Open the dashboard and create an owner account
The dashboard listens on http://localhost:8400 by default. If you're reaching it by hostname or IP instead of localhost, set DASHBOARD_PUBLIC_URL in .env first. Add TRUSTED_PROXY too if you're putting it behind a reverse proxy. I skipped that step on my first try, and the setup wizard wouldn't load right until I fixed it.
3. Connect Claude Code and Codex
The setup wizard has a dedicated step for AI engines. You paste in your Claude subscription credentials or API key, then do the same for ChatGPT or OpenAI. Each agent you build later picks which engine it runs on.
4. Create your first agent and place it in a department
Every agent gets six configurable pieces: a persona, memory, workspace, knowledge base, skills, and tools. Departments sit on top of that as a grouping layer. You decide which agents can delegate work to which other agents, and whether a department shares one workspace or keeps each agent separate.
5. Test with the built-in assistant before you build more
Oto Dock ships with a default agent, so you can confirm the engine connection works before spending time on department structure. I ran a few basic prompts through it first and only moved to custom agents once that round-tripped cleanly.
Example prompts you can copy
Once agents were wired into departments, here's close to what I actually typed while testing delegation:
- "Assign this ticket to the engineering department and let the lead agent pick who handles it."
- "Check the target agent's workload before delegating. Don't hand off if it's already mid-task."
- "Summarize the sales department's last meeting and flag anything that needs a human decision."
- "Work only in your own sandboxed space. Don't touch shared department files until I approve the draft."
The pattern that mattered most: be explicit about which workspace an agent should touch. The four sharing modes (personal only, personal plus shared, shared plus personal, shared only) change where its output actually lands.
Common mistakes to avoid
The mistake that cost me the most time: not setting DASHBOARD_PUBLIC_URL before reaching the dashboard from another machine on the network. The wizard just half-loads instead of showing a clear error. Second, don't treat "kernel sandbox with network isolation" as a substitute for reviewing what agents actually do. Bubblewrap and pasta isolate the process and the network, but they don't stop an agent from making a bad call inside its own sandbox. Third, don't over-trust delegation for anything that needs a deterministic outcome. A commenter on the original Show HN thread put it well: leaning on "LLM magic" instead of deterministic systems risks turning a department into a "slop factory" that drifts from its job. Fourth, don't assume the free tier scales past a pilot. It caps at 5 users, and growing past that means a per-seat license. Fifth, don't skip reading the changelog between updates — a project moving this fast can change default sandbox behavior or port numbers between minor versions, and I'd rather catch that in release notes than in a broken deploy.
How it compares to other ways to run Claude Code and Codex agents
| Approach | Cost | Where it runs | Departments and delegation | Multi-tenant |
|---|---|---|---|---|
| Oto Dock | Free self-hosted up to 5 users; paid per seat beyond that | Your own server (Docker) | Yes, built-in departments with delegation rules | Yes |
| Claude Code CLI alone | Free tool, paid Claude subscription | Your terminal or CI | No, one agent per session | No |
| Codex CLI alone | Free tool, paid ChatGPT subscription | Your terminal or CI | No, one agent per session | No |
A local merge queue like claude-code-merge-queue |
Free, MIT license | Your machine | No, it coordinates parallel lanes, not departments | No |
If you only need one agent working one task at a time, Oto Dock is overkill. Plain Claude Code or Codex is simpler, with nothing extra to run. Oto Dock earns its keep once you want several agents persisting across a team, with real rules about who can hand off work to whom.
Tools that make this easier
If you haven't used the underlying CLIs yet, start with my how to use Claude AI guide and my how to use ChatGPT Codex piece. Oto Dock assumes you already have working subscriptions for both. My mission for Claude Code article covers giving one agent consistent standing instructions through CLAUDE.md, which is the same idea Oto Dock applies at department scale. Since Oto Dock runs every agent in a kernel sandbox, my piece on Docker sandboxes for AI agents explains what that isolation actually buys you. If cost tracking matters once you're running several agents at once, Claude Code usage tracking by LangWatch is the closest thing to a spend dashboard. And if your real problem is several agents editing the same repo rather than several departments, a local merge queue for parallel Claude Code agents solves a narrower, adjacent problem.
My take
Oto Dock is a legitimate, working project. The install script did what it claimed, the department and delegation model is more thought-out than most "AI agent platform" Show HN posts I've tried, and a free 5-user self-hosted tier lets people actually test it before paying. Here's what I'd flag before anyone points it at real company data: the sandboxing protects the machine, not the decisions an agent makes inside it. Nothing about departments or delegation guarantees an agent won't confidently do the wrong thing. Start with a pilot team well under the 5-user free cap. Watch what agents actually delegate to each other for a couple of weeks. Only wire it into anything that matters once you trust the pattern.
Frequently Asked Questions
Is Oto Dock free?
Self-hosting is free for up to 5 users, no credit card required. Beyond that, it licenses by seat. The software itself isn't feature-gated between free and paid tiers, per the project’s own site.
How long does setup take?
About 15 to 20 minutes in my test, most of it spent waiting on Docker to pull images. The install script, .env setup, and setup wizard together took under half an hour on a fresh Ubuntu 24.04 server with 4 GB of RAM.
What is the easiest way to try this?
Run the install script on a spare Linux box or a VM. Connect one Claude or Codex account, then test with the built-in assistant before creating custom agents or departments.
Do I need both Claude and Codex subscriptions?
No. You can connect just one engine and run agents on it exclusively. Oto Dock supports both so you can mix agents across departments, but nothing requires you to use both.
Does the sandboxing make it safe to give agents full access to company systems?
Not by itself. The kernel sandbox (bubblewrap) and network isolation (pasta) contain what a compromised or misbehaving process can reach on the host. They don't review or limit what an agent decides to do with the access and tools you've already granted it.