By nhangen
Autonomous CEO agent for Claude Code. Reads your Obsidian vault, prioritizes work, dispatches 6 specialized subagents, and learns from corrections via playbooks and training files.
List available agent roles and recent delegation history. Triggers on "/ceo:agents", "show agents", "delegation history", "who can I delegate to", "list agents".
Generate a morning briefing summarizing priorities, open PRs, pending approvals, and relevant questions. Triggers on "/ceo:brief", "morning brief", "daily brief", "what's on my plate".
Hand off a task to the CEO agent for execution. Triggers on "/ceo:delegate", "ceo do this", "hand this off", "delegate this".
Show the CEO's execution log for today or a specified date. Triggers on "/ceo:log", "what did the ceo do", "show ceo log", "ceo activity".
Read the vault and today's report, open a triage conversation. Triggers on "/ceo", "what should I work on", "prioritize my work".
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Autonomous CEO agent for Claude Code. Reads your Obsidian vault, dispatches specialized subagents, runs scheduled playbooks, and gates writes by authority tier.
A solo operator has more domains than hours: code repos, research, ops, career, personal. Day-to-day, most of the work isn't doing — it's deciding what to do next, where you left off, and what's safe to ship without you. claude-ceo reads your Obsidian vault (the source of truth), runs prioritized scans on a cron schedule, and proposes work in tiers: read-only digests run automatically, low-stakes writes execute with a report, high-stakes actions queue for approval.
Cron / interactive trigger
│
▼
ceo-cron.sh ──► ceo-config.sh (resolve $CEO_VAULT)
──► ceo-gather.sh (pre-gather context → env)
──► ceo-scan.sh (vault diff)
──► ~/.ceo/registry.json (host-local dispatch lookup)
──► preflight_<name>()
──► runner:
• claude (default) — read tier = single call,
write tiers = PLAN/FILTER/EXECUTE
• script — deterministic shell, no LLM
──► ceo-report.sh (flock-guarded append)
Output: CEO/reports/YYYY-MM-DD.md
State: CEO/log/, CEO/approvals/, CEO/cache/
Playbooks self-register: ceo playbook scan walks CEO/playbooks/*.md, extracts each frontmatter block via yq, and rewrites the host-local ~/.ceo/registry.json. Scheduling is owned by the ceo-schedulerd daemon (which reads that registry) — scan does not touch the crontab.
Skills under skills/ceo/agents/ define six specialized subagents the CEO can dispatch for domain-specific work. Each declares its authority and domain scope; high-stakes actions (push, publish, send) are always returned as drafts.
| Subagent | Authority | Domains | Use for |
|---|---|---|---|
analyst | read + reports | Career, Academics, all | Evaluating options, thesis planning, cost-benefit, tool comparison |
code-reviewer | read + draft (post is high-stakes) | Awesome Motive, any code repo | PR review — diff analysis, CI check, draft comments |
implementer | read + low-stakes write | Awesome Motive, any code repo | Bug fix — branch, commit, test; push/PR returned as recommendation |
ops-manager | read + low-stakes write | NRX Research | Inventory, hiring pipeline, SOP execution, runbook compliance |
researcher | read only | Academics, Career, NRX Research, any | Vault / web / claude-mem / academic source investigation |
writer | read + draft | Career, Academics, NRX Research, Personal | LinkedIn posts, cover letters, emails, academic writing, docs |
Active playbooks shipped with the plugin (live in docs/playbooks/; copy into $CEO_VAULT/CEO/playbooks/ to enable, then ceo playbook scan):
| Playbook | Trigger | Tier | Runner | Purpose |
|---|---|---|---|---|
morning-brief | 50 8 * * 1-5 | read | claude | Prioritized day overview — PR queue, top-3 tasks, blessings |
morning-scan | 57 8 * * 1-5 | read | claude | Vault-diff digest of overnight changes |
inbox | every 15 min | read | claude | Process unchecked items in CEO/inbox.md and CEO/inbox/<host>.md (preflight-gated) |
pr-triage | 03 10 * * 1-5 | read | claude | Surface PRs needing review |
pending-drip | daily | read | claude | Drip reminders from Pending.md into CEO/inbox/<host>.md |
eod-summary | 47 17 * * 1-5 | read | claude | Recap if there are log entries after 4pm |
cleanup | weekly | low-stakes-write | claude | Branch / worktree hygiene |
token-intake | 45 8 * * 1-5 | read | script | Run ceo-token-intake.sh — token-scope snapshot to vault |
tier: read runs a single claude --print --max-turns 5 --disallowedTools Bash,Write,Edit call with pre-gathered context injected as <external-data> blocks. tier: low-stakes-write and above use the three-phase PLAN → FILTER → EXECUTE pipeline; high-stakes actions are written to CEO/approvals/pending.md instead of executed.
A playbook can declare runner: script to dispatch a shell script directly, skipping the LLM call entirely (token-intake is the canonical example). The script receives CEO_VAULT, CEO_DIR, LOG_DIR, TODAY, NOW, TRIGGER as env vars; the dispatcher does not parse stdout. Exit code 0 = success.
A playbook can also declare bin: <script>.sh in frontmatter to expose itself as a shell command: ceo playbook scan creates a ~/.local/bin/<name> symlink to that script and removes stale ones when the playbook is deleted or set inactive. ceo doctor warns when a declared bin symlink is missing.
Interactive triage from a Claude Code session:
/ceo
Reads today's report, walks the vault, and proposes prioritized actions in tier order.
npx claudepluginhub nhangen/claude-ceo --plugin ceoSource-grounded project glossary: auto-invokes on unfamiliar terms in registered repos, plus build (seed) and maintain (drift-check) operations.
Auto-summarize and compact when context fill crosses thresholds. Keeps live conversation under 40% by leaning on claude-mem + Obsidian as the durable layer.
Dispatch long-running research tasks to the Manus AI agent platform from Claude Code via slash command. On-demand polling plus SessionStart hook that surfaces newly-completed tasks on the next session, optional Obsidian filing, explicit-invocation cost gating.
Causal tracing layer over claude-mem. Extracts informed_by edges from observation narratives to trace what led to what. 6 MCP tools, 10 edge types.
Scans markdown documentation files against actual behavioral data to find what's missing. Recommends additions to CLAUDE.md, rules, memory, and skills.
Second Brain OS — 16 skills for knowledge management, deep thinking, and vault operations powered by Obsidian.
Create and edit Obsidian vault files including Markdown, Bases, and Canvas. Use when working with .md, .base, or .canvas files in an Obsidian vault.
GTD workflow automation for Obsidian vaults: capture, triage, route, focus
Persistent Obsidian-based memory for coding agents. Automatically orients from a knowledge vault at session start, navigates project architecture via graph traversal, and writes discoveries back to the vault.
Queue-based personal workflow assistant. Captures decisions, commitments, ideas, and session data via ultra-fast hooks (< 50ms), processes them in a background worker with AI extraction, and syncs to Obsidian vault. Replaces my-workflow with zero-latency capture architecture.
Set up or upgrade an AI-powered Obsidian vault with journaling, knowledge graphs, pattern recognition, and meeting workflows. Includes skills for daily journaling, weekly insights, graphify knowledge graphs, humanizer, and more.