{"id":"e4d3179e-306b-4b04-9efa-9e27a7f946a2","entityType":"agent","slug":"thunderclawai-gh-dev-factory","name":"gh-dev-factory","canonicalUrl":"https://www.xpersona.co/agent/thunderclawai-gh-dev-factory","canonicalPath":"/agent/thunderclawai-gh-dev-factory","generatedAt":"2026-10-09T06:17:50.555Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-merges PRs. Requires gh CLI authenticated and Claude Code installed. --- name: gh-dev-factory description: \"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-merges PRs. Requires gh CLI authenticated and Claude Code installed.\" license: MIT metadata: {\"openclaw\":{\"emoji\":\"🏭\",\"requires\":{\"bins\":[\"gh\",\"git\",\"claude\"]},\"install\":[{\"id\":\"brew\",\"kind\":\"brew\",\"formula\":\"gh\",\"bins\":[\"g","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"git clone https://github.com/thunderclawai/gh-dev-factory.git","sourceUrl":"https://github.com/thunderclawai/gh-dev-factory","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/thunderclawai/gh-dev-factory","kind":"source"}],"safetyScore":89,"overallRank":29.445,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-mer"},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"and","status":"self-declared"},{"label":"happen","status":"self-declared"},{"label":"per","status":"self-declared"},{"label":"python3","status":"self-declared"},{"label":"does","status":"self-declared"},{"label":"batch","status":"self-declared"},{"label":"only","status":"self-declared"},{"label":"then","status":"self-declared"},{"label":"output","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":10,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"and","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"happen","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"per","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"python3","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"does","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"batch","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"only","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"then","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"output","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:and|supported|profile capability:happen|supported|profile capability:per|supported|profile capability:python3|supported|profile capability:does|supported|profile capability:batch|supported|profile capability:only|supported|profile capability:then|supported|profile capability:output|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-24T19:39:54.287Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-02-24T19:39:54.287Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-25T19:39:54.287Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"git clone https://github.com/thunderclawai/gh-dev-factory.git","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","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/thunderclawai-gh-dev-factory/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T06:17:50.555Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/thunderclawai-gh-dev-factory/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":"GITHUB OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"---\nname: gh-dev-factory\ndescription: \"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-merges PRs. Requires gh CLI authenticated and Claude Code installed.\"\nlicense: MIT\nmetadata:\n  {\"openclaw\":{\"emoji\":\"🏭\",\"requires\":{\"bins\":[\"gh\",\"git\",\"claude\"]},\"install\":[{\"id\":\"brew\",\"kind\":\"brew\",\"formula\":\"gh\",\"bins\":[\"gh\"],\"label\":\"Install GitHub CLI (brew)\"}]}}\n---\n\n# gh-dev-factory\n\nAutonomous dev loop driven by a single cron job. Scans GitHub for work, plans issues, delegates implementation to Claude Code, and auto-merges PRs. GitHub is the source of truth — no state files needed.\n\n## How It Works\n\nOne cron job runs every 30 minutes. Each cycle:\n\n1. **Scan** — Run `scan.py` to rank open issues and PRs by priority\n2. **Cheap actions first** — Merge ready PRs, plan unplanned issues, add labels\n3. **One expensive action** — Delegate one implementation task to Claude Code via `run-claude.sh`\n4. **Auto-merge** — If Claude Code produces a passing PR, merge it in the same cycle\n\nThe job never writes code directly. All implementation goes through `run-claude.sh` → Claude Code subprocess.\n\n## Architecture\n\n### Single Job Design\n\nEarlier versions split scan and build into two jobs. In practice, a single combined job works better:\n- Plan + build + merge can happen in one 30-min cycle\n- No coordination overhead between jobs\n- Simpler to reason about and debug\n- GitHub is the only state — no factory-state.md files to manage\n\n### scan.py\n\n`scripts/scan.py` scans a repo and outputs a ranked JSON queue:\n\n```json\n[{\"type\": \"issue\", \"number\": 42, \"title\": \"...\", \"state\": \"needs_plan\", \"priority\": 1}]\n```\n\nPriority order: `changes_requested` > `approved` > `needs_review` > `draft` > `planned` > `needs_plan`\n\nIt also **auto-updates epic checklists** — any issue labeled `epic` gets its checkbox list synced with actual issue states (closed → checked, new issues → appended).\n\nIssues labeled `blocked` or `epic` are skipped from the work queue.\n\n### run-claude.sh\n\n`scripts/run-claude.sh` delegates implementation to Claude Code:\n\n```bash\nbash scripts/run-claude.sh <repo-dir> <number> <branch> <mode>\n```\n\nModes:\n- `issue` — Implement a planned issue from scratch\n- `pr-fix` — Fix a failing PR or address review comments\n\nClaude Code reads the issue/PR, writes the code, and commits. The calling job handles branch push, PR creation, and merge.\n\n## Setup\n\n### 1. Add FACTORY.md to your repo\n\nCreate `FACTORY.md` in the repo root. This is the factory's configuration:\n\n```markdown\n# FACTORY.md\n\n## Project\n- **Repo:** owner/repo\n- **Stack:** Your tech stack\n- **Description:** What this project does\n\n## Test & Lint\n- **Test command:** npm test (or python3 build.py, etc.)\n- **Lint command:** none\n\n## Merge Strategy\n- Squash merge\n- Delete branch after merge\n\n## Branch Naming\n- `factory/<issue-number>-<short-slug>`\n\n## Boundaries (do not touch)\n- `.github/`\n- `FACTORY.md`\n\n## Labels\n- `planned` — has implementation plan, ready to build\n- `blocked` — skip during factory scan\n- `epic` — tracking issue, skip\n\n## Human Checkpoints\n- Auto-merge when tests pass\n- No human review required\n\n## Budget\n- Max open PRs: 2\n```\n\n### 2. Create the cron job\n\nSingle job that handles everything:\n\n```bash\nopenclaw cron add \\\n  --name \"factory-myproject\" \\\n  --cron \"15,45 * * * *\" \\\n  --tz \"Europe/Sofia\" \\\n  --session isolated \\\n  --model sonnet \\\n  --announce \\\n  --message \"<see CRON PROMPT below>\"\n```\n\n### 3. Cron Prompt Template\n\n```\nYou are the factory for {owner}/{repo}. One scan per cycle, do everything you can.\n\n## Step 1: Scan\npython3 {baseDir}/scripts/scan.py {owner}/{repo}\ngh pr list --repo {owner}/{repo} --state open --json number,isDraft | jq length\n\n## Step 2: Do all cheap actions first\n\n**Merge ready PRs (non-draft):**\ngh pr merge <number> --repo {owner}/{repo} --squash --delete-branch\n\n**Do NOT merge draft PRs** — drafts mean incomplete work.\n\n## Step 3: ONE expensive action (if any)\n\n**Draft PR or changes_requested PR:**\nDelegate to Claude Code:\nbash {baseDir}/scripts/run-claude.sh {repoDir} <number> <branch> pr-fix\nRun with pty:true, background:true, timeout:900.\nPoll with process action:poll every 60 seconds. When done, read final logs.\n\n**Issue — needs_plan:**\nRead the issue. Comment implementation plan. Add `planned` label.\nThen if open PRs < {maxOpenPRs}, immediately continue to build it.\n\n**Issue — planned (no PR yet):**\nIf open PRs >= {maxOpenPRs}, STOP.\nDelegate to Claude Code:\nbash {baseDir}/scripts/run-claude.sh {repoDir} <number> factory/<number>-<slug> issue\nRun with pty:true, background:true, timeout:900.\nPoll with process action:poll every 60 seconds. When done, read final logs.\n\n## Step 4: After Claude Code finishes\nCheck if PR was marked ready (non-draft). If so:\ngh pr merge <number> --repo {owner}/{repo} --squash --delete-branch\n\n## Step 5: Nothing to do?\nRespond HEARTBEAT_OK. Do NOT send any notifications.\n\n## Hard rules\n- Do ALL cheap actions before expensive ones\n- ONE expensive action per cycle\n- NEVER write code directly. All implementation via run-claude.sh.\n- NEVER use Edit or Write tools on repo files.\n- Auto-merge ready PRs. No review step.\n- Max {maxOpenPRs} open PRs.\n- GitHub is source of truth.\n- Poll Claude Code every 60 seconds, not more frequent.\n- If Claude Code is already running (check process list), HEARTBEAT_OK.\n- Keep responses short.\n```\n\nReplace:\n- `{owner}/{repo}` — GitHub repo (e.g. `thunderclawai/thunderclawai.github.io`)\n- `{baseDir}` — path to this skill (e.g. `~/.openclaw/workspace/skills/gh-dev-factory`)\n- `{repoDir}` — local checkout path (e.g. `~/.openclaw/workspace/my-repo`)\n- `{maxOpenPRs}` — from FACTORY.md budget (typically 2)\n\n## The Cycle In Detail\n\n### Priority Order\n\nEach cycle processes ONE expensive action. Cheap actions (merging ready PRs, adding labels) are batched first.\n\n1. **Merge ready PRs** — Non-draft PRs get squash-merged immediately\n2. **Plan unplanned issues** — Comment implementation plan, add `planned` label\n3. **Build planned issues** — Delegate to Claude Code, push PR\n4. **Fix failing PRs** — Delegate fixes to Claude Code\n\n### What Scan Does (cheap)\n- Rank the work queue\n- Auto-update epic checklists\n- Plan issues (comment + label)\n\n### What Build Does (expensive)\n- Delegate to Claude Code via `run-claude.sh`\n- Push branch, open/update PR\n- Merge if ready\n\n## Rules\n\n- **One expensive action per cycle.** Cheap actions can batch.\n- **Never write code directly.** All implementation via run-claude.sh → Claude Code.\n- **FACTORY.md is law.** Follow its rules, boundaries, and checkpoints.\n- **GitHub is source of truth.** No state files. Check issue/PR state each cycle.\n- **Auto-merge when passing.** No human review unless FACTORY.md says otherwise.\n- **Small PRs.** If too large, break into sub-issues.\n- **Cheap when idle.** HEARTBEAT_OK when nothing to do.\n- **PR body is truth.** Unchecked items = work not done.\n- **Don't merge drafts.** Drafts mean Claude Code hasn't finished.\n\n## Manual Mode\n\n- `factory scan` — run scan only (reports queue)\n- `factory build` — run build only (picks one item, delegates)\n- `factory run` — scan then build in sequence\n- `factory status` — show queue depth, open PRs, recent activity\n\n## Scan Output Format\n\n```json\n[\n  {\"type\": \"issue\", \"number\": 42, \"title\": \"Add dark mode\", \"state\": \"planned\", \"priority\": 1},\n  {\"type\": \"pr\", \"number\": 43, \"title\": \"feat: dark mode\", \"state\": \"needs_review\", \"priority\": 2}\n]\n```\n\nStates: `needs_plan`, `planned`, `draft`, `needs_review`, `changes_requested`, `approved`\n\n## Epic Auto-Update\n\n`scan.py` automatically syncs epic checklists on every run:\n- Marks closed issues as `[x]`\n- Marks reopened issues as `[ ]`\n- Appends new issues not yet in the checklist\n- Only affects issues labeled `epic`\n\nNo manual epic maintenance needed.\n","readmeExcerpt":"--- name: gh-dev-factory description: \"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-merges PRs. Requires gh CLI authenticated and Claude Code installed.\" license: MIT metadata: {\"openclaw\":{\"emoji\":\"🏭\",\"requires\":{\"bins\":[\"gh\",\"git\",\"claude\"]},\"install\":[{\"id\":\"brew\",\"kind\":\"brew\",\"formula\":\"gh\",\"bins\":[\"g","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"[{\"type\": \"issue\", \"number\": 42, \"title\": \"...\", \"state\": \"needs_plan\", \"priority\": 1}]"},{"language":"bash","snippet":"bash scripts/run-claude.sh <repo-dir> <number> <branch> <mode>"},{"language":"markdown","snippet":"# FACTORY.md\n\n## Project\n- **Repo:** owner/repo\n- **Stack:** Your tech stack\n- **Description:** What this project does\n\n## Test & Lint\n- **Test command:** npm test (or python3 build.py, etc.)\n- **Lint command:** none\n\n## Merge Strategy\n- Squash merge\n- Delete branch after merge\n\n## Branch Naming\n- `factory/<issue-number>-<short-slug>`\n\n## Boundaries (do not touch)\n- `.github/`\n- `FACTORY.md`\n\n## Labels\n- `planned` — has implementation plan, ready to build\n- `blocked` — skip during factory scan\n- `epic` — tracking issue, skip\n\n## Human Checkpoints\n- Auto-merge when tests pass\n- No human review required\n\n## Budget\n- Max open PRs: 2"},{"language":"bash","snippet":"openclaw cron add \\\n  --name \"factory-myproject\" \\\n  --cron \"15,45 * * * *\" \\\n  --tz \"Europe/Sofia\" \\\n  --session isolated \\\n  --model sonnet \\\n  --announce \\\n  --message \"<see CRON PROMPT below>\""},{"language":"text","snippet":"You are the factory for {owner}/{repo}. One scan per cycle, do everything you can.\n\n## Step 1: Scan\npython3 {baseDir}/scripts/scan.py {owner}/{repo}\ngh pr list --repo {owner}/{repo} --state open --json number,isDraft | jq length\n\n## Step 2: Do all cheap actions first\n\n**Merge ready PRs (non-draft):**\ngh pr merge <number> --repo {owner}/{repo} --squash --delete-branch\n\n**Do NOT merge draft PRs** — drafts mean incomplete work.\n\n## Step 3: ONE expensive action (if any)\n\n**Draft PR or changes_requested PR:**\nDelegate to Claude Code:\nbash {baseDir}/scripts/run-claude.sh {repoDir} <number> <branch> pr-fix\nRun with pty:true, background:true, timeout:900.\nPoll with process action:poll every 60 seconds. When done, read final logs.\n\n**Issue — needs_plan:**\nRead the issue. Comment implementation plan. Add `planned` label.\nThen if open PRs < {maxOpenPRs}, immediately continue to build it.\n\n**Issue — planned (no PR yet):**\nIf open PRs >= {maxOpenPRs}, STOP.\nDelegate to Claude Code:\nbash {baseDir}/scripts/run-claude.sh {repoDir} <number> factory/<number>-<slug> issue\nRun with pty:true, background:true, timeout:900.\nPoll with process action:poll every 60 seconds. When done, read final logs.\n\n## Step 4: After Claude Code finishes\nCheck if PR was marked ready (non-draft). If so:\ngh pr merge <number> --repo {owner}/{repo} --squash --delete-branch\n\n## Step 5: Nothing to do?\nRespond HEARTBEAT_OK. Do NOT send any notifications.\n\n## Hard rules\n- Do ALL cheap actions before expensive ones\n- ONE expensive action per cycle\n- NEVER write code directly. All implementation via run-claude.sh.\n- NEVER use Edit or Write tools on repo files.\n- Auto-merge ready PRs. No review step.\n- Max {maxOpenPRs} open PRs.\n- GitHub is source of truth.\n- Poll Claude Code every 60 seconds, not more frequent.\n- If Claude Code is already running (check process list), HEARTBEAT_OK.\n- Keep responses short."},{"language":"json","snippet":"[\n  {\"type\": \"issue\", \"number\": 42, \"title\": \"Add dark mode\", \"state\": \"planned\", \"priority\": 1},\n  {\"type\": \"pr\", \"number\": 43, \"title\": \"feat: dark mode\", \"state\": \"needs_review\", \"priority\": 2}\n]"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-merges PRs. Requires gh CLI authenticated and Claude Code installed. --- name: gh-dev-factory description: \"Autonomous development factory using GitHub Issues/PRs as a work loop. Single cron job scans for work, plans issues, delegates code to Claude Code, and auto-merges PRs. Requires gh CLI authenticated and Claude Code installed.\" license: MIT metadata: {\"openclaw\":{\"emoji\":\"🏭\",\"requires\":{\"bins\":[\"gh\",\"git\",\"claude\"]},\"install\":[{\"id\":\"brew\",\"kind\":\"brew\",\"formula\":\"gh\",\"bins\":[\"g","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":407,"uniquenessScore":62,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","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-15T05:21:22.124Z","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":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:17:50.555Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}