Mycelia is your self-hosted AI memory and timeline.
Capture ideas, thoughts, and conversations in voice, screenshots, or text. Ask anything later — _"What did I say about X last May?" Mycelia tells you, in your own words.
📍 Local-first · 🔓 Open-source · 📦 Modular · 🛠 Hackable
- Continuous import from Apple Voice Memos, Google Drive, and local folders.
- Automated pipeline: VAD → Transcription → Conversation extraction → Summarization.
- Smart chunking, waveform normalization, and diarization-friendly segments.
- Whisper transcription via local GPU or any remote OpenAI-compatible server.
- Audio recording, playback (0.5x–3x speed, volume up to 300%), and WAV export.
- Pipeline monitoring UI with real-time session tracking and error handling.
- D3.js-powered multi-track timeline with zoom and pan.
- Multi-resolution views (5 min, 1 hour, 1 day, 1 week).
- Transcript-synced audio playback with jump controls.
- Track visibility controls, object overlays, and event creation from selection.
- Quick presets (last hour, today, yesterday, this week, and more).
- Chat with your memory — tool-calling agent with access to all backend resources.
- Streaming responses, file uploads, and speech input.
- Chat history with rename and management.
- Create, edit, and browse People, Events, Conversations, Relationships, and Promises.
- Per-object audio player with transcript sync and segment navigation.
- LLM summarization with model selection and cost estimation.
- Summary comparison (side-by-side, star/favorite).
- Autosave with per-field throttling and version history.
- Full-text search, category filtering, and relationship graph.
- BullMQ job queue backed by Redis.
- Worker management UI with pause/resume, statistics, and success rates.
- Pipeline ordering and progress tracking.
- Configurable worker defaults and prompt templates.
- One-command Docker setup (
docker compose up -d) with backend, frontend, Python worker, MongoDB, and Redis. - OAuth 2.0 with PKCE,
.well-knownmetadata, JWT login, and API key management. - MCP (Model Context Protocol) server endpoint for remote operations and scripting.
- First-run setup wizard with automatic API key creation and inference provider configuration.
- OpenTelemetry observability (optional).
- Feature flags, access logging, and server configuration UI.
- Messenger platform import (Telegram, Signal).
- LLM provider configuration with model aliases (small / medium / large).
- OpenAI-compatible API endpoints (
/v1/audio/transcriptions,/llm/chat/completions). - MongoDB full-text search alongside GridFS-backed storage.
In progress
- Friend-Lite companion app + advanced backend (
friend/) wiring semantic memories and wearable capture back into Mycelia. - GPU diarization stack replacing the current batch-only flow (
diarizator/Helm charts + WebUI). - Semantic search + vector memory integration connecting Qdrant-backed pipelines and the OpenMemory MCP bridges into the main timeline.
Planned
- Multi-device & multi-modal capture (health, geolocation, photos, sensors).
- Privacy + usage dashboards, token metering, and export flows.
- Processing / artifact templates, batch operations, and backup automation.
- Docker and Docker Compose
git clone https://github.com/mycelia-tech/mycelia.git
cd mycelia
./scripts/setup.sh --startThe setup script automatically:
- Creates
.envfrom.env.example - Generates a secure
SECRET_KEY - Starts all services with Docker Compose
Open http://localhost:3210 in your browser.
If you need API tokens in .env (for Python daemon or CLI access):
./scripts/setup.sh --with-tokens --startThis starts MongoDB temporarily to generate MYCELIA_CLIENT_ID and MYCELIA_TOKEN.
After pulling updates, new environment variables may be added to .env.example:
./scripts/sync-env.sh # Interactive - prompts before adding
./scripts/sync-env.sh --dry-run # Preview changes without modifyingNote: For local development, Mycelia uses a self-signed certificate. You may need to click "Advanced" and "Proceed" in your browser. See NETWORKING.md for more details on port configuration and SSL.
cd python
uv run daemon.pyThe daemon can import:
- Apple Voice Memos
- Google Drive Folders
- Local Audio Folders
Environment variables (optional, set in .env):
MYCELIA_APPLE_VOICEMEMOS_ROOT- Apple Voice Memos pathMYCELIA_GOOGLE_DRIVE_ROOT- Google Drive pathMYCELIA_LOCAL_AUDIO_ROOT- Local audio folderMYCELIA_GOOGLE_TZ/MYCELIA_LOCAL_TZ- Timezones (default: UTC)
When you first open the frontend, you'll be guided through a setup wizard:
-
Server Connection (
/setup) - Connects to the backend and automatically creates your first API key. -
Inference Provider (
/setup/inference) - Configure your AI inference backend:- Managed service at
https://inference.mycelia.tech - Your own local GPU stack (see GPU README)
- Any OpenAI-compatible API endpoint
- Managed service at
You can reconfigure these settings anytime in Settings.
- Via Settings UI: Go to Settings → API Keys to create, view, and revoke keys
- Via Terminal (for initial setup or automation):
docker compose run --rm backend deno run -A server.ts token-create
See DEVELOPMENT.md for:
- Docker dev mode with hot reload
- Native development setup (Deno + Vite)
- Python tooling (audio import, STT, conversation extraction)
- GPU inference stack setup
- Database backup & point-in-time recovery
- Project structure and contributing guidelines
You're welcome to fork, build plugins, suggest features, or break things (metaphorically, c'mon, it's open source).
- Join the Discord
- PRs are welcome