Install
openclaw skills install cheese-brainDuckDB-powered knowledge management system for fast retrieval across 22+ entity types (projects, contacts, tools, workflows, decisions, etc.). Use when you need to recall context about past projects, look up configuration details, find tool documentation, retrieve contact information, search workflows/procedures, or query any tracked knowledge. Supports sub-millisecond keyword search and BM25 full-text search with relevance ranking.
openclaw skills install cheese-brainFast, persistent knowledge base for AI agents and humans. Store and retrieve entities (projects, contacts, tools, workflows, decisions) with sub-millisecond search.
Cheese Brain is a Python package that requires installation before use:
# Clone the repository
git clone https://github.com/mhugo22/cheese-brain.git
cd cheese-brain
# Create virtual environment and install
python3 -m venv venv
source venv/bin/activate # or venv\Scripts\activate on Windows
pip install -e .
Verify installation:
cheese-brain stats
If this shows statistics (entity counts, database size), the installation is successful.
Use Cheese Brain when you need to:
Key advantage: Persistent memory across sessions. You don't "remember" things — you query Cheese Brain and get instant context.
# Keyword search (fast, loose matching)
cheese-brain search "email monitor"
cheese-brain search "backup config"
cheese-brain search "calendar feed"
# Full-text search (BM25 relevance ranking)
cheese-brain fts "email monitoring"
cheese-brain fts "backup config" --category tool
Output: Table with title, category, tags + full entity details for matches.
When search returns multiple results, get the exact one by ID:
cheese-brain get <entity-id>
Output: Full entity details including JSON data field (paths, URLs, schedules, etc.).
When you learn something new worth persisting:
cheese-brain add \
--title "New Project Name" \
--category project \
--tags "tag1,tag2,tag3" \
--data '{"repo": "https://github.com/...", "status": "active"}'
Categories: project, tool, workflow, contact, decision, bookmark, infrastructure, habit, idea, etc.
Data field: Freeform JSON for entity-specific details (paths, URLs, schedules, credentials, etc.).
cheese-brain update <entity-id> --title "New Title" --tags "new,tags"
cheese-brain update <entity-id> --data '{"status": "shipped", "deployed": "2026-02-17"}'
cheese-brain list # All entities (most recent first)
cheese-brain list --category project # Filter by category
cheese-brain list --tag shipped # Filter by tag
cheese-brain list --limit 10 # Limit results
cheese-brain stats # Database statistics
cheese-brain tags # Tag usage analysis
cheese-brain search "email monitor"
# Returns: Email Monitor project with repo, path, cron schedule, run command
cheese-brain search "backup config"
# Returns: 5 entities (backup script, restore script, workflow, recovery guide, gateway)
cheese-brain search "calendar feed"
# Returns: Contact entity with ICS feed URL + location details
cheese-brain list --category project --tag shipped
# Returns: SketchySkills, Gabby Gmail, Cheese Brain, etc.
cheese-brain fts "monitoring"
# Returns: BM25-ranked results (Gabby Gmail, news monitor, cost monitor, etc.)
For relevance-ranked results when you have many entities:
# First-time setup (one-time only)
cheese-brain create-fts-index
# Search with relevance ranking
cheese-brain fts "backup automation"
cheese-brain fts "email calendar" --category tool
cheese-brain fts "security logging" --limit 10
When to use FTS vs keyword search:
# JSON export (human-readable)
cheese-brain export backup.json
# Parquet export (2-9x smaller, columnar format)
cheese-brain export backup.parquet --format parquet
# Restore from backup
cheese-brain restore-backup backup.json # Auto-detects format
Note: Automated daily backups may already be configured via OpenClaw cron (check ~/.cheese-brain/backups/).
Each entity has:
Example entity:
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"title": "Email Monitor Project",
"category": "project",
"tags": ["automation", "nodejs", "gmail", "calendar", "telegram", "shipped"],
"data": {
"repo": "https://github.com/username/email-monitor",
"path": "/path/to/workspace/email-monitor/",
"schedule": "7am, 1pm, 5pm, 9pm CST",
"run_command": "node process.js",
"telegram_channel": "-100XXXXXXXXXX"
},
"created_at": "2026-02-17T06:55:00Z",
"updated_at": "2026-02-17T08:30:00Z"
}
Command not found:
source /path/to/cheese-brain/venv/bin/activate/path/to/cheese-brain/venv/bin/cheese-brainDatabase locked:
~/.cheese-brain/ for stale lock filesSlow queries:
cheese-brain create-fts-indexcheese-brain stats--deleted flag)BACKUP_RECOVERY.md in repoFTS.md in repoPERFORMANCE_ANALYSIS.md in repoSECURITY.md in repo0600 owner-only)api_key, token, password auto-hidden (use --reveal to show)cheese-brain export --encrypt for password-protected backupsBest practice: Don't store secrets in plain text. Use password managers (1Password, Bitwarden) and reference them:
{"api_key_location": "1Password: OpenAI API", "notes": "Retrieve from vault"}
email-monitoring, not Email Monitoring)get <id> for full details--deleted flag to mark inactive (recoverable)