Dev Notes

Dev Notes: March 20, 2026

Last week I wrote about running four+ Claude sessions at once, each one an island. I was the routing layer. Context lived in my head, not in any system the AI could read.

This week I shipped the fix.

I restructured my Obsidian vault so AI agents can navigate it, built automation skills for the weekly workflow, and deployed OpenClaw on a $24/month DigitalOcean droplet. The vault is the brain. The agent reads it, writes to it, and picks up where the last session left off.

The key move was context files. Every project gets a _context.md (what should the AI know right now?) and a _last-session.md (what happened last time?). These aren't documentation. They're session memory. When OpenClaw picks up a conversation in Discord, it reads the context stack in order: area, project, signals, last session. Five files, full picture. No re-explaining.

The part that surprised me: I wrote those context files for an AI reader, and the AI used them differently than I expected. It latched onto the signals file harder than the project context. It treated _last-session.md as a task list, not a summary. I ended up rewriting both formats after watching how the agent actually processed them. The lesson: deploy first, then adjust. You can't predict how AI reads your files until you watch it try.

I wrote a full walkthrough covering the vault structure, the automation skills, and the OpenClaw deployment: I Wired OpenClaw into My Obsidian Vault. Here's What It Can Do.


This Week on Slightly Caffeinated

No new episode this week. TJ is starting a new job and deep in onboarding. We're planning to record next week.

Catch up on past episodes at slightlycaffeinated.fm.


What I'm Learning

Most of this week was spent configuring OpenClaw and adjusting the system to fit how I actually work. The deployment itself took an afternoon. The tuning took the rest of the week.

The biggest adjustment: context file maintenance. A context file that's two weeks old gives the agent confident but wrong information. I solved this by building the update instructions directly into each Discord channel's system prompt. The agent writes after every task, not at some hypothetical "end of session" that never fires.

I also learned that Obsidian Sync skips hidden directories. My .claude/skills/ folder wasn't syncing to the server, so I set up a separate git repo for skills. Both machines pull from it. Small gotcha, easy fix, would have saved me an hour if I'd known upfront.


Dev Tool of the Week

RTK (Rust Token Killer)

A CLI proxy that sits between your terminal commands and your AI agent's context window. It intercepts command output, strips noise, and compresses what remains before the LLM sees it.

It works through a hook. Run rtk init --global and it installs a PreToolUse hook that transparently rewrites Bash commands. When Claude Code runs git status, the hook converts it to rtk git status. The agent never knows the difference. It ships with 30+ command-specific filters for git, npm, pytest, docker, cargo, and more.

The savings are real. In my first week: git diff output dropped 80-90%, test output dropped 90%+, and sessions run noticeably longer before hitting context limits. Free, open source, single Rust binary with zero dependencies.


That's it for this week. If you've tried OpenClaw or have a different approach to the multi-session AI problem, hit reply. I'm still iterating on this and want to hear what others are doing.

-Chris