ByteRover - Headless
by @byteroverinc
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.
clawhub install byterover-headlessπ About This Skill
name: byterover-headless description: "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."
metadata: {"moltbot":{"emoji":"π§ ","requires":{"bins":["brv"]},"install":[{"id":"npm","kind":"node","package":"@byterover/cli","bins":["brv"],"label":"Install ByteRover CLI (npm)"}]}}
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)
.brv/ in the current working directory (check via projectInitialized and and authStatus in brv status --headless --format jsonLogin with API Key
Authenticate using an API key:
brv login --api-key
Outputs text: Logged in as 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 jsonUsing 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 completedno_changes - No context changes to pushcancelled - Push was cancellederror - Push failedPull 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 completedlocal_changes - Local changes exist, push firsterror - Pull failedError Handling
Always check the success field in JSON responses:
success: true - Operation completed successfullysuccess: false - Operation failed, check data.error or data.message for detailsCommon error scenarios:
brv login --api-key brv init --headless --team --space --format json 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.
π Tips & Best Practices
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.