Introduction
Actana Control is a self-hosted control plane for agentic coding. One web Panel drives any number of Cores — machines that run vendor coding CLIs (Claude Code, Codex, Cursor CLI, OpenCode) in PTY sessions against git repos that never leave that machine.
MIT licensed. Source lives at github.com/actana/control; images are actana/panel and actana/core on Docker Hub. npm view @actana/cli version prints the current release; pin both images to it with ACTANA_TAG.
flowchart LR
B["Browser"] -- panel-link --> P["Panel"]
P -- "core-link (mTLS)" --> C1["Core"]
P -- "core-link (mTLS)" --> C2["Core"]
C1 --> H1["PTY / Harness / repo"]
C2 --> H2["PTY / Harness / repo"]
The Panel is a connection broker: Core registry, Operator login, and presentation. It holds no project or session state. Each Core owns its SQLite, PTYs, and files. The Panel dials the Core; the Core never dials back.
In this section
- Concepts — Panel, Core, Harness, Operator, and the rest of the vocabulary
- How it works — who dials whom, and who owns which state
- Security and privacy — repos stay on the Core; auth; what phones home
The wire-level detail lives in Architecture. Start on a machine with Get started.