Awesome-openclaw-skills byterover-headless

Query and curate knowledge-base using ByteRover CLI. Use `brv query` for knowledge retrieval, `brv curate` for adding context, and `brv push/pull` for syncing.

install
source · Clone the upstream repo
git clone https://github.com/sundial-org/awesome-openclaw-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/byterover-headless" ~/.claude/skills/sundial-org-awesome-openclaw-skills-byterover-headless && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/sundial-org/awesome-openclaw-skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/byterover-headless" ~/.openclaw/skills/sundial-org-awesome-openclaw-skills-byterover-headless && rm -rf "$T"
manifest: skills/byterover-headless/SKILL.md
source content

ByteRover Knowledge Management

Use the

brv
CLI to manage your own knowledgebase. ByteRover maintains a context tree that stores patterns, decisions, and implementation details about a project.

IMPORTANT: For headless/automated use, always add

--headless --format json
flags to get machine-parseable JSON output.

Setup (Headless)

  • 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:
  1. API key - for authentication (obtain from https://app.byterover.dev/settings/keys)
  2. Team and space - names or IDs for project initialization

Login with API Key

Authenticate using an API key:

brv login --api-key <key>

Outputs text:

Logged in as <email>
on success.

Initialize Project

Initialize ByteRover for a project (requires team and space for headless mode - can use either ID or name):

# Using names
brv init --headless --team my-team --space my-space --format json

# Using IDs
brv init --headless --team team-abc123 --space space-xyz789 --format json

Force re-initialization:

brv init --headless --team my-team --space my-space --force --format json

Example response:

{
  "success": true,
  "command": "init",
  "data": {
    "status": "success",
    "teamName": "MyTeam",
    "spaceName": "MySpace",
    "configPath": "/path/to/project/.brv/config.json"
  }
}

Note: You can use either team/space names or IDs. Names are matched case-insensitively.

Check Status

Check the current status of ByteRover and the project:

brv status --headless --format json

Example response:

{
  "success": true,
  "command": "status",
  "data": {
    "cliVersion": "1.0.0",
    "authStatus": "logged_in",
    "userEmail": "user@example.com",
    "projectInitialized": true,
    "teamName": "MyTeam",
    "spaceName": "MySpace",
    "mcpStatus": "connected",
    "contextTreeStatus": "has_changes"
  }
}

Query Knowledge

Ask questions to retrieve relevant knowledge:

brv query "How is authentication implemented?" --headless --format json

Example response:

{
  "success": true,
  "command": "query",
  "data": {
    "status": "completed",
    "result": "Authentication uses JWT tokens...",
    "toolCalls": [{"tool": "search_knowledge", "status": "success", "summary": "5 matches"}]
  }
}

Curate Context

Add new knowledge or context to the project's context tree:

brv curate "Auth uses JWT with 24h expiry. Tokens stored in httpOnly cookies via authMiddleware.ts" --headless --format json

Include specific files for comprehensive context (max 5 files):

brv curate "Authentication middleware validates JWT tokens" --files src/middleware/auth.ts --headless --format json

Example response:

{
  "success": true,
  "command": "curate",
  "data": {
    "status": "queued",
    "taskId": "abc123",
    "message": "Context queued for processing"
  }
}

Push Context Tree

Push local context tree changes to ByteRover cloud storage:

brv push --headless --format json -y

The

-y
flag skips confirmation prompt (required for headless mode).

Push to a specific branch:

brv push --branch feature-branch --headless --format json -y

Example response:

{
  "success": true,
  "command": "push",
  "data": {
    "status": "success",
    "added": 3,
    "edited": 1,
    "deleted": 0,
    "branch": "main",
    "url": "https://app.byterover.com/team/space"
  }
}

Possible statuses:

  • success
    - Push completed
  • no_changes
    - No context changes to push
  • cancelled
    - Push was cancelled
  • error
    - Push failed

Pull Context Tree

Pull context tree from ByteRover cloud storage:

brv pull --headless --format json

Pull from a specific branch:

brv pull --branch feature-branch --headless --format json

Example response:

{
  "success": true,
  "command": "pull",
  "data": {
    "status": "success",
    "added": 5,
    "edited": 2,
    "deleted": 1,
    "branch": "main",
    "commitSha": "abc123def"
  }
}

Possible statuses:

  • success
    - Pull completed
  • local_changes
    - Local changes exist, push first
  • error
    - Pull failed

Error Handling

Always check the

success
field in JSON responses:

  • success: true
    - Operation completed successfully
  • success: false
    - Operation failed, check
    data.error
    or
    data.message
    for details

Common error scenarios:

  • Not authenticated: Run
    brv login --api-key <key>
  • Project not initialized: Run
    brv init --headless --team <team> --space <space> --format json
  • Local changes exist: Push local changes before pulling

Tips

  1. For pull and push operations, you should ask for user permission first.
  2. Always use
    --headless --format json
    for automation (except
    brv login
    which outputs text).
  3. Check
    brv status --headless --format json
    first to verify auth and project state.
  4. For curate operations, include relevant files with
    --files
    for better context.
  5. Query responses may include tool call details showing what knowledge was searched.
  6. For push operations, always use
    -y
    to skip confirmation in headless mode. For re-initialization, use
    -f
    to force re-initialization.
  7. Pull will fail if there are unpushed local changes - push first.