{"id":"72689f56-5b13-4b4e-b678-0c63f95f5dfe","entityType":"agent","slug":"clawhub-jalehman-claude-team","name":"Claude Team","canonicalUrl":"https://www.xpersona.co/agent/clawhub-jalehman-claude-team","canonicalPath":"/agent/clawhub-jalehman-claude-team","generatedAt":"2026-10-09T18:32:52.754Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"description":"Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work. Skill: Claude Team Owner: jalehman Summary: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work. Tags: latest:1.5.0 Version history: v1.5.0 | 2026-01-05T22:48:41.243Z Fixed plist: executable is claude-team not claude-team-mcp v1.4.0 | 2026-01-05T22:46:23.790Z Fixed plist","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 4.1K downloads reported by the source. Last updated 4/15/2026.","installCommand":"clawhub skill install kn7225r761s3scn2kv93fyek617yme1y:claude-team","sourceUrl":"https://clawhub.ai/jalehman/claude-team","homepage":"https://clawhub.ai/jalehman/claude-team","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/jalehman/claude-team","kind":"source"}],"safetyScore":84,"overallRank":62,"popularityScore":66,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, a"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No protocol or capability metadata is available."},"protocols":[],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":0,"capabilityMatrix":{"rows":[],"flattenedTokens":""}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"stars":null,"forks":null,"downloads":4082,"packageName":null,"latestVersion":"1.5.0","tractionLabel":"4.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-02-28T17:34:01.251Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T00:45:39.800Z","lastCrawledAt":"2026-02-28T17:34:01.251Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-01T17:34:01.251Z","lastVerifiedAt":null,"highlights":[{"version":"1.5.0","createdAt":"2026-01-05T22:48:41.243Z","changelog":"Fixed plist: executable is claude-team not claude-team-mcp","fileCount":3,"zipByteSize":6197},{"version":"1.4.0","createdAt":"2026-01-05T22:46:23.790Z","changelog":"Fixed plist to use uvx from PyPI instead of requiring local git clone","fileCount":3,"zipByteSize":6198},{"version":"1.3.0","createdAt":"2026-01-05T22:40:16.367Z","changelog":"Fixed HTTP mode docs: correct mcporter.json path, config format (mcpServers), lifecycle: keep-alive, removed non-existent mcporter serve command","fileCount":null,"zipByteSize":null},{"version":"1.2.0","createdAt":"2026-01-05T22:25:38.056Z","changelog":"Refactored to reference bundled setup.sh instead of inline assets","fileCount":null,"zipByteSize":null},{"version":"1.1.0","createdAt":"2026-01-05T22:13:21.427Z","changelog":"Added launchd setup assets: plist template + setup.sh script","fileCount":null,"zipByteSize":null},{"version":"1.0.1","createdAt":"2026-01-05T22:12:22.354Z","changelog":"Test assets","fileCount":null,"zipByteSize":null},{"version":"1.0.0","createdAt":"2026-01-05T22:07:52.330Z","changelog":"Initial release - HTTP mode, launchd integration, cron monitoring","fileCount":null,"zipByteSize":null}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install kn7225r761s3scn2kv93fyek617yme1y:claude-team","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":[]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-09T18:32:52.753Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-jalehman-claude-team/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":null},"readme":"Skill: Claude Team\n\nOwner: jalehman\n\nSummary: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work.\n\nTags: latest:1.5.0\n\nVersion history:\n\nv1.5.0 | 2026-01-05T22:48:41.243Z\n\nFixed plist: executable is claude-team not claude-team-mcp\n\nv1.4.0 | 2026-01-05T22:46:23.790Z\n\nFixed plist to use uvx from PyPI instead of requiring local git clone\n\nv1.3.0 | 2026-01-05T22:40:16.367Z\n\nFixed HTTP mode docs: correct mcporter.json path, config format (mcpServers), lifecycle: keep-alive, removed non-existent mcporter serve command\n\nv1.2.0 | 2026-01-05T22:25:38.056Z\n\nRefactored to reference bundled setup.sh instead of inline assets\n\nv1.1.0 | 2026-01-05T22:13:21.427Z\n\nAdded launchd setup assets: plist template + setup.sh script\n\nv1.0.1 | 2026-01-05T22:12:22.354Z\n\nTest assets\n\nv1.0.0 | 2026-01-05T22:07:52.330Z\n\nInitial release - HTTP mode, launchd integration, cron monitoring\n\nArchive index:\n\nArchive v1.5.0: 3 files, 6197 bytes\n\nFiles: assets/setup.sh (1646b), SKILL.md (12868b), _meta.json (130b)\n\nFile v1.5.0:SKILL.md\n\n---\nname: claude-team\ndescription: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work.\nhomepage: https://github.com/Martian-Engineering/claude-team\nmetadata: {\"clawdbot\":{\"emoji\":\"👥\",\"os\":[\"darwin\"],\"requires\":{\"bins\":[\"mcporter\"]}}}\n---\n\n# Claude Team\n\nClaude-team is an MCP server that lets you spawn and manage teams of Claude Code sessions via iTerm2. Each worker gets their own terminal pane, optional git worktree, and can be assigned beads issues.\n\n## Why Use Claude Team?\n\n- **Parallelism**: Fan out work to multiple agents working simultaneously\n- **Context isolation**: Each worker has fresh context, keeps coordinator context clean\n- **Visibility**: Real Claude Code sessions you can watch, interrupt, or take over\n- **Git worktrees**: Each worker can have an isolated branch for their work\n\n## ⚠️ Important Rule\n\n**NEVER make code changes directly.** Always spawn workers for code changes. This keeps your context clean and provides proper git workflow with worktrees.\n\n## Prerequisites\n\n- macOS with iTerm2 (Python API enabled: Preferences → General → Magic → Enable Python API)\n- claude-team MCP server configured in `~/.claude.json`\n\n## Using via mcporter\n\nAll tools are called through `mcporter call claude-team.<tool>`:\n\n```bash\nmcporter call claude-team.list_workers\nmcporter call claude-team.spawn_workers workers='[{\"project_path\":\"/path/to/repo\",\"bead\":\"cp-123\"}]'\n```\n\n## Core Tools\n\n### spawn_workers\n\nCreate new Claude Code worker sessions.\n\n```bash\nmcporter call claude-team.spawn_workers \\\n  workers='[{\n    \"project_path\": \"/path/to/repo\",\n    \"bead\": \"cp-123\",\n    \"annotation\": \"Fix auth bug\",\n    \"use_worktree\": true,\n    \"skip_permissions\": true\n  }]' \\\n  layout=\"auto\"\n```\n\n**Worker config fields:**\n- `project_path`: Required. Path to repo or \"auto\" (uses CLAUDE_TEAM_PROJECT_DIR)\n- `bead`: Optional beads issue ID — worker will follow beads workflow\n- `annotation`: Task description (shown on badge, used in branch name)\n- `prompt`: Additional instructions (if no bead, this is their assignment)\n- `use_worktree`: Create isolated git worktree (default: true)\n- `skip_permissions`: Start with --dangerously-skip-permissions (default: false)\n- `name`: Optional worker name override (auto-picks from themed sets otherwise)\n\n**Layout options:**\n- `\"auto\"`: Reuse existing claude-team windows, split into available space\n- `\"new\"`: Always create fresh window (1-4 workers in grid layout)\n\n### list_workers\n\nSee all managed workers:\n\n```bash\nmcporter call claude-team.list_workers\nmcporter call claude-team.list_workers status_filter=\"ready\"\n```\n\nStatus values: `spawning`, `ready`, `busy`, `closed`\n\n### message_workers\n\nSend messages to one or more workers:\n\n```bash\nmcporter call claude-team.message_workers \\\n  session_ids='[\"Groucho\"]' \\\n  message=\"Please also add unit tests\" \\\n  wait_mode=\"none\"\n```\n\n**wait_mode options:**\n- `\"none\"`: Fire and forget (default)\n- `\"any\"`: Return when any worker is idle\n- `\"all\"`: Return when all workers are idle\n\n### check_idle_workers / wait_idle_workers\n\nCheck or wait for workers to finish:\n\n```bash\n# Quick poll\nmcporter call claude-team.check_idle_workers session_ids='[\"Groucho\",\"Harpo\"]'\n\n# Blocking wait\nmcporter call claude-team.wait_idle_workers \\\n  session_ids='[\"Groucho\",\"Harpo\"]' \\\n  mode=\"all\" \\\n  timeout=600\n```\n\n### read_worker_logs\n\nGet conversation history:\n\n```bash\nmcporter call claude-team.read_worker_logs \\\n  session_id=\"Groucho\" \\\n  pages=2\n```\n\n### examine_worker\n\nGet detailed status including conversation stats:\n\n```bash\nmcporter call claude-team.examine_worker session_id=\"Groucho\"\n```\n\n### close_workers\n\nTerminate workers when done:\n\n```bash\nmcporter call claude-team.close_workers session_ids='[\"Groucho\",\"Harpo\"]'\n```\n\n⚠️ **Worktree cleanup**: Workers with worktrees commit to ephemeral branches. After closing:\n1. Review commits on the worker's branch\n2. Merge or cherry-pick to a persistent branch\n3. Delete the branch: `git branch -D <branch-name>`\n\n### bd_help\n\nQuick reference for beads commands:\n\n```bash\nmcporter call claude-team.bd_help\n```\n\n## Worker Identification\n\nWorkers can be referenced by any of:\n- **Internal ID**: Short hex string (e.g., `3962c5c4`)\n- **Terminal ID**: `iterm:UUID` format\n- **Worker name**: Human-friendly name (e.g., `Groucho`, `Aragorn`)\n\n## Workflow: Assigning a Beads Issue\n\n```bash\n# 1. Spawn worker with a bead assignment\nmcporter call claude-team.spawn_workers \\\n  workers='[{\n    \"project_path\": \"/Users/phaedrus/Projects/myrepo\",\n    \"bead\": \"proj-abc\",\n    \"annotation\": \"Implement config schemas\",\n    \"use_worktree\": true,\n    \"skip_permissions\": true\n  }]'\n\n# 2. Worker automatically:\n#    - Creates worktree with branch named after bead\n#    - Runs `bd show proj-abc` to understand the task\n#    - Marks issue in_progress\n#    - Implements the work\n#    - Closes the issue\n#    - Commits with issue reference\n\n# 3. Monitor progress\nmcporter call claude-team.check_idle_workers session_ids='[\"Groucho\"]'\nmcporter call claude-team.read_worker_logs session_id=\"Groucho\"\n\n# 4. When done, close and merge\nmcporter call claude-team.close_workers session_ids='[\"Groucho\"]'\n# Then: git merge or cherry-pick from worker's branch\n```\n\n## Workflow: Parallel Fan-Out\n\n```bash\n# Spawn multiple workers for parallel tasks\nmcporter call claude-team.spawn_workers \\\n  workers='[\n    {\"project_path\": \"auto\", \"bead\": \"cp-123\", \"annotation\": \"Auth module\"},\n    {\"project_path\": \"auto\", \"bead\": \"cp-124\", \"annotation\": \"API routes\"},\n    {\"project_path\": \"auto\", \"bead\": \"cp-125\", \"annotation\": \"Unit tests\"}\n  ]' \\\n  layout=\"new\"\n\n# Wait for all to complete\nmcporter call claude-team.wait_idle_workers \\\n  session_ids='[\"Groucho\",\"Harpo\",\"Chico\"]' \\\n  mode=\"all\"\n\n# Review and close\nmcporter call claude-team.close_workers \\\n  session_ids='[\"Groucho\",\"Harpo\",\"Chico\"]'\n```\n\n## Best Practices\n\n1. **Use beads**: Assign `bead` IDs so workers follow proper issue workflow\n2. **Use worktrees**: Keeps work isolated, enables parallel commits\n3. **Skip permissions**: Workers need `skip_permissions: true` to write files\n4. **Monitor, don't micromanage**: Let workers complete, then review\n5. **Merge carefully**: Review worker branches before merging to main\n6. **Close workers**: Always close when done to clean up worktrees\n\n## HTTP Mode (Streamable HTTP Transport)\n\nFor persistent server operation, claude-team can run as an HTTP server. This keeps the MCP server running continuously with persistent state, avoiding cold starts.\n\n### Starting the HTTP Server\n\nRun the claude-team HTTP server directly:\n\n```bash\n# From the claude-team directory\nuv run python -m claude_team_mcp --http --port 8766\n\n# Or specify the directory explicitly\nuv run --directory /path/to/claude-team python -m claude_team_mcp --http --port 8766\n```\n\nFor automatic startup on login, use launchd (see the \"launchd Auto-Start\" section below).\n\n### mcporter.json Configuration\n\nOnce the HTTP server is running, configure mcporter to connect to it. Create `~/.mcporter/mcporter.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-team\": {\n      \"transport\": \"streamable-http\",\n      \"url\": \"http://127.0.0.1:8766/mcp\",\n      \"lifecycle\": \"keep-alive\"\n    }\n  }\n}\n```\n\n### Benefits of HTTP Mode\n\n- **Persistent state**: Worker registry survives across CLI invocations\n- **Faster responses**: No Python environment startup on each call\n- **External access**: Can be accessed by cron jobs, scripts, or other tools\n- **Session recovery**: Server tracks sessions even if coordinator disconnects\n\n### Connecting from Claude Code\n\nUpdate your `.mcp.json` to use HTTP transport:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-team\": {\n      \"transport\": \"streamable-http\",\n      \"url\": \"http://127.0.0.1:8766/mcp\"\n    }\n  }\n}\n```\n\n## launchd Auto-Start\n\nTo automatically start the claude-team server on login, use the bundled setup script.\n\n### Quick Setup\n\nRun the setup script from the skill's assets directory:\n\n```bash\n# From the skill directory\n./assets/setup.sh\n\n# Or specify a custom claude-team location\nCLAUDE_TEAM_DIR=/path/to/claude-team ./assets/setup.sh\n```\n\n### What the Setup Does\n\nThe setup script:\n1. Detects your `uv` installation path\n2. Creates the log directory at `~/.claude-team/logs/`\n3. Generates a launchd plist from `assets/com.claude-team.plist.template`\n4. Installs it to `~/Library/LaunchAgents/com.claude-team.plist`\n5. Loads the service to start immediately\n\nThe plist template uses `uv run` to start the HTTP server on port 8766, configured for iTerm2 Python API access (Aqua session type).\n\n### Managing the Service\n\n```bash\n# Stop the service\nlaunchctl unload ~/Library/LaunchAgents/com.claude-team.plist\n\n# Restart (re-run setup)\n./assets/setup.sh\n\n# Check if running\nlaunchctl list | grep claude-team\n\n# View logs\ntail -f ~/.claude-team/logs/stdout.log\ntail -f ~/.claude-team/logs/stderr.log\n```\n\n### Troubleshooting launchd\n\n```bash\n# Check for load errors\nlaunchctl print gui/$UID/com.claude-team\n\n# Force restart\nlaunchctl kickstart -k gui/$UID/com.claude-team\n\n# Remove and reload (if plist changed)\nlaunchctl bootout gui/$UID/com.claude-team\nlaunchctl bootstrap gui/$UID ~/Library/LaunchAgents/com.claude-team.plist\n```\n\n## Cron Integration\n\nFor background monitoring and notifications, claude-team supports cron-based worker tracking.\n\n### Worker Tracking File\n\nClaude-team writes worker state to `~/.claude-team/memory/worker-tracking.json`:\n\n```json\n{\n  \"workers\": {\n    \"Groucho\": {\n      \"session_id\": \"3962c5c4\",\n      \"bead\": \"cp-123\",\n      \"annotation\": \"Fix auth bug\",\n      \"status\": \"busy\",\n      \"project_path\": \"/Users/phaedrus/Projects/myrepo\",\n      \"started_at\": \"2025-01-05T10:30:00Z\",\n      \"last_activity\": \"2025-01-05T11:45:00Z\"\n    },\n    \"Harpo\": {\n      \"session_id\": \"a1b2c3d4\",\n      \"bead\": \"cp-124\",\n      \"annotation\": \"Add API routes\",\n      \"status\": \"idle\",\n      \"project_path\": \"/Users/phaedrus/Projects/myrepo\",\n      \"started_at\": \"2025-01-05T10:30:00Z\",\n      \"last_activity\": \"2025-01-05T11:50:00Z\",\n      \"completed_at\": \"2025-01-05T11:50:00Z\"\n    }\n  },\n  \"last_updated\": \"2025-01-05T11:50:00Z\"\n}\n```\n\n### Cron Job for Monitoring Completions\n\nCreate a monitoring script at `~/.claude-team/scripts/check-workers.sh`:\n\n```bash\n#!/bin/bash\n# Check for completed workers and send notifications\n\nTRACKING_FILE=\"$HOME/.claude-team/memory/worker-tracking.json\"\nNOTIFIED_FILE=\"$HOME/.claude-team/memory/notified-workers.json\"\nTELEGRAM_BOT_TOKEN=\"${TELEGRAM_BOT_TOKEN}\"\nTELEGRAM_CHAT_ID=\"${TELEGRAM_CHAT_ID}\"\n\n# Exit if tracking file doesn't exist\n[ -f \"$TRACKING_FILE\" ] || exit 0\n\n# Initialize notified file if needed\n[ -f \"$NOTIFIED_FILE\" ] || echo '{\"notified\":[]}' > \"$NOTIFIED_FILE\"\n\n# Find idle workers that haven't been notified\nIDLE_WORKERS=$(jq -r '\n  .workers | to_entries[] |\n  select(.value.status == \"idle\") |\n  .key\n' \"$TRACKING_FILE\")\n\nfor worker in $IDLE_WORKERS; do\n  # Check if already notified\n  ALREADY_NOTIFIED=$(jq -r --arg w \"$worker\" '.notified | index($w) != null' \"$NOTIFIED_FILE\")\n\n  if [ \"$ALREADY_NOTIFIED\" = \"false\" ]; then\n    # Get worker details\n    BEAD=$(jq -r --arg w \"$worker\" '.workers[$w].bead // \"no-bead\"' \"$TRACKING_FILE\")\n    ANNOTATION=$(jq -r --arg w \"$worker\" '.workers[$w].annotation // \"no annotation\"' \"$TRACKING_FILE\")\n\n    # Send Telegram notification\n    MESSAGE=\"🤖 Worker *${worker}* completed\n📋 Bead: \\`${BEAD}\\`\n📝 ${ANNOTATION}\"\n\n    curl -s -X POST \"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage\" \\\n      -d chat_id=\"$TELEGRAM_CHAT_ID\" \\\n      -d text=\"$MESSAGE\" \\\n      -d parse_mode=\"Markdown\" > /dev/null\n\n    # Mark as notified\n    jq --arg w \"$worker\" '.notified += [$w]' \"$NOTIFIED_FILE\" > \"${NOTIFIED_FILE}.tmp\"\n    mv \"${NOTIFIED_FILE}.tmp\" \"$NOTIFIED_FILE\"\n  fi\ndone\n```\n\nMake it executable:\n\n```bash\nchmod +x ~/.claude-team/scripts/check-workers.sh\n```\n\n### Crontab Entry\n\nAdd to crontab (`crontab -e`):\n\n```cron\n# Check claude-team workers every 2 minutes\n*/2 * * * * TELEGRAM_BOT_TOKEN=\"your-bot-token\" TELEGRAM_CHAT_ID=\"your-chat-id\" ~/.claude-team/scripts/check-workers.sh\n```\n\n### Environment Setup\n\nSet Telegram credentials in your shell profile (`~/.zshrc`):\n\n```bash\nexport TELEGRAM_BOT_TOKEN=\"123456789:ABCdefGHIjklMNOpqrsTUVwxyz\"\nexport TELEGRAM_CHAT_ID=\"-1001234567890\"\n```\n\n### Alternative: Using clawdbot for Notifications\n\nIf you have clawdbot configured, you can send notifications through it instead:\n\n```bash\n# In check-workers.sh, replace the curl command with:\nclawdbot send --to \"$TELEGRAM_CHAT_ID\" --message \"$MESSAGE\" --provider telegram\n```\n\n### Clearing Notification State\n\nWhen starting a fresh batch of workers, clear the notified list:\n\n```bash\necho '{\"notified\":[]}' > ~/.claude-team/memory/notified-workers.json\n```\n\nFile v1.5.0:_meta.json\n\n{\n  \"ownerId\": \"kn7225r761s3scn2kv93fyek617yme1y\",\n  \"slug\": \"claude-team\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1767653321243\n}\n\nArchive v1.4.0: 3 files, 6198 bytes\n\nFiles: assets/setup.sh (1646b), SKILL.md (12868b), _meta.json (130b)\n\nFile v1.4.0:SKILL.md\n\n---\nname: claude-team\ndescription: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work.\nhomepage: https://github.com/Martian-Engineering/claude-team\nmetadata: {\"clawdbot\":{\"emoji\":\"👥\",\"os\":[\"darwin\"],\"requires\":{\"bins\":[\"mcporter\"]}}}\n---\n\n# Claude Team\n\nClaude-team is an MCP server that lets you spawn and manage teams of Claude Code sessions via iTerm2. Each worker gets their own terminal pane, optional git worktree, and can be assigned beads issues.\n\n## Why Use Claude Team?\n\n- **Parallelism**: Fan out work to multiple agents working simultaneously\n- **Context isolation**: Each worker has fresh context, keeps coordinator context clean\n- **Visibility**: Real Claude Code sessions you can watch, interrupt, or take over\n- **Git worktrees**: Each worker can have an isolated branch for their work\n\n## ⚠️ Important Rule\n\n**NEVER make code changes directly.** Always spawn workers for code changes. This keeps your context clean and provides proper git workflow with worktrees.\n\n## Prerequisites\n\n- macOS with iTerm2 (Python API enabled: Preferences → General → Magic → Enable Python API)\n- claude-team MCP server configured in `~/.claude.json`\n\n## Using via mcporter\n\nAll tools are called through `mcporter call claude-team.<tool>`:\n\n```bash\nmcporter call claude-team.list_workers\nmcporter call claude-team.spawn_workers workers='[{\"project_path\":\"/path/to/repo\",\"bead\":\"cp-123\"}]'\n```\n\n## Core Tools\n\n### spawn_workers\n\nCreate new Claude Code worker sessions.\n\n```bash\nmcporter call claude-team.spawn_workers \\\n  workers='[{\n    \"project_path\": \"/path/to/repo\",\n    \"bead\": \"cp-123\",\n    \"annotation\": \"Fix auth bug\",\n    \"use_worktree\": true,\n    \"skip_permissions\": true\n  }]' \\\n  layout=\"auto\"\n```\n\n**Worker config fields:**\n- `project_path`: Required. Path to repo or \"auto\" (uses CLAUDE_TEAM_PROJECT_DIR)\n- `bead`: Optional beads issue ID — worker will follow beads workflow\n- `annotation`: Task description (shown on badge, used in branch name)\n- `prompt`: Additional instructions (if no bead, this is their assignment)\n- `use_worktree`: Create isolated git worktree (default: true)\n- `skip_permissions`: Start with --dangerously-skip-permissions (default: false)\n- `name`: Optional worker name override (auto-picks from themed sets otherwise)\n\n**Layout options:**\n- `\"auto\"`: Reuse existing claude-team windows, split into available space\n- `\"new\"`: Always create fresh window (1-4 workers in grid layout)\n\n### list_workers\n\nSee all managed workers:\n\n```bash\nmcporter call claude-team.list_workers\nmcporter call claude-team.list_workers status_filter=\"ready\"\n```\n\nStatus values: `spawning`, `ready`, `busy`, `closed`\n\n### message_workers\n\nSend messages to one or more workers:\n\n```bash\nmcporter call claude-team.message_workers \\\n  session_ids='[\"Groucho\"]' \\\n  message=\"Please also add unit tests\" \\\n  wait_mode=\"none\"\n```\n\n**wait_mode options:**\n- `\"none\"`: Fire and forget (default)\n- `\"any\"`: Return when any worker is idle\n- `\"all\"`: Return when all workers are idle\n\n### check_idle_workers / wait_idle_workers\n\nCheck or wait for workers to finish:\n\n```bash\n# Quick poll\nmcporter call claude-team.check_idle_workers session_ids='[\"Groucho\",\"Harpo\"]'\n\n# Blocking wait\nmcporter call claude-team.wait_idle_workers \\\n  session_ids='[\"Groucho\",\"Harpo\"]' \\\n  mode=\"all\" \\\n  timeout=600\n```\n\n### read_worker_logs\n\nGet conversation history:\n\n```bash\nmcporter call claude-team.read_worker_logs \\\n  session_id=\"Groucho\" \\\n  pages=2\n```\n\n### examine_worker\n\nGet detailed status including conversation stats:\n\n```bash\nmcporter call claude-team.examine_worker session_id=\"Groucho\"\n```\n\n### close_workers\n\nTerminate workers when done:\n\n```bash\nmcporter call claude-team.close_workers session_ids='[\"Groucho\",\"Harpo\"]'\n```\n\n⚠️ **Worktree cleanup**: Workers with worktrees commit to ephemeral branches. After closing:\n1. Review commits on the worker's branch\n2. Merge or cherry-pick to a persistent branch\n3. Delete the branch: `git branch -D <branch-name>`\n\n### bd_help\n\nQuick reference for beads commands:\n\n```bash\nmcporter call claude-team.bd_help\n```\n\n## Worker Identification\n\nWorkers can be referenced by any of:\n- **Internal ID**: Short hex string (e.g., `3962c5c4`)\n- **Terminal ID**: `iterm:UUID` format\n- **Worker name**: Human-friendly name (e.g., `Groucho`, `Aragorn`)\n\n## Workflow: Assigning a Beads Issue\n\n```bash\n# 1. Spawn worker with a bead assignment\nmcporter call claude-team.spawn_workers \\\n  workers='[{\n    \"project_path\": \"/Users/phaedrus/Projects/myrepo\",\n    \"bead\": \"proj-abc\",\n    \"annotation\": \"Implement config schemas\",\n    \"use_worktree\": true,\n    \"skip_permissions\": true\n  }]'\n\n# 2. Worker automatically:\n#    - Creates worktree with branch named after bead\n#    - Runs `bd show proj-abc` to understand the task\n#    - Marks issue in_progress\n#    - Implements the work\n#    - Closes the issue\n#    - Commits with issue reference\n\n# 3. Monitor progress\nmcporter call claude-team.check_idle_workers session_ids='[\"Groucho\"]'\nmcporter call claude-team.read_worker_logs session_id=\"Groucho\"\n\n# 4. When done, close and merge\nmcporter call claude-team.close_workers session_ids='[\"Groucho\"]'\n# Then: git merge or cherry-pick from worker's branch\n```\n\n## Workflow: Parallel Fan-Out\n\n```bash\n# Spawn multiple workers for parallel tasks\nmcporter call claude-team.spawn_workers \\\n  workers='[\n    {\"project_path\": \"auto\", \"bead\": \"cp-123\", \"annotation\": \"Auth module\"},\n    {\"project_path\": \"auto\", \"bead\": \"cp-124\", \"annotation\": \"API routes\"},\n    {\"project_path\": \"auto\", \"bead\": \"cp-125\", \"annotation\": \"Unit tests\"}\n  ]' \\\n  layout=\"new\"\n\n# Wait for all to complete\nmcporter call claude-team.wait_idle_workers \\\n  session_ids='[\"Groucho\",\"Harpo\",\"Chico\"]' \\\n  mode=\"all\"\n\n# Review and close\nmcporter call claude-team.close_workers \\\n  session_ids='[\"Groucho\",\"Harpo\",\"Chico\"]'\n```\n\n## Best Practices\n\n1. **Use beads**: Assign `bead` IDs so workers follow proper issue workflow\n2. **Use worktrees**: Keeps work isolated, enables parallel commits\n3. **Skip permissions**: Workers need `skip_permissions: true` to write files\n4. **Monitor, don't micromanage**: Let workers complete, then review\n5. **Merge carefully**: Review worker branches before merging to main\n6. **Close workers**: Always close when done to clean up worktrees\n\n## HTTP Mode (Streamable HTTP Transport)\n\nFor persistent server operation, claude-team can run as an HTTP server. This keeps the MCP server running continuously with persistent state, avoiding cold starts.\n\n### Starting the HTTP Server\n\nRun the claude-team HTTP server directly:\n\n```bash\n# From the claude-team directory\nuv run python -m claude_team_mcp --http --port 8766\n\n# Or specify the directory explicitly\nuv run --directory /path/to/claude-team python -m claude_team_mcp --http --port 8766\n```\n\nFor automatic startup on login, use launchd (see the \"launchd Auto-Start\" section below).\n\n### mcporter.json Configuration\n\nOnce the HTTP server is running, configure mcporter to connect to it. Create `~/.mcporter/mcporter.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-team\": {\n      \"transport\": \"streamable-http\",\n      \"url\": \"http://127.0.0.1:8766/mcp\",\n      \"lifecycle\": \"keep-alive\"\n    }\n  }\n}\n```\n\n### Benefits of HTTP Mode\n\n- **Persistent state**: Worker registry survives across CLI invocations\n- **Faster responses**: No Python environment startup on each call\n- **External access**: Can be accessed by cron jobs, scripts, or other tools\n- **Session recovery**: Server tracks sessions even if coordinator disconnects\n\n### Connecting from Claude Code\n\nUpdate your `.mcp.json` to use HTTP transport:\n\n```json\n{\n  \"mcpServers\": {\n    \"claude-team\": {\n      \"transport\": \"streamable-http\",\n      \"url\": \"http://127.0.0.1:8766/mcp\"\n    }\n  }\n}\n```\n\n## launchd Auto-Start\n\nTo automatically start the claude-team server on login, use the bundled setup script.\n\n### Quick Setup\n\nRun the setup script from the skill's assets directory:\n\n```bash\n# From the skill directory\n./assets/setup.sh\n\n# Or specify a custom claude-team location\nCLAUDE_TEAM_DIR=/path/to/claude-team ./assets/setup.sh\n```\n\n### What the Setup Does\n\nThe setup script:\n1. Detects your `uv` installation path\n2. Creates the log directory at `~/.claude-team/logs/`\n3. Generates a launchd plist from `assets/com.claude-team.plist.template`\n4. Installs it to `~/Library/LaunchAgents/com.claude-team.plist`\n5. Loads the service to start immediately\n\nThe plist template uses `uv run` to start the HTTP server on port 8766, configured for iTerm2 Python API access (Aqua session type).\n\n### Managing the Service\n\n```bash\n# Stop the service\nlaunchctl unload ~/Library/LaunchAgents/com.claude-team.plist\n\n# Restart (re-run setup)\n./assets/setup.sh\n\n# Check if running\nlaunchctl list | grep claude-team\n\n# View logs\ntail -f ~/.claude-team/logs/stdout.log\ntail -f ~/.claude-team/logs/stderr.log\n```\n\n### Troubleshooting launchd\n\n```bash\n# Check for load errors\nlaunchctl print gui/$UID/com.claude-team\n\n# Force restart\nlaunchctl kickstart -k gui/$UID/com.claude-team\n\n# Remove and reload (if plist changed)\nlaunchctl bootout gui/$UID/com.claude-team\nlaunchctl bootstrap gui/$UID ~/Library/LaunchAgents/com.claude-team.plist\n```\n\n## Cron Integration\n\nFor background monitoring and notifications, claude-team supports cron-based worker tracking.\n\n### Worker Tracking File\n\nClaude-team writes worker state to `~/.claude-team/memory/worker-tracking.json`:\n\n```json\n{\n  \"workers\": {\n    \"Groucho\": {\n      \"session_id\": \"3962c5c4\",\n      \"bead\": \"cp-123\",\n      \"annotation\": \"Fix auth bug\",\n      \"status\": \"busy\",\n      \"project_path\": \"/Users/phaedrus/Projects/myrepo\",\n      \"started_at\": \"2025-01-05T10:30:00Z\",\n      \"last_activity\": \"2025-01-05T11:45:00Z\"\n    },\n    \"Harpo\": {\n      \"session_id\": \"a1b2c3d4\",\n      \"bead\": \"cp-124\",\n      \"annotation\": \"Add API routes\",\n      \"status\": \"idle\",\n      \"project_path\": \"/Users/phaedrus/Projects/myrepo\",\n      \"started_at\": \"2025-01-05T10:30:00Z\",\n      \"last_activity\": \"2025-01-05T11:50:00Z\",\n      \"completed_at\": \"2025-01-05T11:50:00Z\"\n    }\n  },\n  \"last_updated\": \"2025-01-05T11:50:00Z\"\n}\n```\n\n### Cron Job for Monitoring Completions\n\nCreate a monitoring script at `~/.claude-team/scripts/check-workers.sh`:\n\n```bash\n#!/bin/bash\n# Check for completed workers and send notifications\n\nTRACKING_FILE=\"$HOME/.claude-team/memory/worker-tracking.json\"\nNOTIFIED_FILE=\"$HOME/.claude-team/memory/notified-workers.json\"\nTELEGRAM_BOT_TOKEN=\"${TELEGRAM_BOT_TOKEN}\"\nTELEGRAM_CHAT_ID=\"${TELEGRAM_CHAT_ID}\"\n\n# Exit if tracking file doesn't exist\n[ -f \"$TRACKING_FILE\" ] || exit 0\n\n# Initialize notified file if needed\n[ -f \"$NOTIFIED_FILE\" ] || echo '{\"notified\":[]}' > \"$NOTIFIED_FILE\"\n\n# Find idle workers that haven't been notified\nIDLE_WORKERS=$(jq -r '\n  .workers | to_entries[] |\n  select(.value.status == \"idle\") |\n  .key\n' \"$TRACKING_FILE\")\n\nfor worker in $IDLE_WORKERS; do\n  # Check if already notified\n  ALREADY_NOTIFIED=$(jq -r --arg w \"$worker\" '.notified | index($w) != null' \"$NOTIFIED_FILE\")\n\n  if [ \"$ALREADY_NOTIFIED\" = \"false\" ]; then\n    # Get worker details\n    BEAD=$(jq -r --arg w \"$worker\" '.workers[$w].bead // \"no-bead\"' \"$TRACKING_FILE\")\n    ANNOTATION=$(jq -r --arg w \"$worker\" '.workers[$w].annotation // \"no annotation\"' \"$TRACKING_FILE\")\n\n    # Send Telegram notification\n    MESSAGE=\"🤖 Worker *${worker}* completed\n📋 Bead: \\`${BEAD}\\`\n📝 ${ANNOTATION}\"\n\n    curl -s -X POST \"https://api.telegram.org/bot${TELEGRAM_BOT_TOKEN}/sendMessage\" \\\n      -d chat_id=\"$TELEGRAM_CHAT_ID\" \\\n      -d text=\"$MESSAGE\" \\\n      -d parse_mode=\"Markdown\" > /dev/null\n\n    # Mark as notified\n    jq --arg w \"$worker\" '.notified += [$w]' \"$NOTIFIED_FILE\" > \"${NOTIFIED_FILE}.tmp\"\n    mv \"${NOTIFIED_FILE}.tmp\" \"$NOTIFIED_FILE\"\n  fi\ndone\n```\n\nMake it executable:\n\n```bash\nchmod +x ~/.claude-team/scripts/check-workers.sh\n```\n\n### Crontab Entry\n\nAdd to crontab (`crontab -e`):\n\n```cron\n# Check claude-team workers every 2 minutes\n*/2 * * * * TELEGRAM_BOT_TOKEN=\"your-bot-token\" TELEGRAM_CHAT_ID=\"your-chat-id\" ~/.claude-team/scripts/check-workers.sh\n```\n\n### Environment Setup\n\nSet Telegram credentials in your shell profile (`~/.zshrc`):\n\n```bash\nexport TELEGRAM_BOT_TOKEN=\"123456789:ABCdefGHIjklMNOpqrsTUVwxyz\"\nexport TELEGRAM_CHAT_ID=\"-1001234567890\"\n```\n\n### Alternative: Using clawdbot for Notifications\n\nIf you have clawdbot configured, you can send notifications through it instead:\n\n```bash\n# In check-workers.sh, replace the curl command with:\nclawdbot send --to \"$TELEGRAM_CHAT_ID\" --message \"$MESSAGE\" --provider telegram\n```\n\n### Clearing Notification State\n\nWhen starting a fresh batch of workers, clear the notified list:\n\n```bash\necho '{\"notified\":[]}' > ~/.claude-team/memory/notified-workers.json\n```\n\nFile v1.4.0:_meta.json\n\n{\n  \"ownerId\": \"kn7225r761s3scn2kv93fyek617yme1y\",\n  \"slug\": \"claude-team\",\n  \"version\": \"1.4.0\",\n  \"publishedAt\": 1767653183790\n}","readmeExcerpt":"Skill: Claude Team Owner: jalehman Summary: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work. Tags: latest:1.5.0 Version history: v1.5.0 | 2026-01-05T22:48:41.243Z Fixed plist: executable is claude-team not claude-team-mcp v1.4.0 | 2026-01-05T22:46:23.790Z Fixed plist ","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"mcporter call claude-team.list_workers\nmcporter call claude-team.spawn_workers workers='[{\"project_path\":\"/path/to/repo\",\"bead\":\"cp-123\"}]'"},{"language":"bash","snippet":"mcporter call claude-team.spawn_workers \\\n  workers='[{\n    \"project_path\": \"/path/to/repo\",\n    \"bead\": \"cp-123\",\n    \"annotation\": \"Fix auth bug\",\n    \"use_worktree\": true,\n    \"skip_permissions\": true\n  }]' \\\n  layout=\"auto\""},{"language":"bash","snippet":"mcporter call claude-team.list_workers\nmcporter call claude-team.list_workers status_filter=\"ready\""},{"language":"bash","snippet":"mcporter call claude-team.message_workers \\\n  session_ids='[\"Groucho\"]' \\\n  message=\"Please also add unit tests\" \\\n  wait_mode=\"none\""},{"language":"bash","snippet":"# Quick poll\nmcporter call claude-team.check_idle_workers session_ids='[\"Groucho\",\"Harpo\"]'\n\n# Blocking wait\nmcporter call claude-team.wait_idle_workers \\\n  session_ids='[\"Groucho\",\"Harpo\"]' \\\n  mode=\"all\" \\\n  timeout=600"},{"language":"bash","snippet":"mcporter call claude-team.read_worker_logs \\\n  session_id=\"Groucho\" \\\n  pages=2"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: claude-team\ndescription: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work.\nhomepage: https://github.com/Martian-Engineering/claude-team\nmetadata: {\"clawdbot\":{\"emoji\":\"👥\",\"os\":[\"darwin\"],\"requires\":{\"bins\":[\"mcporter\"]}}}\n---\n\n# Claude Team\n\nClaude-team is an MCP server that lets you spawn and manage teams of Claude Code sessions via iTerm2. Each worker gets their own terminal pane, optional git worktree, and can be assigned beads issues.\n\n## Why Use Claude Team?\n\n- **Parallelism**: Fan out work to multiple agents working simultaneously\n- **Context isolation**: Each worker has fresh context, keeps coordinator context clean\n- **Visibility**: Real Claude Code sessions you can watch, interrupt, or take over\n- **Git worktrees**: Each worker can have an isolated branch for their work\n\n## ⚠️ Important Rule\n\n**NEVER make code changes directly.** Always spawn workers for code changes. This keeps your context clean and provides proper git workflow with worktrees.\n\n## Prerequisites\n\n- macOS with iTerm2 (Python API enabled: Preferences → General → Magic → Enable Python API)\n- claude-team MCP server configured in `~/.claude.json`\n\n## Using via mcporter\n\nAll tools are called through `mcporter call claude-team.<tool>`:\n\n```bash\nmcporter call claude-team.list_workers\nmcporter call claude-team.spawn_workers workers='[{\"project_path\":\"/path/to/repo\",\"bead\":\"cp-123\"}]'\n```\n\n## Core Tools\n\n### spawn_workers\n\nCreate new Claude Code worker sessions.\n\n```bash\nmcporter call claude-team.spawn_workers \\\n  workers='[{\n    \"project_path\": \"/path/to/repo\",\n    \"bead\": \"cp-123\",\n    \"annotation\": \"Fix auth bug\",\n    \"use_worktree\": true,\n    \"skip_permissions\": true\n  }]' \\\n  layout=\"auto\"\n```\n\n**Worker config fields:**\n- `project_path`: Required. Path to repo or \"auto\" (uses CLAUDE_TEAM_PROJECT_DIR)\n- `bead`: Optional beads issue ID — worker will follow beads workflow\n- `annotation`: Task description (shown on badge, used in branch name)\n- `prompt`: Additional instructions (if no bead, this is their assignment)\n- `use_worktree`: Create isolated git worktree (default: true)\n- `skip_permissions`: Start with --dangerously-skip-permissions (default: false)\n- `name`: Optional worker name override (auto-picks from themed sets otherwise)\n\n**Layout options:**\n- `\"auto\"`: Reuse existing claude-team windows, split into available space\n- `\"new\"`: Always create fresh window (1-4 workers in grid layout)\n\n### list_workers\n\nSee all managed workers:\n\n```bash\nmcporter call claude-team.list_workers\nmcporter call claude-team.list_workers status_filter=\"ready\"\n```\n\nStatus values: `spawning`, `ready`, `busy`, `closed`\n\n### message_workers\n\nSend messages to one or more workers:\n\n```bash\nmcporter call claude-team.message_workers \\\n  session_ids='[\"Groucho\"]' \\\n  message=\"Please also add unit tests\" \\\n  wait_mode=\"none\"\n```\n\n**wait_mode o"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7225r761s3scn2kv93fyek617yme1y\",\n  \"slug\": \"claude-team\",\n  \"version\": \"1.5.0\",\n  \"publishedAt\": 1767653321243\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work. Skill: Claude Team Owner: jalehman Summary: Orchestrate multiple Claude Code workers via iTerm2 using the claude-team MCP server. Spawn workers with git worktrees, assign beads issues, monitor progress, and coordinate parallel development work. Tags: latest:1.5.0 Version history: v1.5.0 | 2026-01-05T22:48:41.243Z Fixed plist: executable is claude-team not claude-team-mcp v1.4.0 | 2026-01-05T22:46:23.790Z Fixed plist","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":810,"uniquenessScore":59,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T00:45:39.800Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"agent-directory","verified":false,"confidence":"low","updatedAt":"2026-10-09T18:32:52.754Z","emptyReason":"No close protocol neighbors were found."},"items":[],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[]}}}