{"id":"aae179ff-66c8-4aee-953f-12c442bb0568","entityType":"agent","slug":"penfieldlabs-penfield-mcp","name":"penfield-mcp","canonicalUrl":"https://www.xpersona.co/agent/penfieldlabs-penfield-mcp","canonicalPath":"/agent/penfieldlabs-penfield-mcp","generatedAt":"2026-10-09T16:25:54.664Z","source":"GITHUB_REPOS","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid search (BM25 + vector + graph) recalls what matters when you need it. --- name: penfield description: Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid search (BM25 + vector + graph) recalls what matters when you need it. --- Penfield Memory Persistent memory that compounds. You remember conversations, learn preferences, connect ideas, and pick up exactly where you left off—acr","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":null,"sourceUrl":"https://github.com/penfieldlabs/penfield-mcp","homepage":"https://penfield.app","primaryLinks":[{"label":"View Source","url":"https://github.com/penfieldlabs/penfield-mcp","kind":"source"},{"label":"Homepage","url":"https://penfield.app","kind":"homepage"}],"safetyScore":89,"overallRank":38.3,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid "},"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":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|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-25T04:18:34.388Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-02-25T04:18:34.388Z","lastIndexedAt":null,"nextCrawlAt":"2026-03-04T04:18:34.388Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"GITHUB REPOS","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":null,"setupComplexity":"medium","setupSteps":["Setup complexity is MEDIUM. Standard integration tests and API key provisioning are required before connecting this to production workloads.","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/penfieldlabs-penfield-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_REPOS","generatedAt":"2026-10-09T16:25:54.664Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/penfieldlabs-penfield-mcp/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 REPOS","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"---\nname: penfield\ndescription: Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid search (BM25 + vector + graph) recalls what matters when you need it.\n---\n\n# Penfield Memory\n\nPersistent memory that compounds. You remember conversations, learn preferences, connect ideas, and pick up exactly where you left off—across sessions, days, and tools.\n\n## Every Session Starts Here\n\nAlways do this first, before anything else:\n\n```\nawaken()\nreflect({ time_window: \"7d\" })\n```\n\n`awaken` loads your identity and personality context. `reflect` orients you on recent work. Without these, you're starting cold.\n\n## Tools\n\n### Memory\n\n| Tool | Purpose | When to use |\n|------|---------|-------------|\n| `store` | Save a memory | User shares preferences, you make a discovery, a decision is made, you learn something worth keeping |\n| `recall` | Hybrid search (BM25 + vector + graph) | Need context before responding, resuming a topic, looking up prior decisions |\n| `search` | Semantic search (higher vector weight) | Fuzzy concept search when you don't have exact terms |\n| `fetch` | Get memory by ID | Following up on a specific memory from recall results |\n| `update_memory` | Edit existing memory | Correcting, adding detail, changing importance or tags |\n\n### Knowledge Graph\n\n| Tool | Purpose | When to use |\n|------|---------|-------------|\n| `connect` | Link two memories | New info relates to existing knowledge, building understanding over time |\n| `disconnect` | Remove a link | Connection no longer valid or was made in error |\n| `explore` | Traverse graph from a memory | Understanding how ideas connect, finding related context |\n\n### Context & Analysis\n\n| Tool | Purpose | When to use |\n|------|---------|-------------|\n| `awaken` | Load identity and personality | Start of every session — this is your \"boot sequence\" |\n| `reflect` | Analyze memory patterns | Session start orientation, finding themes, spotting gaps |\n| `save_context` | Checkpoint a session | Ending substantive work, preparing for handoff to another agent |\n| `restore_context` | Resume from checkpoint | Picking up where you or another agent left off |\n| `list_contexts` | List saved checkpoints | Finding previous sessions to resume |\n\n### Artifacts\n\n| Tool | Purpose | When to use |\n|------|---------|-------------|\n| `save_artifact` | Store a file | Saving diagrams, notes, code, reference docs |\n| `retrieve_artifact` | Get a file | Loading previously saved work |\n| `list_artifacts` | List stored files | Browsing saved artifacts |\n| `delete_artifact` | Remove a file | Cleaning up outdated artifacts |\n\n## Writing Memories That Actually Work\n\nMemory content quality determines whether Penfield is useful or useless. The difference is specificity and context.\n\n**Bad — vague, no context, unfindable later:**\n```\n\"User likes Python\"\n```\n\n**Good — specific, contextual, findable:**\n```\n\"[Preferences] User prefers Python over JavaScript for backend work.\nReason: frustrated by JS callback patterns and lack of type safety.\nValues type hints and explicit error handling. Uses FastAPI for APIs.\"\n```\n\n**What makes a memory findable:**\n\n1. **Context prefix** in brackets: `[Preferences]`, `[Project: API Redesign]`, `[Investigation: Payment Bug]`, `[Decision]`\n2. **The \"why\" behind the \"what\"** — rationale matters more than the fact itself\n3. **Specific details** — names, numbers, dates, versions, not vague summaries\n4. **References to related memories** — \"This builds on [earlier finding about X]\" or \"Contradicts previous assumption that Y\"\n\n## Memory Types\n\nUse the correct type. The system uses these for filtering and analysis.\n\n| Type | Use for | Example |\n|------|---------|---------|\n| `fact` | Verified, durable information | \"User's company runs Kubernetes on AWS EKS\" |\n| `insight` | Patterns or realizations | \"Deployment failures correlate with Friday releases\" |\n| `correction` | Fixing prior understanding | \"CORRECTION: The timeout isn't Redis — it's a hardcoded batch limit\" |\n| `conversation` | Session summaries, notable exchanges | \"Discussed migration strategy. User leaning toward incremental approach\" |\n| `reference` | Source material, citations | \"RFC 8628 defines Device Code Flow for OAuth on input-constrained devices\" |\n| `task` | Work items, action items | \"TODO: Benchmark recall latency after index rebuild\" |\n| `strategy` | Approaches, methods, plans | \"For user's codebase: always check types.ts first, it's the source of truth\" |\n| `checkpoint` | Milestone states | \"Project at 80% — auth complete, UI remaining\" |\n| `identity_core` | Immutable identity facts | **Protected** — manage via `/api/v2/personality` or portal |\n| `personality_trait` | Behavioral patterns | **Protected** — manage via `/api/v2/personality` or portal |\n| `relationship` | Entity connections | \"User works with Chad Schultz on cybersecurity content\" |\n\n## Importance Scores\n\nUse the full range. Not everything is 0.5.\n\n| Score | Meaning | Example |\n|-------|---------|---------|\n| 0.9–1.0 | Critical — never forget | Architecture decisions, hard-won corrections, core preferences |\n| 0.7–0.8 | Important — reference often | Project context, key facts about user's work |\n| 0.5–0.6 | Normal — useful context | General preferences, session summaries |\n| 0.3–0.4 | Minor — background detail | Tangential facts, low-stakes observations |\n| 0.1–0.2 | Trivial — probably don't store | If you're questioning whether to store it, don't |\n\n## Connecting Memories\n\nConnections are what make Penfield powerful. An isolated memory is just a note. A connected memory is understanding.\n\n**After storing a memory, always ask:** What does this relate to? Then connect it.\n\n### Relationship Types (24)\n\n**Knowledge Evolution:** `supersedes` · `updates` · `evolution_of`\nUse when understanding changes. \"We thought X, now we know Y.\"\n\n**Evidence:** `supports` · `contradicts` · `disputes`\nUse when new information validates or challenges existing beliefs.\n\n**Hierarchy:** `parent_of` · `child_of` · `sibling_of` · `composed_of` · `part_of`\nUse for structural relationships. Topics containing subtopics, systems containing components.\n\n**Causation:** `causes` · `influenced_by` · `prerequisite_for`\nUse for cause-and-effect chains and dependencies.\n\n**Implementation:** `implements` · `documents` · `tests` · `example_of`\nUse when something demonstrates, describes, or validates something else.\n\n**Conversation:** `responds_to` · `references` · `inspired_by`\nUse for attribution and dialogue threads.\n\n**Sequence:** `follows` · `precedes`\nUse for ordered steps in a process or timeline.\n\n**Dependencies:** `depends_on`\nUse when one thing requires another.\n\n## Recall Strategy\n\nGood queries find things. Bad queries return noise.\n\n**Tune search weights for your query type:**\n\n| Query type | bm25_weight | vector_weight | graph_weight |\n|-----------|-------------|---------------|--------------|\n| Exact term lookup (\"Twilio auth token\") | 0.6 | 0.3 | 0.1 |\n| Concept search (\"how we handle errors\") | 0.2 | 0.6 | 0.2 |\n| Connected knowledge (\"everything about payments\") | 0.2 | 0.3 | 0.5 |\n| Default (balanced) | 0.4 | 0.4 | 0.2 |\n\n**Filter aggressively:**\n- `memory_types: [\"correction\", \"insight\"]` to find discoveries and corrections\n- `importance_threshold: 0.7` to skip noise\n- `enable_graph_expansion: true` to follow connections (default, usually leave on)\n\n## Workflows\n\n### User shares a preference\n\n```\nstore({\n  content: \"[Preferences] User wants responses under 3 paragraphs unless complexity demands more. Dislikes bullet points in casual conversation.\",\n  memory_type: \"fact\",\n  importance: 0.8,\n  tags: [\"preferences\", \"communication\"]\n})\n```\n\n### Investigation tracking\n\n```\n// Start\ninitial = store({\n  content: \"[Investigation: Deployment Failures] Reports of 500 errors after every Friday deploy. Checking release pipeline, config drift, and traffic patterns.\",\n  memory_type: \"task\",\n  importance: 0.7,\n  tags: [\"investigation\", \"deployment\"]\n})\n\n// Discovery — connect to the investigation\ndiscovery = store({\n  content: \"[Investigation: Deployment Failures] INSIGHT: Friday deploys coincide with weekly batch job at 17:00 UTC. Both compete for DB connection pool. Not a deploy issue — it's resource contention.\",\n  memory_type: \"insight\",\n  importance: 0.9,\n  tags: [\"investigation\", \"deployment\", \"root-cause\"]\n})\nconnect({\n  from_memory_id: discovery.id,\n  to_memory_id: initial.id,\n  relationship_type: \"responds_to\"\n})\n\n// Correction — supersede wrong assumption\ncorrection = store({\n  content: \"[Investigation: Deployment Failures] CORRECTION: Not a CI/CD problem. Friday batch job + deploy = connection pool exhaustion. Fix: stagger batch job to 03:00 UTC.\",\n  memory_type: \"correction\",\n  importance: 0.9,\n  tags: [\"investigation\", \"deployment\", \"correction\"]\n})\nconnect({\n  from_memory_id: correction.id,\n  to_memory_id: initial.id,\n  relationship_type: \"supersedes\"\n})\n```\n\n### Session handoff\n\n```\nsave_context({\n  name: \"Deployment Investigation - 2026-02\",\n  description: \"Found root cause: Friday batch job + deploy = connection pool exhaustion. Key memories: discovery.id, correction.id. Fix: stagger batch job to 03:00 UTC.\"\n})\n```\n\nNext session or different agent:\n\n```\nrestore_context({\n  name: \"Deployment Investigation - 2026-02\"\n})\n```\n\n## What NOT to Store\n\n- Verbatim conversation transcripts (too verbose, low signal)\n- Easily googled facts (use web search instead)\n- Ephemeral task state (use working memory)\n- Anything the user hasn't consented to store about themselves\n- Every minor exchange (be selective — quality over quantity)\n\n## Tags\n\nKeep them short, consistent, lowercase. 2–5 per memory.\n\nGood: `preferences`, `architecture`, `investigation`, `correction`, `project-name`\nBad: `2026-02-02`, `important-memory-about-deployment`, `UserPreferencesForCommunicationStyle`\n\n## Links\n\n- Website: [penfield.app](https://penfield.app)\n- Sign up: [portal.penfield.app/sign-up](https://portal.penfield.app/sign-up)\n- X: [@penfieldlabs](https://x.com/penfieldlabs)\n\n---\n\nCopyright © 2025 Penfield™. All rights reserved.\n","readmeExcerpt":"--- name: penfield description: Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid search (BM25 + vector + graph) recalls what matters when you need it. --- Penfield Memory Persistent memory that compounds. You remember conversations, learn preferences, connect ideas, and pick up exactly where you left off—acr","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"awaken()\nreflect({ time_window: \"7d\" })"},{"language":"text","snippet":"\"User likes Python\""},{"language":"text","snippet":"\"[Preferences] User prefers Python over JavaScript for backend work.\nReason: frustrated by JS callback patterns and lack of type safety.\nValues type hints and explicit error handling. Uses FastAPI for APIs.\""},{"language":"text","snippet":"store({\n  content: \"[Preferences] User wants responses under 3 paragraphs unless complexity demands more. Dislikes bullet points in casual conversation.\",\n  memory_type: \"fact\",\n  importance: 0.8,\n  tags: [\"preferences\", \"communication\"]\n})"},{"language":"text","snippet":"// Start\ninitial = store({\n  content: \"[Investigation: Deployment Failures] Reports of 500 errors after every Friday deploy. Checking release pipeline, config drift, and traffic patterns.\",\n  memory_type: \"task\",\n  importance: 0.7,\n  tags: [\"investigation\", \"deployment\"]\n})\n\n// Discovery — connect to the investigation\ndiscovery = store({\n  content: \"[Investigation: Deployment Failures] INSIGHT: Friday deploys coincide with weekly batch job at 17:00 UTC. Both compete for DB connection pool. Not a deploy issue — it's resource contention.\",\n  memory_type: \"insight\",\n  importance: 0.9,\n  tags: [\"investigation\", \"deployment\", \"root-cause\"]\n})\nconnect({\n  from_memory_id: discovery.id,\n  to_memory_id: initial.id,\n  relationship_type: \"responds_to\"\n})\n\n// Correction — supersede wrong assumption\ncorrection = store({\n  content: \"[Investigation: Deployment Failures] CORRECTION: Not a CI/CD problem. Friday batch job + deploy = connection pool exhaustion. Fix: stagger batch job to 03:00 UTC.\",\n  memory_type: \"correction\",\n  importance: 0.9,\n  tags: [\"investigation\", \"deployment\", \"correction\"]\n})\nconnect({\n  from_memory_id: correction.id,\n  to_memory_id: initial.id,\n  relationship_type: \"supersedes\"\n})"},{"language":"text","snippet":"save_context({\n  name: \"Deployment Investigation - 2026-02\",\n  description: \"Found root cause: Friday batch job + deploy = connection pool exhaustion. Key memories: discovery.id, correction.id. Fix: stagger batch job to 03:00 UTC.\"\n})"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB REPOS","editorialOverview":"Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid search (BM25 + vector + graph) recalls what matters when you need it. --- name: penfield description: Persistent memory for AI agents. Store decisions, preferences, and context that survive across sessions. Build knowledge graphs that compound over time. Hybrid search (BM25 + vector + graph) recalls what matters when you need it. --- Penfield Memory Persistent memory that compounds. You remember conversations, learn preferences, connect ideas, and pick up exactly where you left off—acr","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":397,"uniquenessScore":64,"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-09T16:25:54.664Z","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_repos","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}