thirteen agents · one repo · zero stand ups

A multi-agent harness generator and interactive command deck. Write one SOUL.md persona once — compile it into the native agent format for Claude Code, OpenCode, Codex, Cursor, Antigravity, Command Code, and GitHub Copilot.

Dark Magic Studios · MIT license · npm i -g @darkmagicstudios/hocus

Claude Code, OpenCode, Codex, Cursor, Antigravity, Command Code, and GitHub Copilot don't share a config format — but they've converged more than you'd expect. Each stores personas in a different path with different frontmatter keys. Maintaining the same agent across all of them means rewriting the same instructions seven times.

Skills don't need this translation layer — SKILL.md is already a shared open standard. Personas do. Hocus is the compiler for personas.

Claude Code
.claude/agents/<slug>.md

Markdown + YAML frontmatter, invoked via the Task tool or @mention.

OpenCode
.opencode/agent/<slug>.md

Same shape, different frontmatter keys (description, optional model).

Codex
.codex/agents/<slug>.toml

Native TOML custom-agent configuration; repository skills load from .agents/skills/.

Cursor
.cursor/agents/<slug>.md

Native subagent markdown format with YAML frontmatter (name, description, optional model).

Antigravity
.agents/agents/<slug>/agent.md

Native custom subagents discovered under .agents/agents/<slug>/agent.md with YAML frontmatter (name, description, tools, model, subagent: true) and Markdown system instructions.

Command Code
.commandcode/agents/<slug>.md

Markdown + YAML frontmatter; every agent gets Taste compatibility instructions baked in.

GitHub Copilot
.github/agents/<slug>.agent.md

Compiled when .github/ is present or --copilot is passed; skills mirror to .github/skills/.

Every persona is a single SOUL.md file — YAML frontmatter for metadata, markdown body for instructions. Validated against a schema before compilation. A malformed persona is rejected with the specific field that's wrong, not a cryptic compiler error three layers deep.

Rename or replace any persona — the harness doesn't care what an agent is called, only that it has a role, a voice, and a body of instructions. Toggle alternate casts on the dashboard with ?cast=valley or ?cast=occult.

SOUL.md
---
character: gilfoyle        # lowercase, hyphenated slug (stable across recasts)
display_name: Zoroaster
role: reviewer
voice: deadpan, surgically precise, contemptuous of sloppiness
glyph: "(o)"                # badge shown on dashboard and TUI
aliases:
  valley: Gilfoyle           # ?cast=valley
  occult: Zoroaster          # ?cast=wizard
triggers:
  - code review
  - pull request
  - security audit
tools: [read, grep, bash]   # optional, defaults to read/grep/glob
model: claude-sonnet-4-6    # optional
---

# Zoroaster — Reviewer

The body is the persona's actual instructions — responsibilities,
boundaries, voice. This is what gets compiled into each target's
native format.

Four commands cover the full lifecycle. Initialize once, compile when the repo changes, add personas and skills as needed, sync the dashboard often.

hocus init

Initialize

Run once in your repo. Writes AGENTS.md, CLAUDE.md, PRODUCT.md, MEMORY.md, TASKS.md, _potions/ and _spells/, copies the persona cast into .hocus/personas/, installs bundled skills and starter spells, prompts for Silicon Valley or Wizards naming convention, and spawns an interactive initialization session with the founder persona using your preferred agent CLI (claude, copilot, opencode, codex, agy, or agent).

hocus cast

Compile

Scans the repo for language and framework signals, tailors each persona with that context, and compiles native formats for every detected target — Claude Code, OpenCode, Codex, Cursor, Antigravity, Command Code, and GitHub Copilot.

hocus affix

Affix

Affix a Hocus persona soul to existing custom subagents in an established repo. CLI wizard detects existing agents across all tools, cleanly injecting persona instructions while preserving your custom configuration.

hocus add

Extend

Adds a persona or a skill to selected providers, locally or globally — hocus skill add <name> is the shorthand for a skill. Supports installing bundled skills or custom skills from local paths.

