Overview
brv swarm curate stores knowledge in external memory providers. ByteRover automatically selects the best writable provider based on content type, or you can target a specific provider directly.
brv swarm curate "Jane Smith is the CTO of TechCorp"
Output:
Stored to gbrain as concept/jane-smith-cto
If no external providers are available or writable, the command falls back to ByteRover’s context tree (brv curate).
Flags
| Flag | Short | Default | Description |
|---|
--provider | -p | auto | Target a specific provider (e.g., gbrain, local-markdown:notes) |
--format | — | text | Output format: text or json |
Automatic Provider Selection
When no --provider flag is given, the write router selects the best target based on the configured providers and their write capabilities:
| Provider | Writable | Typical Content |
|---|
| GBrain | Yes | Entities, concepts, general knowledge |
| Local Markdown | Yes (if read_only: false) | Notes, meeting logs, TODOs |
| Memory Wiki | Yes | Concepts, entities (OpenClaw wiki format) |
| ByteRover | Fallback | Falls back here if no external providers accept writes |
Obsidian and ByteRover context tree are read-only in swarm mode. ByteRover is used as a fallback only when no writable external providers are available.
Target a Specific Provider
Use --provider to bypass automatic selection:
# Store to a specific local markdown folder
brv swarm curate "meeting notes: decided on JWT" --provider local-markdown:notes
Output:
Stored to local-markdown:notes as note-1776052527043.md
# Store to GBrain explicitly
brv swarm curate "Architecture uses event sourcing" --provider gbrain
Output:
Stored to gbrain as concept/event-sourcing-architecture
# Store to Memory Wiki
brv swarm curate "# OAuth2 Flow\nThe app uses PKCE flow for mobile clients" --provider memory-wiki
JSON Output
brv swarm curate "Test content" --format json
{
"id": "note-1776052594462.md",
"provider": "local-markdown:project-docs",
"success": true,
"latencyMs": 1
}
Fallback Behavior
When the target provider fails or no writable providers are configured, swarm curate falls back to the ByteRover context tree:
No writable swarm providers available. Falling back to ByteRover context tree.
Stored via brv curate (fallback).
The fallback runs brv curate --detach --format json as a subprocess. The --detach flag ensures the curation runs asynchronously without blocking.
Swarm Curate vs Context Tree Curate
| brv swarm curate | brv curate |
|---|
| Target | External providers (GBrain, Local MD, Wiki) | ByteRover context tree |
| LLM | No LLM call | LLM-powered domain detection and organization |
| Output | Raw file/page creation | Intelligent hierarchical placement |
| Fallback | Falls back to brv curate | No fallback needed |
Use brv swarm curate to distribute knowledge across external providers. Use brv curate when you want ByteRover’s intelligent curation with domain detection, deduplication, and hierarchical organization.
Examples
Store a quick note:
brv swarm curate "Sprint 42 retro: need better error handling in auth flow"
Store with explicit provider:
brv swarm curate "# Database Migration Guide\nAlways use reversible migrations" -p gbrain
Store and verify with JSON:
brv swarm curate "API rate limit is 100 req/min" --format json