campfirein/byterover-cli
요약
ByteRover CLI(`brv`)는 AI 코딩 에이전트에게 구조화된 장기 메모리를 제공하여 프로젝트 지식을 컨텍스트 트리 형태로 관리하고 동기화할 수 있게 돕는 도구입니다. Git 방식의 버전 관리와 MCP 통합을 지원하며, 다양한 LLM 및 코딩 에이전트(Cursor, Claude Code 등)와 연동하여 코드베이스 이해도를 높입니다.
핵심 포인트
- 컨텍스트 트리를 통한 프로젝트 지식의 구조화 및 클라우드 동기화 지원
- Git 방식의 버전 관리(branch, commit, merge)를 통한 컨텍스트 관리
- Anthropic, OpenAI, DeepSeek 등 20개 이상의 LLM 및 22개 이상의 코딩 에이전트와 연동
- LoCoMo 및 LongMemEval-S 벤치마크를 통해 높은 장기 대화 메모리 성능 검증
- MCP(Model Context Protocol) 통합 및 웹 대시보드/TUI 인터페이스 제공
ByteRover CLI (brv)는 AI 코딩 에이전트(AI coding agents)에게 지속적이고 구조화된 메모리(memory)를 제공합니다. 개발자는 프로젝트 지식을 컨텍스트 트리(context tree)로 큐레이션하고, 이를 클라우드에 동기화하며, 다양한 도구 및 팀원들과 공유할 수 있습니다.
어떤 프로젝트 디렉토리에서든 brv를 실행하면 사용자가 선택한 LLM(Large Language Model) 기반의 대화형 REPL(Read-Eval-Print Loop)을 시작할 수 있습니다. 에이전트는 에이전틱 맵(agentic map)을 통해 코드베이스를 이해하며, 파일을 읽고 쓸 수 있고, 코드를 실행하며, 향후 세션을 위해 지식을 저장할 수 있습니다.
📄 전체 기술적 세부 사항은 논문(paper)을 읽어보세요.
또는 여기에서 직접 호스팅 가능한 논문의 PDF 버전을 다운로드하세요.
주요 기능:
- 🌐 컨텍스트 큐레이션 및 질의를 위한 웹 대시보드 (
brv webui) - 🖥️ REPL 인터페이스를 갖춘 대화형 TUI (React/Ink)
- 🧠 컨텍스트 트리(context tree) 및 지식 저장소 관리
- 🔀 컨텍스트 트리를 위한 Git 방식의 버전 관리 (branch, commit, merge, push/pull)
- 🤖 20개의 LLM 제공업체 (Anthropic, OpenAI, Google, Groq, Mistral, xAI, DeepSeek 등)
- 🛠️ 24개의 내장 에이전트 도구 (코드 실행, 파일 작업, 지식 검색, 메모리 관리)
- 🔄 push/pull을 통한 클라우드 동기화
- 👀 큐레이션 작업을 위한 리뷰 워크플로우 (대기 중인 변경 사항 승인/거부)
- 🔌 MCP (Model Context Protocol) 통합
- 📦 기술 및 번들을 위한 허브(Hub) 및 커넥터(connectors) 생태계
- 🤝 22개 이상의 AI 코딩 에이전트와 연동 (Cursor, Claude Code, Windsurf, Cline 등)
- 🏢 엔터프라이즈 프록시(Enterprise proxy) 지원
모든 벤치마크는 별도의 연구용 프로토타입이 아닌, 이 저장소에 있는 프로덕션용 byterover-cli 코드베이스를 사용하여 실행되었습니다.
우리는 두 가지 장기 대화 메모리(long-term conversational memory) 벤치마크를 통해 평가를 진행했습니다:
LoCoMo - 단일 홉(single-hop), 멀티 홉(multi-hop), 시간적(temporal) 및 오픈 도메인 검색을 테스트하는 초장기 대화 (~20K 토큰, 35개 세션).
LongMemEval-S - 지식 업데이트, 시간적 추론 및 멀티 세션 합성(multi-session synthesis)을 포함한 6가지 메모리 능력을 테스트하는 대규모 벤치마크 (23,867개 문서, 질문당 약 48개 세션).
LoCoMo - 전체 정확도 96.1% (1,982개 질문, 272개 문서).
LongMemEval-S - 전체 정확도 92.8% (500개 질문, 23,867개 문서).
모든 지표는 LLM-as-Judge 정확도(%)입니다. 자세한 내용은 논문 또는 자체 호스팅된 PDF를 참조하십시오.
Node.js가 필요하지 않습니다 - 모든 것이 번들로 제공됩니다.
curl -fsSL https://byterover.dev/install.sh | sh
지원 플랫폼: macOS ARM64, macOS x64 (Intel), Linux x64, Linux ARM64.
Node.js >= 20 버전이 필요합니다.
npm install -g byterover-cli
brv --version
cd your/project
brv
REPL은 첫 실행 시 자동으로 구성되므로 별도의 설정이 필요하지 않습니다. /를 입력하여 사용 가능한 모든 명령어를 확인할 수 있습니다:
/curate "Auth uses JWT with 24h expiry" @src/middleware/auth.ts
/query How is authentication implemented?
ByteRover Cloud는 팀이 프로젝트와 기기 전반에 걸쳐 컨텍스트 지식 (context knowledge)을 동기화, 공유 및 관리할 수 있도록 지원하는 호스팅 플랫폼입니다. 기본적으로 모든 기능은 로컬에서 작동하며, Cloud는 워크플로우를 변경하지 않고도 협업 기능과 지속성 (persistence)을 추가해 줍니다.
대시보드에서 로그인하거나, API 키를 사용하여 brv login을 실행하십시오.
- 🔄 팀 컨텍스트 동기화 (Team context sync) — 팀원 간에 공유 지식을 푸시(push)하고 풀(pull)합니다.
- 📂 공유 공간 (Shared spaces) — 여러 프로젝트와 팀에 걸쳐 컨텍스트를 구성합니다.
- 💻 멀티 머신 액세스 (Multi-machine access) — 클라우드 백업을 통해 여러 기기 간에 컨텍스트 트리 (context tree)를 동기화합니다.
- 💻 멀티 머신 액세스 (Multi-machine access) — 여러 기기 간에 컨텍스트 트리를 동기화합니다.
- 🧠 내장형 호스팅 LLM (Built-in hosted LLM) — 제한된 무료 사용량으로 즉시 시작할 수 있습니다.
- 👥 팀 관리 (Team management) — 웹 앱을 통해 멤버, 공간 및 권한을 관리합니다.
- 📊 사용량 분석 (Usage analytics) — 시트 할당 및 월간 크레딧 소비량을 추적합니다.
- 🔒 SOC 2 Type II 인증 인프라 및 개인정보 보호 모드 제공
대부분의 사용자는 brv webui만 필요합니다. 아래 명령어들은 고급 사용자 및 자동화를 위한 것입니다. 전체 최신 참조를 확인하려면 brv --help를 실행하십시오.
brv # 대화형 REPL 시작
brv webui # ByteRover 대시보드 열기 (기본 UI)
brv status # 프로젝트 및 데몬 (daemon) 상태 표시
...
brv push # 레거시(Legacy) — 컨텍스트를 클라우드로 마이그레이션하거나 스냅샷 생성
brv pull # 레거시(Legacy) — 클라우드 스냅샷에서 컨텍스트 복구
앞으로는 버전 관리 기능이 포함된 동기화를 위해 brv vc push / brv vc pull을 사용하십시오.
brv vc init # 컨텍스트 트리(context tree)를 위한 버전 관리(version control) 초기화
brv vc status # 버전 관리 상태 표시
brv vc add # 다음 커밋(commit)을 위해 파일 스테이징(stage)
...
brv providers list # 사용 가능한 LLM 제공자(provider) 목록 표시
brv providers connect # LLM 제공자에 연결
brv providers switch # 활성 제공자 전환
...
brv hub list # 사용 가능한 허브(hub) 패키지 목록 표시
brv hub install # 허브 패키지 설치
brv hub registry add # 커스텀 레지스트리(registry) 추가
...
brv space list # 사용 중단됨(Deprecated) — 웹 대시보드(web dashboard)를 사용하십시오
brv space switch # 사용 중단됨(Deprecated) — brv vc clone을 사용하십시오
brv는 대부분의 사용자에게 적합한 운영 기본값(operational defaults)을 포함하여 제공됩니다. brv settings 명령 그룹을 통해 이러한 값들을 검사하고 재정의(override)할 수 있습니다.
brv settings # 현재 값과 기본값을 포함한 모든 설정 목록 표시
brv settings list # `brv settings`의 별칭(alias)
brv settings get <key> # 특정 키(key)에 대한 현재 값과 기본값 표시
...
사용 가능한 키(Key):
| 키 (Key) | 기본값 (Default) | 제어 항목 |
|---|---|---|
agentPool.maxSize | 10 | 최대 동시 활성 프로젝트 수 (프로젝트당 하나의 에이전트 프로세스) |
agentPool.maxConcurrentTasksPerProject | 5 | 단일 프로젝트 내의 병렬 brv curate / brv query 작업 수 |
llm.iterationBudgetMs | 600000 | 하나의 작업에 대한 에이전틱 루프(agentic loop)의 실제 소요 시간 예산 (밀리초 단위) |
llm.requestTimeoutMs | 120000 | 하나의 직접적인 LLM HTTP 요청에 대한 실제 소요 시간 예산 (밀리초 단위) |
taskHistory.maxEntries | 1000 | 프로젝트당 brv query-log view가 유지하는 작업 기록 수 |
느린 로컬 LLM(CPU 기반 Ollama, 무거운 양자화(quantization), 콜드 모델 로드(cold model load))에서 단일 brv curate 또는 brv query가 정상적인 작업임에도 불구하고 기본 10분 제한에 정기적으로 도달한다면 llm.iterationBudgetMs를 높이십시오. 클라우드 제공자(cloud provider)를 사용할 때, 멈춘 작업이 전체 예산 시간을 다 채울 때까지 기다리는 대신 더 빠르게 오류로 나타나기를 원한다면 이 값을 낮추십시오. 제한(cap)은 요청(request)당이 아니라 작업(task)당 적용됩니다.
llm.requestTimeoutMs
LLM에 대한 하나의 HTTP 요청(HTTP request)에 경계를 설정합니다. Ollama 또는 LM Studio 연결이 중단되면 이 경계에서 중단되며, 재시도 계층(retry layer)은 전체 반복 예산(iteration budget)을 낭비하는 대신 이를 일시적인 오류(transient error)로 처리합니다. 이 설정은 llm.requestTimeoutMs <= llm.iterationBudgetMs를 만족해야 합니다.
데몬(daemon)은 이 규칙을 위반하는 쓰기 작업을 거부하며, 파일이 시작 시점에 규칙을 위반할 경우 두 키(key) 모두에 대해 기본값(defaults)으로 되돌아갑니다. 권장 프리셋(presets)은 다음과 같습니다:
| 프로필 (Profile) | llm.requestTimeoutMs | llm.iterationBudgetMs |
|---|---|---|
| Cloud | 120000 (2분) | 600000 (10분) |
| Local LLM, 빠른 GPU | 300000 (5분) | 1200000 (20분) |
| Local LLM, CPU / 무거운 양자화 (heavy quantization) | 900000 (15분) | 3600000 (60분) |
설정은 brv 하위의 settings.json에 유지됩니다.
글로벌 데이터 디렉토리(global data directory):
- Linux:
$XDG_DATA_HOME/brv/settings.json(기본값은~/.local/share/brv/settings.json입니다) - macOS:
~/Library/Application Support/brv/settings.json - Windows:
%LOCALAPPDATA%/brv/settings.json
디렉토리를 재정의하려면 BRV_DATA_DIR 환경 변수(environment variable)를 설정하십시오.
변경 사항은 brv restart 후에 적용됩니다. 데몬은 시작 시 파일에 한 번 읽으며 실행 중에는 파일 변경을 관찰하지 않습니다. 이를 통해 실행 중인 모든 에이전트(agent)가 데몬의 수명 동안 동일한 구성(configuration)을 유지하도록 합니다.
세션 예시:
$ brv settings list
KEY CURRENT DEFAULT RESTART?
agentPool.maxSize 10 10 yes
...
모든 명령은 스크립팅을 위해 --format json을 지원합니다. 유효성 검사 오류(알 수 없는 키, 범위를 벗어난 값)는 코드 1과 함께 해당 키의 이름을 명시하는 메시지를 출력하며 종료됩니다.
brv mcp # MCP 서버 시작
brv login # ByteRover 인증
brv logout # 연결 해제 및 자격 증명 삭제
...
전체 명령 참조를 보려면 brv --help를 실행하십시오.
ByteRover CLI는 20개의 LLM 제공업체(providers)를 즉시 지원합니다. 대시보드에서 제공업체를 연결 및 전환하거나, brv providers connect / brv providers switch를 사용하십시오.
| 제공업체 (Provider) | 설명 |
|---|---|
| Anthropic | Claude 모델 |
| ... |
Worktree link — 부모 프로젝트를 가리키는 하위 디렉터리 포인터 (brv worktree)
Source — 다른 프로젝트의 지식에 대한 읽기 전용 참조 (brv source)
Origin — 인덱싱된 검색 결과가 어디에서 왔는지 (local 대 shared)
ByteRover는 중첩된 .brv/를 생성하지 않고도 연결된 하위 디렉터리에서 실행될 수 있습니다.
projectRoot: .brv/config.json을 소유한 디렉터리
worktreeRoot: 연결된 워크트리 (worktree) 디렉터리, 또는 연결되지 않았을 경우의 projectRoot
clientCwd: brv를 실행한 셸의 현재 작업 디렉터리 (cwd)
연결된 워크트리에서 brv query 또는 brv curate를 실행하면, 암시적 기본값으로 worktreeRoot를 사용하므로 clientCwd가 패키지 내부로 더 깊게 이동하더라도 범위 (scope)가 안정적으로 유지됩니다. brv curate -f ./src/auth.ts와 같이 직접 전달하는 명시적 상대 경로는 일반적인 셸 동작과 일치하도록 여전히 clientCwd를 기준으로 해석됩니다.
프로젝트 루트에서 brv worktree add를 사용하여 하위 디렉터리(또는 형제 디렉터리)를 워크트리로 등록하십시오. 이는 대상 디렉터리에 부모 프로젝트로 리다이렉트하는 .brv 포인터 파일을 생성하며, 이는 git worktree에서 사용하는 것과 동일한 패턴입니다. 등록을 해제하려면 brv worktree remove를 사용하고, 목록을 확인하려면 brv worktree list를 사용하십시오. 여기서 다른 프로젝트의 지식을 검색하려면 brv source add <path>를 사용하십시오 (brv source list / brv source remove를 사용하여 확인하거나 분리할 수 있습니다).
설정, 통합 및 고급 사용법에 대한 전체 가이드는 docs.byterover.dev를 방문하십시오.
| 주제 | 설명 |
|---|---|
| 시작하기 (Getting Started) | 설치, 첫 실행 및 기본 사용법 |
| ... |
기여를 환영합니다! 개발 설정, 코딩 표준 및 PR 워크플로우에 대해서는 기여 가이드 (Contributing Guide)를 참조하십시오.
ByteRover CLI는 ByteRover 팀에 의해 구축 및 유지 관리됩니다.
- Discord에 참여하여 프로젝트를 공유하거나, 질문을 하거나, 인사를 나누세요
- GitHub에서 이슈 (issue)를 보고하세요
- ByteRover CLI가 마음에 드신다면 GitHub에서 스타 (star)를 눌러주세요 — 큰 도움이 됩니다!
- X에서 @kevinnguyendn을 팔로우하세요
Elastic License 2.0. 전체 약관은 LICENSE를 참조하십시오.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기