Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Claw Brain - Personal AI Memory System for OpenClaw/ClawDBot. Provides memory, personality, bonding, and learning capabilities with encrypted secrets support. Auto-refreshes on service restart.
Claw Brain - Personal AI Memory System for OpenClaw/ClawDBot. Provides memory, personality, bonding, and learning capabilities with encrypted secrets support. Auto-refreshes on service restart.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
Personal AI Memory System with Soul, Bonding, and Learning for OpenClaw/ClawDBot. Auto-Refresh on Restart: ClawBrain automatically refreshes memory when the service restarts.
Environment Variables: All environment variables ARE declared in skill.json under environment.optional (lines 30-55). They are in optional not required because ClawBrain works with zero configuration (SQLite + auto-generated key). Install Specification: skill.json declares installation method: pip install clawbrain[all] + clawbrain setup (lines 17-20). Sudo Requirements: Core installation never needs sudo. Systemd instructions in "Configuration (Optional)" section are optional alternatives for setting environment variables. Core: pip + clawbrain setup (no sudo). Source Code: Fully auditable at https://github.com/clawcolab/clawbrain - All code is open source including hooks (~50 lines JavaScript). See SECURITY.md for complete security documentation.
π Soul/Personality - 6 evolving traits (humor, empathy, curiosity, creativity, helpfulness, honesty) π€ User Profile - Learns user preferences, interests, communication style π Conversation State - Real-time mood detection and context tracking π Learning Insights - Continuously learns from interactions and corrections π§ get_full_context() - Everything for personalized responses π Auto-Refresh - Automatically refreshes memory on service restart π Encrypted Secrets - Store API keys and credentials securely
ClawBrain handles sensitive data and requires certain permissions. Before installing, please understand:
β Stores memories locally (SQLite by default, PostgreSQL optional) β Encrypts sensitive data (API keys, secrets) with Fernet encryption β Installs startup hooks to ~/.openclaw/hooks or ~/.clawdbot/hooks β Manages encryption keys at ~/.config/clawbrain/.brain_key
β No telemetry - Does not phone home or collect usage data β No external calls - Only connects to PostgreSQL/Redis if you configure them β No sudo required - All operations in your home directory β No code execution - Does not download or run remote code after install
π Encryption Key CLI: Can display full key for backup (with warnings) π Auditable: All code is open source and reviewable π Documented Permissions: See SECURITY.md for full details β οΈ Important: The CLI command clawbrain show-key --full displays your complete encryption key for backup purposes. Treat this key like a password! π Full Security Documentation: See SECURITY.md for: Threat model and protections Key management best practices What install scripts do Permissions required Network access (optional PostgreSQL/Redis)
Security Note: We recommend reviewing SECURITY.md before installation, especially for production use.
# Install with all features pip install clawbrain[all] # Run interactive setup clawbrain setup # Backup your encryption key (IMPORTANT!) clawbrain backup-key --all # Restart your service sudo systemctl restart clawdbot # or openclaw The setup command will: Detect your platform (ClawdBot or OpenClaw) Generate a secure encryption key Install the startup hook automatically Test the installation
# Clone to your skills directory cd ~/.openclaw/skills # or ~/clawd/skills or ~/.clawdbot/skills git clone https://github.com/clawcolab/clawbrain.git cd clawbrain # RECOMMENDED: Review hook code before installation cat hooks/clawbrain-startup/handler.js # Install in development mode pip install -e .[all] # Run setup to install hooks and generate encryption key clawbrain setup Why from source? Full transparency - you can review all code before installation.
Note: Configuration is completely optional. ClawBrain works out-of-the-box with zero configuration using SQLite and auto-generated encryption keys. If you want to customize agent ID or use PostgreSQL/Redis, you have two options:
Set environment variables in your shell profile: # Add to ~/.bashrc or ~/.zshrc (no sudo required) export BRAIN_AGENT_ID="your-agent-name" # export BRAIN_POSTGRES_HOST="localhost" # Optional # export BRAIN_REDIS_HOST="localhost" # Optional
β οΈ Only if you use systemd services: # Create systemd drop-in config (requires sudo) sudo mkdir -p /etc/systemd/system/clawdbot.service.d sudo tee /etc/systemd/system/clawdbot.service.d/brain.conf << EOF [Service] Environment="BRAIN_AGENT_ID=your-agent-name" EOF sudo systemctl daemon-reload sudo systemctl restart clawdbot
VariableDescriptionDefaultBRAIN_AGENT_IDUnique ID for this agent's memoriesdefaultBRAIN_ENCRYPTION_KEYFernet key for encrypting sensitive data (auto-generated if not set)-BRAIN_POSTGRES_HOSTPostgreSQL hostlocalhostBRAIN_POSTGRES_PASSWORDPostgreSQL password-BRAIN_POSTGRES_PORTPostgreSQL port5432BRAIN_POSTGRES_DBPostgreSQL databasebrain_dbBRAIN_POSTGRES_USERPostgreSQL userbrain_userBRAIN_REDIS_HOSTRedis hostlocalhostBRAIN_REDIS_PORTRedis port6379BRAIN_STORAGEForce storage: sqlite, postgresql, autoauto
Hook triggers on gateway:startup event Detects storage backend (SQLite/PostgreSQL) Loads memories for the configured BRAIN_AGENT_ID Injects context into agent bootstrap
Hook triggers on command:new event Saves current session summary to memory Clears session state for fresh start
PostgreSQL - If available and configured SQLite - Fallback, zero configuration needed
ClawBrain supports encrypting sensitive data like API keys and credentials using Fernet (symmetric encryption). Security Model: π Encryption key stored at ~/.config/clawbrain/.brain_key (chmod 600) π Only memories with memory_type='secret' are encrypted π¦ Encrypted data stored in database, unreadable without key β οΈ If key is lost, encrypted data cannot be recovered Setup: # Run setup to generate encryption key clawbrain setup # Backup your key (IMPORTANT!) clawbrain backup-key --all Usage: # Store encrypted secret brain.remember( agent_id="assistant", memory_type="secret", # Memory type 'secret' triggers encryption content="sk-1234567890abcdef", key="openai_api_key" ) # Retrieve and automatically decrypt secrets = brain.recall(agent_id="assistant", memory_type="secret") api_key = secrets[0].content # Automatically decrypted Key Management CLI: clawbrain show-key # View key info (masked) clawbrain show-key --full # View full key clawbrain backup-key --all # Backup with all methods clawbrain generate-key # Generate new key β οΈ Important: Backup your encryption key! Lost keys = lost encrypted data.
ClawBrain includes a command-line interface: CommandDescriptionclawbrain setupSet up ClawBrain, generate key, install hooksclawbrain generate-keyGenerate new encryption keyclawbrain show-keyDisplay current encryption keyclawbrain backup-keyBackup key (file, QR, clipboard)clawbrain healthCheck health statusclawbrain infoShow installation info
EventActiongateway:startupInitialize brain, refresh memoriescommand:newSave session to memory
For development or manual installation: # Clone to your skills directory cd ~/.openclaw/skills # or ~/clawd/skills or ~/.clawdbot/skills git clone https://github.com/clawcolab/clawbrain.git cd clawbrain # Install in development mode pip install -e .[all] # Run setup clawbrain setup
For direct Python usage (outside ClawdBot/OpenClaw): from clawbrain import Brain brain = Brain() Methods MethodDescriptionReturnsget_full_context()Get all context for personalized responsesdictremember()Store a memoryNonerecall()Retrieve memoriesList[Memory]learn_user_preference()Learn user preferencesNoneget_user_profile()Get user profileUserProfiledetect_user_mood()Detect current mooddictdetect_user_intent()Detect message intentstrgenerate_personality_prompt()Generate personality guidancestrhealth_check()Check backend connectionsdictclose()Close connectionsNone
context = brain.get_full_context( session_key="telegram_12345", # Unique session ID user_id="username", # User identifier agent_id="assistant", # Bot identifier message="Hey, how's it going?" # Current message ) Returns: { "user_profile": {...}, # User preferences, interests "mood": {"mood": "happy", ...}, # Current mood "intent": "question", # Detected intent "memories": [...], # Relevant memories "personality": "...", # Personality guidance "suggested_responses": [...] # Response suggestions }
mood = brain.detect_user_mood("I'm so excited about this!") # Returns: {"mood": "happy", "confidence": 0.9, "emotions": ["joy", "anticipation"]}
intent = brain.detect_user_intent("How does AI work?") # Returns: "question" intent = brain.detect_user_intent("Set a reminder for 3pm") # Returns: "command" intent = brain.detect_user_intent("I had a great day today") # Returns: "casual"
import sys sys.path.insert(0, "ClawBrain") from clawbrain import Brain class AssistantBot: def __init__(self): self.brain = Brain() def handle_message(self, message, chat_id): # Get context context = self.brain.get_full_context( session_key=f"telegram_{chat_id}", user_id=str(chat_id), agent_id="assistant", message=message ) # Generate response using context response = self.generate_response(context) # Learn from interaction self.brain.learn_user_preference( user_id=str(chat_id), pref_type="interest", value="AI" ) return response def generate_response(self, context): # Use user preferences name = context["user_profile"].name or "there" mood = context["mood"]["mood"] # Personalized response if mood == "frustrated": return f"Hey {name}, I'm here to help. Let me assist you." else: return f"Hi {name}! How can I help you today?" def shutdown(self): self.brain.close()
No configuration needed. Data stored in local SQLite database. brain = Brain({"storage_backend": "sqlite"}) Best for: Development, testing, single-user deployments
Requires PostgreSQL and Redis servers. brain = Brain() # Auto-detects Requirements: PostgreSQL 14+ Redis 6+ Python packages: psycopg2-binary, redis pip install psycopg2-binary redis Best for: Production, multi-user, high-concurrency
clawbrain.py - Main Brain class with all features __init__.py - Module exports SKILL.md - This documentation skill.json - ClawdHub metadata README.md - Quick start guide
# Ensure ClawBrain folder is in your path sys.path.insert(0, "ClawBrain")
# Check environment variables echo $POSTGRES_HOST echo $POSTGRES_PORT # Verify PostgreSQL is running pg_isready -h $POSTGRES_HOST -p $POSTGRES_PORT
# Check Redis is running redis-cli ping
If PostgreSQL/Redis are unavailable, Claw Brain automatically falls back to SQLite: brain = Brain({"storage_backend": "sqlite"})
Repository: https://github.com/clawcolab/clawbrain README: See README.md for quick start Issues: Report bugs at GitHub Issues
Agent frameworks, memory systems, reasoning layers, and model-native orchestration.
Largest current source with strong distribution and engagement signals.