A portable memory layer for AI coding agents — curate structured project knowledge into a version-controlled context tree that syncs across tools, machines, and teammates.
ByteRover CLI (brv) solves a fundamental problem with autonomous AI coding agents: they forget everything between sessions. ByteRover gives agents persistent, structured memory by letting developers curate project knowledge into a context tree — a living map of how your codebase works, indexed by the agent and queryable in future sessions without re-reading the entire project.
Run brv in any project directory to open an interactive REPL or TUI. The agent reads and writes files, executes code, searches its accumulated knowledge, and stores decisions for future reference. Knowledge operations use a review workflow where curate changes can be approved or rejected before being committed to the context tree. The context tree itself is version-controlled with git-like semantics: branch, commit, merge, push, and pull.
ByteRover supports 20 LLM providers out of the box — Anthropic, OpenAI, Google, Groq, Mistral, xAI, DeepSeek, and more — and integrates with 22+ AI coding agents including Cursor, Claude Code, Windsurf, and Cline via MCP. A built-in web dashboard (brv webui) provides a graphical interface for curating and querying context. ByteRover Cloud adds team sync, shared spaces, and hosted LLM access for collaborative workflows.
brv) with a full agentic loop — the agent reads files, executes code, searches knowledge, and stores findings without leaving the terminalbrv mcp) exposing ByteRover’s tools to any MCP-compatible host such as Claude Code, Cursor, or Windsurfbrv webui) for graphical knowledge curation, query history, and team context managementbrv as a subagent tool so automated pipelines can both write new findings (curate) and retrieve relevant facts (query) during multi-step code generationbrv webui to review and refine an agent’s accumulated understanding of your project, correcting misconceptions before they propagate into generated codeArchitecture ByteRover CLI is structured as a layered monolith with clean hexagonal boundaries between domain logic and infrastructure. The agent core owns an explicit finite-state machine governing execution phases — IDLE, EXECUTING, TOOL_CALLING, COMPLETE, ERROR, ABORTED — with validated transitions that make illegal states unrepresentable. A session layer manages chat history, context compaction, and event forwarding. Above that, a pool of named project agents runs concurrently up to a configurable maximum, each isolated in its own session. The context tree is the central shared abstraction: a version-controlled knowledge graph that all layers read from and write to through typed domain interfaces. Tool invocations are queued and scheduled by a dedicated core-tool scheduler that enforces per-project concurrency limits, keeping parallel curate and query tasks from racing on the same context store.
Tech Stack
The entire codebase is TypeScript targeting Node.js 20+, compiled with the TypeScript compiler and bundled for distribution via oclif. The CLI framework is oclif, providing command registration, hooks, and auto-update from a GCS bucket. Terminal UI components are built with React and Ink (React renderer for terminals), with fullscreen-ink for immersive TUI mode. The web dashboard is a separate Vite/React/Tailwind SPA bundled into the package and served by an embedded Express 5 server. LLM access is unified through the AI SDK (ai package) with provider-specific adapters for Anthropic, OpenAI, Google Gemini, Groq, Mistral, xAI, Perplexity, Together, and ten more. Version control for the context tree is implemented using isomorphic-git, giving git semantics without requiring a native git binary. Real-time communication between the daemon and web clients uses Socket.IO. MCP integration uses the official @modelcontextprotocol/sdk at version 1.26.
Code Quality
The codebase demonstrates a mature approach to type safety and testability. All domain contracts are expressed through TypeScript interfaces (35+ interface files in core/interfaces/), keeping infrastructure implementations swappable via dependency injection without a DI container. Zod schemas co-located with implementations provide runtime validation at every external boundary. The test suite uses Mocha and Chai with Sinon for stubs, covering unit tests, integration scenarios, and learning tests — organized into separate subdirectories by level. Husky with lint-staged runs ESLint on every commit, and the CI-visible --forbid-only flag prevents accidentally committed .only tests. Inline comment density is high, with JSDoc on exported types and architectural decision notes embedded in module headers. Error handling is explicit and typed throughout, with custom error classes per domain (MemoryError, LlmError, etc.) carrying structured error codes.
What Makes It Unique ByteRover’s most distinctive technical choice is treating the agent’s accumulated project knowledge as a first-class versioned artifact with full git semantics — branch, commit, merge, push, pull — rather than a flat prompt file or opaque vector store. This means knowledge has history, can be reviewed before acceptance via an approve/reject workflow, can diverge on feature branches, and can be merged back. The swarm subsystem adds a second layer of novelty: a coordinator that fans queries out across multiple heterogeneous knowledge providers (ByteRover, external MCP servers, local stores) using Reciprocal Rank Fusion to merge results, enabling multi-source retrieval without hardcoding provider priority. The agentic map tool — which spawns parallel sub-agent sessions over JSONL datasets, each with full tool access — is a genuine parallel to MapReduce for LLM workloads and is not commonly found in comparable tools.
ByteRover CLI is released under the Elastic License 2.0 (ELv2). ELv2 is source-available but not open source in the OSI sense. You may use, copy, modify, and distribute the software for any internal purpose including commercial use — the key restriction is that you may not offer ByteRover CLI to third parties as a hosted or managed service. In practice this means running it inside your own infrastructure for your own team is fully permitted, but building a SaaS product that resells ByteRover as its core feature is not.
Self-hosting ByteRover requires Node.js 20 or later (or you can use the pre-bundled shell script installer for macOS and Linux that includes a Node runtime). The daemon runs as a persistent background process managing a pool of project agents; you are responsible for keeping it running, applying updates, and managing the storage directory where context trees and settings are persisted. Storage paths follow XDG conventions on Linux, ~/Library/Application Support/brv/ on macOS, and %LOCALAPPDATA%/brv/ on Windows. There is no official Docker image or Helm chart — the operational model is installing the CLI on developer machines or a team server, not container orchestration.
ByteRover Cloud is the managed alternative, adding team context sync, shared spaces, multi-machine access, usage analytics, built-in hosted LLM access, SOC 2 Type II certified infrastructure, and team management via a web app. Self-hosters give up these collaboration and compliance features. There is no documented self-hosted equivalent of the Cloud sync layer — the push/pull and version-control features require a ByteRover Cloud account as the remote, so fully air-gapped self-hosting means forgoing the sync and sharing functionality that makes cross-machine and cross-teammate knowledge sharing work.
AI Code Assistants · AI Development
Orchestrate an army of AI coding agents—Claude Code, Codex, Gemini CLI, and more—running simultaneously in isolated git worktrees from a single Electron desktop app.
AI Code Assistants · AI Development
The self-hosted developer control center for running AI coding agents — locally, in Docker, on VMs, or across cloud backends — with automation workflows for GitHub, Slack, and more.
Developer Tools · AI Development · AI Code Assistants
Open-source coding agent for VS Code, JetBrains, and CLI with support for 30+ LLM providers.