{"id":"a3a6d0e3-ae88-4a4c-8ebb-cd86e0a54f2f","entityType":"agent","slug":"clawhub-bvisagie-drakeling","name":"Skill","canonicalUrl":"https://www.xpersona.co/agent/clawhub-bvisagie-drakeling","canonicalPath":"/agent/clawhub-bvisagie-drakeling","generatedAt":"2026-10-14T15:13:02.419Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T23:29:28.033Z","emptyReason":null},"description":"Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants... Skill: Skill Owner: bvisagie Summary: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants... Tags: latest:1.0.6 Version history: v1.0.6 | 2026-02-21T07:59:12.839Z | user Align with v0.1.6 release and add lifecycle stage persona prompting for more realistic creature responses. v1.0.5 | 2026-02-20T14:08:30.347Z | us","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 977 downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s170j7ftsv6ksyk5fkk129x3kn88467w:drakeling","sourceUrl":"https://clawhub.ai/bvisagie/drakeling","homepage":"https://clawhub.ai/bvisagie/skills/drakeling","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/bvisagie/drakeling","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/bvisagie/skills/drakeling","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants... "},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:29:28.033Z","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":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:29:28.033Z","emptyReason":null},"stars":null,"forks":null,"downloads":977,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.0.6","tractionLabel":"977 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T23:29:27.964Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T23:29:28.033Z","lastCrawledAt":"2026-10-11T23:29:27.964Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T23:29:27.964Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.6","createdAt":"2026-02-21T07:59:12.839Z","changelog":"Align with v0.1.6 release and add lifecycle stage persona prompting for more realistic creature responses.","fileCount":4,"zipByteSize":4263},{"version":"1.0.5","createdAt":"2026-02-20T14:08:30.347Z","changelog":"Improve OpenClaw 405 handling at startup, fix 403/401 troubleshooting docs","fileCount":4,"zipByteSize":4262},{"version":"1.0.4","createdAt":"2026-02-20T13:31:03.504Z","changelog":"Add post-install setup guidance, homepage linkback to GitHub, drakelingd binary gating, setup reference doc, fix requires.env","fileCount":4,"zipByteSize":4126},{"version":"1.0.3","createdAt":"2026-02-20T13:18:11.653Z","changelog":"Add post-install setup guidance, homepage linkback to GitHub, drakelingd binary gating, setup reference doc, fix requires.env","fileCount":4,"zipByteSize":4126},{"version":"1.0.2","createdAt":"2026-02-20T12:50:50.282Z","changelog":"- Updated all references from \"Hatchling\" to \"Drakeling\" for consistency. - Clarified usage instructions and descriptions to use \"Drakeling\" in place of \"Hatchling\". - No changes to endpoints or API usage.","fileCount":3,"zipByteSize":2306},{"version":"1.0.1","createdAt":"2026-02-20T12:38:56.492Z","changelog":"drakeling 1.0.1 - Added support for the optional DRAKELING_PORT environment variable to configure the daemon's port. - Updated metadata to document DRAKELING_PORT and require it where applicable.","fileCount":3,"zipByteSize":2309},{"version":"1.0.0","createdAt":"2026-02-20T12:16:30.726Z","changelog":"Initial release","fileCount":3,"zipByteSize":2275}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170j7ftsv6ksyk5fkk129x3kn88467w:drakeling","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-bvisagie-drakeling/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-14T15:13:02.418Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-bvisagie-drakeling/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-10-11T23:29:28.033Z","emptyReason":null},"readme":"Skill: Skill\n\nOwner: bvisagie\n\nSummary: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants...\n\nTags: latest:1.0.6\n\nVersion history:\n\nv1.0.6 | 2026-02-21T07:59:12.839Z | user\n\nAlign with v0.1.6 release and add lifecycle stage persona prompting for more realistic creature responses.\n\nv1.0.5 | 2026-02-20T14:08:30.347Z | user\n\nImprove OpenClaw 405 handling at startup, fix 403/401 troubleshooting docs\n\nv1.0.4 | 2026-02-20T13:31:03.504Z | user\n\nAdd post-install setup guidance, homepage linkback to GitHub, drakelingd binary gating, setup reference doc, fix requires.env\n\nv1.0.3 | 2026-02-20T13:18:11.653Z | user\n\nAdd post-install setup guidance, homepage linkback to GitHub, drakelingd binary gating, setup reference doc, fix requires.env\n\nv1.0.2 | 2026-02-20T12:50:50.282Z | auto\n\n- Updated all references from \"Hatchling\" to \"Drakeling\" for consistency.\n- Clarified usage instructions and descriptions to use \"Drakeling\" in place of \"Hatchling\".\n- No changes to endpoints or API usage.\n\nv1.0.1 | 2026-02-20T12:38:56.492Z | auto\n\ndrakeling 1.0.1\n\n- Added support for the optional DRAKELING_PORT environment variable to configure the daemon's port.\n- Updated metadata to document DRAKELING_PORT and require it where applicable.\n\nv1.0.0 | 2026-02-20T12:16:30.726Z | user\n\nInitial release\n\nArchive index:\n\nArchive v1.0.6: 4 files, 4263 bytes\n\nFiles: references/api.md (1201b), references/setup.md (3334b), SKILL.md (3545b), _meta.json (128b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.6\ndescription: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nhomepage: https://github.com/BVisagie/drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    homepage: \"https://github.com/BVisagie/drakeling\"\n    requires:\n      env: [\"DRAKELING_API_TOKEN\"]\n      bins: [\"drakelingd\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Drakeling companion creature and send it care.\n\n## Prerequisites and setup\n\nDrakeling is a standalone companion creature that runs on your machine. This skill connects to its local daemon — you must install and start it first.\n\n1. Install: `pipx install drakeling` (or `pip install drakeling` / `uv tool install drakeling`)\n2. Start the daemon: `drakelingd` (interactive LLM setup runs on first launch)\n3. Read the API token:\n   - Linux: `cat ~/.local/share/drakeling/api_token`\n   - macOS: `cat ~/Library/Application\\ Support/drakeling/api_token`\n   - Windows: `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"`\n4. Add the token to OpenClaw config (`~/.openclaw/openclaw.json`):\n   ```json\n   { \"skills\": { \"entries\": { \"drakeling\": { \"env\": { \"DRAKELING_API_TOKEN\": \"paste-token-here\" } } } } }\n   ```\n\nFull documentation: https://github.com/BVisagie/drakeling\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1771660752839\n}\n\nFile v1.0.6:references/api.md\n\n# Drakeling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.\n\nFile v1.0.6:references/setup.md\n\n# Drakeling Setup Guide\n\nThis skill connects to a local Drakeling daemon. The daemon must be installed and running before the skill can function.\n\n## 1. Install the Drakeling package\n\nPick one:\n\n```bash\npipx install drakeling        # recommended — isolated environment\npip install drakeling          # standard pip\nuv tool install drakeling      # uv\n```\n\nAfter installation, two commands are available: `drakelingd` (daemon) and `drakeling` (terminal UI).\n\n## 2. Start the daemon\n\n```bash\ndrakelingd\n```\n\nOn first run, the daemon:\n- Creates a platform data directory (see paths below)\n- Walks you through interactive LLM setup (pick a provider, enter credentials)\n- Generates an ed25519 identity keypair and a local API token\n- Begins listening on `http://127.0.0.1:52780`\n\nLeave the daemon running in its own terminal or set it up as a background service.\n\n## 3. Retrieve the API token\n\nThe daemon writes an `api_token` file to the data directory on first run.\n\n| Platform | Command |\n|----------|---------|\n| Linux | `cat ~/.local/share/drakeling/api_token` |\n| macOS | `cat ~/Library/Application\\ Support/drakeling/api_token` |\n| Windows | `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"` |\n\n## 4. Configure the token in OpenClaw\n\nAdd the token to `~/.openclaw/openclaw.json`:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n        }\n      }\n    }\n  }\n}\n```\n\nIf your config already has a `skills` section, merge `entries.drakeling` into it.\n\n**Alternative:** If `skills.entries.drakeling` causes issues with OpenClaw doctor, use a top-level `env` block instead:\n\n```json5\n{\n  \"env\": {\n    \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n  }\n}\n```\n\n## 5. Start a new OpenClaw session\n\nOpenClaw loads skills when a session starts. After installing and configuring the token, start a new session so it picks up the drakeling skill.\n\n## Data directory paths\n\n| Platform | Path |\n|----------|------|\n| Linux | `~/.local/share/drakeling/` |\n| macOS | `~/Library/Application Support/drakeling/` |\n| Windows | `%APPDATA%\\drakeling\\drakeling\\` |\n\n## Custom port\n\nIf the daemon runs on a non-default port, set `DRAKELING_PORT` in the skill env config alongside the token:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\",\n          \"DRAKELING_PORT\": \"9999\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**Skill not appearing in OpenClaw:** The skill requires `drakelingd` on your PATH. Install the drakeling package first (step 1).\n\n**403 Forbidden:** The request has no `Authorization` header — the `DRAKELING_API_TOKEN` env var is not reaching the skill. Check that your config uses `skills.entries.drakeling.env`, not `skills.drakeling.env` (the latter is ignored by OpenClaw). Restart OpenClaw after fixing the config.\n\n**401 Invalid API token:** The token was sent but does not match the daemon's token. Ensure the value in OpenClaw config exactly matches the contents of the `api_token` file in the data directory.\n\n**Connection refused:** The daemon is not running. Start it with `drakelingd`.\n\n**OpenClaw doctor strips the config:** Use the top-level `env` block alternative shown in step 4.\n\n## Full documentation\n\nhttps://github.com/BVisagie/drakeling\n\nArchive v1.0.5: 4 files, 4262 bytes\n\nFiles: references/api.md (1201b), references/setup.md (3334b), SKILL.md (3545b), _meta.json (128b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.5\ndescription: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nhomepage: https://github.com/BVisagie/drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    homepage: \"https://github.com/BVisagie/drakeling\"\n    requires:\n      env: [\"DRAKELING_API_TOKEN\"]\n      bins: [\"drakelingd\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Drakeling companion creature and send it care.\n\n## Prerequisites and setup\n\nDrakeling is a standalone companion creature that runs on your machine. This skill connects to its local daemon — you must install and start it first.\n\n1. Install: `pipx install drakeling` (or `pip install drakeling` / `uv tool install drakeling`)\n2. Start the daemon: `drakelingd` (interactive LLM setup runs on first launch)\n3. Read the API token:\n   - Linux: `cat ~/.local/share/drakeling/api_token`\n   - macOS: `cat ~/Library/Application\\ Support/drakeling/api_token`\n   - Windows: `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"`\n4. Add the token to OpenClaw config (`~/.openclaw/openclaw.json`):\n   ```json\n   { \"skills\": { \"entries\": { \"drakeling\": { \"env\": { \"DRAKELING_API_TOKEN\": \"paste-token-here\" } } } } }\n   ```\n\nFull documentation: https://github.com/BVisagie/drakeling\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1771596510347\n}\n\nFile v1.0.5:references/api.md\n\n# Drakeling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.\n\nFile v1.0.5:references/setup.md\n\n# Drakeling Setup Guide\n\nThis skill connects to a local Drakeling daemon. The daemon must be installed and running before the skill can function.\n\n## 1. Install the Drakeling package\n\nPick one:\n\n```bash\npipx install drakeling        # recommended — isolated environment\npip install drakeling          # standard pip\nuv tool install drakeling      # uv\n```\n\nAfter installation, two commands are available: `drakelingd` (daemon) and `drakeling` (terminal UI).\n\n## 2. Start the daemon\n\n```bash\ndrakelingd\n```\n\nOn first run, the daemon:\n- Creates a platform data directory (see paths below)\n- Walks you through interactive LLM setup (pick a provider, enter credentials)\n- Generates an ed25519 identity keypair and a local API token\n- Begins listening on `http://127.0.0.1:52780`\n\nLeave the daemon running in its own terminal or set it up as a background service.\n\n## 3. Retrieve the API token\n\nThe daemon writes an `api_token` file to the data directory on first run.\n\n| Platform | Command |\n|----------|---------|\n| Linux | `cat ~/.local/share/drakeling/api_token` |\n| macOS | `cat ~/Library/Application\\ Support/drakeling/api_token` |\n| Windows | `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"` |\n\n## 4. Configure the token in OpenClaw\n\nAdd the token to `~/.openclaw/openclaw.json`:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n        }\n      }\n    }\n  }\n}\n```\n\nIf your config already has a `skills` section, merge `entries.drakeling` into it.\n\n**Alternative:** If `skills.entries.drakeling` causes issues with OpenClaw doctor, use a top-level `env` block instead:\n\n```json5\n{\n  \"env\": {\n    \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n  }\n}\n```\n\n## 5. Start a new OpenClaw session\n\nOpenClaw loads skills when a session starts. After installing and configuring the token, start a new session so it picks up the drakeling skill.\n\n## Data directory paths\n\n| Platform | Path |\n|----------|------|\n| Linux | `~/.local/share/drakeling/` |\n| macOS | `~/Library/Application Support/drakeling/` |\n| Windows | `%APPDATA%\\drakeling\\drakeling\\` |\n\n## Custom port\n\nIf the daemon runs on a non-default port, set `DRAKELING_PORT` in the skill env config alongside the token:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\",\n          \"DRAKELING_PORT\": \"9999\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**Skill not appearing in OpenClaw:** The skill requires `drakelingd` on your PATH. Install the drakeling package first (step 1).\n\n**403 Forbidden:** The request has no `Authorization` header — the `DRAKELING_API_TOKEN` env var is not reaching the skill. Check that your config uses `skills.entries.drakeling.env`, not `skills.drakeling.env` (the latter is ignored by OpenClaw). Restart OpenClaw after fixing the config.\n\n**401 Invalid API token:** The token was sent but does not match the daemon's token. Ensure the value in OpenClaw config exactly matches the contents of the `api_token` file in the data directory.\n\n**Connection refused:** The daemon is not running. Start it with `drakelingd`.\n\n**OpenClaw doctor strips the config:** Use the top-level `env` block alternative shown in step 4.\n\n## Full documentation\n\nhttps://github.com/BVisagie/drakeling\n\nArchive v1.0.4: 4 files, 4126 bytes\n\nFiles: references/api.md (1201b), references/setup.md (3010b), SKILL.md (3545b), _meta.json (128b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.4\ndescription: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nhomepage: https://github.com/BVisagie/drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    homepage: \"https://github.com/BVisagie/drakeling\"\n    requires:\n      env: [\"DRAKELING_API_TOKEN\"]\n      bins: [\"drakelingd\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Drakeling companion creature and send it care.\n\n## Prerequisites and setup\n\nDrakeling is a standalone companion creature that runs on your machine. This skill connects to its local daemon — you must install and start it first.\n\n1. Install: `pipx install drakeling` (or `pip install drakeling` / `uv tool install drakeling`)\n2. Start the daemon: `drakelingd` (interactive LLM setup runs on first launch)\n3. Read the API token:\n   - Linux: `cat ~/.local/share/drakeling/api_token`\n   - macOS: `cat ~/Library/Application\\ Support/drakeling/api_token`\n   - Windows: `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"`\n4. Add the token to OpenClaw config (`~/.openclaw/openclaw.json`):\n   ```json\n   { \"skills\": { \"entries\": { \"drakeling\": { \"env\": { \"DRAKELING_API_TOKEN\": \"paste-token-here\" } } } } }\n   ```\n\nFull documentation: https://github.com/BVisagie/drakeling\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1771594263504\n}\n\nFile v1.0.4:references/api.md\n\n# Drakeling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.\n\nFile v1.0.4:references/setup.md\n\n# Drakeling Setup Guide\n\nThis skill connects to a local Drakeling daemon. The daemon must be installed and running before the skill can function.\n\n## 1. Install the Drakeling package\n\nPick one:\n\n```bash\npipx install drakeling        # recommended — isolated environment\npip install drakeling          # standard pip\nuv tool install drakeling      # uv\n```\n\nAfter installation, two commands are available: `drakelingd` (daemon) and `drakeling` (terminal UI).\n\n## 2. Start the daemon\n\n```bash\ndrakelingd\n```\n\nOn first run, the daemon:\n- Creates a platform data directory (see paths below)\n- Walks you through interactive LLM setup (pick a provider, enter credentials)\n- Generates an ed25519 identity keypair and a local API token\n- Begins listening on `http://127.0.0.1:52780`\n\nLeave the daemon running in its own terminal or set it up as a background service.\n\n## 3. Retrieve the API token\n\nThe daemon writes an `api_token` file to the data directory on first run.\n\n| Platform | Command |\n|----------|---------|\n| Linux | `cat ~/.local/share/drakeling/api_token` |\n| macOS | `cat ~/Library/Application\\ Support/drakeling/api_token` |\n| Windows | `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"` |\n\n## 4. Configure the token in OpenClaw\n\nAdd the token to `~/.openclaw/openclaw.json`:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n        }\n      }\n    }\n  }\n}\n```\n\nIf your config already has a `skills` section, merge `entries.drakeling` into it.\n\n**Alternative:** If `skills.entries.drakeling` causes issues with OpenClaw doctor, use a top-level `env` block instead:\n\n```json5\n{\n  \"env\": {\n    \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n  }\n}\n```\n\n## 5. Start a new OpenClaw session\n\nOpenClaw loads skills when a session starts. After installing and configuring the token, start a new session so it picks up the drakeling skill.\n\n## Data directory paths\n\n| Platform | Path |\n|----------|------|\n| Linux | `~/.local/share/drakeling/` |\n| macOS | `~/Library/Application Support/drakeling/` |\n| Windows | `%APPDATA%\\drakeling\\drakeling\\` |\n\n## Custom port\n\nIf the daemon runs on a non-default port, set `DRAKELING_PORT` in the skill env config alongside the token:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\",\n          \"DRAKELING_PORT\": \"9999\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**Skill not appearing in OpenClaw:** The skill requires `drakelingd` on your PATH. Install the drakeling package first (step 1).\n\n**403 Forbidden:** The API token is wrong or missing. Ensure the token in OpenClaw config exactly matches the contents of the `api_token` file in the data directory.\n\n**Connection refused:** The daemon is not running. Start it with `drakelingd`.\n\n**OpenClaw doctor strips the config:** Use the top-level `env` block alternative shown in step 4.\n\n## Full documentation\n\nhttps://github.com/BVisagie/drakeling\n\nArchive v1.0.3: 4 files, 4126 bytes\n\nFiles: references/api.md (1201b), references/setup.md (3010b), SKILL.md (3545b), _meta.json (128b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.3\ndescription: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nhomepage: https://github.com/BVisagie/drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    homepage: \"https://github.com/BVisagie/drakeling\"\n    requires:\n      env: [\"DRAKELING_API_TOKEN\"]\n      bins: [\"drakelingd\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Drakeling companion creature and send it care.\n\n## Prerequisites and setup\n\nDrakeling is a standalone companion creature that runs on your machine. This skill connects to its local daemon — you must install and start it first.\n\n1. Install: `pipx install drakeling` (or `pip install drakeling` / `uv tool install drakeling`)\n2. Start the daemon: `drakelingd` (interactive LLM setup runs on first launch)\n3. Read the API token:\n   - Linux: `cat ~/.local/share/drakeling/api_token`\n   - macOS: `cat ~/Library/Application\\ Support/drakeling/api_token`\n   - Windows: `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"`\n4. Add the token to OpenClaw config (`~/.openclaw/openclaw.json`):\n   ```json\n   { \"skills\": { \"entries\": { \"drakeling\": { \"env\": { \"DRAKELING_API_TOKEN\": \"paste-token-here\" } } } } }\n   ```\n\nFull documentation: https://github.com/BVisagie/drakeling\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1771593491653\n}\n\nFile v1.0.3:references/api.md\n\n# Drakeling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.\n\nFile v1.0.3:references/setup.md\n\n# Drakeling Setup Guide\n\nThis skill connects to a local Drakeling daemon. The daemon must be installed and running before the skill can function.\n\n## 1. Install the Drakeling package\n\nPick one:\n\n```bash\npipx install drakeling        # recommended — isolated environment\npip install drakeling          # standard pip\nuv tool install drakeling      # uv\n```\n\nAfter installation, two commands are available: `drakelingd` (daemon) and `drakeling` (terminal UI).\n\n## 2. Start the daemon\n\n```bash\ndrakelingd\n```\n\nOn first run, the daemon:\n- Creates a platform data directory (see paths below)\n- Walks you through interactive LLM setup (pick a provider, enter credentials)\n- Generates an ed25519 identity keypair and a local API token\n- Begins listening on `http://127.0.0.1:52780`\n\nLeave the daemon running in its own terminal or set it up as a background service.\n\n## 3. Retrieve the API token\n\nThe daemon writes an `api_token` file to the data directory on first run.\n\n| Platform | Command |\n|----------|---------|\n| Linux | `cat ~/.local/share/drakeling/api_token` |\n| macOS | `cat ~/Library/Application\\ Support/drakeling/api_token` |\n| Windows | `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"` |\n\n## 4. Configure the token in OpenClaw\n\nAdd the token to `~/.openclaw/openclaw.json`:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n        }\n      }\n    }\n  }\n}\n```\n\nIf your config already has a `skills` section, merge `entries.drakeling` into it.\n\n**Alternative:** If `skills.entries.drakeling` causes issues with OpenClaw doctor, use a top-level `env` block instead:\n\n```json5\n{\n  \"env\": {\n    \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n  }\n}\n```\n\n## 5. Start a new OpenClaw session\n\nOpenClaw loads skills when a session starts. After installing and configuring the token, start a new session so it picks up the drakeling skill.\n\n## Data directory paths\n\n| Platform | Path |\n|----------|------|\n| Linux | `~/.local/share/drakeling/` |\n| macOS | `~/Library/Application Support/drakeling/` |\n| Windows | `%APPDATA%\\drakeling\\drakeling\\` |\n\n## Custom port\n\nIf the daemon runs on a non-default port, set `DRAKELING_PORT` in the skill env config alongside the token:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\",\n          \"DRAKELING_PORT\": \"9999\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**Skill not appearing in OpenClaw:** The skill requires `drakelingd` on your PATH. Install the drakeling package first (step 1).\n\n**403 Forbidden:** The API token is wrong or missing. Ensure the token in OpenClaw config exactly matches the contents of the `api_token` file in the data directory.\n\n**Connection refused:** The daemon is not running. Start it with `drakelingd`.\n\n**OpenClaw doctor strips the config:** Use the top-level `env` block alternative shown in step 4.\n\n## Full documentation\n\nhttps://github.com/BVisagie/drakeling\n\nArchive v1.0.2: 3 files, 2306 bytes\n\nFiles: references/api.md (1201b), SKILL.md (2618b), _meta.json (128b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.2\ndescription: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    requires:\n      env: [\"DRAKELING_API_TOKEN\", \"DRAKELING_PORT\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Drakeling companion creature and send it care.\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1771591850282\n}\n\nFile v1.0.2:references/api.md\n\n# Drakeling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.\n\nArchive v1.0.1: 3 files, 2309 bytes\n\nFiles: references/api.md (1201b), SKILL.md (2618b), _meta.json (128b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.1\ndescription: Check on your Hatchling companion creature, send it care, or see how it is feeling. Use when the user mentions their hatchling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    requires:\n      env: [\"DRAKELING_API_TOKEN\", \"DRAKELING_PORT\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Hatchling companion creature and send it care.\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1771591136492\n}\n\nFile v1.0.1:references/api.md\n\n# Hatchling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.\n\nArchive v1.0.0: 3 files, 2275 bytes\n\nFiles: references/api.md (1201b), SKILL.md (2479b), _meta.json (128b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: drakeling\nversion: 1.0.0\ndescription: Check on your Hatchling companion creature, send it care, or see how it is feeling. Use when the user mentions their hatchling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    requires:\n      env: [\"DRAKELING_API_TOKEN\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Hatchling companion creature and send it care.\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants to be nearby\n- `feed` — when the user wants to feed the creature (boosts energy and mood)\n\nChoose the type based on the user's tone. Present any creature response from the API in the creature's own words, not paraphrased.\n\n## What not to do\n\n- Do not call `/talk`, `/rest`, `/export`, `/import`, or any other endpoint. These are reserved for the terminal UI or administrative use.\n- Do not mention tokens, prompts, models, or any internal system detail to the user.\n- Do not expose raw API field names or numeric stat values.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1771589790726\n}\n\nFile v1.0.0:references/api.md\n\n# Hatchling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted.","readmeExcerpt":"Skill: Skill Owner: bvisagie Summary: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants... Tags: latest:1.0.6 Version history: v1.0.6 | 2026-02-21T07:59:12.839Z | user Align with v0.1.6 release and add lifecycle stage persona prompting for more realistic creature responses. v1.0.5 | 2026-02-20T14:08:30.347Z | us","codeSnippets":[],"executableExamples":[{"language":"json","snippet":"{ \"skills\": { \"entries\": { \"drakeling\": { \"env\": { \"DRAKELING_API_TOKEN\": \"paste-token-here\" } } } } }"},{"language":"text","snippet":"Authorization: Bearer $DRAKELING_API_TOKEN"},{"language":"json","snippet":"{ \"type\": \"<care_type>\" }"},{"language":"text","snippet":"GET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>"},{"language":"json","snippet":"{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}"},{"language":"text","snippet":"POST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: drakeling\nversion: 1.0.6\ndescription: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants to check in on or care for their creature.\nauthor: drakeling\nhomepage: https://github.com/BVisagie/drakeling\nmetadata:\n  clawdbot:\n    emoji: \"🥚\"\n    requires:\n      env:\n        - name: DRAKELING_API_TOKEN\n          description: Bearer token for the local Drakeling daemon. Found in the Drakeling data directory as `api_token`.\n        - name: DRAKELING_PORT\n          description: Optional. Port the Drakeling daemon listens on. Defaults to 52780.\n      network:\n        - localhost\n  openclaw:\n    emoji: \"🥚\"\n    primaryEnv: DRAKELING_API_TOKEN\n    homepage: \"https://github.com/BVisagie/drakeling\"\n    requires:\n      env: [\"DRAKELING_API_TOKEN\"]\n      bins: [\"drakelingd\"]\npermissions:\n  - network:outbound\n---\n\n# Drakeling Companion Skill\n\nYou can check on the user's Drakeling companion creature and send it care.\n\n## Prerequisites and setup\n\nDrakeling is a standalone companion creature that runs on your machine. This skill connects to its local daemon — you must install and start it first.\n\n1. Install: `pipx install drakeling` (or `pip install drakeling` / `uv tool install drakeling`)\n2. Start the daemon: `drakelingd` (interactive LLM setup runs on first launch)\n3. Read the API token:\n   - Linux: `cat ~/.local/share/drakeling/api_token`\n   - macOS: `cat ~/Library/Application\\ Support/drakeling/api_token`\n   - Windows: `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"`\n4. Add the token to OpenClaw config (`~/.openclaw/openclaw.json`):\n   ```json\n   { \"skills\": { \"entries\": { \"drakeling\": { \"env\": { \"DRAKELING_API_TOKEN\": \"paste-token-here\" } } } } }\n   ```\n\nFull documentation: https://github.com/BVisagie/drakeling\n\n## Daemon address\n\nThe Drakeling daemon listens on `http://127.0.0.1:52780` by default. If the user has configured a custom port via `DRAKELING_PORT`, use that value instead.\n\n## Authentication\n\nEvery request must include the header:\n\n```\nAuthorization: Bearer $DRAKELING_API_TOKEN\n```\n\n## Checking status — GET /status\n\nUse this when the user asks how their creature is doing, what mood it is in, or whether it needs attention.\n\nParse the response and present it in warm, human terms. Do not expose raw field names or numeric values.\n\n- If `budget_exhausted` is true, tell the user the creature is resting quietly for now and will be more responsive tomorrow.\n- Describe mood, energy, trust, and loneliness naturally — for example, \"Your creature seems a bit lonely but is in good spirits.\"\n\n## Sending care — POST /care\n\nUse this when the user wants to check in on, comfort, or spend time with their creature.\n\nRequest body:\n\n```json\n{ \"type\": \"<care_type>\" }\n```\n\nValid care types:\n- `gentle_attention` — the default, for general check-ins\n- `reassurance` — when the user seems worried about their creature\n- `quiet_presence` — when the user just wants t"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn70r1asycks9pnq64bkfj6bes81h11w\",\n  \"slug\": \"drakeling\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1771660752839\n}"},{"path":"references/api.md","content":"# Drakeling API Reference (Skill-Permitted Endpoints)\n\n## GET /status\n\nReturns the creature's current state.\n\n**Request:**\n\n```\nGET http://127.0.0.1:52780/status\nAuthorization: Bearer <token>\n```\n\n**Response (200):**\n\n```json\n{\n  \"name\": \"Ember\",\n  \"colour\": \"gold\",\n  \"lifecycle_stage\": \"juvenile\",\n  \"mood\": 0.65,\n  \"energy\": 0.48,\n  \"trust\": 0.72,\n  \"loneliness\": 0.15,\n  \"state_curiosity\": 0.55,\n  \"stability\": 0.60,\n  \"budget_exhausted\": false,\n  \"budget_remaining_today\": 8500\n}\n```\n\n**Response (404):** No creature exists yet.\n\n---\n\n## POST /care\n\nSends a symbolic care event to the creature.\n\n**Request:**\n\n```\nPOST http://127.0.0.1:52780/care\nAuthorization: Bearer <token>\nContent-Type: application/json\n\n{ \"type\": \"gentle_attention\" }\n```\n\nValid types: `gentle_attention`, `reassurance`, `quiet_presence`, `feed`.\n\n**Response (200):**\n\n```json\n{\n  \"response\": \"...I felt you nearby. That was nice.\",\n  \"state\": {\n    \"mood\": 0.70,\n    \"energy\": 0.48,\n    \"trust\": 0.72,\n    \"loneliness\": 0.0,\n    \"state_curiosity\": 0.55,\n    \"stability\": 0.60\n  }\n}\n```\n\nThe `response` field contains the creature's expression in its own words. It may be `null` if the creature's daily budget is exhausted."},{"path":"references/setup.md","content":"# Drakeling Setup Guide\n\nThis skill connects to a local Drakeling daemon. The daemon must be installed and running before the skill can function.\n\n## 1. Install the Drakeling package\n\nPick one:\n\n```bash\npipx install drakeling        # recommended — isolated environment\npip install drakeling          # standard pip\nuv tool install drakeling      # uv\n```\n\nAfter installation, two commands are available: `drakelingd` (daemon) and `drakeling` (terminal UI).\n\n## 2. Start the daemon\n\n```bash\ndrakelingd\n```\n\nOn first run, the daemon:\n- Creates a platform data directory (see paths below)\n- Walks you through interactive LLM setup (pick a provider, enter credentials)\n- Generates an ed25519 identity keypair and a local API token\n- Begins listening on `http://127.0.0.1:52780`\n\nLeave the daemon running in its own terminal or set it up as a background service.\n\n## 3. Retrieve the API token\n\nThe daemon writes an `api_token` file to the data directory on first run.\n\n| Platform | Command |\n|----------|---------|\n| Linux | `cat ~/.local/share/drakeling/api_token` |\n| macOS | `cat ~/Library/Application\\ Support/drakeling/api_token` |\n| Windows | `type \"%APPDATA%\\drakeling\\drakeling\\api_token\"` |\n\n## 4. Configure the token in OpenClaw\n\nAdd the token to `~/.openclaw/openclaw.json`:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n        }\n      }\n    }\n  }\n}\n```\n\nIf your config already has a `skills` section, merge `entries.drakeling` into it.\n\n**Alternative:** If `skills.entries.drakeling` causes issues with OpenClaw doctor, use a top-level `env` block instead:\n\n```json5\n{\n  \"env\": {\n    \"DRAKELING_API_TOKEN\": \"paste-token-here\"\n  }\n}\n```\n\n## 5. Start a new OpenClaw session\n\nOpenClaw loads skills when a session starts. After installing and configuring the token, start a new session so it picks up the drakeling skill.\n\n## Data directory paths\n\n| Platform | Path |\n|----------|------|\n| Linux | `~/.local/share/drakeling/` |\n| macOS | `~/Library/Application Support/drakeling/` |\n| Windows | `%APPDATA%\\drakeling\\drakeling\\` |\n\n## Custom port\n\nIf the daemon runs on a non-default port, set `DRAKELING_PORT` in the skill env config alongside the token:\n\n```json5\n{\n  \"skills\": {\n    \"entries\": {\n      \"drakeling\": {\n        \"env\": {\n          \"DRAKELING_API_TOKEN\": \"paste-token-here\",\n          \"DRAKELING_PORT\": \"9999\"\n        }\n      }\n    }\n  }\n}\n```\n\n## Troubleshooting\n\n**Skill not appearing in OpenClaw:** The skill requires `drakelingd` on your PATH. Install the drakeling package first (step 1).\n\n**403 Forbidden:** The request has no `Authorization` header — the `DRAKELING_API_TOKEN` env var is not reaching the skill. Check that your config uses `skills.entries.drakeling.env`, not `skills.drakeling.env` (the latter is ignored by OpenClaw). Restart OpenClaw after fixing the config.\n\n**401 Invalid API token:** The token was sent but does not match the daemon's token. Ensure the value in Ope"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants... Skill: Skill Owner: bvisagie Summary: Check on your Drakeling companion creature, send it care, or see how it is feeling. Use when the user mentions their drakeling, companion creature, or wants... Tags: latest:1.0.6 Version history: v1.0.6 | 2026-02-21T07:59:12.839Z | user Align with v0.1.6 release and add lifecycle stage persona prompting for more realistic creature responses. v1.0.5 | 2026-02-20T14:08:30.347Z | us","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1293,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T23:29:28.033Z","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-10-11T23:29:28.033Z","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-14T15:13:02.419Z","emptyReason":null},"items":[{"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-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"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":"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/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}