{
  "schemaVersion": "1.0",
  "item": {
    "slug": "byterover-headless",
    "name": "ByteRover - Headless",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/byteroverinc/byterover-headless",
    "canonicalUrl": "https://clawhub.ai/byteroverinc/byterover-headless",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/byterover-headless",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=byterover-headless",
    "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/byterover-headless"
    },
    "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/byterover-headless",
    "agentPageUrl": "https://openagent3.xyz/skills/byterover-headless/agent",
    "manifestUrl": "https://openagent3.xyz/skills/byterover-headless/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/byterover-headless/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": "ByteRover Knowledge Management",
        "body": "Use the brv CLI to manage your own knowledgebase. ByteRover maintains a context tree that stores patterns, decisions, and implementation details about a project.\n\nIMPORTANT: For headless/automated use, always add --headless --format json flags to get machine-parseable JSON output."
      },
      {
        "title": "Setup (Headless)",
        "body": "ByteRover can be fully set up in headless mode. If user has not logged in or initialized .brv/ in the current working directory (check via projectInitialized and and authStatus in brv status --headless --format json  response), ask them to provide:\n\nAPI key - for authentication (obtain from https://app.byterover.dev/settings/keys)\nTeam and space - names or IDs for project initialization"
      },
      {
        "title": "Login with API Key",
        "body": "Authenticate using an API key:\n\nbrv login --api-key <key>\n\nOutputs text: Logged in as <email> on success."
      },
      {
        "title": "Initialize Project",
        "body": "Initialize ByteRover for a project (requires team and space for headless mode - can use either ID or name):\n\n# Using names\nbrv init --headless --team my-team --space my-space --format json\n\n# Using IDs\nbrv init --headless --team team-abc123 --space space-xyz789 --format json\n\nForce re-initialization:\n\nbrv init --headless --team my-team --space my-space --force --format json\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"init\",\n  \"data\": {\n    \"status\": \"success\",\n    \"teamName\": \"MyTeam\",\n    \"spaceName\": \"MySpace\",\n    \"configPath\": \"/path/to/project/.brv/config.json\"\n  }\n}\n\nNote: You can use either team/space names or IDs. Names are matched case-insensitively."
      },
      {
        "title": "Check Status",
        "body": "Check the current status of ByteRover and the project:\n\nbrv status --headless --format json\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"status\",\n  \"data\": {\n    \"cliVersion\": \"1.0.0\",\n    \"authStatus\": \"logged_in\",\n    \"userEmail\": \"user@example.com\",\n    \"projectInitialized\": true,\n    \"teamName\": \"MyTeam\",\n    \"spaceName\": \"MySpace\",\n    \"mcpStatus\": \"connected\",\n    \"contextTreeStatus\": \"has_changes\"\n  }\n}"
      },
      {
        "title": "Query Knowledge",
        "body": "Ask questions to retrieve relevant knowledge:\n\nbrv query \"How is authentication implemented?\" --headless --format json\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"query\",\n  \"data\": {\n    \"status\": \"completed\",\n    \"result\": \"Authentication uses JWT tokens...\",\n    \"toolCalls\": [{\"tool\": \"search_knowledge\", \"status\": \"success\", \"summary\": \"5 matches\"}]\n  }\n}"
      },
      {
        "title": "Curate Context",
        "body": "Add new knowledge or context to the project's context tree:\n\nbrv curate \"Auth uses JWT with 24h expiry. Tokens stored in httpOnly cookies via authMiddleware.ts\" --headless --format json\n\nInclude specific files for comprehensive context (max 5 files):\n\nbrv curate \"Authentication middleware validates JWT tokens\" --files src/middleware/auth.ts --headless --format json\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"curate\",\n  \"data\": {\n    \"status\": \"queued\",\n    \"taskId\": \"abc123\",\n    \"message\": \"Context queued for processing\"\n  }\n}"
      },
      {
        "title": "Push Context Tree",
        "body": "Push local context tree changes to ByteRover cloud storage:\n\nbrv push --headless --format json -y\n\nThe -y flag skips confirmation prompt (required for headless mode).\n\nPush to a specific branch:\n\nbrv push --branch feature-branch --headless --format json -y\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"push\",\n  \"data\": {\n    \"status\": \"success\",\n    \"added\": 3,\n    \"edited\": 1,\n    \"deleted\": 0,\n    \"branch\": \"main\",\n    \"url\": \"https://app.byterover.com/team/space\"\n  }\n}\n\nPossible statuses:\n\nsuccess - Push completed\nno_changes - No context changes to push\ncancelled - Push was cancelled\nerror - Push failed"
      },
      {
        "title": "Pull Context Tree",
        "body": "Pull context tree from ByteRover cloud storage:\n\nbrv pull --headless --format json\n\nPull from a specific branch:\n\nbrv pull --branch feature-branch --headless --format json\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"pull\",\n  \"data\": {\n    \"status\": \"success\",\n    \"added\": 5,\n    \"edited\": 2,\n    \"deleted\": 1,\n    \"branch\": \"main\",\n    \"commitSha\": \"abc123def\"\n  }\n}\n\nPossible statuses:\n\nsuccess - Pull completed\nlocal_changes - Local changes exist, push first\nerror - Pull failed"
      },
      {
        "title": "Error Handling",
        "body": "Always check the success field in JSON responses:\n\nsuccess: true - Operation completed successfully\nsuccess: false - Operation failed, check data.error or data.message for details\n\nCommon error scenarios:\n\nNot authenticated: Run brv login --api-key <key>\nProject not initialized: Run brv init --headless --team <team> --space <space> --format json\nLocal changes exist: Push local changes before pulling"
      },
      {
        "title": "Tips",
        "body": "For pull and push operations, you should ask for user permission first.\nAlways use --headless --format json for automation (except brv login which outputs text).\nCheck brv status --headless --format json first to verify auth and project state.\nFor curate operations, include relevant files with --files for better context.\nQuery responses may include tool call details showing what knowledge was searched.\nFor push operations, always use -y to skip confirmation in headless mode. For re-initialization, use -f to force re-initialization.\nPull will fail if there are unpushed local changes - push first."
      }
    ],
    "body": "ByteRover Knowledge Management\n\nUse the brv CLI to manage your own knowledgebase. ByteRover maintains a context tree that stores patterns, decisions, and implementation details about a project.\n\nIMPORTANT: For headless/automated use, always add --headless --format json flags to get machine-parseable JSON output.\n\nSetup (Headless)\nByteRover can be fully set up in headless mode. If user has not logged in or initialized .brv/ in the current working directory (check via projectInitialized and and authStatus in brv status --headless --format json response), ask them to provide:\nAPI key - for authentication (obtain from https://app.byterover.dev/settings/keys)\nTeam and space - names or IDs for project initialization\nLogin with API Key\n\nAuthenticate using an API key:\n\nbrv login --api-key <key>\n\n\nOutputs text: Logged in as <email> on success.\n\nInitialize Project\n\nInitialize ByteRover for a project (requires team and space for headless mode - can use either ID or name):\n\n# Using names\nbrv init --headless --team my-team --space my-space --format json\n\n# Using IDs\nbrv init --headless --team team-abc123 --space space-xyz789 --format json\n\n\nForce re-initialization:\n\nbrv init --headless --team my-team --space my-space --force --format json\n\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"init\",\n  \"data\": {\n    \"status\": \"success\",\n    \"teamName\": \"MyTeam\",\n    \"spaceName\": \"MySpace\",\n    \"configPath\": \"/path/to/project/.brv/config.json\"\n  }\n}\n\n\nNote: You can use either team/space names or IDs. Names are matched case-insensitively.\n\nCheck Status\n\nCheck the current status of ByteRover and the project:\n\nbrv status --headless --format json\n\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"status\",\n  \"data\": {\n    \"cliVersion\": \"1.0.0\",\n    \"authStatus\": \"logged_in\",\n    \"userEmail\": \"user@example.com\",\n    \"projectInitialized\": true,\n    \"teamName\": \"MyTeam\",\n    \"spaceName\": \"MySpace\",\n    \"mcpStatus\": \"connected\",\n    \"contextTreeStatus\": \"has_changes\"\n  }\n}\n\nQuery Knowledge\n\nAsk questions to retrieve relevant knowledge:\n\nbrv query \"How is authentication implemented?\" --headless --format json\n\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"query\",\n  \"data\": {\n    \"status\": \"completed\",\n    \"result\": \"Authentication uses JWT tokens...\",\n    \"toolCalls\": [{\"tool\": \"search_knowledge\", \"status\": \"success\", \"summary\": \"5 matches\"}]\n  }\n}\n\nCurate Context\n\nAdd new knowledge or context to the project's context tree:\n\nbrv curate \"Auth uses JWT with 24h expiry. Tokens stored in httpOnly cookies via authMiddleware.ts\" --headless --format json\n\n\nInclude specific files for comprehensive context (max 5 files):\n\nbrv curate \"Authentication middleware validates JWT tokens\" --files src/middleware/auth.ts --headless --format json\n\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"curate\",\n  \"data\": {\n    \"status\": \"queued\",\n    \"taskId\": \"abc123\",\n    \"message\": \"Context queued for processing\"\n  }\n}\n\nPush Context Tree\n\nPush local context tree changes to ByteRover cloud storage:\n\nbrv push --headless --format json -y\n\n\nThe -y flag skips confirmation prompt (required for headless mode).\n\nPush to a specific branch:\n\nbrv push --branch feature-branch --headless --format json -y\n\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"push\",\n  \"data\": {\n    \"status\": \"success\",\n    \"added\": 3,\n    \"edited\": 1,\n    \"deleted\": 0,\n    \"branch\": \"main\",\n    \"url\": \"https://app.byterover.com/team/space\"\n  }\n}\n\n\nPossible statuses:\n\nsuccess - Push completed\nno_changes - No context changes to push\ncancelled - Push was cancelled\nerror - Push failed\nPull Context Tree\n\nPull context tree from ByteRover cloud storage:\n\nbrv pull --headless --format json\n\n\nPull from a specific branch:\n\nbrv pull --branch feature-branch --headless --format json\n\n\nExample response:\n\n{\n  \"success\": true,\n  \"command\": \"pull\",\n  \"data\": {\n    \"status\": \"success\",\n    \"added\": 5,\n    \"edited\": 2,\n    \"deleted\": 1,\n    \"branch\": \"main\",\n    \"commitSha\": \"abc123def\"\n  }\n}\n\n\nPossible statuses:\n\nsuccess - Pull completed\nlocal_changes - Local changes exist, push first\nerror - Pull failed\nError Handling\n\nAlways check the success field in JSON responses:\n\nsuccess: true - Operation completed successfully\nsuccess: false - Operation failed, check data.error or data.message for details\n\nCommon error scenarios:\n\nNot authenticated: Run brv login --api-key <key>\nProject not initialized: Run brv init --headless --team <team> --space <space> --format json\nLocal changes exist: Push local changes before pulling\nTips\nFor pull and push operations, you should ask for user permission first.\nAlways use --headless --format json for automation (except brv login which outputs text).\nCheck brv status --headless --format json first to verify auth and project state.\nFor curate operations, include relevant files with --files for better context.\nQuery responses may include tool call details showing what knowledge was searched.\nFor push operations, always use -y to skip confirmation in headless mode. For re-initialization, use -f to force re-initialization.\nPull will fail if there are unpushed local changes - push first."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/byteroverinc/byterover-headless",
    "publisherUrl": "https://clawhub.ai/byteroverinc/byterover-headless",
    "owner": "byteroverinc",
    "version": "1.6.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/byterover-headless",
    "downloadUrl": "https://openagent3.xyz/downloads/byterover-headless",
    "agentUrl": "https://openagent3.xyz/skills/byterover-headless/agent",
    "manifestUrl": "https://openagent3.xyz/skills/byterover-headless/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/byterover-headless/agent.md"
  }
}