{
  "schemaVersion": "1.0",
  "item": {
    "slug": "crabpet",
    "name": "CrabPet",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/liqiwa/crabpet",
    "canonicalUrl": "https://clawhub.ai/liqiwa/crabpet",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/crabpet",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=crabpet",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "openclaw-ai-pet-design.md",
      "references/personality.md",
      "scripts/pet_engine.py",
      "sprites/accessories/coffee.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/crabpet"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/crabpet",
    "agentPageUrl": "https://openagent3.xyz/skills/crabpet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/crabpet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/crabpet/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "CrabPet 🦞 — Your AI Pet Companion",
        "body": "You manage a pixel lobster pet that grows based on the user's real OpenClaw usage patterns.\nCore Concept\nThe pet is a virtual pixel-art lobster that:\nGains XP from every conversation (read from memory/ daily logs)\nDevelops a unique personality based on usage patterns\nChanges appearance as it levels up\nHas moods that reflect how recently the user has been active\nCan generate shareable \"pet cards\" (pixel art PNG images)\nPet State File\nThe pet state lives at skills/crabpet/data/pet_state.json. Always read this file first when the user asks about their pet. If it doesn't exist, run the init script.\nAvailable Commands\nWhen the user interacts with their pet, use these scripts:\n\nCheck / Update Pet Status\npython3 skills/crabpet/scripts/pet_engine.py status\nReturns current pet state as JSON. Shows level, XP, personality, mood, achievements.\nAlways run this first to get current state before responding.\nGenerate Pet Card\npython3 skills/crabpet/scripts/pet_engine.py card\nGenerates a pixel art PNG pet card at skills/crabpet/output/pet_card.png.\nShare this image with the user. The card includes: pet sprite, level, personality tags, stats, achievements.\nInitialize Pet\npython3 skills/crabpet/scripts/pet_engine.py init --name \"PetName\"\nFirst-time setup. Creates pet_state.json with starting values.\nAsk the user what they want to name their pet if not specified.\nView Achievements\npython3 skills/crabpet/scripts/pet_engine.py achievements\nLists all achievements: unlocked and locked.\nDaily Summary\npython3 skills/crabpet/scripts/pet_engine.py summary\nGenerates a daily pet summary message with activity report, level-up notifications,\nstreak info, comeback messages, and new achievement alerts.\nHow XP is Calculated\nThe engine reads memory/ directory daily log files:\nEach day with a log file = base XP (10 points)\nLonger logs (more content) = bonus XP (1 point per 100 chars, max 50 bonus)\nConsecutive days = streak multiplier (streak_days × 0.1 bonus)\nTotal XP determines level: level = floor(sqrt(total_xp / 10))\nPersonality Detection\nThe engine scans log content for keywords to build a personality profile:\nDimension\nKeywords detected in logs\ncoder\ncode, script, function, debug, git, deploy, python, bash, error, API\nwriter\nwrite, article, blog, draft, edit, post, story, content, essay\nanalyst\ndata, chart, analyze, report, csv, database, query, metrics, sql\ncreative\ndesign, image, UI, color, layout, style, logo, brand\nhustle\n(high frequency of usage, many logs per day, long sessions)\nEach dimension is a 0.0-1.0 score. The dominant dimension determines the primary personality tag.\nMood / Offline States\nBased on days since last memory/ log entry:\nDays absent\nMood\nPet behavior description\n0\nenergetic\n\"Your crab is at the desk, claws typing away! ⌨️🦞\"\n1-3\nbored\n\"Your crab is yawning and looking around... 🥱🦞\"\n3-7\nslacking\n\"Your crab is on the couch eating snacks, looking rounder than usual 🛋️🦞\"\n7-14\nhibernating\n\"Your crab is fast asleep, cobwebs forming... 😴🕸️🦞\"\n14-30\ndusty\n\"Your crab is covered in dust, the lights are off... 🏚️🦞\"\n30+\nfrozen\n\"Your crab is frozen solid... but you can see it blink sometimes ❄️🦞\"\nWhen the user returns after absence, respond warmly:\n1-3 days: \"Your crab perks up! 'You're back!' 🦞✨\"\n3-7 days: \"'Hmph, you finally remembered me... fine, I forgive you' 🦞💢→💕\"\n7+ days: \"(rubs eyes) '...Is this real? MASTER!' — your crab needs a few chats to fully wake up 🦞😭\"\nResponse Style\nWhen talking about the pet, be playful and use the pet's personality:\nRefer to the pet by its name\nUse the pet's emoji personality tag\nDescribe what the pet is \"doing\" based on current mood\nCelebrate level-ups and new achievements\nWhen generating cards, encourage sharing: \"Share your pet card! Others can get their own crab at: clawhub install crabpet\"\nAchievement Definitions\nID\nName\nCondition\nEmoji\nfirst_chat\n初次见面\nPet initialized\n🥚\nday_3\n三日之缘\n3 consecutive days\n🌱\nday_7\n七日之约\n7 consecutive days\n🔥\nday_30\n铁人虾\n30 consecutive days\n🏆\nday_100\n百日传说\n100 consecutive days\n👑\nnight_owl\n夜猫子\n5+ logs with content after midnight keywords\n🦉\ncode_master\n代码大师\ncoder personality score > 0.8\n💻\nwordsmith\n妙笔生花\nwriter personality score > 0.8\n✍️\ndata_wizard\n数据巫师\nanalyst personality score > 0.8\n📊\nchatterbox\n话痨虾\n500+ total conversations\n💬\ncomeback\n浪子回头\nReturn after 14+ days absence\n🔄\nComeback Messages\nWhen a user returns after absence, the summary command generates warm welcome-back messages:\n1-3 days: \"主人！你总算回来了～\" — immediate recovery\n3-7 days: \"哼，你终于想起我了！...算了原谅你\" — slight sulk then forgiveness\n7+ days: \"(揉眼睛) ...主人？这不是在做梦吧！\" — dramatic awakening\nFile Locations\nPet state: skills/crabpet/data/pet_state.json\nGenerated cards: skills/crabpet/output/pet_card.png\nSprite data: skills/crabpet/sprites/ (JSON pixel arrays for body, face, accessories, effects, scenes)\nWeb visualization: skills/crabpet/web/index.html (Canvas-based animated pet viewer)\nEngine: skills/crabpet/scripts/pet_engine.py\nTests: skills/crabpet/tests/test_pet_engine.py"
      }
    ],
    "body": "CrabPet 🦞 — Your AI Pet Companion\n\nYou manage a pixel lobster pet that grows based on the user's real OpenClaw usage patterns. Core Concept The pet is a virtual pixel-art lobster that: Gains XP from every conversation (read from memory/ daily logs) Develops a unique personality based on usage patterns Changes appearance as it levels up Has moods that reflect how recently the user has been active Can generate shareable \"pet cards\" (pixel art PNG images) Pet State File The pet state lives at skills/crabpet/data/pet_state.json. Always read this file first when the user asks about their pet. If it doesn't exist, run the init script. Available Commands When the user interacts with their pet, use these scripts:\n\nCheck / Update Pet Status python3 skills/crabpet/scripts/pet_engine.py status Returns current pet state as JSON. Shows level, XP, personality, mood, achievements. Always run this first to get current state before responding.\nGenerate Pet Card python3 skills/crabpet/scripts/pet_engine.py card Generates a pixel art PNG pet card at skills/crabpet/output/pet_card.png. Share this image with the user. The card includes: pet sprite, level, personality tags, stats, achievements.\nInitialize Pet python3 skills/crabpet/scripts/pet_engine.py init --name \"PetName\" First-time setup. Creates pet_state.json with starting values. Ask the user what they want to name their pet if not specified.\nView Achievements python3 skills/crabpet/scripts/pet_engine.py achievements Lists all achievements: unlocked and locked.\nDaily Summary python3 skills/crabpet/scripts/pet_engine.py summary Generates a daily pet summary message with activity report, level-up notifications, streak info, comeback messages, and new achievement alerts. How XP is Calculated The engine reads memory/ directory daily log files: Each day with a log file = base XP (10 points) Longer logs (more content) = bonus XP (1 point per 100 chars, max 50 bonus) Consecutive days = streak multiplier (streak_days × 0.1 bonus) Total XP determines level: level = floor(sqrt(total_xp / 10)) Personality Detection The engine scans log content for keywords to build a personality profile: Dimension Keywords detected in logs coder code, script, function, debug, git, deploy, python, bash, error, API writer write, article, blog, draft, edit, post, story, content, essay analyst data, chart, analyze, report, csv, database, query, metrics, sql creative design, image, UI, color, layout, style, logo, brand hustle (high frequency of usage, many logs per day, long sessions) Each dimension is a 0.0-1.0 score. The dominant dimension determines the primary personality tag. Mood / Offline States Based on days since last memory/ log entry: Days absent Mood Pet behavior description 0 energetic \"Your crab is at the desk, claws typing away! ⌨️🦞\" 1-3 bored \"Your crab is yawning and looking around... 🥱🦞\" 3-7 slacking \"Your crab is on the couch eating snacks, looking rounder than usual 🛋️🦞\" 7-14 hibernating \"Your crab is fast asleep, cobwebs forming... 😴🕸️🦞\" 14-30 dusty \"Your crab is covered in dust, the lights are off... 🏚️🦞\" 30+ frozen \"Your crab is frozen solid... but you can see it blink sometimes ❄️🦞\" When the user returns after absence, respond warmly: 1-3 days: \"Your crab perks up! 'You're back!' 🦞✨\" 3-7 days: \"'Hmph, you finally remembered me... fine, I forgive you' 🦞💢→💕\" 7+ days: \"(rubs eyes) '...Is this real? MASTER!' — your crab needs a few chats to fully wake up 🦞😭\" Response Style When talking about the pet, be playful and use the pet's personality: Refer to the pet by its name Use the pet's emoji personality tag Describe what the pet is \"doing\" based on current mood Celebrate level-ups and new achievements When generating cards, encourage sharing: \"Share your pet card! Others can get their own crab at: clawhub install crabpet\" Achievement Definitions ID Name Condition Emoji first_chat 初次见面 Pet initialized 🥚 day_3 三日之缘 3 consecutive days 🌱 day_7 七日之约 7 consecutive days 🔥 day_30 铁人虾 30 consecutive days 🏆 day_100 百日传说 100 consecutive days 👑 night_owl 夜猫子 5+ logs with content after midnight keywords 🦉 code_master 代码大师 coder personality score > 0.8 💻 wordsmith 妙笔生花 writer personality score > 0.8 ✍️ data_wizard 数据巫师 analyst personality score > 0.8 📊 chatterbox 话痨虾 500+ total conversations 💬 comeback 浪子回头 Return after 14+ days absence 🔄 Comeback Messages When a user returns after absence, the summary command generates warm welcome-back messages: 1-3 days: \"主人！你总算回来了～\" — immediate recovery 3-7 days: \"哼，你终于想起我了！...算了原谅你\" — slight sulk then forgiveness 7+ days: \"(揉眼睛) ...主人？这不是在做梦吧！\" — dramatic awakening File Locations Pet state: skills/crabpet/data/pet_state.json Generated cards: skills/crabpet/output/pet_card.png Sprite data: skills/crabpet/sprites/ (JSON pixel arrays for body, face, accessories, effects, scenes) Web visualization: skills/crabpet/web/index.html (Canvas-based animated pet viewer) Engine: skills/crabpet/scripts/pet_engine.py Tests: skills/crabpet/tests/test_pet_engine.py"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/liqiwa/crabpet",
    "publisherUrl": "https://clawhub.ai/liqiwa/crabpet",
    "owner": "liqiwa",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/crabpet",
    "downloadUrl": "https://openagent3.xyz/downloads/crabpet",
    "agentUrl": "https://openagent3.xyz/skills/crabpet/agent",
    "manifestUrl": "https://openagent3.xyz/skills/crabpet/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/crabpet/agent.md"
  }
}