brv) is a command-line tool for managing your AI development workflow with ByteRover. Use it to authenticate, retrieve memories from your knowledge base, manage projects and spaces, and maintain your context tree.
For help with any command, run brv --help or brv <command> --help.
Installation
Install ByteRover CLI globally using npm:Prerequisites
- Node.js: Version 20.0.0 or higher
- Supported platforms: macOS, Windows, Linux
Getting Started
ByteRover CLI offers two ways to interact: Interactive REPL mode (recommended) and traditional CLI commands.Interactive REPL Mode (Recommended)
Start the interactive terminal UI by runningbrv with no arguments:
Esc at any time to skip onboarding or cancel streaming responses.
Standalone CLI Commands
Several commands are available as standalone CLI commands for scripting, automation, and quick access:CLI Commands
| Command | Description | Example |
|---|---|---|
brv | Start interactive REPL mode (recommended) | brv |
brv init [--headless] [--team] [--space] | Initialize project with ByteRover | brv init --headless --team myteam --space myspace |
brv login --api-key <KEY> | Authenticate with API key | brv login --api-key brv_xxx |
brv status [DIRECTORY] | Show CLI status and project information | brv status |
brv query <QUERY> | Query information from the context tree | brv query "How is auth implemented?" |
brv curate [CONTEXT] [--files] [--folder] | Curate context to context tree | brv curate "JWT tokens expire in 24h" --files src/auth.ts |
brv push [--branch] [--yes] | Push context tree to cloud | brv push -b feature -y |
brv pull [--branch] | Pull context tree from cloud | brv pull -b feature |
Note: Commandslogout,space,connector,provider,model,reset, andneware only available as slash commands in REPL mode. Runbrvto start REPL mode.
Important: In interactive mode, thebrv queryandbrv curatecommands require a runningbrvinstance in the same directory (start withbrvfirst). In headless mode (--headlessflag), these commands run independently.
Command Details
Headless Mode
ByteRover CLI supports headless execution for CI/CD pipelines and automation scripts. Headless mode:- Runs without requiring an interactive terminal (no TTY)
- Outputs structured data in text or JSON format
- Fails gracefully when interactive prompts would be required
| Command | Headless Support | Required Flags |
|---|---|---|
brv init | Yes | --team, --space |
brv status | Yes | None |
brv query | Yes | None |
brv curate | Yes | None |
brv push | Yes | -y (skip confirmation) |
brv pull | Yes | None |
brv login | No | Use --api-key instead |
| Flag | Description | Default |
|---|---|---|
--headless | Run without interactive prompts | false |
--format <option> | Output format: text or json | text |
brv
Start the interactive REPL mode with a React/Ink-based terminal UI. This is the recommended way to use ByteRover CLI for an enhanced user experience.
Arguments
None
Flags
None
Examples
- Persistent session: Stay in the CLI and run multiple commands without restarting
- Slash commands: Use
/commandsyntax for all operations (e.g.,/login,/push,/query) - Interactive onboarding: First-time users get a guided setup flow (press
Escto skip) - Real-time feedback: See streaming responses and progress indicators
- Escape to cancel: Press
Escto cancel streaming responses and long-running commands - Tab completion: Auto-complete slash commands as you type
| Command | Description |
|---|---|
/status | Show CLI status and project information |
/curate [context] [@paths] | Curate context to the context tree (use @path for file or folder references) |
/query <query> (alias: /q) | Query and retrieve information from context tree |
/connector (alias: /connectors) | Manage coding agent connectors (skill, mcp, rules, hook) |
/provider (aliases: /providers, /connect) | Connect to an LLM provider (e.g., OpenRouter) |
/model (alias: /models) | Select a model from the active provider |
/push [-b branch] [-y] | Push context tree to ByteRover memory storage |
/pull [-b branch] | Pull context tree from ByteRover memory storage |
/space list [-a] [-j] [-l n] [-o n] | List all spaces for current team |
/space switch | Switch to a different space |
/reset [-y] [directory] | Reset context tree to an empty state |
/new [-y] | Start a fresh session (ends current, clears conversation) |
/init [-f] | Initialize a project with ByteRover |
/login | Authenticate with ByteRover using OAuth 2.0 + PKCE |
/logout [-y] | Log out of ByteRover CLI and clear authentication |
- REPL mode is the primary way to use ByteRover CLI for an interactive experience
- Commands like
logout,space,connector,provider,model,reset, andneware only available in REPL mode - Press
Escto cancel streaming responses or long-running commands - Use
Ctrl+Cto exit REPL mode
Slash Command Details
/status
Show CLI status including authentication state, project configuration, and context tree state.
Flags: None
/curate
Curate context to the context tree using interactive or autonomous mode.
| Argument | Type | Required | Description |
|---|---|---|---|
context | string | No | Knowledge context (triggers autonomous mode if provided) |
@path syntax to include files or folders (up to 5 references total). Folders are packed into a structured format.
Examples
/query (alias: /q)
Query and retrieve information from the context tree using natural language.
| Argument | Type | Required | Description |
|---|---|---|---|
query | string | Yes | Natural language question about your codebase |
/push
Push context tree to ByteRover memory storage.
| Flag | Description | Default |
|---|---|---|
-b, --branch <name> | ByteRover branch name (not Git branch) | main |
-y, --yes | Skip confirmation prompt | - |
/pull
Pull context tree from ByteRover memory storage.
| Flag | Description | Default |
|---|---|---|
-b, --branch <name> | ByteRover branch name (not Git branch) | main |
/space list
List all spaces for the current team.
| Flag | Description | Default |
|---|---|---|
-a, --all | Fetch all spaces (may be slow for large teams) | - |
-j, --json | Output in JSON format | - |
-l, --limit <n> | Maximum number of spaces to fetch | 50 |
-o, --offset <n> | Number of spaces to skip | 0 |
/space switch
Switch to a different space. Interactive mode only - prompts you to select from available options.
Flags: None
/connector (alias: /connectors)
Manage agent connectors for integrating ByteRover with AI coding assistants. Supports four connector types:
- Skill: Writes comprehensive documentation files (SKILL.md, TROUBLESHOOTING.md, WORKFLOWS.md) to agent-specific directories. Default for Claude Code and Cursor.
- MCP: Uses Model Context Protocol for direct tool integration (
brv-query,brv-curate). Default for most other agents. - Rules: Generates markdown rule files that agents read for instructions. Fallback option for all agents.
- Hook: Uses agent-specific hook systems for tighter integration (Claude Code only, legacy)
- SKILL.md: Quick reference with command examples and best practices
- TROUBLESHOOTING.md: Common errors, required user actions, and diagnostics
- WORKFLOWS.md: Step-by-step patterns for 6 common scenarios (Research, Debug, Multi-file changes, etc.)
- Claude Code:
.claude/skills/byterover/(project-level) - Cursor:
.cursor/skills/byterover/(project-level) - Github Copilot:
.github/skills/byterover/(project-level) - Codex:
~/.codex/skills/byterover/(global)
| Agent | Default | Supported | Rules File | Skill Files | MCP Config |
|---|---|---|---|---|---|
| Amp | MCP | rules, mcp | AGENTS.md | - | .vscode/settings.json |
| Antigravity | Rules | rules | .agent/rules/agent-context.md | - | - |
| Augment Code | MCP | rules, mcp | .augment/rules/agent-context.md | - | Manual setup |
| Claude Code | Skill | rules, hook, mcp, skill | CLAUDE.md | .claude/skills/byterover/ | .mcp.json |
| Cline | MCP | rules, mcp | .clinerules/agent-context.md | - | Manual setup |
| Codex | MCP | rules, mcp, skill | AGENTS.md | ~/.codex/skills/byterover/ | ~/.codex/config.toml |
| Cursor | Skill | rules, mcp, skill | .cursor/rules/agent-context.mdc | .cursor/skills/byterover/ | .cursor/mcp.json |
| Gemini CLI | MCP | rules, mcp | GEMINI.md | - | .gemini/settings.json |
| GitHub Copilot | MCP | rules, mcp, skill | .github/copilot-instructions.md | .github/skills/byterover/ | .vscode/mcp.json |
| Junie | MCP | rules, mcp | .junie/guidelines.md | - | .junie/mcp/mcp.json |
| Kilo Code | MCP | rules, mcp | .kilocode/rules/agent-context.md | - | .kilocode/mcp.json |
| Kiro | MCP | rules, mcp | .kiro/steering/agent-context.md | - | .kiro/settings/mcp.json |
| Qoder | MCP | rules, mcp | .qoder/rules/agent-context.md | - | Manual setup |
| Qwen Code | MCP | rules, mcp | QWEN.md | - | Manual setup |
| Roo Code | MCP | rules, mcp | .roo/rules/agent-context.md | - | .roo/mcp.json |
| Trae.ai | MCP | rules, mcp | project_rules.md | - | Manual setup |
| Warp | MCP | rules, mcp | WARP.md | - | Manual setup |
| Windsurf | MCP | rules, mcp | .windsurf/rules/agent-context.md | - | ~/.codeium/windsurf/mcp_config.json |
| Zed | MCP | rules, mcp | agent-context.rules | - | .zed/settings.json |
- Auto setup: ByteRover automatically writes the MCP config file (most agents)
- Manual setup: User must manually configure per agent’s documentation (Augment Code, Cline, Qoder, Qwen Code, Trae.ai, Warp)
/provider (aliases: /providers, /connect)
Connect to an external LLM provider for use with ByteRover’s built-in chat. Opens an interactive selection prompt.
Flags: None
Available Providers
| Provider | Description | API Key Required |
|---|---|---|
| ByteRover | Internal ByteRover LLM (default, always available) | No |
| OpenRouter | Access 200+ models from multiple providers | Yes |
- Displays a selection prompt listing all available providers with connection status indicators
- If the selected provider is already connected, it is set as the active provider immediately
- If the selected provider requires an API key, prompts for the key and validates it before connecting
- API keys are stored securely in the system keychain
/model (alias: /models)
Select a model from the currently active LLM provider. Requires a provider to be connected first via /provider.
Flags: None
Behavior
- Requires an active external provider (ByteRover uses an internal model with no selection)
- Fetches available models from the active provider’s API
- Displays models sorted by: favorites first, then recently used, then by provider and model name
- Shows pricing information (input/output cost per million tokens), context window size, and status indicators (Current, Favorite, Free)
- Selected model is saved as the active model for the provider
- If no external provider is connected, run
/providerfirst - If the active provider is ByteRover, the command will prompt you to switch to an external provider
- Model list depends on the connected provider (e.g., OpenRouter provides 200+ models)
/init
Initialize a project with ByteRover. Guides you through team and space selection and creates the context tree.
| Flag | Description |
|---|---|
-f, --force | Force re-initialization without confirmation prompt |
/login
Authenticate with ByteRover using OAuth 2.0 + PKCE. Opens your default browser for secure authentication.
Flags: None
/logout
Log out of ByteRover CLI and clear authentication credentials from the system keychain.
| Flag | Description |
|---|---|
-y, --yes | Skip confirmation prompt |
/reset
Reset the current context tree to an empty state. This is a destructive operation.
| Argument | Type | Required | Description |
|---|---|---|---|
directory | string | No | Project directory (defaults to current directory) |
| Flag | Description |
|---|---|
-y, --yes | Skip confirmation prompt |
/new
Start a fresh session. This ends the current session and clears conversation history but does NOT affect the context tree (use /reset for that).
| Flag | Description |
|---|---|
-y, --yes | Skip confirmation prompt |
brv init
Initialize a project with ByteRover. Sets up team and space selection and creates the context tree.
Arguments
None
Flags
| Flag | Description | Default |
|---|---|---|
-f, --force | Force re-initialization without confirmation | false |
--headless | Run in headless mode (no TTY required) | false |
--team <id> | Team ID or name (required for headless mode) | - |
--space <id> | Space ID or name (required for headless mode) | - |
--format <option> | Output format: text or json | text |
brv login
Authenticate with ByteRover using an API key.
Arguments
None
Flags
| Flag | Description | Default |
|---|---|---|
-k, --api-key <key> | API key for authentication (required) | - |
- Get your API key from https://app.byterover.dev/settings/keys
- This command uses API key authentication, different from the OAuth-based
/loginslash command in REPL mode - The API key is stored securely in the system keychain
brv status
Show CLI status and project information. Displays local context tree managed by ByteRover CLI.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
DIRECTORY | string | No | Project directory (defaults to current directory) |
| Flag | Description | Default |
|---|---|---|
-f, --format <option> | Output format: text or json | text |
--headless | Run in headless mode (no TTY required) | false |
- CLI version
- Authentication status (logged in user or “Not logged in”)
- Current directory
- Project initialization status (team and space info if initialized)
- Context tree changes (git-style diff showing modified/added/deleted files)
brv query
Query and retrieve information from the context tree using natural language.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
QUERY | string | Yes | Natural language question about your project |
| Flag | Description | Default |
|---|---|---|
--headless | Run in headless mode (no TTY required) | false |
--format <option> | Output format: text or json | text |
- Interactive mode: Requires a running
brvinstance in the same directory (start withbrvin another terminal) - Headless mode: Runs independently without requiring a separate instance
- Context tree must exist (run
/initorbrv initfirst) - Uses AI to search and analyze your context tree
- Best results with specific, detailed questions
- Avoid vague queries like “auth” or “show me code”
brv curate
Curate context to the context tree using interactive or autonomous mode.
Arguments
| Argument | Type | Required | Description |
|---|---|---|---|
CONTEXT | string | No | Knowledge context (triggers autonomous mode if provided) |
| Flag | Description | Default |
|---|---|---|
-f, --files <paths> | Include specific file paths for critical context (max 5 files). Use multiple -f flags for multiple paths | None |
-d, --folder <paths> | Folder path to pack and analyze (triggers folder pack flow). Use multiple -d flags for multiple folders | None |
--headless | Run in headless mode (no TTY required) | false |
--format <option> | Output format: text or json | text |
- Interactive mode: Requires a running
brvinstance in the same directory (start withbrvin another terminal) - Headless mode: Runs independently without requiring a separate instance
- Context tree must exist (run
/initorbrv initfirst) - Interactive mode (without context): Navigate context tree, select domain/topic, creates markdown file with descriptive name
- Autonomous mode (with context): ByteRover agent automatically determines best location and adds content
- File references: Up to 5 files with
--files/-fflag in CLI mode, or@pathsyntax in REPL mode. Files must be text files within the project directory - Folder references: Use
--folder/-dflag in CLI mode, or@folder/syntax in REPL mode. Folder contents are packed into a structured format for analysis
brv push
Push context tree to ByteRover memory storage.
Arguments
None
Flags
| Flag | Description | Default |
|---|---|---|
-b, --branch <name> | ByteRover branch name (not Git branch) | main |
-y, --yes | Skip confirmation prompt | false |
--headless | Run in headless mode (no TTY required) | false |
--format <option> | Output format: text or json | text |
brv pull
Pull context tree from ByteRover memory storage.
Arguments
None
Flags
| Flag | Description | Default |
|---|---|---|
-b, --branch <name> | ByteRover branch name (not Git branch) | main |
--headless | Run in headless mode (no TTY required) | false |
--format <option> | Output format: text or json | text |
Global Options
ByteRover CLI provides these global options:| Flag | Description | Example |
|---|---|---|
--help | Show help for command | brv --help, brv status --help |
--version | Show CLI version | brv --version |
File Structure
ByteRover CLI creates the following directory structure in your project:- config.json: Stores your team ID, space ID, and project metadata
- context-tree/: Hierarchical structure organizing project knowledge by domains and topics (created as you curate)
- .snapshot.json: Version control snapshot tracking context tree changes over time