{
  "schemaVersion": "1.0",
  "item": {
    "slug": "bool-cli",
    "name": "bool-cli",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/jkeesh/bool-cli",
    "canonicalUrl": "https://clawhub.ai/jkeesh/bool-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/bool-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=bool-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-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-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/bool-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/bool-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/bool-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bool-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bool-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": "Using bool-cli",
        "body": "CLI tool for managing projects on Bool.com. Requires Node.js >=18."
      },
      {
        "title": "Prerequisites",
        "body": "Install: npm install -g bool-cli\nAuthenticate: Set BOOL_API_KEY env var, or run bool auth login interactively\nVerify: Run bool auth status to confirm the connection\n\nThe API key is saved to ~/.config/bool-cli/config.json. The BOOL_API_KEY environment variable takes precedence over the saved config."
      },
      {
        "title": "Important: Non-Interactive Commands",
        "body": "The bool auth login and bool bools delete <slug> commands are interactive (they prompt for input). When using them from an agent:\n\nAuth: Set the BOOL_API_KEY environment variable instead of running bool auth login\nDelete: Always pass -y / --yes to skip the confirmation prompt: bool bools delete <slug> -y"
      },
      {
        "title": "Authentication",
        "body": "bool auth login          # Interactive: prompts for API key\nbool auth status         # Check auth + API health (non-interactive)"
      },
      {
        "title": "Managing Bools",
        "body": "bool bools list [count]        # List Bools (default: 5)\nbool bools create <name>       # Create a new Bool\nbool bools info [slug]         # Show Bool details + latest version info\nbool bools update [slug] --name \"New Name\" --description \"desc\" --visibility public\nbool bools delete [slug] -y    # Delete a Bool (always use -y to skip prompt)\nbool bools open [slug]         # Open Bool in browser\nbool bools visibility [slug]         # Show current visibility\nbool bools visibility [slug] --set private    # Change visibility\n\nVisibility options: private, team, unlisted, public"
      },
      {
        "title": "Versions & Deployment",
        "body": "bool versions [slug]                           # List version history\nbool deploy [slug] [dir] -m \"commit message\"   # Deploy local files (auto-creates Bool if needed)\nbool pull [slug] [dir] --version N             # Download files locally"
      },
      {
        "title": "Quick Ship (Anonymous Bools)",
        "body": "Ship a project without needing an API key:\n\nbool shipit [directory]                        # Create anonymous Bool + deploy\nbool shipit --slug <slug> -m \"update message\"  # Update existing anonymous Bool\nbool shipit --name \"My Project\"                # Set a custom name\n\nThe shipit command stores the slug and secret in .bool/config so subsequent runs in the same directory automatically update the same Bool."
      },
      {
        "title": "JSON Output",
        "body": "All commands support --json for machine-readable output. Always use --json when you need to parse output programmatically.\n\nbool bools list --json\nbool bools info my-project --json\nbool versions my-project --json"
      },
      {
        "title": "Project Config (.bool/config)",
        "body": "When you deploy, pull, or shipit in a directory, bool-cli stores project metadata in .bool/config:\n\n{\n  \"slug\": \"my-project\",\n  \"name\": \"My Project\",\n  \"secret\": \"optional_anonymous_secret\"\n}\n\nThis allows you to omit the [slug] argument on subsequent commands when working in the same directory. For example:\n\n# First time: specify slug explicitly\nbool deploy my-project ./src -m \"Initial deploy\"\n\n# After that, run from the same directory and slug is read from .bool/config\nbool deploy -m \"Another deploy\"\nbool versions\nbool bools info\n\nAdd .bool/ to your .gitignore to keep secrets local."
      },
      {
        "title": "Create and deploy a new Bool (Option A: explicit)",
        "body": "bool bools create \"My Project\"\n# note the slug from the output, e.g. \"my-project\"\nbool deploy my-project ./src -m \"Initial deploy\""
      },
      {
        "title": "Create and deploy a new Bool (Option B: auto-create)",
        "body": "# Deploy without a slug—a new Bool is created automatically\nbool deploy ./src -m \"Initial deploy\"\n\nThis creates a Bool named after the directory and displays the live URL."
      },
      {
        "title": "Quick anonymous ship (no API key needed)",
        "body": "bool shipit ./my-project\n# outputs: https://<slug>.bool01.com\n# subsequent updates from same directory:\nbool shipit ./my-project -m \"Updated version\""
      },
      {
        "title": "Pull, edit, and redeploy",
        "body": "bool pull my-project ./my-project\n# ... make changes to files in ./my-project/ ...\nbool deploy my-project ./my-project -m \"Updated files\""
      },
      {
        "title": "Check what's deployed",
        "body": "bool bools info my-project            # See latest version summary\nbool versions my-project              # See full version history\nbool pull my-project ./tmp            # Download current files to inspect"
      },
      {
        "title": "Manage visibility",
        "body": "bool bools visibility my-project                 # Show current visibility\nbool bools visibility my-project --set private    # Make it private\nbool bools visibility my-project --set public     # Make it public"
      },
      {
        "title": "Deploy a specific subdirectory with exclusions",
        "body": "bool deploy my-project ./src --exclude \"*.test.js\" --exclude \"*.spec.js\" -m \"Production build\""
      },
      {
        "title": "Deploy Behavior",
        "body": "bool deploy recursively reads the directory and uploads all text files\nAuto-create Bool: If no slug is provided (and no .bool/config exists), a new Bool is created automatically, named after the directory\nLive URL: The live deployment URL is displayed in the output after successful deployment\nBinary files (images, PDFs, archives, fonts, etc.) are automatically skipped\nDefault excludes: .git, node_modules, __pycache__, .DS_Store, .bool\nCustom excludes: Use --exclude <pattern> (repeatable) for additional patterns\n.boolignore: If a .boolignore file exists in the deploy directory, it is respected (gitignore syntax)\nFile paths in the payload are relative to the deploy directory"
      },
      {
        "title": "Pull Behavior",
        "body": "bool pull <slug> downloads files to ./<slug>/ by default\nSpecify a custom output directory: bool pull <slug> ./my-dir\nPull a specific version: bool pull <slug> --version 3\nCreates subdirectories as needed"
      },
      {
        "title": "Environment Variables",
        "body": "VariablePurposeDefaultBOOL_API_KEYAPI key (overrides saved config)—BOOL_API_URLAPI base URLhttps://bool.com/apiBOOL_BASE_URLBase URL for shipithttps://bool.com"
      },
      {
        "title": "Error Handling",
        "body": "All errors print to stderr with a non-zero exit code\nAPI errors surface the server's error message (e.g., \"Bool not found\")\nIf no API key is configured, commands fail with: No API key configured. Run: bool auth login"
      },
      {
        "title": "Tips",
        "body": "Use bool bools list --json | jq '.[].slug' to get all slugs for scripting\nThe Bool slug (not name) is the identifier used in all commands\nAfter bool bools create, the slug is derived from the name (e.g., \"My Project\" -> my-project)\nUse bool bools info <slug> --json to get the latest version number programmatically\nThe live URL for any Bool is https://<slug>.bool01.com"
      }
    ],
    "body": "Using bool-cli\n\nCLI tool for managing projects on Bool.com. Requires Node.js >=18.\n\nPrerequisites\nInstall: npm install -g bool-cli\nAuthenticate: Set BOOL_API_KEY env var, or run bool auth login interactively\nVerify: Run bool auth status to confirm the connection\n\nThe API key is saved to ~/.config/bool-cli/config.json. The BOOL_API_KEY environment variable takes precedence over the saved config.\n\nImportant: Non-Interactive Commands\n\nThe bool auth login and bool bools delete <slug> commands are interactive (they prompt for input). When using them from an agent:\n\nAuth: Set the BOOL_API_KEY environment variable instead of running bool auth login\nDelete: Always pass -y / --yes to skip the confirmation prompt: bool bools delete <slug> -y\nCommands Reference\nAuthentication\nbool auth login          # Interactive: prompts for API key\nbool auth status         # Check auth + API health (non-interactive)\n\nManaging Bools\nbool bools list [count]        # List Bools (default: 5)\nbool bools create <name>       # Create a new Bool\nbool bools info [slug]         # Show Bool details + latest version info\nbool bools update [slug] --name \"New Name\" --description \"desc\" --visibility public\nbool bools delete [slug] -y    # Delete a Bool (always use -y to skip prompt)\nbool bools open [slug]         # Open Bool in browser\nbool bools visibility [slug]         # Show current visibility\nbool bools visibility [slug] --set private    # Change visibility\n\n\nVisibility options: private, team, unlisted, public\n\nVersions & Deployment\nbool versions [slug]                           # List version history\nbool deploy [slug] [dir] -m \"commit message\"   # Deploy local files (auto-creates Bool if needed)\nbool pull [slug] [dir] --version N             # Download files locally\n\nQuick Ship (Anonymous Bools)\n\nShip a project without needing an API key:\n\nbool shipit [directory]                        # Create anonymous Bool + deploy\nbool shipit --slug <slug> -m \"update message\"  # Update existing anonymous Bool\nbool shipit --name \"My Project\"                # Set a custom name\n\n\nThe shipit command stores the slug and secret in .bool/config so subsequent runs in the same directory automatically update the same Bool.\n\nJSON Output\n\nAll commands support --json for machine-readable output. Always use --json when you need to parse output programmatically.\n\nbool bools list --json\nbool bools info my-project --json\nbool versions my-project --json\n\nProject Config (.bool/config)\n\nWhen you deploy, pull, or shipit in a directory, bool-cli stores project metadata in .bool/config:\n\n{\n  \"slug\": \"my-project\",\n  \"name\": \"My Project\",\n  \"secret\": \"optional_anonymous_secret\"\n}\n\n\nThis allows you to omit the [slug] argument on subsequent commands when working in the same directory. For example:\n\n# First time: specify slug explicitly\nbool deploy my-project ./src -m \"Initial deploy\"\n\n# After that, run from the same directory and slug is read from .bool/config\nbool deploy -m \"Another deploy\"\nbool versions\nbool bools info\n\n\nAdd .bool/ to your .gitignore to keep secrets local.\n\nCommon Workflows\nCreate and deploy a new Bool (Option A: explicit)\nbool bools create \"My Project\"\n# note the slug from the output, e.g. \"my-project\"\nbool deploy my-project ./src -m \"Initial deploy\"\n\nCreate and deploy a new Bool (Option B: auto-create)\n# Deploy without a slug—a new Bool is created automatically\nbool deploy ./src -m \"Initial deploy\"\n\n\nThis creates a Bool named after the directory and displays the live URL.\n\nQuick anonymous ship (no API key needed)\nbool shipit ./my-project\n# outputs: https://<slug>.bool01.com\n# subsequent updates from same directory:\nbool shipit ./my-project -m \"Updated version\"\n\nPull, edit, and redeploy\nbool pull my-project ./my-project\n# ... make changes to files in ./my-project/ ...\nbool deploy my-project ./my-project -m \"Updated files\"\n\nCheck what's deployed\nbool bools info my-project            # See latest version summary\nbool versions my-project              # See full version history\nbool pull my-project ./tmp            # Download current files to inspect\n\nManage visibility\nbool bools visibility my-project                 # Show current visibility\nbool bools visibility my-project --set private    # Make it private\nbool bools visibility my-project --set public     # Make it public\n\nDeploy a specific subdirectory with exclusions\nbool deploy my-project ./src --exclude \"*.test.js\" --exclude \"*.spec.js\" -m \"Production build\"\n\nDeploy Behavior\nbool deploy recursively reads the directory and uploads all text files\nAuto-create Bool: If no slug is provided (and no .bool/config exists), a new Bool is created automatically, named after the directory\nLive URL: The live deployment URL is displayed in the output after successful deployment\nBinary files (images, PDFs, archives, fonts, etc.) are automatically skipped\nDefault excludes: .git, node_modules, __pycache__, .DS_Store, .bool\nCustom excludes: Use --exclude <pattern> (repeatable) for additional patterns\n.boolignore: If a .boolignore file exists in the deploy directory, it is respected (gitignore syntax)\nFile paths in the payload are relative to the deploy directory\nPull Behavior\nbool pull <slug> downloads files to ./<slug>/ by default\nSpecify a custom output directory: bool pull <slug> ./my-dir\nPull a specific version: bool pull <slug> --version 3\nCreates subdirectories as needed\nEnvironment Variables\nVariable\tPurpose\tDefault\nBOOL_API_KEY\tAPI key (overrides saved config)\t—\nBOOL_API_URL\tAPI base URL\thttps://bool.com/api\nBOOL_BASE_URL\tBase URL for shipit\thttps://bool.com\nError Handling\nAll errors print to stderr with a non-zero exit code\nAPI errors surface the server's error message (e.g., \"Bool not found\")\nIf no API key is configured, commands fail with: No API key configured. Run: bool auth login\nTips\nUse bool bools list --json | jq '.[].slug' to get all slugs for scripting\nThe Bool slug (not name) is the identifier used in all commands\nAfter bool bools create, the slug is derived from the name (e.g., \"My Project\" -> my-project)\nUse bool bools info <slug> --json to get the latest version number programmatically\nThe live URL for any Bool is https://<slug>.bool01.com"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/jkeesh/bool-cli",
    "publisherUrl": "https://clawhub.ai/jkeesh/bool-cli",
    "owner": "jkeesh",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/bool-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/bool-cli",
    "agentUrl": "https://openagent3.xyz/skills/bool-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/bool-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/bool-cli/agent.md"
  }
}