[KongchangAI]
· 2 min read· 1,142 words

Cermin: An AI Engineering Practice for Building a Personal Thought Mirror with LLMs

Cermin: An AI Engineering Practice for Building a Personal Thought Mirror with LLMs

A developer built a personal "thought mirror" AI system using Telegram, SQLite, and Claude to auto-capture and classify ideas.

Cermin is an AI system built by developer Arkoes07 to solve chaotic personal note-taking, named after the Indonesian word for "mirror." Users send thoughts to a Telegram bot, which stores them in SQLite and uses Claude Sonnet to classify each entry within 3–6 seconds along two orthogonal dimensions: kind (idea/question/observation/etc.) and topic (coding/business/health/etc.). The project is open source (AGPL-3.0), estimated at ~$6/month, and will eventually add MCP server integration and model benchmarking to connect fragmented thoughts across time and surface hidden patterns in the user's thinking.

Good ideas often strike unexpectedly — while listening to a podcast, reading a book, or scrolling through social media — only to vanish just as quickly. Developer Arkoes07 decided to solve this problem with an AI system he named Cermin, the Indonesian word for "mirror," while bercermin means "to reflect on oneself." This project is both a daily-use tool and a portfolio piece that demonstrates end-to-end AI engineering skills.

Why Build It from Scratch

The author spends his evenings exploring AI tools and had previously built an MCP server to handle learning context. But he wanted to go further: build a complete AI system and walk through the full AI engineering workflow — how to call LLMs within an app, how to evaluate them, and how to monitor them.

The motivation here is worth noting for both creators and engineers: solving a problem you genuinely face is far more motivating than conjuring up a demo from thin air. The author admits his note-taking habits were chaotic — some notes in a notebook, others sent to himself on WhatsApp — but these notes piled up with no organization, requiring manual re-reading and categorization to find any patterns.

What Cermin aims to do is automatically capture, classify, and distill insights from these scattered thoughts, while also being able to answer questions about everything you've ever recorded.

What Cermin Is and How It Works

The entire flow is designed to be extremely lightweight: the user sends a thought to a Telegram bot, the bot saves it first, then passes it to an LLM for classification, and replies with the classification result within seconds. As the collection grows, it gradually becomes a "mirror of your thoughts."

Telegram chat screenshot showing three messages written in English, Indonesian, and mixed language, with the bot labeling each with a type and topic

The author's ultimate vision is ambitious. He wants the system to eventually surface conclusions like: "You have 14 business ideas but 0 launch plans," or "You've asked yourself why you procrastinate 5 times since October." Going even further, it could connect the dots across time: "Three weeks ago you wondered why the café near the office is always packed at 3 PM — today's thought might be the answer."

None of these capabilities exist yet, but they are the goals this article series will work toward incrementally.

Current Progress and Key Technical Decisions

The project is already open source (AGPL-3.0 license) and is in the first week of a four-week plan. On the development bot, Cermin can already capture and classify submitted thoughts, though it hasn't been deployed yet. Replies take approximately 3 to 6 seconds, within an 8-second budget; the author estimates a monthly cost of around $6, below the $10 target. An MCP server will be added later, enabling direct queries of his thoughts from AI agents like Claude.

Flowchart: send thought to Telegram bot, store in SQLite, LLM classifies kind and topic, bot replies — approximately 3 to 6 seconds. If LLM response is slow, bot first replies that the thought is saved, then classifies later

Here are a few noteworthy architectural design choices:

Choosing Telegram Over WhatsApp

The author originally preferred WhatsApp, which he uses every day, but Meta will prohibit general-purpose AI assistants from accessing the WhatsApp Business Platform starting January 15, 2026, and building a bot on it also requires a second phone number. Telegram, by contrast, is free and easy to configure. The interim solution: keep logging thoughts in WhatsApp's "message yourself" feature until the bot goes live, then batch-import them.

MCP (Model Context Protocol) is an open protocol introduced by Anthropic in late 2024 to standardize how AI assistants connect to external data sources and tools. In simple terms: it lets AI agents like Claude read and write local files, databases, or third-party services as if calling a plugin — no need to paste all data into a chat window. The MCP server Cermin plans to integrate means users will eventually be able to ask Claude directly, "What health-related observations did I log last month?" Claude will query Cermin's SQLite database via the MCP protocol and return results transparently, with no manual data export required.

Two Dimensions Instead of One Tag

This is the most insightful aspect of the classification design. The author initially considered a single category list (business idea, question, programming, lifestyle, philosophy), but quickly realized this conflated two distinct things: the shape of a thought and its subject. "A question about programming" is both a question and about programming — a single list can't capture that.

So each thought is split into two values: a kind (idea, question, observation, reflection, or plan) and 1 to 3 topics (e.g., coding, business, health). This orthogonal classification approach is a useful reference for any developer building a content tagging system.

Model Selection: Start with Claude, Then Benchmark

Classification currently runs on Claude Sonnet at a lower intensity setting. The author plans to later compare other models on accuracy and cost, and intends to include Jev in the comparison (pending confirmation of its data policy). This pragmatic "get it working first, then optimize" strategy is the typical cadence for shipping AI engineering projects.

"Claude Sonnet at a lower intensity setting" refers to Anthropic's tiered model invocation strategy based on compute and pricing. Anthropic divides the Claude 3.x series into three tiers — Haiku (lightweight and fast), Sonnet (balanced), and Opus (most capable) — and the API also offers batch mode and other cost-reducing invocation options. For structured, low-creativity tasks like classification, using Sonnet instead of Opus with a streamlined prompt is a common approach to balancing accuracy against cost. The "benchmarking" the author mentions is essentially an LLM evaluation process: prepare a set of manually labeled samples, run them through different models, compare outputs against labels (typically using accuracy or F1 score), then factor in per-token pricing to calculate the actual cost per thousand classifications — and use that to drive the model selection decision.

The Meaning of a Mirror

Cermin's value goes beyond being a note-taking tool. It demonstrates a complete path for a personal AI project: starting from a real pain point, assembling a minimum viable system with Telegram + SQLite + LLM, and iteratively adding evaluation, monitoring, model comparison, and MCP integration.

The author's upcoming plans include sharing "hard-to-reverse design decisions," classifier evaluation methods, how to establish connections between thoughts, and ultimately — once enough data has accumulated — what these thoughts reveal about who you are.

As he puts it: "A mirror only reflects what you place in front of it." For anyone who wants to genuinely integrate AI into daily life rather than stay at the toy demo stage, Cermin's "small but complete" approach to building may be more worth learning from than chasing flashy features.

#LLM#AI engineering#personal knowledge management#Telegram bot#Claude Sonnet#MCP#thought classification#SQLite#note-taking AI#Cermin
Share:

Related articles