Erebus is now open source, so here's what's actually inside it. Four pieces, each with a narrow job, wired together into one execution surface the AI operates under supervision.
Teamserver (Go)
The control plane. Handles listener management, session state, task queueing, and the event stream that everything else reads from. Written in Go for a single static binary and predictable concurrency under load.
Cross-Platform Implant
The agent that runs on target systems. Built modular so capability can be added without bloating the core, and cross-platform so the same design holds up across the environments a real engagement touches.
Operator CLI
Where the human sits. Session inspection, task review, and the approval gate live here. Every high-risk action the AI queues surfaces in the CLI before it runs.
AI Agent Layer
Reads teamserver state, reasons over active sessions, and prepares the next task. It doesn't execute unsupervised: it queues, the operator approves, the teamserver dispatches.
Why split it this way
Keeping the AI agent layer separate from the teamserver's execution path is the core design decision. The AI never has a direct line to the implant. Every action routes through the same task queue and approval gate a human operator would use manually. That boundary is what makes the human-in-the-loop model real instead of cosmetic.
Built solo, tested on real engagements
Erebus was built by one person, then validated against non-trivial HTB engagements before this release: not synthetic benchmarks, actual operator use against boxes designed to break naive tooling. The architecture held up under that, which is the bar we cared about more than feature count.