{
  "schemaVersion": "1.0",
  "item": {
    "slug": "beaverhabits",
    "name": "Beaver Habit Tracker",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/daya0576/beaverhabits",
    "canonicalUrl": "https://clawhub.ai/daya0576/beaverhabits",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/beaverhabits",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=beaverhabits",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md"
    ],
    "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. 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. 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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/beaverhabits"
    },
    "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/beaverhabits",
    "agentPageUrl": "https://openagent3.xyz/skills/beaverhabits/agent",
    "manifestUrl": "https://openagent3.xyz/skills/beaverhabits/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/beaverhabits/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. 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. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Beaver Habit Tracker",
        "body": "Track and manage your daily habits using the Beaver Habit Tracker API.\n\nAPI documentation: https://beaverhabits.com/docs"
      },
      {
        "title": "Environment Variables",
        "body": "VariableRequiredDefaultDescriptionBEAVERHABITS_API_KEYYes—Your permanent API token from the Beaver Habits settings pageSERVER_URLNohttps://beaverhabits.comYour Beaver Habits server URL (for self-hosted instances)"
      },
      {
        "title": "Getting Your API Key",
        "body": "Log in to your Beaver Habits instance\nOpen the menu → Tools → API Tokens\nClick \"Generate API Token\"\nCopy the token and set it as BEAVERHABITS_API_KEY"
      },
      {
        "title": "list_habits (overview)",
        "body": "List all habits and show a weekly ASCII overview. This is the default response for any habit-related query.\n\nStep 1 — Get all habits:\n\ncurl -s -H \"Authorization: Bearer $BEAVERHABITS_API_KEY\" \\\n  \"${SERVER_URL:-https://beaverhabits.com}/api/v1/habits\"\n\nStep 2 — For each habit, get completions over the last 5 days:\n\ncurl -s -H \"Authorization: Bearer $BEAVERHABITS_API_KEY\" \\\n  \"${SERVER_URL:-https://beaverhabits.com}/api/v1/habits/{habit_id}/completions?date_fmt=%25d-%25m-%25Y&date_start={start}&date_end={end}&limit=100&sort=asc\"\n\nResponse format: [\"16-02-2026\", \"18-02-2026\"] (array of completed date strings)\n\nStep 3 — Render as ASCII table:\n\nExample output:\n\nMon   Tue   Wed   Thu   Fri   \nExercise       ✗     ✗     ✗     ✗     ✗     \nEnglish        ✓     ✗     ✗     ✗     ✗     \npaipai         ✗     ✗     ✗     ✗     ✓     \nReading        ✗     ✗     ✗     ✗     ✗     \nTable Tennis   ✗     ✗     ✗     ✗     ✗\n\nUse ✓ for done, ✗ for not done. Default to 5 days ending today. Emoji are stripped from habit names for proper alignment."
      },
      {
        "title": "complete_habit",
        "body": "Mark a habit as done (or undone) for a specific date.\n\nParameters:\n\nhabit_id (resolved): Automatically resolved by calling list_habits and matching the user's habit name. Never ask the user for this value.\ndate (required): Date in DD-MM-YYYY format\ndone (optional): true to complete, false to uncomplete (default: true)\n\ncurl -s -X POST \\\n  -H \"Authorization: Bearer $BEAVERHABITS_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"date\": \"20-02-2026\", \"done\": true, \"date_fmt\": \"%d-%m-%Y\"}' \\\n  \"${SERVER_URL:-https://beaverhabits.com}/api/v1/habits/{habit_id}/completions\"\n\nResponse: {\"day\": \"20-02-2026\", \"done\": true}"
      },
      {
        "title": "Usage Instructions",
        "body": "When the user asks to list, show, or check habits, always respond with the ASCII overview table (not a plain list).\nAfter completing or uncompleting a habit, always re-render the overview table to show the updated state.\nResolve habit names → IDs via list_habits. Never ask the user for a habit_id.\nDefault to today's date for completions unless specified. Use date_fmt=%d-%m-%Y."
      }
    ],
    "body": "Beaver Habit Tracker\n\nTrack and manage your daily habits using the Beaver Habit Tracker API.\n\nAPI documentation: https://beaverhabits.com/docs\n\nSetup\nEnvironment Variables\nVariable\tRequired\tDefault\tDescription\nBEAVERHABITS_API_KEY\tYes\t—\tYour permanent API token from the Beaver Habits settings page\nSERVER_URL\tNo\thttps://beaverhabits.com\tYour Beaver Habits server URL (for self-hosted instances)\nGetting Your API Key\nLog in to your Beaver Habits instance\nOpen the menu → Tools → API Tokens\nClick \"Generate API Token\"\nCopy the token and set it as BEAVERHABITS_API_KEY\nTools\nlist_habits (overview)\n\nList all habits and show a weekly ASCII overview. This is the default response for any habit-related query.\n\nStep 1 — Get all habits:\n\ncurl -s -H \"Authorization: Bearer $BEAVERHABITS_API_KEY\" \\\n  \"${SERVER_URL:-https://beaverhabits.com}/api/v1/habits\"\n\n\nStep 2 — For each habit, get completions over the last 5 days:\n\ncurl -s -H \"Authorization: Bearer $BEAVERHABITS_API_KEY\" \\\n  \"${SERVER_URL:-https://beaverhabits.com}/api/v1/habits/{habit_id}/completions?date_fmt=%25d-%25m-%25Y&date_start={start}&date_end={end}&limit=100&sort=asc\"\n\n\nResponse format: [\"16-02-2026\", \"18-02-2026\"] (array of completed date strings)\n\nStep 3 — Render as ASCII table:\n\nExample output:\n\n              Mon   Tue   Wed   Thu   Fri   \nExercise       ✗     ✗     ✗     ✗     ✗     \nEnglish        ✓     ✗     ✗     ✗     ✗     \npaipai         ✗     ✗     ✗     ✗     ✓     \nReading        ✗     ✗     ✗     ✗     ✗     \nTable Tennis   ✗     ✗     ✗     ✗     ✗     \n\n\nUse ✓ for done, ✗ for not done. Default to 5 days ending today. Emoji are stripped from habit names for proper alignment.\n\ncomplete_habit\n\nMark a habit as done (or undone) for a specific date.\n\nParameters:\n\nhabit_id (resolved): Automatically resolved by calling list_habits and matching the user's habit name. Never ask the user for this value.\ndate (required): Date in DD-MM-YYYY format\ndone (optional): true to complete, false to uncomplete (default: true)\ncurl -s -X POST \\\n  -H \"Authorization: Bearer $BEAVERHABITS_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"date\": \"20-02-2026\", \"done\": true, \"date_fmt\": \"%d-%m-%Y\"}' \\\n  \"${SERVER_URL:-https://beaverhabits.com}/api/v1/habits/{habit_id}/completions\"\n\n\nResponse: {\"day\": \"20-02-2026\", \"done\": true}\n\nUsage Instructions\nWhen the user asks to list, show, or check habits, always respond with the ASCII overview table (not a plain list).\nAfter completing or uncompleting a habit, always re-render the overview table to show the updated state.\nResolve habit names → IDs via list_habits. Never ask the user for a habit_id.\nDefault to today's date for completions unless specified. Use date_fmt=%d-%m-%Y."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/daya0576/beaverhabits",
    "publisherUrl": "https://clawhub.ai/daya0576/beaverhabits",
    "owner": "daya0576",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/beaverhabits",
    "downloadUrl": "https://openagent3.xyz/downloads/beaverhabits",
    "agentUrl": "https://openagent3.xyz/skills/beaverhabits/agent",
    "manifestUrl": "https://openagent3.xyz/skills/beaverhabits/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/beaverhabits/agent.md"
  }
}