Common issues, fixes, and answers. Check here before filing an issue.
ChromaDB requires C++ build tools for its native extensions. On most systems, the error looks like Failed building wheel for chroma-hnswlib.
Fix: Install the build dependencies for your OS, then retry with no cache:
# Ubuntu/Debian
sudo apt install build-essential
# macOS
xcode-select --install
# Then install with no cache
pip install chromadb --no-cache-dir
which python to confirm.
Elara Core requires Python 3.10 or higher. Older versions will fail during install or at runtime with syntax errors.
# Check your version
python --version
# If it shows 3.9 or lower, upgrade:
sudo apt install python3.10 python3.10-venv
# Or use pyenv:
pyenv install 3.10
pyenv global 3.10
python3 points to 3.10+ while python points to 2.x or 3.8. Try python3 --version first.
By default, Elara stores data in ~/.elara/. If you see permission errors, the directory may have been created by a different user or with restricted permissions.
# Fix permissions on the default directory
chmod -R u+rw ~/.elara/
# Or use a custom location instead
export ELARA_DATA_DIR="/path/to/your/data"
elara init
To make the custom path permanent, add the export line to your ~/.bashrc or ~/.zshrc.
This usually means the elara command isn't in your shell's PATH, or the config file points to the wrong location.
# Verify elara is installed and findable
which elara
# If nothing shows, find where pip installed it
pip show elara-core | grep Location
# Test the server directly
elara serve
If which elara returns nothing, the install directory isn't in PATH. Common fix:
# Add pip's bin directory to PATH
export PATH="$HOME/.local/bin:$PATH"
elara in your MCP config if the short name doesn't work.
If the server starts but your MCP client shows zero tools, try these steps in order:
1. Restart your MCP client completely (not just reload).
2. Check server logs for errors:
# Run the server manually and watch output
elara serve 2>&1 | head -50
3. Verify the config file path matches where Elara is actually installed.
4. Some clients cache tool lists. Delete the MCP cache and restart.
claude mcp list to verify the server is registered. If it shows "elara" but no tools, the server is crashing on startup — check the logs.
Semantic search relies on ChromaDB vector indexes. If they're empty or corrupted, searches return no results.
# Rebuild all indexes from source data
elara_rebuild_indexes()
# Or rebuild a specific collection
elara_rebuild_indexes(collection="memories")
You can also check index health by calling elara_status() — it reports memory counts per collection. If counts are zero but you know you've saved memories, a rebuild will fix it.
If elara_mood() always returns the same baseline values, check two things:
1. Verify the persona file exists in your data directory:
ls ~/.elara/persona*
# If missing, reinitialize
elara init
2. Confirm the mood module loaded. Call elara_status() and look for "mood" in the output. If it's missing, the module failed to import — check server logs for errors.
Mood adjusts via elara_mood_adjust(). If you've never called it or set a mode, values will remain at defaults. Try elara_mode(mode="dev") to set a preset.
Gmail integration requires OAuth2 authentication. If you see "credentials not found" or "token expired" errors:
# Run the OAuth flow (opens browser)
elara_gmail(action="auth")
# After auth, test with:
elara_gmail(action="inbox", n=3)
You need a Google Cloud project with the Gmail API enabled and OAuth credentials configured. The token is stored in your Elara data directory and refreshes automatically — but if it expires after 7 days (test mode), re-run the auth flow.
Dreams (weekly/monthly pattern analysis) don't run on a timer by default. They need to be triggered.
Option 1: Manual trigger
# Run weekly dream analysis
elara_dream(dream_type="weekly")
# Check if any dreams are overdue
elara_dream_info(action="status")
Option 2: Cron job (for automatic scheduling)
# Run weekly dreams every Sunday at 3 AM
0 3 * * 0 elara dream --type weekly
# Run monthly dreams on the 1st at 4 AM
0 4 1 * * elara dream --type monthly
Use elara_dream_info(action="read", dream_type="weekly") to read the latest report.
By default, everything lives in ~/.elara/. This includes:
~/.elara/
├― memories.jsonl # semantic memories
├― corrections.json # learned corrections
├― episodes/ # episodic session data
├― reasoning/ # reasoning trails
├― chroma/ # vector index database
├― dreams/ # dream reports
├― handoff.json # session continuity
└― persona.json # mood & temperament
Override the location by setting ELARA_DATA_DIR:
export ELARA_DATA_DIR="/custom/path"
Copy the entire data directory. ChromaDB stores everything as local files, so a simple copy works.
# Full backup
cp -r ~/.elara/ ~/.elara-backup-$(date +%Y%m%d)
# Or tar it up
tar czf elara-backup-$(date +%Y%m%d).tar.gz ~/.elara/
elara_rebuild_indexes(). If space is tight, you can skip backing up the chroma/ directory.
Delete the data directory and reinitialize. This is a clean slate — all memories, episodes, corrections, and mood history will be gone.
# Nuclear option — back up first if unsure
rm -rf ~/.elara/
elara init
Yes. Point different sessions at different persona files using the ELARA_PERSONA_FILE environment variable.
# Work persona
export ELARA_PERSONA_FILE="~/.elara/persona-work.json"
# Personal persona
export ELARA_PERSONA_FILE="~/.elara/persona-personal.json"
Each persona file tracks its own mood, temperament, and imprints independently. Memory and episodes are shared unless you also change ELARA_DATA_DIR.
For fully isolated instances, set both variables to different paths.
| Client | Notes |
|---|---|
| Claude Code | Best supported. Use claude mcp add elara -- elara serve. All 34 tools auto-discovered. Supports streaming and parallel tool calls. |
| Cursor | Works via .cursor/mcp.json. Some users report needing to restart twice on first setup. Check the MCP panel for connection status. |
| Windsurf | Config goes in ~/.codeium/windsurf/mcp_config.json. Tools appear in the Cascade panel. May need the full path to the elara binary. |
| Cline | VS Code extension. Add via Cline Settings → MCP Servers. Auto-detects all tools. Requires the Cline extension v2.0+. |
elara, args ["serve"].
Open an issue on GitHub with your OS, Python version, and the full error message.
Open an Issue →