cortex
Automatically creates calendar events from classified entries with multi-calendar support.
Provides local embeddings and LLM inference via Ollama for fully self-hosted setups.
Supports using OpenAI models for LLM classification and intelligence features.
Enables capturing thoughts via Telegram bot, supporting both text and voice messages.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@cortexadd thought: pick up dry cleaning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
How It Works
Capture - send a Telegram message, write in the web editor, or add a thought via MCP from any AI tool.
Classify - an LLM sorts it into one of five categories (People, Projects, Tasks, Ideas, Reference) and extracts structured fields.
Store - PostgreSQL with pgvector embeddings. Search by meaning, not just keywords.
Access - web dashboard, daily/weekly email digests, or query your brain from any MCP-compatible tool.
Related MCP server: Memoria
When crtxboard fits (and when it doesn't)
Fits: low-friction capture of individual thoughts from anywhere — voice from a phone, text on the go, or a quick note at the desk. Personal logistics (tasks, follow-ups, appointments, people context, idea backlog). Agent-assisted recall via MCP. Self-hosted with local LLM support.
Doesn't fit: long-form writing, progressive-summarization knowledge work, cross-linked knowledge graphs, team wikis, curated reference libraries. For those, Obsidian, Notion, or Logseq are purpose-built — crtxboard is deliberately a different shape.
Features
Capture - Telegram bot with text and voice (faster-whisper), web dashboard with quick capture and full editor, MCP server
Intelligence - LLM classification into 5 categories with confidence scoring, context-aware (uses recent + similar entries), inline Telegram buttons for low-confidence entries,
/fixto reclassify, automatic task completion detectionSearch - semantic search via pgvector + qwen3-embedding with text fallback, peer-dropdown filters (category, tag, status, activity), multilingual (EN/DE)
Google Calendar - automatic event creation from classified entries, multi-calendar support with LLM-based routing
Digests - daily briefing and weekly review, delivered by email and shown on the dashboard
Display - PNG endpoint for e-ink devices (e.g. TRMNL) showing today's calendar, pending tasks, and weather
Self-hosted - local embeddings, local voice transcription, LLM-agnostic (Anthropic, OpenAI, or any compatible endpoint), 7 MCP tools
How to use
Capture / correction / search / MCP workflows with examples: USAGE.md.
Quick Start
git clone https://github.com/moguls753/cortex.git && cd cortexCreate a .env file with a database password:
echo "POSTGRES_PASSWORD=changeme" > .envStart everything:
docker compose up -dThis boots PostgreSQL, Ollama (embeddings), Whisper (voice transcription), and the app. The embedding model is pulled automatically on first start.
Open http://localhost:3000 and the setup wizard will walk you through:
Account - create your login credentials
LLM - pick a provider (Anthropic, OpenAI, Groq, Gemini, LM Studio, Ollama) and enter your API key
Telegram - optionally connect a Telegram bot for capture
Done - start using crtxboard
Everything is reconfigurable later from the Settings page.
MCP
Add to your Claude Code config (~/.claude.json):
{
"mcpServers": {
"cortex": {
"command": "docker",
"args": ["exec", "-i", "cortex-app-1", "node", "dist/mcp.js"]
}
}
}Tools: search_brain · add_thought · list_recent · get_entry · update_entry · delete_entry · brain_stats
Resource Requirements
Service | RAM |
Whisper (medium model) | ~3 GB |
Ollama (qwen3-embedding) | ~1 GB |
PostgreSQL | ~256 MB |
App | ~128 MB |
Minimum: ~4-5 GB RAM with a cloud LLM provider (Anthropic, OpenAI).
If you run classification and digests through a local LLM via Ollama instead of a cloud provider, add the RAM for that model on top. Recommended minimum: Qwen 2.5 7B (~5 GB) or Llama 3.1 8B (~5 GB) — smaller models tend to struggle with reliable structured output. 10 GB+ RAM recommended for fully local setups.
Configuration
All configuration is done through the setup wizard and the Settings page. No .env editing required beyond POSTGRES_PASSWORD.
If you prefer env vars, they serve as defaults and are overridden by settings saved in the database:
Variable | Default | Description |
| (required) | Database password |
|
| Web server port |
|
| Timezone for digest scheduling |
| SMTP for email digests | |
| Email addresses for digests |
Development
Stack: Node.js, TypeScript, Hono, PostgreSQL + pgvector + Drizzle ORM, Ollama, grammY, Vitest, Tailwind CSS, Docker Compose.
npm install && npm run dev # local dev
npm test # all tests
npm run test:unit # fast, no Docker
npm run test:integration # needs Docker (testcontainers)Architecture, schema, and prompt contracts are documented in ARCHITECTURE.md. Spec artifacts in docs/specs/.
License
This server cannot be deployed
Maintenance
Related MCP Connectors
- EngramOAuthapp.getengram
Persistent, verbatim, searchable memory for AI assistants — one memory across every MCP client.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
Persistent, portable memory for AI assistants — your private memory graph, from any MCP client.
- mcpOAuthai.butlerbrain
Persistent memory for AI assistants. Save once; recall from Claude, ChatGPT, or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceA self-hosted MCP server that provides a personal semantic memory layer for AI tools. It enables storing, searching, and managing memories using hybrid vector and keyword search, allowing AI assistants to recall information by meaning.MIT
- AlicenseNot gradedqualityFmaintenanceA self-hosted memory backend for MCP clients, providing tools for storing, searching, updating, and deleting memories with per-user scoping and OIDC support.MIT
- AlicenseNot gradedqualityFmaintenanceA self-hosted persistent memory platform for AI agents and humans offering tools for memory storage, search, beliefs, work management, and code intelligence via MCP.7GPL 3.0
- FlicenseNot gradedqualityBmaintenanceA self-hosted MCP server providing persistent memory for AI tools, allowing them to remember, recall, and manage information across sessions using a SQLite database.-