The open-source AI CEO: what the code actually teaches
An open source AI CEO hit Hacker News as a revenge story. Read the repo instead: it's one of the clearest free multi-agent architectures you can study today.
An open source AI CEO landed on Hacker News this morning under a headline built for revenge: a CEO fired developers to make room for AI, so developers built an AI CEO. Good story. It's also not what the repository says.
The project is Open Executive by Sente Labs, Apache 2.0, 179 stars at the time I looked. The README makes no claim about anyone being fired. What it does contain is a working multi-agent system with its wiring exposed, and that is far more useful to you than the joke.
🔍 What is actually in the repo
Open Executive presents itself as "a single coherent executive voice backed by eight specialist AI agents." An orchestrator routes your question to whichever specialists are relevant, each pulls its own context, and one answer comes back. The user never sees the eight.
| Layer | Choice in the repo |
|---|---|
| Orchestrator + most specialists | claude-sonnet-4-6 |
| Deep reasoning (CSO, CFO, GC, Board) | claude-opus-4-7 with extended thinking |
| Intent routing | claude-haiku-4-5 |
| Backend | Python 3.11 + FastAPI, uv |
| Vector store | ChromaDB, local and embedded |
| Memory | SQLite |
| Web UI | Next.js 15 + Tailwind |
| Licence | Apache 2.0 |
The eight roles: Chief Strategy Officer, CFO, Chief HR/People Officer, General Counsel, COO, CMO, CPO, Board Communications Director. Interfaces include web, Slack, email, Telegram, Google Chat, Discord and a CLI.
Key takeaway: the headline is about who gets replaced. The repo is about how you build a multi-agent system that does not fall apart. Only one of those two things is in your control this week.
🛠️ Four design decisions worth stealing
I read this the way I read any agent repo: which decisions would I copy tomorrow? Four stood out.
Cache-aware prompt structure. The persona, company profile and knowledge index are cached separately, and the README is blunt that "no dynamic content ever goes in a cached block." RAG context is injected into the user turn, never the cached system prompt. They claim up to an 85% cache hit rate after the first few turns. Most agent code I see breaks caching accidentally by stuffing retrieved chunks into the system prompt.
Cheap model for the boring pass. After every response, a background
claude-haiku-4-5pass extracts decisions and initiatives into SQLite. Next session opens with a<past_decisions>block. Memory without a second expensive call.An eval gate in CI that actually blocks merges. 29 scenarios across the 8 domains, judged by
claude-opus-4-7on five dimensions, each scored 1–5.CI requires ≥ 3.5/5 average, and any dimension dropping more than 10% versus
mainfails the PR.That second clause is the interesting one. It catches the prompt tweak that improves your demo question and quietly wrecks routing.
Honest concurrency limits. The scheduler claims rows with
UPDATE … RETURNING, and the docs say plainly: running two API machines would double-fire scheduled actions, somax_machines_running = 1. A repo that documents where it does not scale is a repo written by someone who ran it in production.
💰 Running it from Sri Lanka without a USD budget
Here is where it gets practical for a student or a two-person team. The default path needs an ANTHROPIC_API_KEY, billed in USD on a card. That is a real barrier when your income is in rupees, and it is worth costing out properly against the current LKR rate before you start experimenting.
But the API key is not mandatory. Setting LOCAL_MODELS_ENABLED=true with LOCAL_BASE_URL routes agents to any OpenAI-compatible server — Ollama, LM Studio, vLLM, llama.cpp — through the same provider abstraction, with no orchestrator changes.
LOCAL_MODELS_ENABLED=true
LOCAL_BASE_URL=http://localhost:11434/v1 # Ollama default
LOCAL_MODELS=llama3.3
DEFAULT_MODEL=llama3.3
# ANTHROPIC_API_KEY left unset entirely
What you give up is documented, not hidden:
| Feature | Hosted Claude | Local model |
|---|---|---|
| Prompt caching | Yes | Disabled automatically |
| Server-side web search | Yes | Disabled automatically |
| Extended thinking | Yes | No local equivalent |
| Routing quality | Fine | Depends on tool-use strength |
| Marginal cost per call | USD per token | Your electricity |
The caveat that matters: multi-agent routing leans on tool use, so a small model "may route poorly." The README names Llama 3.3 70B and Qwen2.5 as examples that hold up. A 70B model is not running on your laptop. It runs on a rented GPU box, billed hourly rather than as a monthly commitment, which is the friendlier shape for a learning budget.
You can also run hybrid: Executive on Claude, individual specialists flipped to local per-agent in the Council UI. That is what I would try first. Pay for the model doing the reasoning, run the cheap roles for free.
⚖️ Why "AI CEO" is the wrong lesson to take
Now the part the headline gets backwards.
Every one of those eight agents produces advice. None of them signs anything, carries liability, gets sued, or faces staff on Monday morning after a decision goes wrong. Advice is the automatable half of an executive job. Accountability is not, and no amount of ChromaDB fixes that.
- An agent can draft the board deck. It cannot be the one who presented it.
- An agent can model the runway. It cannot decide who gets made redundant.
- The General Counsel agent can flag a contract clause. It cannot sign the contract.
The repo itself is not confused about this. It gates the deployed UI behind Google sign-in with an email allow-list and keeps company/ gitignored. Those are the guardrails of a tool, not a replacement.
Bottom line: the firing story frames this as engineers versus executives. The code says something quieter. Judgement that reduces to pattern-matching over documents is cheap to synthesise, whichever chair it sits in.
💡 What this means for you
If you are a Sri Lankan engineer, student, or running a small team:
- Clone it for the architecture, not the persona. The router, the cache manager, the eval harness and the specialist registry are the valuable files. Adding a new agent is a documented 7-step process, including "add at least 2 eval scenarios" before CI will pass.
- Copy the eval gate into whatever you are building. A judge model plus a regression threshold is the cheapest quality control available to a solo builder with no QA team.
- Treat the eight-role council as a gap-filler. You are not going to hire a CFO or a General Counsel at your stage. A model that has read a lot of MBA material is not one, either, but it is better than guessing alone at 1am — as long as you verify anything with legal or tax consequences against a real source.
- Do not read the headline as a career forecast. One repo appearing is not evidence about who gets replaced. It is evidence that orchestration patterns are now good enough to be boring, which is exactly when they become worth learning.
First run needs Python 3.11+ and Node 22+, and pulls roughly 90 MB of embedding models before it boots. Budget a few minutes, not a few seconds.