Coding agents are good at writing code and bad at knowing when they're wrong. I've watched an agent confidently ship a broken change, add a dependency that was published 20 hours ago, or quietly leak a secret into a commit message. So I built AI Employee — a self-hosted system that wraps AI coding agents in the same process a careful human team already uses, before anything reaches your GitHub.
Instead of "agent writes code → you review a diff," the pipeline looks like this:
\
Task → Planner → Coder (own Git worktree) → Quick checks
→ Reviewer → UI/Security critics → Commit → Your approval → Push
``
Every stage exists because I hit a real failure mode without it:
Giving an agent a shell is giving it enough rope to do real damage, so most of the design effort went into containment rather than capability:
Every project, task, event, approval, cost record, and memory entry lives in a single SQLite file (using Node's built-in node:sqlite, with FTS5 for memory search). Backing up the whole system is copying one file. There's no cloud account, no external database to provision, and no vendor lock-in for something as basic as "what did my agents do last week."
Agents talk to models through a local gateway that adds the provider's API key, records tokens and cost, and refuses calls once a budget is hit. You can mix and match: OpenAI for planning, a local Ollama model for routine coding, Claude for the final review — whatever your cost/quality tradeoff looks like. New dependencies, model calls, and even screenshot judging can each use a different provider.
This is a developer preview — it's used daily on my own projects, but the interfaces and database schema may still shift between commits. If you're curious about the failure modes of autonomous coding agents, or just want a coding assistant you don't have to babysit line-by-line, I'd love feedback:
🔗 Repo: https://github.com/adnanahamed66772ndpc/ai-employee It's MIT licensed and PRs are welcome — especially around the review/critic pipeline and sandbox hardening.