Supercharging Daily Notes with Opencode and MCP
How I leverage coding tools to manage documentation, RCAs, and daily thoughts in a non-obvious way.
We often think of AI coding agents as tools strictly for software engineering (writing functions, fixing bugs, or refactoring classes). But at its core, code is just structured text. And what is documentation, if not structured text that explains the "state" of our projects, teams, and minds?
Recently, I've been experimenting with a workflow that treats my personal knowledge base like a codebase. By pairing Opencode (a powerful CLI agent) with the Model Context Protocol (MCP), I've transformed how I handle daily notes, Root Cause Analyses (RCAs), and general thought organization.
The Problem: The Chaos of Text
I loved Microsoft OneNote in college because it let me scribble handwritten notes on an iPad like digital loose-leaf. No LaTeX, no formatting, just pencil and “paper.” But when I started working in the enterprise world, that same system spiraled into a mess of dozens of half-finished TODO lists scattered across an increasingly unhinged notebook. Working in managed services speed was critical, and I needed something faster at the cost of structure.
If you’re like me, your notes become this archaeological dig of thoughts, you need to write something down quickly, so you jot it into a text file, then when you need to recall that information, well, you know the information is in there somewhere... but good luck finding it.
The Solution: Treat Notes Like Code
The breakthrough happened when I realized that a coding agent does not actually know whether it is editing a .ts file or a .md file. It only sees text, structure, and relationships. Once I understood that, it became obvious that my notes did not need special software or a proprietary format. They needed to live somewhere that treated them like real files, in real folders, with real version history.
That is what led me to Obsidian.
Why Obsidian Works So Well for This
Obsidian is built on plain Markdown files stored directly on disk. There is no database and no hidden formatting layer. Everything lives as text inside a folder you control. That simplicity is exactly what makes it powerful for an AI-assisted workflow. A coding agent can read and modify these files the same way it would interact with a normal codebase. Folder structures become namespaces. Templates become scaffolding. Daily notes, project notes, and RCAs are just documents the agent can search, parse, and refactor.
Obsidian also gives you structure without locking you in. I can organize notes however I want, use community plugins where they help, and still keep all the content portable and scriptable. Most importantly, the entire vault is accessible from the command line. That makes it possible for Opencode to navigate the environment, locate the right notes, and automate the parts of documentation that normally slow me down.
Once I had Obsidian as the home for my notes, the next step was obvious. I started using CLI coding agents like Opencode to manage my knowledge repository. Here is how it works.
1. Daily Notes & Context Management
Instead of manually creating a new note every morning, Obsidian generates one automatically at open, then I tell OpenCode to:
"Add these X, Y, Z items from my daily scrum call, import my unfinished todos from yesterday, and summarize the key decisions from the last 3 days."
Because Opencode has tools to read files and search, it can traverse my previous notes, extract the relevant context, and scaffold my day for me. And with the ability to call external models like Gemini or Codex headlessly through the command line, I can even have agents go out and research general topics from the web. These external calls never receive my notes or sensitive context — they only get restricted, sanitized queries. Their outputs come back to me, and I decide what gets added to my local knowledge base.
2. Targeted RCAs
When an incident happens, the Root Cause Analysis is one of those tasks that always feels heavier than it should. You have to sift through logs, reconstruct the timeline, gather evidence, and turn all of it into a coherent explanation that others can understand. It is important work, but it is time-consuming and mentally draining.
I still write my RCAs by hand. There is something about the process of writing that forces you to truly understand what happened. But the investigation phase, the part where you are drowning in logs and trying to piece together a timeline, that is where an LLM becomes invaluable.
The key is anonymization. Before I feed anything to the agent, I strip out sensitive data: customer names, internal hostnames, IP addresses, anything that should not leave my machine. What remains are the relevant errors, timestamps, and context. Once that is clean, I point Opencode at the material and say:
"Here are the anonymized logs and notes from an incident. Help me identify patterns, correlate timestamps, and organize the sequence of events."
The agent does not write the RCA for me. Instead, it helps me see connections I might miss when I am tired or tunnel-visioned. It surfaces patterns in the errors, suggests which events likely triggered others, and helps me organize my scattered thoughts into a coherent timeline. Think of it as a research assistant that never gets fatigued.
Once I have that organized view, I write the final document myself. The investigation is faster, my understanding is deeper, and the RCA is still genuinely mine.
3. Refactoring Thoughts
This is the "non-obvious" part. We refactor code to make it cleaner and more efficient. Why not refactor our thoughts?
I periodically ask the agent:
"Read the markdown files from the last month regarding 'Project X'. Bring me back up to speed with a summary of key decisions, action items, and unresolved questions."
It consolidates scattered thoughts into a permanent, high-value, living document. To me, this is the robot assistant I always dreamt of.
4. Versioning with Git
One unexpected benefit of treating notes like code is that I now version them the same way I version software with Git. My entire knowledge base lives in a repository, so every change, refactor, summary, RCA, and daily log becomes part of the commit history. This creates a time-stamped record of my thoughts, decisions, and work. If I delete something by mistake, rewrite a section poorly, or lose important context, I can roll back to any previous state in seconds.
Git trees give my notes the same resiliency and traceability I rely on in production code. I have definitely overwritten or removed something important before and wished I could undo it. With this setup, I can. It is reassuring to know my “brain repo” is protected by the same safeguards I trust in my day-to-day engineering work.
Why MCP Matters
The Model Context Protocol (MCP) is the glue. It allows the agent to connect to external data sources, standardizing how context is provided to the LLM. This means my "documentation agent" isn't just looking at text files; it's looking at the reality of my work environment.
Conclusion
Leveraging coding tools for note-taking sounds like overkill until you try it. But the precision, automation, and "refactoring" capabilities of tools like Opencode make manual documentation feel archaic. It's not just about writing faster; it's about thinking clearer. And the best part, these are simple tasks that don't require a state of the art model, I run this entire workflow with GPT-OSS 20b locally on my machine, no cloud dependency, no data leakage, just me and my robot assistant helping me think better.