campfirein/byterover-cli/skill
- community
Checking that the SKILL.md file is still in the repository.
You MUST use this skill for: (1) 'Show me how ByteRover works', 'walk me through ByteRover', tour, intro, walkthrough, or onboarding requests — runs a guided 90-second introduction; (2) gathering contexts before any work; (3) saving knowledge after any change. ByteRover stores and retrieves project patterns, decisions, and architectural rules in `.brv/context-tree`. Iron Law: query before thinking, curate after implementing.
Install
npx vskill@latest install campfirein/byterover-cli/skillSKILL.md
ByteRover Knowledge Management
Use the brv CLI to manage your project's long-term memory. Knowledge is stored in .brv/context-tree/ as human-readable Markdown.
Install: npm install -g byterover-cli. No authentication needed. No LLM provider needed. brv query, brv search, brv read, brv curate, and brv vc (local version control) all run locally. Your own LLM drives any synthesis or HTML authoring step. Login is only required for remote sync (brv vc push / brv vc pull).
First-Turn Routing
Check this before anything else on every user turn.
If the user message reads as a request for an introduction, tour, or overview of ByteRover — for example:
- "Show me how ByteRover works" (canonical phrase from the install docs)
- "Walk me through ByteRover" / "Give me a ByteRover tour"
- "How does ByteRover work?"
- "Intro me to ByteRover" / "Show me ByteRover"
- Any semantic equivalent ("can you walk me through this", "explain ByteRover to me", etc.)
→ Stop reading this file. Open `onboarding.md` and follow it. Do NOT run brv query, brv search, or brv curate before the tour — the tour itself runs those commands as part of the demonstration.
For every other request, continue below to the Iron Law.
The Iron Law
brv query first — retrieve relevant context from the context tree before forming an answer or starting a change. brv curate after — save new patterns, decisions, or learned facts before claiming done. Violating the letter of the rule is violating the spirit of the rule. No exceptions without your human partner's permission.
Curate Dispatch — Read This Before Calling brv curate
brv curate is a multi-step session (kickoff → author → continuation → validate, ~10-60s per topic) that BLOCKS the user's conversation when run inline. Your default for any substantive curate is to dispatch it to the saved `brv-curate` sub-agent — the operational protocol (HTML contract, session state machine, envelope path, --response-file form, path-exists merging, retry cap, return shape) lives in the saved agent's definition, so your dispatch ONLY hands over the facts.
Claude Code — tool-call dispatch:
Codex — conversational dispatch (Codex has no subagent_type tool param; it spawns named agents on explicit instruction):
Spawn thebrv-curateagent with the following 1-5 facts. Return the aggregate{ completed, pending_review, failed, file_paths }.1.<summary>— Body:<context>2.<summary>— Body:<context>...
Decision in one line:
| Situation | Dispatch shape | |
|---|---|---|
| 1 substantive curate | One dispatch carrying that one fact. | |
| 2-5 substantive curates this turn | One dispatch carrying all of them — the worker handles them sequentially. | |
| 6+ substantive curates (bootstrap / repo scan) | Multiple dispatches, each carrying a 2-5-fact chunk, fired sequentially (wait for chunk N's completion before firing chunk N+1). | |
| Trivial / one-fact / user said "wait" / turn-dependent on the result | Run inline. |
Do NOT run a substantive curate inline. Do NOT fan out N parallel sub-agents on the same project — the daemon's overlap lock will reject every sub-agent after the first. Do NOT inline the curate protocol into the dispatch prompt — the saved agent definition has it.
The saved agent definition MUST be deployed at the right path for each surface:
| Surface | Deployed path | Falls back if missing | |
|---|---|---|---|
| Claude Code | .claude/agents/brv-curate.md (project) or ~/.claude/agents/brv-curate.md (user) | subagent_type resolves to the default general-purpose agent — which lacks permissionMode: bypassPermissions and hits the auto-deny problem. | |
| Codex | .codex/agents/brv-curate.toml (project) or ~/.codex/agents/brv-curate.toml (user) | Named-agent dispatch fails — Codex runs the curate in the main thread instead of a worker. |
Full dispatch shape, permission pre-authorization, the chunked-orchestrator pattern, and both saved-agent definitions all live in curate.md. Open it before your first curate dispatch in any session.
When To Use This Skill
Invoke brv when:
- The user wants you to recall something from this project
- Your context does not contain information you need
- Before performing any action, to check for relevant rules, criteria, or preferences
- You need to recall your capabilities or prior actions
- The user wants you to remember something
- The user intentionally curates memory or knowledge
- There are meaningful memories from user interactions worth persisting
- There are important facts about what was done, what is known, or what decisions and actions have been taken
When NOT To Use This Skill
Do NOT invoke brv when:
- The information is already present in your current context
- The query is about general knowledge, not stored memory
- The information is already stored unchanged
- The information is transient (only relevant to the current task) or general knowledge
Decision Flowchart
Detailed Guides
onboarding.md- 90-second introduction tour; follow when the user asks for an overview, intro, or tour of ByteRover (canonical phrase: "Show me how ByteRover works")query.md- retrieval protocol forbrv query,brv swarm query,brv search, andbrv readcurate.md- saving durable project knowledge, including the HTML<bv-topic>contractreview.md- handling pending human review after curateswarm.md- swarm query and external-provider storagevc.md- local context-tree version controldream.md- context-tree cleanup via brv dream's three-phase scan / curate / finalize workflowhistory.md- query and curate history inspectiontroubleshooting.md- brv error handling, data-handling, and file-input limits
Quick Reference
| Need | Command | Detail file | |
|---|---|---|---|
| Ranked topics WITH rendered content for synthesis | brv query | query.md | |
| Ranked paths / excerpts (no rendered content) | brv search | query.md | |
| Read ONE topic by its known path | brv read <path> | query.md | |
| Save knowledge to the local context tree | brv curate | curate.md | |
| Approve/reject pending curate operations | brv review | review.md | |
| Cross-source recall (Obsidian, GBrain, …) | brv swarm query | swarm.md | |
| Save to an external memory provider | brv swarm curate | swarm.md | |
| Inspect past curates/queries | brv curate view / brv query-log view | history.md | |
| Track context-tree changes (git-style) | brv vc | vc.md | |
| Consolidate / dedupe / prune the context tree | brv dream | dream.md | |
| Visually browse / view curated knowledge in a browser | brv webui | curate.md | |
| Find project paths | brv locations | brv locations --help | |
Diagnose a brv error | brv status | brv status --help |
Common Rationalizations
These are excuses agents reach for. Each one is wrong. If you catch yourself thinking the left column, the right column is reality:
| Excuse | Reality | |
|---|---|---|
| "The information is probably in my context already" | Your context is a snapshot. The context tree may have superseded it. If you're unsure, query. | |
| "It's general knowledge, not stored memory" | Correct for brv query. But if you applied that general knowledge to this project, the application is project-specific — curate it. | |
"I'll use brv search instead, it returns paths faster" | Search returns excerpts only. If you need rendered topic content for synthesis, use brv query. Don't downgrade to dodge the wrong cost. | |
"I'll use brv query even though I know the path" | If you know the path, use brv read — no ranking overhead. | |
"brv query returned no matches, nothing to do" | no-matches is a signal to curate, not a dead end. If you produced an answer worth keeping, save it. | |
| "Curate must be slow because it uses an LLM" | It doesn't. ByteRover validates HTML you author; the session is short — kickoff, write, continue. No provider needed. | |
| "I'll claim 'done' after submitting the response" | Not until data.status: "done". If you got needs-llm-step you owe another --session turn with --response or --response-file. | |
"path-exists is blocking me — let me kick off fresh" | The guard doesn't clear by re-kickoff. Handle it in this session: merge + --overwrite, different path, or replace. | |
"I'll pass --overwrite to clear path-exists quickly" | Not without reading existingContent first and surfacing the diff to the user. Overwrite is data-destructive. | |
| "ByteRover only matters for code work" | No. Curate covers decisions, design notes, conventions, organizational facts — anything worth recalling. |
Red Flags — STOP and Restart
If you catch yourself in any of these states, STOP and reset:
This is the start of the file. Read the full SKILL.md on GitHub.
Security
- Security scanPassed, 95 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingsrc/server/templates/skill/SKILL.md
Popularity
- Repository stars
- 4,898
- Repository forks
- 452
- 7-day trend score
- 42
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/campfirein/byterover-cli/skill)