@meta
  v: 1
  route: /
  generated: 2026-05-13T18:30:25.752Z
  ttl: 1h
  auth: session(anon:anon)

@intent
  purpose:    An agentic coding harness for the coding agents (Claude Code, Codex) you already pay for. A basic orchestrator — bash + Bun + tmux + launchd — that runs on the user's hardware, spawns parallel dev-team coding workers in tmux, supervises them with a watchdog + runtime claim verifier, and persists context via three-tier memory. No API tokens, no SaaS.
  audience:   developer, ai-agent-operator, msp, agency
  capability: install, learn, evaluate, contribute

@state
  project_name: subctl
  tagline: An agentic harness for the AI subscriptions you already pay for.
  license: MIT
  cost_usd: 0
  telemetry: false
  self_hosted: true
  repo_url: https://github.com/webdevtodayjason/subctl
  current_version: 2.6.2
  runtime[4]: bun, tmux, node>=20, LM Studio (recommended for master)
  supported_providers[2]: claude (anthropic), codex (openai)
  install_command: curl -fsSL https://subctl.com/install | bash
  architecture:
    master_daemon:
      binary: subctl master (launchd-managed Bun process)
      default_model: LM Studio local (qwen3-coder-30b recommended)
      escalation_models[2]: Anthropic Opus 4.7, Anthropic Sonnet 4.6
      tools_total: 50+
      tool_families: 13
      always_on: true
    dev_team_workers:
      runtime: "tmux sessions, one per task"
      skills_preloaded[3]: subctl, autonomy, orchestrator-mode
      account_isolation: per-alias CLAUDE_CONFIG_DIR / CODEX_HOME
    memory_tiers{tier_1,tier_2,tier_3}: "user.md + memory.md always injected (~3500 char budget). Fast, durable, operator-editable.",claude-mem semantic search over every dev-team observation.,"Obsidian vault for specs, decisions, RESUME files. Rendered in-page (read-only viewer) with wikilinks, embeds, callouts. Edit-in-browser and canvas are Phase 3q (planned)."
    input_channels[5]: dashboard chat (SSE), Telegram bot (bidirectional with auto-relay), CLI prompt (subctl master prompt), scheduled self-prompts (schedule_followup), inbox events from dev-team workers
  differentiators[3]: runtime claim verifier — re-prompts the model when it makes unbacked claims; 5 rules; gaps logged to decisions.jsonl, "persistent local-hardware orchestrator — launchd-managed Bun daemon, local LM Studio supervisor by default; cloud is escalation only; no SaaS, no telemetry", "parallel coding agents as first-class entities — NVR-style 2 Hz camera grid over every dev-team tmux pane, name-addressed dispatch (CLI / HTTP / master-tool / Telegram), 3-min watchdog with auto-prune of dead sessions, account-aware dispatcher picking the healthiest of multiple Claude/Codex accounts at spawn"
  features[15]: persistent conversational master daemon (subctl master), "parallel coding-agent dev teams in tmux, spawned on demand, per-account isolated", three-tier memory (md tier-1 / claude-mem tier-2 / Obsidian vault tier-3), runtime claim verifier (Argent-style) — corrects unbacked promises, self-scheduling (schedule_followup tool gated by verifier), watchdog ticks every 3 min; staleness threshold 15 min default; dead sessions auto-pruned, auto-compact every 5 min when context > 90% of supervisor window, multi-team NVR-style camera view in dashboard, "personality presets (7 voices, hot-swap)", "document attachments in chat (drag-drop, paperclip, >4KB auto-attach; text/markdown/code only — PDF & image are roadmap)", "multi-channel I/O: dashboard chat, Telegram, CLI, scheduled, inbox", "multi-account dispatch — radar picks healthiest Claude account at spawn (live /api/oauth/usage verdict); Codex dispatch ships, full per-account utilization parity is in progress", MCP server with native tools for Claude Code workers, uses your existing Claude Pro/Max/Team + ChatGPT Pro subscriptions — drives the official `claude` and `codex` CLIs; no API tokens, "zero telemetry, zero SaaS, MIT licensed"
  dashboard:
    url: http://127.0.0.1:8787
    tabs[13]: Chat, Orchestration, Dashboard, Projects, Teams, Claude Sessions, Models, Providers, Memory, Vault, Skills, Live Logs, Settings
    transport: HTTP + SSE; auto-proxies /api/master/* to the master daemon
  verifier:
    style: Argent-style claim verifier
    triggers[5]: future check-in times (must call schedule_followup), asserted team statuses (must call read_pane or msg_team), host/environment facts (must call run_shell or doctor), sent-message claims (must call telegram_send / chat reply), decision-logged claims (must call decisions_log_append)
    cap: 2 corrections per turn; on giveup the gap is logged to decisions.jsonl
  persistence{master_state,followups,memory_tier_1,memory_tier_3}: launchd survives reboots; transcript persists,survive daemon restart,"operator-editable, injected on every turn",Obsidian vault on disk (~/Obsidian/<vault>/)

@actions
  - id: install
    method: GET
    href: https://subctl.com/install
  - id: view_source
    method: GET
    href: https://github.com/webdevtodayjason/subctl
  - id: read_master_doc
    method: GET
    href: https://github.com/webdevtodayjason/subctl/blob/main/docs/master.md
  - id: report_issue
    method: GET
    href: https://github.com/webdevtodayjason/subctl/issues/new

@context
  > subctl is a basic orchestrator for parallel coding agents — Claude Code and Codex driven through their official CLIs against your existing Claude Pro/Max/Team and ChatGPT Pro subscriptions. No API tokens; subctl is the control plane for OAuth-via-subscription, not API-key auth. Two layers ship together: the 1.x substrate (multi-account dispatch, rate-limit radar, MCP surface for Claude Code workers) and the 2.x agentic-coding harness on top (master daemon, three-tier memory, runtime claim verifier, watchdog with auto-prune, personality presets, vault viewer, multi-team NVR-style camera view). The master runs persistently under launchd, talks to a local LM Studio model by default, and escalates to cloud only on explicit operator action. Free, MIT, self-hosted on the user's box.

@nav
  self:      /.agent
  peers:     [/features.agent, /architecture.agent, /install.agent, /roadmap.agent, /faq.agent]
