name: maniple description: "Agent orchestration with maniple. Use when spawning or managing worker sessions, coordinating parallel work, or using git worktrees for multi-agent workflows." user-invocable: false
maniple — Agent Orchestration
maniple is an MCP server that lets you spawn and manage teams of coding agent sessions (Claude Code or Codex). Each worker gets their own terminal pane, optional git worktree, and can be assigned pebbles issues.
Why Use maniple?
- Parallelism: Fan out work to multiple agents working simultaneously
- Context isolation: Each worker has fresh context, keeps coordinator context clean
- Visibility: Real sessions you can watch, interrupt, or take over in the terminal
- Git worktrees: Each worker gets an isolated branch for their work
Prerequisites
- macOS with iTerm2 (Python API enabled) or tmux
- maniple MCP server configured and running
Roles: Coordinator vs Implementer
As a coordinator (the typical role when using maniple):
- Break down work into tightly scoped pebbles issues with dependencies
- Spawn workers for implementation — do NOT implement code yourself
- Review worker output before merging
- Your job is planning, delegation, and integration
As an implementer (spawned by maniple to do work):
- Execute ONLY the assigned task
- Do NOT spawn additional workers or reorganize project structure
- Do NOT go beyond the scope of your assigned issue
- Commit your work to your branch and report completion
- If blocked, say so clearly — don't improvise a workaround
Core Tools
All maniple tools are available as MCP tools prefixed with mcp__maniple__.
Spawning Workers
Use mcp__maniple__spawn_workers with a workers list:
{
"workers": [{
"project_path": "/path/to/repo",
"bead": "pb-123",
"annotation": "Fix auth bug",
"skip_permissions": true,
"worktree": {"branch": "pb-123-fix-auth", "base": "main"}
}]
}
Worker config fields:
project_path: Required. Path to the repository.bead: Pebbles issue ID. Worker will follow the pebbles workflow for this issue.annotation: Task description (shown on badge, used in branch name).prompt: Additional instructions. If no bead, this is their full assignment.skip_permissions: Always settrue— workers need write access.worktree: Branch configuration.branchis the new branch name,baseis what to branch from.name: Optional worker name (auto-assigned from themed sets if omitted).agent_type:"claude"(default) or"codex"for Codex workers.
Layout options (passed as layout parameter):
"auto": Reuse existing maniple windows (default)"new": Create fresh window
Listing Workers
Use mcp__maniple__list_workers. Optionally pass status_filter ("spawning", "ready", "busy", "closed") or project_filter.
Messaging Workers
Use mcp__maniple__message_workers:
{
"session_ids": ["WorkerName"],
"message": "Please also add unit tests"
}
Reading Worker Logs
Use mcp__maniple__read_worker_logs:
{
"session_id": "WorkerName",
"pages": 2
}
Checking Worker Status
Quick non-blocking poll with mcp__maniple__check_idle_workers:
{
"session_ids": ["Worker1", "Worker2"]
}
Blocking wait with mcp__maniple__wait_idle_workers:
{
"session_ids": ["Worker1", "Worker2"],
"mode": "all",
"timeout": 600
}
Closing Workers
Use mcp__maniple__close_workers:
{
"session_ids": ["Worker1", "Worker2"]
}
After closing, the worktree is removed but the branch and commits are preserved. Review and merge before deleting the branch.
Recovering After Server Restart
If the MCP server restarts, it loses track of running workers:
- Find orphaned sessions with
mcp__maniple__discover_workers - Re-adopt a discovered session with
mcp__maniple__adopt_worker(passiterm_session_idortmux_pane_id)
Codex workers cannot be rediscovered after a server restart. Spawn new ones if needed.
Workflow: Single Issue
Create the pebbles issue first:
pb create --title="Add OAuth2 endpoint" --type=task --priority P1 pb syncSpawn a worker using
mcp__maniple__spawn_workerswith the issue ID asbead,skip_permissions: true, and the repo path.Monitor using
mcp__maniple__check_idle_workersandmcp__maniple__read_worker_logs.Review, merge, close:
- Close the worker with
mcp__maniple__close_workers - Review the worker's branch commits
- Cherry-pick or merge into the target branch
- Delete the worker branch:
git branch -D <worker-branch>
- Close the worker with
Workflow: Parallel Fan-Out
Spawn multiple workers in a single
mcp__maniple__spawn_workerscall with multiple entries in theworkerslist, each with their ownbeadandannotation. Uselayout: "new"for a fresh window.Wait for all to complete with
mcp__maniple__wait_idle_workersusingmode: "all".Review each, merge, close.
Worktree Integration
Workers with worktrees get isolated branches. The worktree lifecycle:
- Spawn: Worktree created at
<repo>/.worktrees/<branch-name>/ - Work: Agent commits to the worktree's branch
- Close: Worktree directory removed, but branch + commits preserved
- Merge: Coordinator reviews and cherry-picks or merges to parent branch
- Cleanup:
git branch -D <worker-branch>after merging
Epic worktree pattern: Epics get their own worktree. Child tasks are incorporated into the epic's worktree via cherry-pick.
Best Practices
- Always assign pebbles issues — gives workers clear scope and tracks progress
- Commit issues before spawning — worktrees are created from committed state
- Use
skip_permissions: true— workers need file write access - Don't implement as coordinator — spawn workers instead
- Review before merging — check worker branches, run tests
- Close workers when done — cleans up worktrees
- Cherry-pick over merge — for incorporating worktree work into parent branches
Configuration
Default settings live in ~/.maniple/config.json.
# Server logs
tail -f ~/.maniple/logs/stdout.log
tail -f ~/.maniple/logs/stderr.log