Command Overview
All commands are available in two modes:- CLI:
brv vc <command> [args] [flags] - TUI (REPL):
/vc <command> [args] [flags]
brv vc with /vc for TUI usage.
Setup Commands
vc init
Initialize version control for the current space.| Arguments | None |
| Flags | None |
| Returns | Git directory path, whether it was reinitialized |
| Prerequisites | A ByteRover space must exist (.brv/ directory) |
ALREADY_INITIALIZED
vc config
Get or set commit author identity. Configuration is local to the current space — each space maintains its own author identity.| Argument | Required | Description |
|---|---|---|
key | Yes | user.name or user.email |
value | No | Value to set. Omit to read the current value |
INVALID_CONFIG_KEY, CONFIG_KEY_NOT_SET, GIT_NOT_INITIALIZED
vc clone
Clone a remote space from ByteRover cloud.| Argument | Required | Description |
|---|---|---|
url | Yes (optional in TUI) | https://byterover.dev/<team>/<space>.git |
| Returns | Git directory, team name, space name |
| Timeout | 120 seconds |
| TUI only | Omit URL to open an interactive space picker |
CLONE_FAILED, AUTH_FAILED, INVALID_REMOTE_URL
Staging & History Commands
vc add
Stage files for the next commit.| Argument | Required | Description |
|---|---|---|
files | No | File or directory paths to stage. Defaults to . (everything) |
GIT_NOT_INITIALIZED, FILE_NOT_FOUND
vc commit
Save staged changes as a commit.| Flag | Required | Description |
|---|---|---|
-m, --message | Yes | Commit message (no auto-generation) |
| Returns | Short SHA (7 characters) and commit message |
| Prerequisites | user.name and user.email configured, at least one file staged |
USER_NOT_CONFIGURED, NOTHING_STAGED, GIT_NOT_INITIALIZED
vc status
Show working tree status.| Arguments | None |
| Flags | None |
| Field | Description |
|---|---|
| Current branch | The branch you are on |
| Tracking info | Ahead/behind upstream count |
| Merge state | Whether a merge is in progress |
| Staged changes | Files ready to commit |
| Unstaged changes | Modified files not yet staged |
| Untracked files | New files not being tracked |
| Unmerged paths | Files with conflicts during a merge |
| Conflict markers | Files containing <<<<<<</=======/>>>>>>> |
vc log
Show commit history.| Argument | Required | Description |
|---|---|---|
branch | No | Show history for a specific branch |
| Flag | Default | Description |
|---|---|---|
--all, -a | false | Show commits from all branches |
--limit | 10 | Maximum number of commits to display |
NO_COMMITS, BRANCH_NOT_FOUND, GIT_NOT_INITIALIZED
vc reset
Unstage files or undo commits.| Argument | Required | Description |
|---|---|---|
files | No | Specific files to unstage |
| Flag | Description |
|---|---|
--soft | Move HEAD back, keep changes in staging area |
--hard | Move HEAD back, discard all changes (destructive) |
--soft and --hard are mutually exclusive.
| Mode | HEAD | Staging | Working Tree |
|---|---|---|---|
| No flags | Unchanged | Cleared | Unchanged |
--soft | Moved back | Preserved | Unchanged |
--hard | Moved back | Cleared | Cleared |
INVALID_REF, NOTHING_TO_RESET, GIT_NOT_INITIALIZED
Branching Commands
vc branch
List, create, or delete branches.| Argument | Required | Description |
|---|---|---|
name | No | Branch name to create |
| Flag | Description |
|---|---|
-a, --all | List all branches including remote-tracking |
-d, --delete | Delete a branch by name |
--set-upstream-to | Set upstream tracking for current branch (e.g., origin/main) |
BRANCH_ALREADY_EXISTS, BRANCH_NOT_FOUND, BRANCH_NOT_MERGED, CANNOT_DELETE_CURRENT_BRANCH, INVALID_BRANCH_NAME
vc checkout
Switch to an existing branch, or create and switch in one step.| Argument | Required | Description |
|---|---|---|
branch | Yes | Branch to switch to (or create with -b) |
| Flag | Default | Description |
|---|---|---|
-b, --create | false | Create the branch before switching |
--force | false | Discard uncommitted changes and force switch |
BRANCH_NOT_FOUND, UNCOMMITTED_CHANGES, BRANCH_ALREADY_EXISTS (with -b)
vc merge
Merge a branch into the current branch.| Argument | Required | Description |
|---|---|---|
branch | No | Branch to merge (not needed with --abort/--continue) |
| Flag | Description |
|---|---|
-m, --message | Custom merge commit message |
--abort | Cancel current merge and restore pre-merge state |
--continue | Complete merge after resolving conflicts |
--allow-unrelated-histories | Allow merging branches with no common ancestor |
--abort and --continue are mutually exclusive.
Start a merge:
MERGE_CONFLICT, MERGE_IN_PROGRESS, NO_MERGE_IN_PROGRESS, CONFLICT_MARKERS_PRESENT, ALLOW_UNRELATED_HISTORIES
Remote Commands
vc remote
Show, add, or update the remote connection.origin is supported as a remote name. URLs must match: https://byterover.dev/<team>/<space>.git
Show:
REMOTE_ALREADY_EXISTS, INVALID_REMOTE_URL, NO_REMOTE
vc fetch
Fetch refs from ByteRover cloud without modifying local branches.| Argument | Required | Description |
|---|---|---|
remote | No | Remote name (origin only). Defaults to origin |
branch | No | Specific branch to fetch. Defaults to all branches |
| Timeout | 120 seconds |
| Effect | Updates remote-tracking branches only; working tree unchanged |
FETCH_FAILED, NO_REMOTE, AUTH_FAILED
vc pull
Pull commits from ByteRover cloud (fetch + merge).| Argument | Required | Description |
|---|---|---|
remote | No | Remote name (origin only). Defaults to origin |
branch | No | Branch to pull. Defaults to upstream of current branch |
| Flag | Default | Description |
|---|---|---|
--allow-unrelated-histories | false | Allow merging unrelated histories |
| Timeout | 120 seconds |
| Effect | Fetches and merges into current branch |
PULL_FAILED, NO_REMOTE, NO_UPSTREAM, MERGE_CONFLICT, AUTH_FAILED
vc push
Push commits to ByteRover cloud.| Argument | Required | Description |
|---|---|---|
remote | No | Remote name (origin only). Defaults to origin |
branch | No | Branch to push. Defaults to current branch |
| Flag | Default | Description |
|---|---|---|
-u, --set-upstream | false | Set remote branch as upstream tracking |
| Timeout | 120 seconds |
| Returns | Branch name, up-to-date status, upstream-set status |
PUSH_FAILED, NON_FAST_FORWARD, NOTHING_TO_PUSH, NO_REMOTE, NO_UPSTREAM, AUTH_FAILED
Error Code Reference
Complete list of error codes across all commands:Initialization Errors
| Error Code | Description | Solution |
|---|---|---|
ALREADY_INITIALIZED | VC already set up | Safe to ignore |
GIT_NOT_INITIALIZED | VC not initialized | Run vc init |
Configuration Errors
| Error Code | Description | Solution |
|---|---|---|
USER_NOT_CONFIGURED | Author identity not set | Set user.name and user.email with vc config |
CONFIG_KEY_NOT_SET | Requested key has no value | Set it with vc config <key> <value> |
INVALID_CONFIG_KEY | Key is not user.name or user.email | Use a supported key |
Staging & Commit Errors
| Error Code | Description | Solution |
|---|---|---|
NOTHING_STAGED | No files in staging area | Stage files with vc add |
NOTHING_TO_RESET | No changes to unstage | Working tree is clean |
FILE_NOT_FOUND | Specified file doesn’t exist | Check the file path |
INVALID_REF | Git ref doesn’t exist | Verify with vc log |
NO_COMMITS | No commits in history | Create your first commit |
Branch Errors
| Error Code | Description | Solution |
|---|---|---|
BRANCH_NOT_FOUND | Branch doesn’t exist | Check names with vc branch |
BRANCH_ALREADY_EXISTS | Branch name is taken | Choose a different name |
CANNOT_DELETE_CURRENT_BRANCH | On the branch being deleted | Switch to another branch first |
BRANCH_NOT_MERGED | Branch has unmerged commits | Merge the branch first, or verify you no longer need those commits |
INVALID_BRANCH_NAME | Invalid characters in name | Use alphanumeric, /, -, _, . |
UNCOMMITTED_CHANGES | Uncommitted changes block operation | Commit changes or use --force |
NO_BRANCH_RESOLVED | Could not determine which branch to operate on | Specify the branch explicitly or check out a branch first |
Merge Errors
| Error Code | Description | Solution |
|---|---|---|
MERGE_CONFLICT | Conflicting changes detected | Resolve conflicts, then vc merge --continue |
MERGE_IN_PROGRESS | A merge is already underway | --continue or --abort first |
NO_MERGE_IN_PROGRESS | No active merge to continue/abort | Nothing to do |
CONFLICT_MARKERS_PRESENT | Unresolved markers in files | Remove all <<<<<<</=======/>>>>>>> markers |
UNRELATED_HISTORIES | No common ancestor between branches | Add --allow-unrelated-histories flag |
Remote & Sync Errors
| Error Code | Description | Solution |
|---|---|---|
NO_REMOTE | No remote configured | vc remote add origin <url> |
REMOTE_ALREADY_EXISTS | Remote origin already set | Use vc remote set-url to update |
INVALID_REMOTE_URL | URL format is wrong | Use https://byterover.dev/<team>/<space>.git |
NO_UPSTREAM | No upstream tracking branch | Use vc push -u origin <branch> or vc branch --set-upstream-to |
NON_FAST_FORWARD | Remote has newer commits | Pull first, resolve conflicts, then push |
NOTHING_TO_PUSH | No new local commits | Already up to date |
CLONE_FAILED | Clone operation failed | Check URL and network connection |
FETCH_FAILED | Fetch operation failed | Check network connection |
PULL_FAILED | Pull operation failed | Check network connection |
PUSH_FAILED | Push operation failed | Check network connection |
NETWORK_ERROR | Network connectivity issue | Check your internet connection and try again |
AUTH_FAILED | Authentication failed | Log in with brv login and verify access |
Legacy Command Errors
| Error Code | Description | Solution |
|---|---|---|
VC_GIT_INITIALIZED | Legacy brv push/brv pull used after vc init | Use brv vc push / brv vc pull instead. See Migration |