Labsco
rickyjim626 logo

missiond

from rickyjim626

Multi-agent orchestration for Claude Code - spawn and control multiple Claude instances via MCP

πŸ”₯πŸ”₯πŸ”₯βœ“ VerifiedFreeAdvanced setup

missiond

Lisp-governed local orchestration for Claude Code, Codex, Gemini, and MissionD workers β€” normalize requests, review intent and plans, dispatch BoardTasks to managed PTY slots, and close work from durable evidence.

What is missiond?

MissionD is a daemon and tool surface that turns requests into reviewed Lisp artifacts, approved plans, BoardTasks, and worker execution. The V3 control-plane authority is .missiond/v3/missiond-blueprint.lisp; generated JSON under .missiond/v3/runtime/compiled/ is the machine projection. Production runtime paths consume compiled JSON only; raw V3 Lisp source fallback is not a runtime escape hatch. Postgres is the runtime store, event log, and runtime artifact catalog; Board and PTY screens are projections over that state.

Features

Core

  • PTY Sessions β€” Spawn Claude Code in pseudo-terminals with full terminal emulation (via Alacritty terminal)
  • Semantic Parsing β€” Real-time state detection (Idle/Thinking/Responding/Confirming/Error), tool output extraction, status bar parsing, confirm dialog parsing
  • MCP Integration β€” generated tool groups exposed through Model Context Protocol and the daemon IPC bridge
  • Request/Plan Gates β€” mission_request writes request-local Lisp artifacts and requires explicit intent/plan approval before execution in human mode
  • BoardTask Dispatch β€” approved plans route through mission_task_delegate, Board claims, Autopilot, and managed PTY slots
  • V3 Compiled Contracts β€” missiond-lispc emits source-hash checked runtime config, semantic IR, contract ABI, project universe, workflow contracts, and genome projections
  • Permission System β€” Role-based tool permissions (allow/confirm/deny) with glob pattern matching
  • Cross-Platform β€” macOS, Linux, Windows; Unix domain sockets or TCP loopback IPC

Agent Lifecycle

  • Auto-Restart β€” Automatically restarts PTY slots when context window drops below 10%
  • Stuck Detection β€” Monitors JSONL activity to detect and recover stuck agents
  • Autonomous Workflow β€” Agents can work autonomously with safety guardrails and reporting back to the orchestrator

