deleg8

deleg8

Enables Claude Code to delegate work to persistent oh-my-pi (omp) subagents via an MCP server with 7 tools (spawn, send, output, status, list, stop, prune), wrapping omp RPC mode with enforcement hooks for descriptive agent naming, model configuration, denylists, write-scope ownership, and cooperative locking.

Category
Visit Server

README

deleg8 — Persistent omp Subagents Plugin

Makes oh-my-pi persistent subagents the default delegation mechanism in Claude Code. Bundles the deleg8 MCP server, an enforcement hook, and a skill that teaches the orchestrator when and how to use persistent subagents instead of bare task() calls.

Components

Component Purpose
MCP server deleg8 — wraps omp --mode rpc as named, persistent subagents (7 tools: spawn, send, output, status, list, stop, prune)
Hook PreToolUse on task — blocks bare/unnamed task() spawns; forces descriptive agent_id via deleg8
Skill deleg8 — teaches the orchestrator when deleg8 beats native subagents, with workflow patterns and jq output discipline

Install

cc --plugin-dir ~/projects/deleg8

Or install from the project:

cd ~/projects/deleg8
cc --plugin-dir .

Prerequisites

  • Bun ≥ 1.1.0 (brew install bun or curl -fsSL https://bun.sh/install | bash)
  • omp on PATH (or set OMP_BIN in settings)
  • Dependencies installed: bun install

Configuration

Create .claude/deleg8.local.md in your project (or ~/.claude/ for global):

---
omp_bin: /opt/homebrew/bin/omp
default_model:
  provider: deepseek
  modelId: deepseek-v4-pro
---
Field Default Description
omp_bin omp (PATH lookup) Path to omp binary
default_model.provider deepseek Model provider for deleg8 agents
default_model.modelId deepseek-v4-pro Model ID for deleg8 agents

Usage

Once installed, the skill loads on phrases like "fan out", "parallelize", "waves", "delegate", "subagents", or when the orchestrator considers spawning a bare task().

Basic fan-out:

spawn(agent_id="compiler", initial_prompt="Build the auth module")
spawn(agent_id="tester", initial_prompt="Write tests for auth", background=true)

Multi-turn refinement:

spawn(agent_id="impl", initial_prompt="Implement payment processor")
→ review output
send(agent_id="impl", message="Add retry logic for timeout failures")

Full workflow patterns: see the deleg8 skill output or references/when-to-use.md in the skill directory.

MCP Tools

Tool Purpose
spawn Launch a new omp agent with optional initial prompt
send Send follow-up to existing agent (auto-resumes idle agents)
output Read buffered frames — digest/summary/raw with jq projection
status Check one agent's state (running/idle/dead)
list Snapshot of all registered agents
stop Abort, terminate, remove from registry
prune Drop dead/idle agents from registry

Spawn Parameters (New in v0.2)

The spawn tool now supports these enforcement parameters:

Parameter Type Description
denylist string[] Regex patterns over tool commands. Prompt-level constraints + real-time violation monitoring. Note: omp runs Bash/Read/Edit internally — deleg8 cannot intercept before execution.
own string[] Glob patterns limiting write scope. Same injection + monitoring pattern. Same architectural constraint as denylist.
preamble string Shared context block every spawned agent receives before its prompt.
fallback_model {provider, modelId} If the primary model fails to apply (e.g. budget exceeded), try this one.
idle_ttl number (ms) Auto-reap idle agents after N ms of inactivity (registry-level, 0 = off).
dead_ttl number (ms) Auto-reap dead agents after N ms (registry-level, 0 = off).
exclusive {pattern, wait}[] Cooperative agent protocol — agents acquire/release locks via host tools. Voluntary: agents must call exclusive_acquire/exclusive_release.

Usage example:

spawn(
  agent_id="builder",
  initial_prompt="Compile the .csproj",
  denylist=["git (stash|checkout)", "dotnet test"],
  own=["src/**", "*.csproj"],
  preamble="Friflo: Tags getter returns a struct copy — use AddTag/RemoveTag",
  idle_ttl=300_000,
  exclusive=[{pattern: "dotnet build", wait: true}]
)

Host tools available to agents:

  • exclusive_acquire(pattern) — acquire an exclusive command lock
  • exclusive_release(pattern) — release an exclusive command lock
  • msg(text) — send IRC message back to orchestrator
  • task_create(label, note?) — create sub-task visible to orchestrator
  • task_update(task_id, status?, note?) — update sub-task status

Enforcement Hook

The PreToolUse hook on task evaluates every subagent spawn:

  • Allows: explore subagents (read-only scouting), tasks with descriptive role fields
  • Blocks: Bare task("do X") calls, unnamed/generic subagents
  • Blocked message: "Bare task() is banned. Use deleg8: spawn(agent_id='descriptive-name', initial_prompt='...')"

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured