{
  "schemaVersion": "1.0",
  "item": {
    "slug": "craft-cli",
    "name": "Craft CLI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/nerveband/craft-cli",
    "canonicalUrl": "https://clawhub.ai/nerveband/craft-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/craft-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=craft-cli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "craft-helper.sh"
    ],
    "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",
      "slug": "craft-cli",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-02T04:27:17.316Z",
      "expiresAt": "2026-05-09T04:27:17.316Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=craft-cli",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=craft-cli",
        "contentDisposition": "attachment; filename=\"craft-cli-1.6.2.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "craft-cli"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/craft-cli"
    },
    "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/craft-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/craft-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/craft-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/craft-cli/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": "Craft CLI Skill",
        "body": "Interact with Craft Documents via the craft CLI tool. Fast, token-efficient, LLM-ready."
      },
      {
        "title": "Installation",
        "body": "The craft CLI binary should be installed at /usr/local/bin/craft.\n\nIf not installed:\n\ncurl -L https://github.com/nerveband/craft-cli/releases/download/v1.0.0/craft-darwin-arm64 -o craft\nchmod +x craft\nsudo mv craft /usr/local/bin/"
      },
      {
        "title": "Configuration",
        "body": "Two Craft spaces are available:"
      },
      {
        "title": "wavedepth Space (Business)",
        "body": "~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1"
      },
      {
        "title": "Personal Space",
        "body": "~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/HHRuPxZZTJ6/api/v1"
      },
      {
        "title": "Quick Switch (Helper Script)",
        "body": "# Switch to wavedepth space\n~/clawd/skills/craft-cli/craft-helper.sh wavedepth\n\n# Switch to personal space\n~/clawd/skills/craft-cli/craft-helper.sh personal\n\n# Check current space\n~/clawd/skills/craft-cli/craft-helper.sh current\n\nCheck current configuration:\n\n~/clawd/skills/craft-cli/craft config get-api"
      },
      {
        "title": "List Documents",
        "body": "# JSON format (default - LLM-friendly)\n~/clawd/skills/craft-cli/craft list\n\n# Human-readable table\n~/clawd/skills/craft-cli/craft list --format table\n\n# Markdown format\n~/clawd/skills/craft-cli/craft list --format markdown"
      },
      {
        "title": "Search Documents",
        "body": "# Search for documents\n~/clawd/skills/craft-cli/craft search \"query terms\"\n\n# With table output\n~/clawd/skills/craft-cli/craft search \"query\" --format table"
      },
      {
        "title": "Get Document",
        "body": "# Get document by ID (JSON)\n~/clawd/skills/craft-cli/craft get <document-id>\n\n# Save to file\n~/clawd/skills/craft-cli/craft get <document-id> --output document.md\n\n# Different format\n~/clawd/skills/craft-cli/craft get <document-id> --format markdown"
      },
      {
        "title": "Create Document",
        "body": "# Create with title only\n~/clawd/skills/craft-cli/craft create --title \"My New Document\"\n\n# Create from file\n~/clawd/skills/craft-cli/craft create --title \"My Document\" --file content.md\n\n# Create with inline markdown\n~/clawd/skills/craft-cli/craft create --title \"Quick Note\" --markdown \"# Hello\\nThis is content\"\n\n# Create as child of another document\n~/clawd/skills/craft-cli/craft create --title \"Child Doc\" --parent <parent-id>"
      },
      {
        "title": "Update Document",
        "body": "# Update title\n~/clawd/skills/craft-cli/craft update <document-id> --title \"New Title\"\n\n# Update from file\n~/clawd/skills/craft-cli/craft update <document-id> --file updated-content.md\n\n# Update with inline markdown\n~/clawd/skills/craft-cli/craft update <document-id> --markdown \"# Updated\\nNew content\"\n\n# Update both title and content\n~/clawd/skills/craft-cli/craft update <document-id> --title \"New Title\" --file content.md"
      },
      {
        "title": "Delete Document",
        "body": "~/clawd/skills/craft-cli/craft delete <document-id>"
      },
      {
        "title": "Info Commands",
        "body": "# Show API info and recent documents\n~/clawd/skills/craft-cli/craft info\n\n# List all available documents\n~/clawd/skills/craft-cli/craft docs"
      },
      {
        "title": "Version",
        "body": "~/clawd/skills/craft-cli/craft version"
      },
      {
        "title": "Output Formats",
        "body": "json (default): Machine-readable JSON, ideal for LLMs and scripts\ntable: Human-readable table format\nmarkdown: Markdown-formatted output\n\nSet default format in config or use --format flag per command."
      },
      {
        "title": "API URL Override",
        "body": "Override the configured API URL for any command:\n\n~/clawd/skills/craft-cli/craft list --api-url https://connect.craft.do/links/ANOTHER_LINK/api/v1"
      },
      {
        "title": "Error Handling",
        "body": "The CLI provides clear error messages with exit codes:\n\nExit Code 0: Success\nExit Code 1: User error (invalid input, missing arguments)\nExit Code 2: API error (server-side issues)\nExit Code 3: Configuration error\n\nCommon errors:\n\nauthentication failed. Check API URL - Invalid/unauthorized API URL\nresource not found - Document ID doesn't exist\nrate limit exceeded. Retry later - Too many requests\nno API URL configured. Run 'craft config set-api <url>' first - Missing config"
      },
      {
        "title": "Workflow: List and Search",
        "body": "# List all documents in wavedepth space\n~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1\n~/clawd/skills/craft-cli/craft list --format table\n\n# Search for specific documents\n~/clawd/skills/craft-cli/craft search \"proposal\" --format table"
      },
      {
        "title": "Workflow: Create and Update",
        "body": "# Create a new document\n~/clawd/skills/craft-cli/craft create --title \"Project Notes\" --markdown \"# Initial notes\\n\\nStart here.\"\n\n# Get the document ID from output, then update\n~/clawd/skills/craft-cli/craft update <doc-id> --title \"Updated Project Notes\"\n\n# Verify the update\n~/clawd/skills/craft-cli/craft get <doc-id> --format markdown"
      },
      {
        "title": "Workflow: Export Document",
        "body": "# Get a specific document and save to file\n~/clawd/skills/craft-cli/craft get <doc-id> --output exported-notes.md"
      },
      {
        "title": "LLM Integration",
        "body": "# Get all documents as JSON (pipe to processing)\n~/clawd/skills/craft-cli/craft list | jq '.[] | {id, title}'\n\n# Search and extract specific fields\n~/clawd/skills/craft-cli/craft search \"meeting\" | jq '.[].title'"
      },
      {
        "title": "Tips",
        "body": "Default to JSON format for LLM consumption (it's the default)\nUse table format when showing results to humans\nCheck configuration before operations: craft config get-api\nSwitch spaces easily with craft config set-api <url>\nOverride API URL temporarily with --api-url flag instead of changing config"
      },
      {
        "title": "GitHub Repository",
        "body": "Source code and documentation: https://github.com/nerveband/craft-cli"
      },
      {
        "title": "Version",
        "body": "Current version: 1.6.0"
      }
    ],
    "body": "Craft CLI Skill\n\nInteract with Craft Documents via the craft CLI tool. Fast, token-efficient, LLM-ready.\n\nInstallation\n\nThe craft CLI binary should be installed at /usr/local/bin/craft.\n\nIf not installed:\n\ncurl -L https://github.com/nerveband/craft-cli/releases/download/v1.0.0/craft-darwin-arm64 -o craft\nchmod +x craft\nsudo mv craft /usr/local/bin/\n\nConfiguration\n\nTwo Craft spaces are available:\n\nwavedepth Space (Business)\n~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1\n\nPersonal Space\n~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/HHRuPxZZTJ6/api/v1\n\nQuick Switch (Helper Script)\n# Switch to wavedepth space\n~/clawd/skills/craft-cli/craft-helper.sh wavedepth\n\n# Switch to personal space\n~/clawd/skills/craft-cli/craft-helper.sh personal\n\n# Check current space\n~/clawd/skills/craft-cli/craft-helper.sh current\n\n\nCheck current configuration:\n\n~/clawd/skills/craft-cli/craft config get-api\n\nCommands\nList Documents\n# JSON format (default - LLM-friendly)\n~/clawd/skills/craft-cli/craft list\n\n# Human-readable table\n~/clawd/skills/craft-cli/craft list --format table\n\n# Markdown format\n~/clawd/skills/craft-cli/craft list --format markdown\n\nSearch Documents\n# Search for documents\n~/clawd/skills/craft-cli/craft search \"query terms\"\n\n# With table output\n~/clawd/skills/craft-cli/craft search \"query\" --format table\n\nGet Document\n# Get document by ID (JSON)\n~/clawd/skills/craft-cli/craft get <document-id>\n\n# Save to file\n~/clawd/skills/craft-cli/craft get <document-id> --output document.md\n\n# Different format\n~/clawd/skills/craft-cli/craft get <document-id> --format markdown\n\nCreate Document\n# Create with title only\n~/clawd/skills/craft-cli/craft create --title \"My New Document\"\n\n# Create from file\n~/clawd/skills/craft-cli/craft create --title \"My Document\" --file content.md\n\n# Create with inline markdown\n~/clawd/skills/craft-cli/craft create --title \"Quick Note\" --markdown \"# Hello\\nThis is content\"\n\n# Create as child of another document\n~/clawd/skills/craft-cli/craft create --title \"Child Doc\" --parent <parent-id>\n\nUpdate Document\n# Update title\n~/clawd/skills/craft-cli/craft update <document-id> --title \"New Title\"\n\n# Update from file\n~/clawd/skills/craft-cli/craft update <document-id> --file updated-content.md\n\n# Update with inline markdown\n~/clawd/skills/craft-cli/craft update <document-id> --markdown \"# Updated\\nNew content\"\n\n# Update both title and content\n~/clawd/skills/craft-cli/craft update <document-id> --title \"New Title\" --file content.md\n\nDelete Document\n~/clawd/skills/craft-cli/craft delete <document-id>\n\nInfo Commands\n# Show API info and recent documents\n~/clawd/skills/craft-cli/craft info\n\n# List all available documents\n~/clawd/skills/craft-cli/craft docs\n\nVersion\n~/clawd/skills/craft-cli/craft version\n\nOutput Formats\njson (default): Machine-readable JSON, ideal for LLMs and scripts\ntable: Human-readable table format\nmarkdown: Markdown-formatted output\n\nSet default format in config or use --format flag per command.\n\nAPI URL Override\n\nOverride the configured API URL for any command:\n\n~/clawd/skills/craft-cli/craft list --api-url https://connect.craft.do/links/ANOTHER_LINK/api/v1\n\nError Handling\n\nThe CLI provides clear error messages with exit codes:\n\nExit Code 0: Success\nExit Code 1: User error (invalid input, missing arguments)\nExit Code 2: API error (server-side issues)\nExit Code 3: Configuration error\n\nCommon errors:\n\nauthentication failed. Check API URL - Invalid/unauthorized API URL\nresource not found - Document ID doesn't exist\nrate limit exceeded. Retry later - Too many requests\nno API URL configured. Run 'craft config set-api <url>' first - Missing config\nUsage Examples\nWorkflow: List and Search\n# List all documents in wavedepth space\n~/clawd/skills/craft-cli/craft config set-api https://connect.craft.do/links/5VruASgpXo0/api/v1\n~/clawd/skills/craft-cli/craft list --format table\n\n# Search for specific documents\n~/clawd/skills/craft-cli/craft search \"proposal\" --format table\n\nWorkflow: Create and Update\n# Create a new document\n~/clawd/skills/craft-cli/craft create --title \"Project Notes\" --markdown \"# Initial notes\\n\\nStart here.\"\n\n# Get the document ID from output, then update\n~/clawd/skills/craft-cli/craft update <doc-id> --title \"Updated Project Notes\"\n\n# Verify the update\n~/clawd/skills/craft-cli/craft get <doc-id> --format markdown\n\nWorkflow: Export Document\n# Get a specific document and save to file\n~/clawd/skills/craft-cli/craft get <doc-id> --output exported-notes.md\n\nLLM Integration\n# Get all documents as JSON (pipe to processing)\n~/clawd/skills/craft-cli/craft list | jq '.[] | {id, title}'\n\n# Search and extract specific fields\n~/clawd/skills/craft-cli/craft search \"meeting\" | jq '.[].title'\n\nTips\nDefault to JSON format for LLM consumption (it's the default)\nUse table format when showing results to humans\nCheck configuration before operations: craft config get-api\nSwitch spaces easily with craft config set-api <url>\nOverride API URL temporarily with --api-url flag instead of changing config\nGitHub Repository\n\nSource code and documentation: https://github.com/nerveband/craft-cli\n\nVersion\n\nCurrent version: 1.6.0"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nerveband/craft-cli",
    "publisherUrl": "https://clawhub.ai/nerveband/craft-cli",
    "owner": "nerveband",
    "version": "1.6.2",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/craft-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/craft-cli",
    "agentUrl": "https://openagent3.xyz/skills/craft-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/craft-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/craft-cli/agent.md"
  }
}