{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clawkeeper",
    "name": "ClawKeeper — Tasks & habits in a plain markdown file",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/tallhamn/clawkeeper",
    "canonicalUrl": "https://clawhub.ai/tallhamn/clawkeeper",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clawkeeper",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clawkeeper",
    "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/clawkeeper"
    },
    "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/clawkeeper",
    "agentPageUrl": "https://openagent3.xyz/skills/clawkeeper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawkeeper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawkeeper/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": "ClawKeeper CLI",
        "body": "Manage the user's tasks and habits via the ClawKeeper CLI. All data is stored as markdown at the path set by CLAWKEEPER_DIR (defaults to ~/.clawkeeper/).\n\nclawkeeper <entity> <command> [--flags]\n\nIf CLAWKEEPER_DIR is set in your environment, the CLI reads and writes data there. This allows multiple agents to share the same task list."
      },
      {
        "title": "Tasks",
        "body": "clawkeeper task list\nclawkeeper task add --text \"Buy groceries\"\nclawkeeper task add --text \"Buy groceries\" --due-date 2026-03-15\nclawkeeper task add-subtask --parent-text \"Buy groceries\" --text \"Milk\"\nclawkeeper task complete --id <id>\nclawkeeper task complete --text \"Buy groceries\"\nclawkeeper task uncomplete --id <id>\nclawkeeper task edit --text \"Old name\" --new-text \"New name\"\nclawkeeper task edit --text \"Old name\" --due-date 2026-04-01\nclawkeeper task set-due-date --text \"Buy groceries\" --due-date 2026-03-15\nclawkeeper task set-due-date --text \"Buy groceries\" --due-date none\nclawkeeper task delete --text \"Buy groceries\"\nclawkeeper task add-note --text \"Buy groceries\" --note \"Check prices first\"\nclawkeeper task edit-note --text \"Buy groceries\" --note \"Check prices first\" --new-note \"Compare at two stores\"\nclawkeeper task delete-note --text \"Buy groceries\" --note \"Check prices first\""
      },
      {
        "title": "Habits",
        "body": "clawkeeper habit list\nclawkeeper habit add --text \"Meditate\" --interval 24\nclawkeeper habit edit --text \"Meditate\" --new-text \"Morning meditation\" --interval 12\nclawkeeper habit delete --text \"Meditate\"\nclawkeeper habit complete --text \"Meditate\"\nclawkeeper habit add-note --text \"Meditate\" --note \"Felt calm today\"\nclawkeeper habit edit-note --text \"Meditate\" --note \"Felt calm today\" --new-note \"Felt calm, 10 min session\"\nclawkeeper habit delete-note --text \"Meditate\" --note \"Felt calm today\""
      },
      {
        "title": "State",
        "body": "clawkeeper state show"
      },
      {
        "title": "Proactive Checks (Heartbeat)",
        "body": "When running periodic checks, use clawkeeper state show to review the user's habits and tasks:\n\nMissed habits: If a habit hasn't been completed for more than 2x its interval, ask about it gently. People forget — a nudge helps more than a lecture.\nBuilding streaks: When a habit's completion count is climbing, acknowledge the momentum briefly.\nRecent notes: If the user added reflections or notes recently, reference them for continuity. It shows you're paying attention.\nStale tasks: Tasks sitting open for a long time might need to be broken down, re-prioritized, or dropped.\n\nTone: supportive collaborator, not drill sergeant. If nothing needs attention, reply HEARTBEAT_OK."
      },
      {
        "title": "Notes",
        "body": "All commands return JSON: {\"ok\": true, \"data\": ...} on success, {\"ok\": false, \"error\": \"...\"} on failure.\nIDs are stable across invocations. Use --id for precise lookups or --text for fuzzy substring matching.\nWhen adding a task, the response includes the new task's id for subsequent operations."
      }
    ],
    "body": "ClawKeeper CLI\n\nManage the user's tasks and habits via the ClawKeeper CLI. All data is stored as markdown at the path set by CLAWKEEPER_DIR (defaults to ~/.clawkeeper/).\n\nclawkeeper <entity> <command> [--flags]\n\n\nIf CLAWKEEPER_DIR is set in your environment, the CLI reads and writes data there. This allows multiple agents to share the same task list.\n\nTasks\nclawkeeper task list\nclawkeeper task add --text \"Buy groceries\"\nclawkeeper task add --text \"Buy groceries\" --due-date 2026-03-15\nclawkeeper task add-subtask --parent-text \"Buy groceries\" --text \"Milk\"\nclawkeeper task complete --id <id>\nclawkeeper task complete --text \"Buy groceries\"\nclawkeeper task uncomplete --id <id>\nclawkeeper task edit --text \"Old name\" --new-text \"New name\"\nclawkeeper task edit --text \"Old name\" --due-date 2026-04-01\nclawkeeper task set-due-date --text \"Buy groceries\" --due-date 2026-03-15\nclawkeeper task set-due-date --text \"Buy groceries\" --due-date none\nclawkeeper task delete --text \"Buy groceries\"\nclawkeeper task add-note --text \"Buy groceries\" --note \"Check prices first\"\nclawkeeper task edit-note --text \"Buy groceries\" --note \"Check prices first\" --new-note \"Compare at two stores\"\nclawkeeper task delete-note --text \"Buy groceries\" --note \"Check prices first\"\n\nHabits\nclawkeeper habit list\nclawkeeper habit add --text \"Meditate\" --interval 24\nclawkeeper habit edit --text \"Meditate\" --new-text \"Morning meditation\" --interval 12\nclawkeeper habit delete --text \"Meditate\"\nclawkeeper habit complete --text \"Meditate\"\nclawkeeper habit add-note --text \"Meditate\" --note \"Felt calm today\"\nclawkeeper habit edit-note --text \"Meditate\" --note \"Felt calm today\" --new-note \"Felt calm, 10 min session\"\nclawkeeper habit delete-note --text \"Meditate\" --note \"Felt calm today\"\n\nState\nclawkeeper state show\n\nProactive Checks (Heartbeat)\n\nWhen running periodic checks, use clawkeeper state show to review the user's habits and tasks:\n\nMissed habits: If a habit hasn't been completed for more than 2x its interval, ask about it gently. People forget — a nudge helps more than a lecture.\nBuilding streaks: When a habit's completion count is climbing, acknowledge the momentum briefly.\nRecent notes: If the user added reflections or notes recently, reference them for continuity. It shows you're paying attention.\nStale tasks: Tasks sitting open for a long time might need to be broken down, re-prioritized, or dropped.\n\nTone: supportive collaborator, not drill sergeant. If nothing needs attention, reply HEARTBEAT_OK.\n\nNotes\nAll commands return JSON: {\"ok\": true, \"data\": ...} on success, {\"ok\": false, \"error\": \"...\"} on failure.\nIDs are stable across invocations. Use --id for precise lookups or --text for fuzzy substring matching.\nWhen adding a task, the response includes the new task's id for subsequent operations."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/tallhamn/clawkeeper",
    "publisherUrl": "https://clawhub.ai/tallhamn/clawkeeper",
    "owner": "tallhamn",
    "version": "0.2.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clawkeeper",
    "downloadUrl": "https://openagent3.xyz/downloads/clawkeeper",
    "agentUrl": "https://openagent3.xyz/skills/clawkeeper/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clawkeeper/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clawkeeper/agent.md"
  }
}