Knowledge & Memory

  • Knowledge Base (KB) β€” Postgres-backed reviewed memory and FTS/read-model projections
  • Runtime Artifact Catalog β€” cold .missiond/v3/runtime/** files stay as diagnostic caches and are indexed in runtime_artifacts for evidence views and retention governance
  • Conversation Logging β€” Ingests provider-local logs into MissionD's Postgres read models and event stream
  • Memory Extraction β€” Real-time and deep analysis pipelines that extract insights from agent conversations
  • KB Injection β€” Automatically injects relevant knowledge into agent context via MCP server instructions and UserPromptSubmit hooks

Monitoring & Dashboard

  • WebSocket API β€” Real-time PTY attach, task events, and session monitoring
  • Board UI β€” Next.js dashboard with conversation viewer, slot status, and task management
  • CC Tasks Watcher β€” Cross-session task monitoring by watching Claude Code's JSONL session files
  • PTY Screenshots β€” Render terminal state as PNG images for visual debugging

Infrastructure Tools

  • Mission Board β€” Task/kanban board with notes, hidden tasks, and skip status
  • Question Queue β€” Agents can post questions for human review instead of blocking
  • Slot History β€” Track task assignment history per slot
  • AI Router β€” Route LLM requests through configurable model backends (for KB analysis)
  • Reachability Check β€” Probe configured server health endpoints
  • OS Diagnostics β€” System resource monitoring (CPU, memory, disk)

Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     MCP      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  Claude Code    │◄────────────►│  mission-mcp β”‚
β”‚  (Orchestrator) β”‚              β””β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”˜
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                     β”‚ IPC (JSON-RPC)
                                        β–Ό
                               β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                               β”‚    missiond       β”‚
                               β”‚    (Daemon)       β”‚
                               β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
                               β”‚ β€’ Request/Plan    β”‚
                               β”‚ β€’ Board/EventBus  β”‚
                               β”‚ β€’ PTY Manager     β”‚
                               β”‚ β€’ Permission Mgr  β”‚
                               β”‚ β€’ Postgres Store  β”‚
                               β”‚ β€’ Knowledge Base  β”‚
                               β”‚ β€’ Memory Pipeline β”‚
                               β”‚ β€’ WebSocket API   β”‚
                               β”‚ β€’ CC Tasks Watcherβ”‚
                               β””β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                        β”‚ PTY
              β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
              β–Ό                         β–Ό                         β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”            β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚  slot-1   β”‚            β”‚  slot-2   β”‚            β”‚  slot-N   β”‚
        β”‚  Claude   β”‚            β”‚  Claude   β”‚            β”‚  Claude   β”‚
        β”‚  (coder)  β”‚            β”‚ (research)β”‚            β”‚ (memory)  β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

MCP Tools

Task Operations

ToolDescription
mission_submitSubmit async task to agent (with optional slotId targeting)
mission_taskBatch query submit task status
mission_askSync expert consultation
mission_statusQuery task/agent status
mission_cancelCancel running task
mission_spawnSpawn a new agent slot
mission_killKill an agent slot
mission_restartRestart an agent slot
mission_agentsList all agents and their states
mission_slotsGet slot configuration
mission_inboxCheck inbox for messages

PTY Control

ToolDescription
mission_pty_spawnStart PTY session
mission_pty_sendSend message, wait for response
mission_pty_screenGet current terminal screen
mission_pty_screenshotRender terminal as PNG image
mission_pty_confirmHandle tool confirmation dialogs
mission_pty_interruptSend Ctrl+C
mission_pty_killClose PTY session
mission_pty_statusGet session state and metadata
mission_pty_historyGet session message history
mission_pty_logsGet PTY log file contents

Knowledge Base

ToolDescription
mission_kb_rememberStore a knowledge entry
mission_kb_forgetDelete a knowledge entry
mission_kb_searchFull-text search across KB
mission_kb_getGet entry by ID
mission_kb_listList entries with filtering
mission_kb_importBulk import entries
mission_kb_discoverDiscover knowledge from infrastructure
mission_kb_gcGarbage collect stale entries
mission_kb_analyzeAI-powered KB analysis (via configurable LLM backend)

Board & Tasks

ToolDescription
mission_board_listList board tasks
mission_board_createCreate a board task
mission_board_updateUpdate a board task
mission_board_getGet task details
mission_board_deleteDelete a board task
mission_board_toggleToggle task completion
mission_board_note_addAdd a note to a task
mission_board_summaryGet board summary

Monitoring

ToolDescription
mission_cc_sessionsList all Claude Code sessions
mission_cc_tasksGet tasks for a session
mission_cc_overviewGlobal task statistics
mission_cc_in_progressAll in-progress tasks
mission_cc_trigger_swarmTrigger swarm coordination
mission_slot_historyTask assignment history per slot

Conversations & Memory

ToolDescription
mission_conversation_listList recorded conversations
mission_conversation_getGet conversation messages
mission_conversation_searchSearch conversation content
mission_memory_pendingCheck pending memory queue
mission_memory_pausePause memory extraction (with auto-resume TTL)
mission_memory_doneMark memory processing complete
mission_token_statsToken consumption statistics

Permissions

ToolDescription
mission_permission_getGet current permission policy
mission_permission_set_roleSet slot role permissions
mission_permission_set_slotSet per-slot overrides
mission_permission_add_auto_allowAdd auto-allow rules
mission_permission_reloadReload permission config

Infrastructure

ToolDescription
mission_infra_listList configured infrastructure
mission_infra_getGet infrastructure details
mission_healthDaemon health check
mission_reachabilityProbe server health endpoints
mission_os_diagnoseSystem resource diagnostics
mission_skill_listList available skills
mission_skill_searchSearch skills by keyword
mission_context_buildBuild context from skills

Question Queue

ToolDescription
mission_question_createAgent posts a question for human
mission_question_listList pending questions
mission_question_getGet question details
mission_question_answerHuman answers a question
mission_question_dismissDismiss a question

AI Router

ToolDescription
mission_router_chatRoute chat completion through configured LLM backend

Jarvis (Logging)

ToolDescription
mission_jarvis_logsQuery log center entries
mission_jarvis_traceTrace request by ID

Semantic Terminal Parsing

The daemon includes sophisticated terminal parsing for Claude Code's TUI:

  • State Machine β€” Tracks Idle, Thinking, Responding, ToolRunning, Confirming, Error, SlashMenu states with debounce
  • Confirm Dialog Parsing β€” Extracts tool name, parameters, file paths from permission prompts
  • Status Bar Parsing β€” Reads spinner state and status text from bottom lines
  • Tool Output Extraction β€” Parses both boxed (───) and inline tool outputs
  • Title Parsing β€” Monitors terminal title changes for session info
pub enum SessionEvent {
    StateChange { new_state, prev_state },
    ConfirmRequired { prompt, info },
    StatusUpdate(ClaudeCodeStatus),
    ToolOutput(ClaudeCodeToolOutput),
    TitleChange(ClaudeCodeTitle),
    TextComplete(String),
}

WebSocket API

PTY Attach

ws://localhost:9120/pty/<slot-id>

Connect to watch or interact with a PTY session in real-time. Receives terminal cell data for rendering.

Tasks Events

ws://localhost:9120/tasks

Subscribe to task lifecycle events:

  • cc_tasks_changed β€” Tasks updated
  • cc_task_started / cc_task_completed
  • cc_session_active / cc_session_inactive

Node.js Client

import { MissionControl } from '@missiond/core';

const mission = new MissionControl();
await mission.connect();  // Auto-starts daemon

// Spawn PTY session
const pty = await mission.pty.spawn('slot-1', 'claude');
pty.on('state', (state) => console.log('State:', state));
pty.on('confirm', (info) => console.log('Confirm:', info));

// Send message and wait for response
const response = await pty.send('Explain this codebase');
console.log(response);

await pty.kill();
mission.close();

Crates

CrateDescription
missiond-coreCore library: PTY management, semantic terminal parsing, task queue, knowledge base, IPC
missiond-mcpMCP server binary (mission-mcp) β€” tool definitions and JSON-RPC protocol
missiond-daemonDaemon binary (missiond) β€” main process with all subsystems
missiond-runnerClaude CLI wrapper for slot process management
missiond-attachPTY attach CLI (missiond-attach) β€” connect to running sessions
semantic-terminal-napiNode.js N-API bindings for semantic terminal parsing

Packages (npm)

PackageDescription
@missiond/coreNode.js client library with auto-daemon management
@missiond/boardNext.js dashboard for monitoring and management
@missiond/semantic-terminalNode.js semantic terminal parser

Development

# Build all crates
cargo build

# Run daemon
cargo run --bin missiond

# Run MCP server
cargo run --bin mission-mcp

# Build Node.js packages
cd packages/node-client && pnpm build
cd packages/board && pnpm build