hocus sync

Refresh

Fast rebuild of dashboard.html from .hocus/personas/, _potions/ and _spells/ without recompiling agent files. Run often; run cast when the repo stack or persona instructions change.

hocus

Command Deck

Launches the interactive TUI command deck to inspect potions, spells, souls, agent topology (coven), skills (grimoire), stack scanning (scrying), and chat with agents (séance).

Alongside the persona files, hocus init scaffolds three kinds of repo artifact. A potion is a whole workflow; a spell is a single rule an agent follows while doing one; a skill is the external, tool-agnostic standard.

Potions
_potions/<potion-id>.md

Multi-step feature battle plans. The planner drafts one before any code is written — goal, acceptance criteria, assignee — and the orchestrator keeps its lifecycle status (draft → casting → sealed) and progress percentage current as work lands.

Spells
_spells/{incantations,wards,curses}/

Atomic single-purpose conventions and guardrails. Incantations are fixed output templates; wards fire an incantation automatically on lifecycle events (pre-commit, on-pr-open…); curses are hard or soft stop conditions agents must never violate.

Skills
.agents/skills/<name>/ · .claude/skills/<name>/

The shared open SKILL.md standard — no translation layer needed. One file, mirrored per tool, covers every target. 16 skills are persona-bound and renamed with the cast; generic skills (atomic-commits, graphify, harness-report) stay consistent.

Running hocus (or hocus tui) launches an interactive Terminal User Interface (TUI) command deck built for managing personas, tracking battle plans, chatting with agents, and monitoring repo compilation state. Seven tabs, switched with Tab / Shift-Tab or the number keys 1–7.

hocus — interactive command deck
Hocus TUI interactive command deck preview showing tab navigation, personas, battle plans, and agent chat
Terminal
hocus            # Launch interactive TUI deck
hocus tui        # Alias for deck launch
hocus --silent   # Launch directly, skipping the boot animation
1 · Potions

Active feature plans — in-flight specs, architectural blueprints, and step-by-step battle plans tracked in _potions/, each with a status (draft → casting → sealed) and a progress percentage.

2 · Spells

Conventions and guardrails in _spells/: incantations (output templates), wards (lifecycle hooks that fire automatically), and curses (hard or soft stop conditions).

3 · Souls

Persona inspector — browse installed SOUL.md files in .hocus/personas/, inspect metadata, voice, triggers, and frontmatter schema validation.

4 · Coven

Agent topology — parent/child hierarchy graphs, delegation structure, and orchestrator relationships.

5 · Grimoire

Skill management across .agents/skills/ and .claude/skills/ (and .commandcode/skills/ when enabled).

6 · Scrying

Automated repository stack scanner detecting languages, frameworks, and build systems, paired with live compilation status for every target tool.

7 · Séance

Agent chat deck. Tab cycles personas, Ctrl+B cycles backends (Claude, Codex, Antigravity, custom), / triggers command and skill autocomplete plus built-ins like /status and /sync, @ mentions repo files.

Hocus ships one logical cast — thirteen roles — with two naming conventions: Wizards (Merlin, Zoroaster, Roger Bacon…) and Silicon Valley (Richard, Gilfoyle, Jared…). Click any card to expand voice, triggers, and dual-cast aliases.

Choose your naming convention during hocus init or pass --cast valley / --cast wizard. The choice determines persona filenames, skill IDs, and slash commands (/merlin-draft-potion vs /richard-draft-potion). You can also migrate existing repos anytime with hocus init --cast <other>.

Active cast naming:
Terminal
npm i -g @darkmagicstudios/hocus
# or: pnpm i -g @darkmagicstudios/hocus

hocus init --name my-project   # initialize harness (--cast valley for Silicon Valley names)
hocus cast                     # compile personas into native formats for all detected tools
hocus affix                    # or affix personalities to existing custom subagents
hocus                          # launch the interactive TUI command deck

MIT license · Dark Magic Studios · github.com/dark-magic-studios/hocus