Memories
A memory is a single piece of knowledge stored in TribalMind. When you run tribal remember, your input is parsed by an LLM into a structured entry and stored in a vector database for semantic retrieval.
Structure
Section titled “Structure”Each memory has three fields:
| Field | Description | Example |
|---|---|---|
| Category | The type of knowledge | fix, convention, architecture, context, decision, tip, workflow |
| Subject | What it’s about | redis, numpy, staging database |
| Content | The actual knowledge | redis gives ECONNREFUSED on macOS after sleep — restart the container |
You don’t need to specify these fields manually — the LLM extracts them from your natural language input.
How storage works
Section titled “How storage works”TribalMind supports pluggable memory providers. The default is Backboard, but you can also use Mem0 (or add custom providers).
Backboard (default)
Section titled “Backboard (default)”- You write knowledge in plain English:
tribal remember "staging DB is on port 5433, not 5432" - The configured LLM (Anthropic, OpenAI, or Google) parses it into structured fields
- The structured entry is sent to Backboard, which stores it as a vector embedding
- When you
tribal recall, Backboard performs semantic similarity search across all stored vectors
When using Mem0 as your provider, the flow is simpler — Mem0 handles its own LLM parsing and categorization, so TribalMind passes your raw text directly to the Mem0 API. No separate LLM provider configuration is needed.
Choose your provider during tribal init, or set provider: mem0 in your config file.
Semantic search
Section titled “Semantic search”Unlike keyword search, semantic search understands meaning. For example:
tribal remember "numpy 1.26 breaks on Python 3.13 — pin to <1.26"
# All of these will find the above memory:tribal recall "numpy compatibility"tribal recall "Python 3.13 package issues"tribal recall "version pinning for scientific libraries"Memory scope
Section titled “Memory scope”Memories are scoped to an assistant — a Backboard entity that acts as a namespace. Typically, each project/repo gets its own assistant (created during tribal init).
- Per-project memories: scoped to one repo’s assistant
- Cross-repo search: use
tribal recall --allto search across every assistant in your Backboard account - Global assistant:
tribal init --globalcreates a shared assistant that all repos without their own config will use
See Assistants for more on how scoping works.
Lifecycle
Section titled “Lifecycle”| Action | Command | Description |
|---|---|---|
| Create | tribal remember "..." | Store new knowledge |
| Search | tribal recall "..." | Find by semantic similarity |
| Browse | tribal recall --list | List all memories (no search cost) |
| Delete | tribal forget "..." | Find and remove memories |
| Delete by ID | tribal forget --id mem-xxx --yes | Remove a specific memory |
| Clear all | tribal forget --all --yes | Wipe all memories for the assistant |
Best practices
Section titled “Best practices”Do remember:
- Non-obvious fixes and workarounds
- Config values and why they’re set that way
- Environment quirks and setup gotchas
- How modules connect or why things are built a certain way
- Reasoning behind architectural decisions
Don’t remember:
- Trivial changes or obvious fixes
- Information already clear from the code itself
- Temporary debugging state
- Duplicate knowledge (search first with
tribal recall)