Activity log with service status badges and color-coded intent classification across 18 message types.
Per-operation model routing with provider badges and cost tiers across Claude, Gemini, and local Ollama.
Heartbeat agent with stat cards, config, and alert log showing proactive monitoring results.
18 Intent Types
Text, voice, photos, documents, and URLs auto-classified by a local LLM and routed to Notion, Calendar, or agent workflows.
Multi-Provider LLM Routing
Per-operation model selection across Claude, Gemini, and local Ollama — optimized for cost per operation with a dashboard UI.
Self-Hosted & Encrypted
AES-256-GCM encryption for all secrets at rest, Docker one-command deploy, setup wizard — zero cloud dependency.
Configurable personality via SOUL.md — injected into all AI system prompts for Q&A, heartbeat, and digest.
Habit tracking with streak counters and 7-day completion grids.
One-time and recurring reminders with natural language scheduling.
From Telegram Bot to AI Platform
Cortex evolved from a simple message-to-Notion bridge into a full agentic platform with 20+ dashboard pages, 3 autonomous agents, and multi-provider LLM routing.
Telegram Bot
Intent classification + Notion routing — Feb 2026
Next.js Dashboard
20+ pages, setup wizard, config UI — Feb 2026
Agentic Architecture
Research, heartbeat, and work queue agents — Mar 2026
The Process
Cortex started from a personal frustration: ideas, tasks, and notes scattered across apps with no single capture point. I wanted to send a Telegram message — text, voice, or photo — and have it automatically land in the right place in Notion. I wrote a detailed PRD in Claude Code defining the classification pipeline: Telegram input → local LLM intent classification (Ollama with Llama 3.2) → Claude enrichment for titles, dates, and tags → Notion API write. The zero-cost classification layer was a deliberate design decision — local inference means unlimited messages without API spend.
The project expanded rapidly once the core pipeline worked. Each new intent type (reminders, calendar events, bookmarks, package tracking, expenses, habits) followed the same pattern: detect intent locally, enrich with a cloud LLM, then route to the right destination. The model routing system emerged from a real cost problem — Claude Sonnet for every operation was wasteful when Gemini Flash or local Ollama could handle classification and casual conversation. The dashboard lets you assign Claude, Gemini, or Ollama to each of the 10 operations independently, with per-million-token cost labels so the trade-offs are visible.
The agentic architecture was the biggest design leap. The heartbeat agent runs on a schedule with a 9-tool suite (overdue tasks, habits, budgets, stale contacts, packages) and decides for itself what warrants a Telegram alert. The research agent runs an iterative loop — web searches, page reads, memory lookups — until it decides coverage is sufficient. The work queue agent processes overnight tasks with the same broad tool suite. All three agents use the configurable SOUL.md personality, which means the AI’s tone and priorities are consistent across every interaction — direct, opinionated, no sycophancy.
Impact
Intent Types Classified
Automated Tests
One-Command Deploy