Daemon
Continuous autonomous operation mode.
Install
npx skills add SethGammon/Citadel --skill daemon -g -a claude-code -y- Repository
- SethGammon/Citadel927
- Category
- AI and agents
- Updated
- 5d ago
- License
- MIT
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- No, instructions only
What it does
Continuous autonomous operation mode. Keeps campaigns running 24/7 by chaining Claude Code sessions via RemoteTrigger. Each session picks up from the campaign's continuation state, works until context runs low or the phase completes, then schedules the next session. Auto-stops on campaign completion or budget exhaustion. The thing that makes Citadel run overnight.
/daemon -- Continuous Autonomous Operation
Architecture, daemon.json field reference, and rationale: docs/DAEMON.md.
Orientation
Use when: running campaigns overnight or unattended -- chains sessions automatically until a ceiling or budget is hit. Don't use when: a single autonomous session is enough (use /archon); you want manual control between cycles (use /loop).
Default execution path (READ FIRST)
/daemon start does NOT call RemoteTrigger by default. The local runner is the default. Only pass --remote to use Anthropic's routine system, and only after explicit user confirmation.
Why: RemoteTrigger counts against the account-wide 15 routine runs / 24h cap. A single overnight run can exhaust the quota and pause every other routine on the account (including unrelated ones). See docs/ROUTINE-QUOTA.md.
Default flow, /daemon start (no --remote flag)
- Do Steps 1, 2, and 4 below (validate, check existing, write
daemon.json). - Skip Step 3, do NOT create any
RemoteTrigger. LeavechainTriggerIdandwatchdogTriggerIdasnullin the state file. - Instead of Step 5's trigger-confirmation, output the local-runner instructions (full text: docs/DAEMON.md#local-runner-default): the state file path, campaign, and budget, then:
To start the tick loop, run in a separate terminal: npm run daemon:local Leave that terminal open. It spawns `claude --permission-mode default -p "/do continue"` each session, respects daemon.json status, and consumes zero Anthropic routine quota. Stop with Ctrl+C or `/daemon stop`. For true unattended background operation (machine sleeps, user away): /daemon start --remote (uses RemoteTrigger, counts against 15/day cap)

