{
  "schemaVersion": "1.0",
  "item": {
    "slug": "box-cli",
    "name": "Box",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/hbkwong/box-cli",
    "canonicalUrl": "https://clawhub.ai/hbkwong/box-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/box-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=box-cli",
    "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-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/box-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/box-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/box-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/box-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/box-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. 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": "box",
        "body": "Use the official box CLI to interact with the Box API from OpenClaw.\n\nThis skill is designed for headless deployments (e.g. Railway, CI,\nservers). It does not use OAuth login flows or short-lived developer\ntokens.\n\nInstead, it expects Bring Your Own Credentials using:\n\nClient Credentials Grant (CCG) --- recommended\nJWT Server Auth --- optional"
      },
      {
        "title": "🔐 Authentication (Bring Your Own Credentials)",
        "body": "This skill does not manage authentication automatically.\n\nYou must provide credentials before using Box commands.\n\n⚠️ Never commit credential files (CCG JSON or JWT JSON) to git.\n\nAdd the following to your .gitignore:\n\nbox-ccg.json\nbox-jwt.json\n.secrets/"
      },
      {
        "title": "🔑 User-Provided JSON Configuration (Required)",
        "body": "Users must supply their own Box CCG configuration file.\nThe skill does not generate credentials or manage secrets.\n\nYour file should look like:\n\n{\n  \"boxAppSettings\": {\n    \"clientID\": \"client_id_here\",\n    \"clientSecret\": \"client_secret_here\"\n  },\n  \"enterpriseID\": \"enterprise_id_here\"\n}\n\nThis file can be named box-ccg.json and placed in your deployment\nenvironment before registering it with Box CLI."
      },
      {
        "title": "Option A --- Provide a CCG Config File (Recommended)",
        "body": "Create a Box Custom App using:\n\nServer Authentication (Client Credentials Grant)\n\nYou will need:\n\nclientID\nclientSecret\nenterpriseID\n\nCreate your config file in a secure location outside the workspace, e.g.:\n\n/data/.secrets/box-ccg.json\n\n⚠️ Avoid storing credentials inside the workspace directory — it may be tracked by git or accessible to other tools.\n\nWith:\n\n{ \"boxAppSettings\": { \"clientID\": \"YOUR_CLIENT_ID\", \"clientSecret\":\n\"YOUR_CLIENT_SECRET\" }, \"enterpriseID\": \"YOUR_ENTERPRISE_ID\" }\n\nSecure it:\n\nchmod 600 /data/.secrets/box-ccg.json\n\nRegister it:\n\nbox configure:environments:add /data/.secrets/box-ccg.json --ccg-auth\n--name ccg --set-as-current box configure:environments:set-current ccg\n\nOptional: Run as a managed user instead of the service account:\n\nbox configure:environments:add /data/.secrets/box-ccg.json --ccg-auth\n--ccg-user \"USER_ID\" --name ccg-user --set-as-current"
      },
      {
        "title": "Option B --- Use Environment Variables (.env supported)",
        "body": "Set:\n\nBOX_CLIENT_ID BOX_CLIENT_SECRET BOX_ENTERPRISE_ID\n\nGenerate config:\n\nmkdir -p /data/.secrets\n\ncat <<EOF > /data/.secrets/box-ccg.json\n{\n\"boxAppSettings\": {\n\"clientID\": \"$BOX_CLIENT_ID\",\n\"clientSecret\": \"$BOX_CLIENT_SECRET\"\n},\n\"enterpriseID\": \"$BOX_ENTERPRISE_ID\"\n}\nEOF\n\nchmod 600 /data/.secrets/box-ccg.json\n\nThen register:\n\nbox configure:environments:add /data/.secrets/box-ccg.json --ccg-auth\n--name ccg --set-as-current"
      },
      {
        "title": "Option C --- JWT Server Auth (Alternative)",
        "body": "If using JWT:\n\nbox configure:environments:add /data/.secrets/box-jwt.json --name jwt\n--set-as-current"
      },
      {
        "title": "✅ Verify Authentication",
        "body": "box configure:environments:get --current box users:get me\n\nNote: With CCG, you are authenticated as either: - The service account,\nor - A managed user (if --ccg-user is used)\n\nAccess depends on that identity's permissions."
      },
      {
        "title": "Browse Folders",
        "body": "box folders:get 0 box folders:list-items 0 --json"
      },
      {
        "title": "Upload",
        "body": "box files:upload ./report.pdf --parent-id 0"
      },
      {
        "title": "Download",
        "body": "box files:download 123456789 --destination ./downloads --create-path"
      },
      {
        "title": "Search",
        "body": "box search \"quarterly plan\" --type file"
      },
      {
        "title": "Metadata",
        "body": "box files:metadata:get-all 123456789 box files:metadata:add 123456789\n--template-key employeeRecord --data \"department=Sales\""
      },
      {
        "title": "🤖 Box AI Usage (No Local LLM Downloads)",
        "body": "This skill supports using Box AI directly via the Box platform.\n\nAI operations run within Box, respecting: - File permissions -\nEnterprise security - Data governance - Audit controls\n\nNo file download + local LLM inference required."
      },
      {
        "title": "Ask Questions About a File",
        "body": "box ai:ask --item-id 123456789 --item-type file --prompt \"Summarize this\ndocument and identify risks.\""
      },
      {
        "title": "Extract Structured Data",
        "body": "box ai:extract-structured --item-id 123456789 --item-type file --schema\n'{\"fields\":[{\"name\":\"invoice_number\",\"type\":\"string\"},{\"name\":\"total\",\"type\":\"number\"}]}'"
      },
      {
        "title": "Extract Text",
        "body": "box ai:extract --item-id 123456789 --item-type file"
      },
      {
        "title": "🧠 Tips for Agents & Automation",
        "body": "Use JSON output when parsing results:\n\nbox folders:list-items 0 --json\n\nPrefer CCG for headless deployments because:\n\nNo browser required\nNo expiring developer tokens\nSuitable for automation\nWorks cleanly in Railway"
      },
      {
        "title": "🔒 Security Notes",
        "body": "Do not commit credential files.\nRestrict file permissions (chmod 600).\nUse least-privilege app scopes.\nAvoid granting broad enterprise-wide access to service accounts.\nPrefer a dedicated demo folder when showcasing functionality."
      },
      {
        "title": "🚀 Deployment Notes (Railway / CI)",
        "body": "Ensure /data/workspace is writable (for file operations).\nEnsure /data/.secrets exists and is writable (for credential storage).\nBox CLI stores environments in ~/.box.\nIf containers are ephemeral, re-run configure step on deploy.\nUse Railway Variables instead of pasting secrets into chat.\n\nThis skill exposes the full surface area of the Box CLI.\n\nExplore commands:\n\nbox --help box folders --help box files --help box ai --help"
      }
    ],
    "body": "box\n\nUse the official box CLI to interact with the Box API from OpenClaw.\n\nThis skill is designed for headless deployments (e.g. Railway, CI, servers). It does not use OAuth login flows or short-lived developer tokens.\n\nInstead, it expects Bring Your Own Credentials using:\n\nClient Credentials Grant (CCG) --- recommended\nJWT Server Auth --- optional\n🔐 Authentication (Bring Your Own Credentials)\n\nThis skill does not manage authentication automatically.\n\nYou must provide credentials before using Box commands.\n\n⚠️ Never commit credential files (CCG JSON or JWT JSON) to git.\n\nAdd the following to your .gitignore:\n\nbox-ccg.json\nbox-jwt.json\n.secrets/\n\n🔑 User-Provided JSON Configuration (Required)\n\nUsers must supply their own Box CCG configuration file.\nThe skill does not generate credentials or manage secrets.\n\nYour file should look like:\n\n{\n  \"boxAppSettings\": {\n    \"clientID\": \"client_id_here\",\n    \"clientSecret\": \"client_secret_here\"\n  },\n  \"enterpriseID\": \"enterprise_id_here\"\n}\n\n\nThis file can be named box-ccg.json and placed in your deployment environment before registering it with Box CLI.\n\nOption A --- Provide a CCG Config File (Recommended)\n\nCreate a Box Custom App using:\n\nServer Authentication (Client Credentials Grant)\n\nYou will need:\n\nclientID\nclientSecret\nenterpriseID\n\nCreate your config file in a secure location outside the workspace, e.g.:\n\n/data/.secrets/box-ccg.json\n\n⚠️ Avoid storing credentials inside the workspace directory — it may be tracked by git or accessible to other tools.\n\nWith:\n\n{ \"boxAppSettings\": { \"clientID\": \"YOUR_CLIENT_ID\", \"clientSecret\": \"YOUR_CLIENT_SECRET\" }, \"enterpriseID\": \"YOUR_ENTERPRISE_ID\" }\n\nSecure it:\n\nchmod 600 /data/.secrets/box-ccg.json\n\nRegister it:\n\nbox configure:environments:add /data/.secrets/box-ccg.json --ccg-auth --name ccg --set-as-current box configure:environments:set-current ccg\n\nOptional: Run as a managed user instead of the service account:\n\nbox configure:environments:add /data/.secrets/box-ccg.json --ccg-auth --ccg-user \"USER_ID\" --name ccg-user --set-as-current\n\nOption B --- Use Environment Variables (.env supported)\n\nSet:\n\nBOX_CLIENT_ID BOX_CLIENT_SECRET BOX_ENTERPRISE_ID\n\nGenerate config:\n\nmkdir -p /data/.secrets\n\ncat <<EOF > /data/.secrets/box-ccg.json { \"boxAppSettings\": { \"clientID\": \"$BOX_CLIENT_ID\", \"clientSecret\": \"$BOX_CLIENT_SECRET\" }, \"enterpriseID\": \"$BOX_ENTERPRISE_ID\" } EOF\n\nchmod 600 /data/.secrets/box-ccg.json\n\nThen register:\n\nbox configure:environments:add /data/.secrets/box-ccg.json --ccg-auth --name ccg --set-as-current\n\nOption C --- JWT Server Auth (Alternative)\n\nIf using JWT:\n\nbox configure:environments:add /data/.secrets/box-jwt.json --name jwt --set-as-current\n\n✅ Verify Authentication\n\nbox configure:environments:get --current box users:get me\n\nNote: With CCG, you are authenticated as either: - The service account, or - A managed user (if --ccg-user is used)\n\nAccess depends on that identity's permissions.\n\n📂 Common Operations\nBrowse Folders\n\nbox folders:get 0 box folders:list-items 0 --json\n\nUpload\n\nbox files:upload ./report.pdf --parent-id 0\n\nDownload\n\nbox files:download 123456789 --destination ./downloads --create-path\n\nSearch\n\nbox search \"quarterly plan\" --type file\n\nMetadata\n\nbox files:metadata:get-all 123456789 box files:metadata:add 123456789 --template-key employeeRecord --data \"department=Sales\"\n\n🤖 Box AI Usage (No Local LLM Downloads)\n\nThis skill supports using Box AI directly via the Box platform.\n\nAI operations run within Box, respecting: - File permissions - Enterprise security - Data governance - Audit controls\n\nNo file download + local LLM inference required.\n\nAsk Questions About a File\n\nbox ai:ask --item-id 123456789 --item-type file --prompt \"Summarize this document and identify risks.\"\n\nExtract Structured Data\n\nbox ai:extract-structured --item-id 123456789 --item-type file --schema '{\"fields\":[{\"name\":\"invoice_number\",\"type\":\"string\"},{\"name\":\"total\",\"type\":\"number\"}]}'\n\nExtract Text\n\nbox ai:extract --item-id 123456789 --item-type file\n\n🧠 Tips for Agents & Automation\n\nUse JSON output when parsing results:\n\nbox folders:list-items 0 --json\n\nPrefer CCG for headless deployments because:\n\nNo browser required\nNo expiring developer tokens\nSuitable for automation\nWorks cleanly in Railway\n🔒 Security Notes\nDo not commit credential files.\nRestrict file permissions (chmod 600).\nUse least-privilege app scopes.\nAvoid granting broad enterprise-wide access to service accounts.\nPrefer a dedicated demo folder when showcasing functionality.\n🚀 Deployment Notes (Railway / CI)\nEnsure /data/workspace is writable (for file operations).\nEnsure /data/.secrets exists and is writable (for credential storage).\nBox CLI stores environments in ~/.box.\nIf containers are ephemeral, re-run configure step on deploy.\nUse Railway Variables instead of pasting secrets into chat.\n\nThis skill exposes the full surface area of the Box CLI.\n\nExplore commands:\n\nbox --help box folders --help box files --help box ai --help"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/hbkwong/box-cli",
    "publisherUrl": "https://clawhub.ai/hbkwong/box-cli",
    "owner": "hbkwong",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/box-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/box-cli",
    "agentUrl": "https://openagent3.xyz/skills/box-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/box-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/box-cli/agent.md"
  }
}