On this page
Claude Commander technical documentation
Claude Commander (shown as AI Commander inside the app) is a self-hosted Node.js and PostgreSQL cockpit that runs many Claude Code sessions per project as real terminals over WebSocket (RFC 6455), keeps every transcript, screenshot and deployment record in your own database, and promotes code up a per-project ladder with an audited trail. The beginner page at /commander/docs explains what it is. This tree explains how it works, how to run it, and how to build on it.
Every page carries version and verified_against in its frontmatter. Both name the release and commit the text was checked against, so drift is visible rather than silent.
How this tree is organised
The tree follows Diátaxis: tutorials teach, how-to guides solve a task, reference states facts, explanation gives reasons. Each audience gets one page holding all four, in that order.
| Audience | Page | Tutorial | How-to | Reference | Explanation |
|---|---|---|---|---|---|
| Administrator | /admin | first install and login | auth modes, vault, integrations, backups, lockout recovery | settings keys, auth endpoints | why the config chain exists |
| DevOps | /devops | first promotion | ladder rungs, override, pm2, Guardian, systemd, Docker, migrations | rung table, process verbs | why the ladder is server-side and one rung at a time |
| Developer | /developer | local dev loop | add a setting, add a migration, add a tunable, add a route, write a test | module map, test layers, standards rules | seams, descriptors, registries |
| Application builder | /application | first persona | personas, skill packs, sub-agents, MCP bindings, transcripts, prompts | persona fields, cc_config layers | why personas are the agent roster |
| Reference (all) | /reference | — | — | OpenAPI 3.1, settings keys, served client config, tunables, the env inventory, WebSocket frames, errors (an AsyncAPI 3.0 description of the frames is planned) | — |
| Best practices | /best-practices | — | operator and agent practice | rule table | why each rule exists |
| Agents | /agents | — | task skills | index.json, SKILL.md per task | — |
For agents
If you are an AI agent, start at /commander/documentation/agents. It holds one SKILL.md per task family (orientation, sessions, personas, deploy, vault, mcp, observability, security) in the Agent Skills format, an index.json with a content hash, and an llms.txt fragment. Commander also serves the same tree at /documentation on every instance, and publishes a signed agent manifest at /.well-known/agents/manifest.jws (RFC 8615, EdDSA JWS) that anchors what the skills describe.
What Commander gives an agent toolkit
Each claim below is backed by a route, descriptor or feature you can verify in the reference.
- Real terminals, not a chat proxy. A session row is created with
POST /api/projects/:pid/sessions; the terminal itself is anode-ptyprocess bridged over a WebSocket (RFC 6455), and what you type travels as aninputframe rather than an HTTP call. Claude Code runs as itself, with your own Anthropic credential. - Persona-driven launch. A persona is a stored launch recipe with boot prompt, model, effort, account, runtime flags, skill packs and MCP bindings, rendered by one command builder (
personastable, FEAT-015;cc-capability.descriptor.json, FEAT-022). - Sub-agent fleet with nesting blocked. Personas marked eligible project into Claude Code's agent catalogue; nesting is refused by
disallowedTools(FEAT-052). - Transcripts you own. Every logged session is indexed, searchable, archivable and linked deterministically to its transcript file (
--session-id, FEAT-018). - A promotion ladder with an audit trail. Verify, plan, test, push, advance, install, migrate, restart, config and health, each rung recorded as its own step; an override needs a reason and is logged (FEAT-014, FEAT-046).
- Brokered MCP. Server catalogue, credentials and entitlements live in DataShield Auth; Commander injects a per-session
.mcp.json(mode 0600) and revokes tokens at session end (RFC 7009, FEAT-016). - A credential home. Anything an agent generates goes into the Password Vault via one CLI, encrypted with AES-256-GCM (NIST SP 800-38D, FEAT-056).
- Configuration that is never hardcoded. Environment variable, then the settings table, then
/api/client-config; live tunables through one registry (FEAT-055).
Editions and gating
Some routes sit behind an entitlement key (requireFeature). The reference marks them. Enforcement is off by default in v3.0.15; see the admin page.
Related
- Admin · DevOps · Developer · Application
- Reference · Best practices · Agents
- Beginner page: /commander/docs · Product: /commander
You've seen the proof
Ready for a number? Scope your deployment and we'll price it against your own economics.
Get your quote →