{"id":"d9bff570-1750-4a5f-84ff-9cfdeeeb0171","entityType":"agent","slug":"sene1337-clawback","name":"clawback","canonicalUrl":"https://xpersona.co/agent/sene1337-clawback","canonicalPath":"/agent/sene1337-clawback","generatedAt":"2026-04-17T04:28:31.552Z","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":"Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene. --- name: clawback description: Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene. --- ClawBack A complete git workflow for AI agents. Five modes: **Commit** (default), **Checkpoint** (before risk), **Rollback** (when things break), **Isolate** (worktree for risky parallel work), and **Release Hygiene** (before publishing this skill). Mode 1: Commit (Default W","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 19 GitHub stars reported by the source. Last updated 4/15/2026.","installCommand":"git clone https://github.com/sene1337/clawback.git","sourceUrl":"https://github.com/sene1337/clawback","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/sene1337/clawback","kind":"source"}],"safetyScore":97,"overallRank":53,"popularityScore":33,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene. --- name: clawback description: Git workflow for AI"},"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":"consume","status":"self-declared"},{"label":"resume","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":3,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"consume","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"resume","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:consume|supported|profile capability:resume|supported|profile"}},"adoption":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"medium","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"stars":19,"forks":1,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":"19 GitHub stars"},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-24T19:44:55.681Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-02-24T19:44:55.681Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-25T19:44:55.681Z","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/sene1337/clawback.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://xpersona.co/api/v1/agents/sene1337-clawback/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/sene1337-clawback/contract","trustUrl":"https://xpersona.co/api/v1/agents/sene1337-clawback/trust"},"curlExamples":["curl -s \"https://xpersona.co/api/v1/agents/sene1337-clawback/snapshot\"","curl -s \"https://xpersona.co/api/v1/agents/sene1337-clawback/contract\"","curl -s \"https://xpersona.co/api/v1/agents/sene1337-clawback/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-04-17T04:28:31.551Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://xpersona.co/api/v1/agents/sene1337-clawback/dossier","snapshotUrl":"https://xpersona.co/api/v1/agents/sene1337-clawback/snapshot","contractUrl":"https://xpersona.co/api/v1/agents/sene1337-clawback/contract","trustUrl":"https://xpersona.co/api/v1/agents/sene1337-clawback/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: clawback\ndescription: Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene.\n---\n\n# ClawBack\n\nA complete git workflow for AI agents. Five modes: **Commit** (default), **Checkpoint** (before risk), **Rollback** (when things break), **Isolate** (worktree for risky parallel work), and **Release Hygiene** (before publishing this skill).\n\n## Mode 1: Commit (Default Working Mode)\n\n**This is your primary mode.** Commit after every logical unit of work — one fix, one feature, one config change. Your git log should read like a changelog.\n\n### When to commit\n\n- After fixing a bug\n- After adding a feature or capability\n- After a config change\n- After writing or updating documentation\n- After refactoring code\n- Basically: after every distinct thing you complete\n\n### How to commit\n\n```bash\ncd $(git rev-parse --show-toplevel)\ngit add -A  # or specific files\ngit commit -m \"type: what changed — why\"\n```\n\nNo script needed. Keep friction near zero so you commit more, not less.\n\n### Commit message format\n\nFollow [Conventional Commits](https://www.conventionalcommits.org/):\n\n```\ntype: concise description of what changed — why (if not obvious)\n```\n\n**Types:**\n| Type | When |\n|------|------|\n| `feat:` | New capability or feature |\n| `fix:` | Bug fix |\n| `docs:` | Documentation only |\n| `refactor:` | Code change that neither fixes a bug nor adds a feature |\n| `chore:` | Maintenance, dependencies, config, cleanup |\n| `perf:` | Performance improvement |\n\n**Examples:**\n```\nfeat: replace Chatterbox with Piper TTS — 30x faster, Chatterbox took 30+ seconds\nfix: Safari AudioContext — init on user gesture, not on chunk arrival\ndocs: add social consensus spec for benchmark governance\nrefactor: split voice handler into separate STT and TTS modules\nchore: update .gitignore, remove tracked log files\n```\n\n**Rules from [How to Write a Git Commit Message](https://cbea.ms/git-commit/):**\n- Limit subject line to ~72 characters\n- Use imperative mood (\"add\" not \"added\", \"fix\" not \"fixed\")\n- Don't end with a period\n- If the \"why\" is obvious from the \"what\", skip it\n\n### Why this matters\n\nYour git history IS your debug log. If you commit properly during work:\n\n```\ne3ce305 fix: Safari AudioContext — init on user gesture, not on chunk arrival\na2b1f09 feat: replace Chatterbox with Piper TTS — 30x faster\n6fc28af fix: resample 48kHz→16kHz for Whisper, cast float64→float32\nb8d9e12 feat: add LaunchAgent for auto-start on boot\n```\n\nThat tells the full story. Each change is individually revertable. The daily log becomes a 5-line summary referencing commit hashes — not a 70-line debugging transcript. Detail lives in git (free, searchable, zero boot tokens), not in memory files (expensive, reloads every session).\n\n### What NOT to commit\n\n- Log files or runtime output (`*.log`, `logs/`)\n- Secrets, tokens, passwords, API keys\n- Temp files, cache directories\n- Large binary files (media, datasets >1MB)\n- Node modules, Python venvs, build artifacts\n\n## Commit Enforcement\n\nBehavioral rules decay after context compaction. This section provides mechanical enforcement for the \"one fix, one commit\" discipline.\n\n### Heartbeat Check\n\nAdd to your `HEARTBEAT.md`:\n\n```\n- Run `git status --short` in workspace. If dirty, commit each changed file with a descriptive message.\n```\n\nThis runs every heartbeat cycle (typically 30 min on a lighter model). Cost is near-zero — one shell command. If uncommitted changes exist, commit them before doing anything else.\n\n### Why Mechanical Enforcement\n\nThe commit rule works when it's fresh in context. After compaction, it drifts — you batch changes, forget to commit, and `git log` stops being a reliable record. When that happens:\n\n- Post-compaction sessions can't tell what was already done\n- You recommend changes that are already live\n- You revert working fixes because you don't trust your own history\n\nThe heartbeat check catches drift automatically. It's a safety net, not a replacement for committing in the moment.\n\n### Anti-Patterns\n\n- **Batch commits at end of session** — defeats the entire purpose. Each change needs its own commit *when it happens*.\n- **Catch-up commits with vague messages** — `\"commit various changes\"` is useless in git log. If you're doing a catch-up commit, take the time to split and describe each change.\n- **Reverting without checking git log first** — if you're unsure whether a change was already made, `git log --oneline -20` is your first move, not your notes.\n\n## Mode 2: Checkpoint (Before Risk)\n\nSame as before. Use before any operation you'd regret if it failed.\n\n```bash\nbash scripts/checkpoint.sh \"reason for checkpoint\"\n```\n\nReturns a commit hash — your rollback point.\n\n### When to checkpoint\n\n- Before `update.run` or `config.apply`\n- Before bulk file deletions or moves\n- Before config/architecture changes\n- Before any operation that could break the workspace\n\n## Mode 3: Rollback (When Things Break)\n\n```bash\nbash scripts/rollback.sh <commit-hash> \"what broke\" \"why it broke\" \"which principle it tests\" [--prompted]\n```\n\nReverts to checkpoint (including cleaning untracked files created after it) AND appends a regression entry to `docs/ops/regressions.md`.\n\n**All four reason arguments are required.** You can't rollback without logging what went wrong. Failures are data.\n\nThe `--prompted` flag marks the regression as 🔴 (human-caught). Default is 🟢 (self-caught). Be honest — the ratio is the scorecard.\n\n### Regression storage\n\n- **Active (last 10):** `docs/ops/regressions.md` — loaded on demand, NOT pinned at boot\n- **Archive:** `docs/ops/regression-archive.md` — auto-rotated when active exceeds 10\n- **PRINCIPLES.md** stays small and stable — no volatile data\n\n### Regression format\n\nAuto-appended to `docs/ops/regressions.md`:\n\n```\nN. 🟢 **<what broke>** (<date>) — <what broke> → <why> → Rolled back to <hash>. Tests \"<principle>\".\n```\n\n## Mode 4: Isolate (Worktree for Parallel/Risky Work)\n\nUse a separate worktree when you need isolation: large refactors, risky migrations, or parallel feature streams.\n\n```bash\nbash scripts/worktree.sh create feat-branch-name\nbash scripts/worktree.sh list\nbash scripts/worktree.sh path feat-branch-name\ncd \"$(bash scripts/worktree.sh path feat-branch-name)\"\n```\n\n### Why this mode exists\n\n- Keeps your main workspace clean while experimenting\n- Reduces accidental cross-branch contamination\n- Makes cleanup deterministic (`bash scripts/worktree.sh cleanup`)\n\n### Rules\n\n- Do not call `git worktree add` directly. Use `scripts/worktree.sh` so `.worktrees/` handling stays consistent.\n- Base new worktrees from the default branch unless you have an explicit reason not to.\n- Before deleting worktrees, make sure changes are merged or intentionally discarded.\n- If you want branch cleanup, use `bash scripts/worktree.sh remove <branch> --prune-branch` (add `--force-branch` only when intentionally discarding unmerged work).\n\n## Mode 5: Release Hygiene (Before Publishing This Skill)\n\nClawBack itself needs strict version control. Before publishing this repo, validate release metadata:\n\n```bash\nbash scripts/release-check.sh [base-ref]\n```\n\nThe check enforces:\n\n- `VERSION` exists and is valid semver\n- `VERSION` is bumped versus `base-ref` when skill files change\n- `CHANGELOG.md` is updated and includes a section for the current `VERSION`\n\nFor full policy and checklist, see [references/versioning.md](references/versioning.md).\n\n## Daily Log Discipline\n\nDaily logs (`memory/YYYY-MM-DD.md`) are **standup updates, not debug transcripts.**\n\n### Format per project entry\n\n```markdown\n### Project Name\n- What changed (reference commit hashes for detail)\n- What's blocked\n- What's next\n```\n\n**Max 5 lines per project.** If a fix needs documentation for future reference, write it in the relevant `docs/` file — not the daily log.\n\n### Line budget\n\n- **Target:** 60-80 lines total per day\n- **Hard cap:** 100 lines\n- **If you're over 100:** you're writing debug transcripts. Move the detail to git commits or docs/ files.\n\n### What goes in daily logs vs. elsewhere\n\n| Detail | Where it goes |\n|--------|--------------|\n| \"Fixed X, working now\" | Daily log (1 line + commit hash) |\n| Step-by-step debugging | Git commit messages (already there if you committed as you went) |\n| How a system works / config details | `docs/` file |\n| Decision and reasoning | Daily log (2-3 lines) or decision ledger |\n| Error messages, stack traces | Nowhere persistent — they served their purpose |\n\n### Example: good vs. bad\n\n**Bad (50 lines for one project):**\n```\n### openclaw-voice\n- Tried Chatterbox TTS, took 30+ seconds per response\n- Found Piper TTS, installed via pip\n- Had to fix ONNX runtime dependency\n- Piper works but output is 22kHz, need to resample\n- Fixed resampling with scipy\n- Then Safari wouldn't play audio\n- Safari needs user gesture for AudioContext\n- Fixed by initializing on button click\n- Then Whisper was getting garbled input\n- Input was 48kHz, Whisper expects 16kHz\n- Added resampling in the receive path too\n- Now it works end to end\n...\n```\n\n**Good (4 lines):**\n```\n### openclaw-voice\n- Two-way voice working: Piper TTS + Whisper STT, Safari frontend (`a2b1f09`..`b8d9e12`)\n- Key fixes: AudioContext user gesture init, 48→16kHz resampling for Whisper\n- Pending: LaunchAgent for auto-start, VAD chunk size fix\n```\n\n## Context Hygiene\n\nYour context window is a finite, non-renewable resource within a session. Treat it like RAM — fill it and you crash.\n\n### The Rule\n\n**If a tool result is large and you need the data, write it to a file immediately.** Don't hold it in context hoping to use it later. Extract what you need, save it, move on.\n\n### Context Budget\n\nYour context window varies by model. As a rule of thumb:\n\n- **Usable working memory** ≈ 60% of total context (the rest is system prompt, compaction reserve, and conversation history)\n- **Single web_fetch result:** 50-400K chars — can consume a huge share of your budget in one call\n- Check your agent config for exact `contextTokens` and `compaction.reserveTokensFloor` values\n\n### Warning Signs\n\nYou're about to blow context if:\n- You've done 3+ web_fetch calls without writing results to disk\n- You're holding multiple large tool results while planning what to do with them\n- You're in a long session with lots of back-and-forth AND large tool results\n\n### What To Do\n\n1. **Write to disk immediately.** After any large tool result, extract the data you need and save it to a file.\n2. **Batch external calls.** 50 URLs? Do 5-10 at a time with disk writes between batches.\n3. **Reference, don't repeat.** Once data is in a file, reference the file path — don't paste the contents back.\n4. **Checkpoint before heavy operations.** If a batch job might crash, checkpoint first so you can resume.\n\n## .gitignore Rules\n\nEvery workspace should have these in `.gitignore`:\n\n```\n*.log\nlogs/\n*.pyc\n__pycache__/\nnode_modules/\n.env\n*.secret\n*.key\ndata/\n```\n\nIf you find a log file or runtime artifact tracked in git, remove it:\n\n```bash\ngit rm --cached path/to/file.log\necho \"path/to/file.log\" >> .gitignore\ngit commit -m \"chore: remove tracked log file, update .gitignore\"\n```\n\n## Publishing Skills to GitHub\n\nBefore pushing any skill repo to GitHub, read and follow `docs/ops/skill-publishing.md` (canonical). Keep ClawBack's teaching copy in sync by running `bash /Users/seneschal/.openclaw/workspace/scripts/sync-skill-publishing-sop.sh` after any SOP change. Never push from the workspace root — workspace git is local-only.\n\n## Versioning & Changelog Discipline\n\nBefore publishing updates to this skill, follow [references/versioning.md](references/versioning.md) and run:\n\n```bash\nbash scripts/release-check.sh\n```\n\n## Crash Recovery\n\nFor long-running and batch operations, see [references/crash-recovery.md](references/crash-recovery.md) — covers ephemeral log avoidance, manifest-driven batches, git checkpoint protocol, detached execution, and Plan → Track → Verify.\n\n## Quick Reference\n\n| Situation | Action |\n|-----------|--------|\n| Just finished a fix | `git commit -m \"fix: what — why\"` |\n| Just added a feature | `git commit -m \"feat: what — why\"` |\n| About to do something risky | `bash scripts/checkpoint.sh \"reason\"` |\n| Something broke after a change | `bash scripts/rollback.sh <hash> \"what\" \"why\" \"principle\"` |\n| Need isolated parallel work | `bash scripts/worktree.sh create <branch>` |\n| Need to cleanup old worktrees | `bash scripts/worktree.sh cleanup` |\n| Preparing to publish skill updates | `bash scripts/release-check.sh [base-ref]` |\n| Writing daily log | Max 5 lines/project, reference commits, target 60-80 lines total |\n| Found a log file in git | `git rm --cached`, add to `.gitignore` |\n\n## Notes\n\n- Works on any OpenClaw workspace with git initialized\n- Auto-detects workspace root via `git rev-parse --show-toplevel`\n- Never force-pushes or rewrites history\n- Checkpoint messages include timestamp + reason for auditability\n- Regressions logged to `docs/ops/regressions.md` (auto-created if missing)\n- Worktrees are managed in `.worktrees/` via `scripts/worktree.sh`\n- Release metadata enforcement via `scripts/release-check.sh`\n","readmeExcerpt":"--- name: clawback description: Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene. --- ClawBack A complete git workflow for AI agents. Five modes: **Commit** (default), **Checkpoint** (before risk), **Rollback** (when things break), **Isolate** (worktree for risky parallel work), and **Release Hygiene** (before publishing this skill). Mode 1: Commit (Default W","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"cd $(git rev-parse --show-toplevel)\ngit add -A  # or specific files\ngit commit -m \"type: what changed — why\""},{"language":"text","snippet":"type: concise description of what changed — why (if not obvious)"},{"language":"text","snippet":"feat: replace Chatterbox with Piper TTS — 30x faster, Chatterbox took 30+ seconds\nfix: Safari AudioContext — init on user gesture, not on chunk arrival\ndocs: add social consensus spec for benchmark governance\nrefactor: split voice handler into separate STT and TTS modules\nchore: update .gitignore, remove tracked log files"},{"language":"text","snippet":"e3ce305 fix: Safari AudioContext — init on user gesture, not on chunk arrival\na2b1f09 feat: replace Chatterbox with Piper TTS — 30x faster\n6fc28af fix: resample 48kHz→16kHz for Whisper, cast float64→float32\nb8d9e12 feat: add LaunchAgent for auto-start on boot"},{"language":"text","snippet":"- Run `git status --short` in workspace. If dirty, commit each changed file with a descriptive message."},{"language":"bash","snippet":"bash scripts/checkpoint.sh \"reason for checkpoint\""}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene. --- name: clawback description: Git workflow for AI agents — commit-as-you-go, checkpoint/rollback, worktree isolation, and release hygiene. --- ClawBack A complete git workflow for AI agents. Five modes: **Commit** (default), **Checkpoint** (before risk), **Rollback** (when things break), **Isolate** (worktree for risky parallel work), and **Release Hygiene** (before publishing this skill). Mode 1: Commit (Default W","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":359,"uniquenessScore":67,"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-04-17T04:28:31.552Z","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"}]}}}