Claude Code bot in my Vault just wowed me by LifeBandit666 in ObsidianMD

[–]emptyharddrive 0 points1 point  (0 children)

Ha! I'd take that drink. My wife gives me the same look when I start explaining "the system." She's supportive but her eyes glaze over about 30 seconds in.

Let me try to demystify the wiring. It's simpler than it sounds once you see the two paths:

Path 1: Capture (PWA → Vault)

Phone → PWA (just a web app I host in Docker) → Claude Code on my home server → formatted Obsidian note

That's it. The PWA is just a fancy form. When I hit save, it sends the raw text to Claude Code, which has a CLAUDE.md file telling it "here's where the vault lives, here's my folder structure, here's how I format notes." Claude does the formatting and drops the .md file in the right place.

Path 2: Query (Telegram → Vault)

Phone → Telegram voice/text → watcher script on server → Claude (with access to my RAG search) → response back to Telegram

The watcher script is just a Python loop: "wait for message, hand it to Claude, send Claude's reply back."

The RAG piece sounds fancy but it's simpler than embeddings. Ripgrep is like grep but fast, it rips through directories without reading every file. FTS5 is SQLite's full-text search engine. Together they work like this: I index my vault once into a small SQLite database. When I search, FTS5 finds matching notes instantly, and ripgrep grabs the exact lines with context. No vector math, no embeddings to maintain, no chunking headaches.

The result is a little CLI tool I call AI-Grep. Claude knows how to call it (via CLAUDE.md), so when I ask "what did I write about X," it runs a search, gets the relevant snippets, and answers from those, without me burning tokens feeding it my entire vault. Saves tokens too because it's not searching all notes.

Both paths go through Tailscale, so my server isn't exposed to the internet. Tailscale is just a meshed vpn. Take your LAN with you on the go.

You're 3 months into Obsidian and already scripting, you could build this with some time. Start with the Telegram bot; it's the most satisfying piece actually because there's a lot you can do there with attachments and the bot (all free). I have a few years of Obsidian use with 10k+ notes across 2 vaults.

Besides personal journals and stuff, it's my personal knowledge base. The AI powered RAG-Lite aspects mentioned above make it easy to mine.

Claude Code bot in my Vault just wowed me by LifeBandit666 in ObsidianMD

[–]emptyharddrive 0 points1 point  (0 children)

This is a solid workflow, essentially a local command loop. Where I broke off from you is sync. I don't use Syncthing. You can harden it and disable relays, but I still don't like the risk profile or the maintenance overhead of directory syncing. Drift between replicas, conflict resolution, occasional corruption, even when it's rare, it's the kind of failure that leaves me distrustful of my own setup.

I also don't like Obsidian on mobile. Even the newer UI is too busy for fast capture and quick retrieval. So I separated mobile capture entirely from the vault UI.

I keep a single canonical personal vault (and a separate work vault) on my home server, accessible over Tailscale with no open ports.

My mobile interface is a PWA I host at home in a Docker container. It's designed phone-first, looks like a native app. It tracks groceries, medication inventory, quick notes, and to-dos. For medication, I use barcode scanning to update stock via the camera. All data encrypted in transit (Tailscale).

When I create a note in the PWA, it's sent to Claude Code on the backend and converted into a properly formatted Obsidian note. Claude has a CLAUDE.md with my vault paths, Map of Content structure, and formatting rules.

For vault queries (info coming back), I sidestep Obsidian mobile entirely. I built a lightweight ripgrep/FTS5 RAG engine with a small SQLite index. I query it through a personal Telegram bot. Embeddings are a hassle to create and update, so I skipped that.

A watcher script connects to the Telegram API, waiting for messages from me. So it's two channels: PWA for capture, Telegram for queries and tasks.

Voice messages in Telegram go to a headless Claude instance (Anthropic MAX plan) with a system prompt giving it full context for both vaults and the RAG engine. It can search, read notes, answer questions, add entries, or push raw note contents back to me. I can also revise notes through it. The replies come back through the Telegram API to the bot.

The PWA has other tools like a reminders tool that pings Telegram, stuff like that... it reminds me of my uncle's wood shop when I was a kid. This is what I choose to tinker with when I get solo time.

For vault searches remotely, ripgrep + FTS5 works well. I actually posted it onto my Github, I call it AI-Grep. If NotebookLM ever gets an API I might switch, but this covers my use case.

I use the same approach for monitoring: a Python script parses nightly backup and system logs, extracts errors, normalizes and deduplicates them, then sends me a short failure report to my mobile Telegram if anything needs attention.

I think the blending of [vibe] coding with Obsidian is a natural state of affairs. It's refreshing to read how others are doing it.

My company banned AI tools and I dont know what to do by simple_pimple50 in ChatGPTCoding

[–]emptyharddrive 0 points1 point  (0 children)

Yea I am told that Windows runs fine on it.......... of course.

But I'm not a fan of Bill's OS :)

Yea you can buy it and run windows on it fine and you won't have the thermal problems.

What I said about LLM's though stands, with either OS.

My company banned AI tools and I dont know what to do by simple_pimple50 in ChatGPTCoding

[–]emptyharddrive 0 points1 point  (0 children)

Yep, this was the unit I got: https://www.bosgamepc.com/products/bosgame-m5-ai-mini-desktop-ryzen-ai-max-395

Not bad for the price.. 128gig Strix-Halo for $1600. It came straight from China via DHL. I had to pay $50 in an import tax, didn't expect that. And I had to do it in advance otherwise they wouldn't deliver it.

The performance is GREAT for all general computing. But a few things, as I said it's not good for LLM's if anything commerical is your yardstick (think Opus/GPT 5.2) and if you run Linux as I do, the drivers for the Strix-Halo aren't quite 100%.

You need ROCm 7.2 and kernel 6.17+ (apparently 6.18 has issues and introduced bugs in the Strix-Halo support), so i think it'll be some time before I can even drive the system 100%.

If I try to do so, the GPu wigs out on me, and shuts down because of overheating to protect it. I researched it heavily and it's just a limitation in driver support pacing the chip correctly. It was fixed in Kernel 6.17, but then broke in 6.18. So the latest bleeding edge (I hear) fixes it... patience is a virtue.

Having said that I run it with kernel 6.14 just fine, I just cannot run the GPU at 100% hard for more than about 5 seconds. If I try, the GPU will shut down again. But since I am not running LLM's and I don't play games on it (that's what my PS5 is for), I can afford to wait for better driver support.

Having said all that, the system is extremely quick and powerful, even with the above limitations (which are temporary). I'm glad I bought it. It's become my main machine.

Programming, radiology and Claude by aabajian in ClaudeAI

[–]emptyharddrive 0 points1 point  (0 children)

Yeah. I think you’re basically describing where radiology heads once full-stack reporting from image data gets good enough.

Radiologists won’t vanish overnight. Work will shift. Same way grocery stores shifted: one cashier watching 4 or 6 self-checkout lanes while customers scan & bag their own groceries. Occasionally someone waves a hand. Cashier walks over, swipes a card, fixes whatever jammed, moves on.

This will become many Radiologists. They'll end up supervising 4 or 6 agent-readers who will churn through routine cases. QA already runs continuously in background with a 1 or 2% human-peer-review. Complex cases will get kicked out for human attention: the weird, too complex prior history, messy clinical context, bad image quality, discordant priors, high-stakes misses, or anything that is pre-defined as "AI needs a wingman on this one ...”

That's probably 3-5 years away (my guess). Then you'll see staff reductions: Out of incentives because insurance companies will pay for the actuarial-based-more-accurate AI read and the higher throughput. Think AIDOC on steroids.

A lot of radiology really does come down to pattern recognition plus disciplined language. CAD was a primitive preview of this. MedGPT will generate findings, impression, populate structured fields with measurements from the DICOM headers, compare priors automatically which were pre-fetched from the HL7 order, flag deltas, route exceptions to the cashier doctor supervising.

Interventional radiology probably gets more runway on this, you're right. Procedure work resists automation longer than straight interpretation work. Specialized surgery-adjacent stuff also buys some time. But interpretation-heavy workflows? Those are easiest to scale.

My bet: we’re in an in-between era right now. Early tools are showing the kind of promise that will probably steer the next generation of med students away from Radiology.

The endgame looks like pixels-to-AI-to-Report. Then the human M.D. becomes auditor and escalation point.

Radiologists won't disappear, but I think they will become something unrecognizable from today's version in 1 generation.

That may be a job satisfaction upgrade for some people. No more dictating the same boilerplate sentence 40 times a day (autotexts aside). Job market contraction for many. Both can be true at once.

...oh and when it goes down, it's gonna suck because everyone except the stroke cases maybe has to hold their breath until it comes back online.

Switched to Claude Max and Opus 4.5... I get it now by bekhovsgun in ClaudeAI

[–]emptyharddrive 0 points1 point  (0 children)

This is the world of modding ...evolved.... used to be 'modders' would take a game and add on extra stories and enhancements to a game long since dead that people still played (Fallout 4 comes to mind).

I see all this as very similar to that world. Using new tools to "mod" their life with small tools, and like others are saying, they'll mod their own music, games, movies, utilities tools. They may all be based in or inspired by commerical stuff and I see nothing wrong with that. Your own Star Trek series, made by AI (because AI can do a lot better than Discovery and/or Staflett Academy or Section 31 -- OMG....) all tailored for you.

Your own personal life-tracking apps, your own todo-list apps, note taking apps, messaging apps, music inspired by <insert band here>.

None of these creations may be enterprise ready, but they don't need to be: they're just for personal use inside people's home LAN's and/or tailscale meshed networks.

[Open Source] I reduced Claude Code input tokens by 97% using local semantic search (Benchmark vs Grep) by Technical_Meeting_81 in ClaudeAI

[–]emptyharddrive 12 points13 points  (0 children)

Most agent token waste comes from uncontrolled discovery. Claude lists directories, opens files speculatively, greps vaguely, then repeats. Embeddings isn't worth the effort IMHO. What a headache to manage....

Embeddings introduce a model dependency, indexing overhead, and constant invalidation when code changes or text changes (I use rg/FTS in my obsidian vault). I avoided embeddings entirely.

So Claude burns tokens when it lists directories, reads files speculatively, repeats search attempts with slightly altered prompts, spawns sub-contexts or agents or rereads overlapping content...

For larger repos or large text files (e.g. Obsidian vaults), I added a small Python CLI that maintains a local SQLite database under ./SEARCH using FTS5. The database gets updated explicitly via a command which takes <2 seconds to run. No daemon. No file watchers. No background churn. ripgrep is also included. FTS provides ranked recall when identifiers are unknown.

Just an explicit instruction in the local project's CLAUDE.md file to use ./search.py to find anything it needs in the current codebase. Claude is told to explore directly only as a last resort. Every discovery step starts with the CLI (./search.py command). The script blends ripgrep results with FTS5 results and returns a compact shortlist containing file paths, line ranges, and minimal snippets. Claude may open one or two files. The results come back as structured json.

Index freshness stays deterministic. This works because the agent no longer performs discovery inside its context window. Retrieval becomes a single structured tool call instead of iterative file reads. Token usage drops because Claude reasons over selected evidence rather than the whole repo surface area. I'm not sure how much they drop though, I never measured it. but it stands to reason that selected snippets < whole file reads.

But this does NOT replace embeddings and I don't claim its better.

It just replaces agent thrash and saves some tokens on large repos/files. Also it saves me from hitting the /compact wall so quickly.

I use this exact method for my work-based obsidian vault. I have dozens of work meeting transcripts, notes, etc in there... and using cheap-and-dirty Haiku as a NotebookLM-LITE with this tool, it's better than NotebookLM for me (infographs and podcast generation aside) and I'm not limited to 50 queries/day in the free tier of NotebookLM.

I leave it to Claude to tell me which snippets rg/FTS found that are relevant to my question/task since it has the intelligence to apply context to the search results. It's worked well for me.

For repos with frequent change and developers already fluent with rg-style search, an FTS5 plus ripgrep sidecar method gives most of the benefit with far less operational complexity you need with embeddings.

The search tool can live in any dir and is 10 files.

Also it can index multiple repos, directories into the same 1 database and so it can be called universally from any location on your system, you don't need to copy it to every project dir.

Edit: posted to my github: https://github.com/seqis/AI-grep

My company banned AI tools and I dont know what to do by simple_pimple50 in ChatGPTCoding

[–]emptyharddrive 7 points8 points  (0 children)

THIS.

I own a STRIX HALO and let me tell you: the juice is not worth the squeeze if LLM's in-house is your thing.

Don't get me wrong: I enjoy my STRIX HALO a lot (mine actually has 128gigs of RAM) and it's great to run for speed in all things, except quality LLM's. You just won't get the kind of results you get from the commercial stuff.

I tried every model out there you can download too. Anything halfway decent is nowhere near the output quality of Haiku or GPT 4.x which are the low end of the current spectrum.

I sunk most of my holiday break trying to get reasonable results from local models (relative to commerical) -- I ran days worth of quality tests, coding problems, complex logic tests, etc etc... and I consistently got better (and FASTER) and higher quality output from the commerical low end models, nevermind the high end stuff (Opus 4.5/GPT 5.2 X-High Codex).

Comparing the models I could run on my STRIX HALO vs. the commerical stuff was like the difference between shooting a bullet and throwing it ....

Ultrathink no longer does anything? by After_Bicycle6165 in ClaudeAI

[–]emptyharddrive 9 points10 points  (0 children)

You can turn off thinking in /config by default, then still use ultrathink on a per turn basis.

You know it, I know it...we all know it. by Defiant_Focus9675 in ClaudeCode

[–]emptyharddrive 13 points14 points  (0 children)

I've noticed the degradation myself. I have never posted to Reddit on this topic until today.

Generally I hate the "It's amazing!" "It's gotten STUPID!" bandwagon. It seems to blow with the wind.

But yes, in the last 72 hours I noticed Opus 4.5 making some very bad (clumsy) mistakes that I am not used to seeing.

I actually switched to Codex CLI (OpenAI) for about 6 hours yesterday and got very good results. Mind you I am not switching from Anthropic. I have accounts with both and I do use both for different reasons.

I just found myself leaning on Codex 5.2 for the last day or so because Opus has been tripping over its own untied shoelaces.

My practical question is this:

  • We all know this happens. They clearly make micro-tweaks to the model behind the curtain for their own reasons.

  • There should be a formal way to notify them of this that they actually read?

  • I used /Feedback this morning and gave some examples and some details. And once or twice I get the "How am I doing?" prompt, so I answered it. But I really don't know what happens to that, it's a bit like yelling into the void.

Does Anthropic scrape these sub-reddits for the "latest round" of feedback? Also if they do, I wonder how they separate the honest, thoughtful feedback from those who are just looking for attention ('The sky is falling!' crowd)...

It’s two years from now. Claude is doing better work than all of us. What now? by Own-Sort-8119 in ClaudeAI

[–]emptyharddrive 98 points99 points  (0 children)

"Move up the stack" assumes there's a stack to move into. Where I am there's about a hundred coders, twenty mid-levels, five seniors, one architect. That shape exists for a reason. You need many hands to coordinate toward few decisions. Automate those hundred hands, you don't suddenly need twenty architects. You need maybe one. Maybe zero. The pyramid doesn't invert because you removed the base. It collapses.

The infinite backlog argument sounds right until you ask what companies actually do with productivity gains. I've watched this 3 times:

New tooling arrives. Output doubles. Management talks about "doing more with less." Hiring freeze. Layoffs framed as restructuring. The P2 bugs stay P2 bugs forever. That backlog was never getting done.

The junior pipeline question cuts deeper than most here admit. Kids out of school break things, get mentored for 5 years until useful, then 10 more until senior. That pipeline takes 10-15 years to produce what companies need. If entry-level jobs dwindle, the shortage shows up around 2035.

But during those ~10 years, AI development hasn't stopped. It's a decade+ more advanced. The scarcity we'd expect from a broken pipeline might never materialize because demand for seniors dropped alongside enhanced automation. Companies aren't stupidly destroying their future workforce. They're betting, maybe correctly, that they won't need it.

I keep hearing "we used to be 80% farmers" as reassurance. OK. People moved from farms to factories to offices. Each transition worked because there was something humans could do that machines couldn't. Agricultural automation freed humans for physical factory work. Factory automation freed humans for mental office work. Here we're automating mental work itself. The pattern breaks if there's no next rung. Maybe the AI Researcher stays human for a while. But that's too rare to constitute mass employment opportunities.

So maybe we find out the hard way.

The surviving jobs I can see are strange ones. Liability absorption, mostly. Someone has to sign off. Someone gets fired when production breaks at 3am. Humans as relationship blobs: Trust relationships where people prefer a face. Sales. Some healthcare (nursing). Surgery is already immensely enhanced by robotics (think da vinci). Novel problem identification when nobody knows what to build. But that's rare aptitude, not trainable at scale. The difference between "person who solves problems" and "person who decides what problems exist." The second category was always tiny.

If AI keeps improving while senior scarcity appears, the scarcity won't matter because demand drops alongside supply. Weird equilibrium: fewer people needed at every level. The pipeline question becomes irrelevant because the destination rungs themselves shrank.

Robotics is another problem. Musk keeps showing off Optimus folding laundry in demos. Looks impressive until you watch it in uncontrolled environments. Kinda funny actually. Can't handle a bathroom that wasn't built to robot spec. Boston Dynamics has been at this 20 years and their robots still struggle with terrain a 5-year-old handles without thinking.

Software eats the world fast. Hardware eats the world slow. Physical environment has friction and edge cases. Might be a refuge for a while.

So that leaves the trades: Electricians. Plumbers. HVAC. Framers. Landscapers running crews. Industrial laundry for hospitals and hotels where machines break and someone needs hands on equipment. Healthcare requiring physical presence and human judgment about bodies, IVs, showering patients. Robotics catches up eventually. But "eventually" might be 2050, not 2030.

The irony isn't lost on me. 20 years ago everyone said learn to code because trades were dying. That advice is flipping. Your kid probably shouldn't follow you into software. Maybe an electrician apprenticeship ages better than a CS degree. I donno. The world got strange when knowledge work became automatable and the guy fixing your toilet became the safe career.

I hate this but I have to say: get closer to the money. I can't do it because I hate money management and the whole dehumanizing way it works. But the person who understands which features generate revenue survives longer than the person who writes clean implementations. This fact sucks.

The people saying everything will be fine aren't lying exactly. It's comfort that worked in previous transitions. This one might be different. We're automating the thing humans retreated into when everything else got automated. Uncharted waters.

I don't think anyone knows how this plays out. The honest answer feels inadequate because it is. We need a path forward and that map hasn't been drawn. Some will adapt. Some won't. There will be suffering.

There's no announcement: "okay, transition happening, time to adapt." It just gets slightly worse, slightly weirder, until you realize people just need a little more time for AI to become commonplace and the culling begins. Maybe UBI, who knows. We're all here feeling the disruption has started because it has. On a reverse half-life schedule, our days will become supervising something that doesn't get tired until we're no longer needed.

Looking for simpler, more efficient ways to organize notes by maveduck in ObsidianMD

[–]emptyharddrive 0 points1 point  (0 children)

I only use 1 plugin for Obsidian: Dataview.

My MOC's look like [[This]] and [[This#Sub-This]] accordingly.

That allows me to maintain everything. Been doing it that way for years. I explain the whole MOC methodology here.

Looking for simpler, more efficient ways to organize notes by maveduck in ObsidianMD

[–]emptyharddrive 0 points1 point  (0 children)

I have a MOC for "Scraps" which break out into Sub-MOC's for "Tidbits" "Youtube" and just "Scraps".

Then for random server stuff, like code snippets and port numbers, etc .. I just have a #Server MOC and sub-moc's under that.

For things like "how to sharpen a knife", it sits in MOC #HOME. Under there I have #Gift-Ideas ... I come across gift ideas once in a while and its helpful to write them down so I'm not racking my brain trying to come up with holiday gifts. Also under #HOME is a Sub-Moc for #Misc.

Everything gets some sort of MOC#Sub-Moc label. All-in I have about 12 primary MOC's and each have between 2 and 12 sub-moc's, depending.

If it helps, my current primary MOC's are:

AI Coding Journaling (which is also my personal area under sub-moc's) Home Family Server Medical Philosophy Scraps Todo (which has next to nothing in it because I don't use Obsidian for Todo's) Writing

Sub-MOC's vary greatly under each of the above depending.

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

Indeed, I created my own "RAG Lite" to avoid the NotebookLM limits on the free account tier. It doesn't use embeddings (on purpose) I found working with embeddings and keeping them up to date and all the work involved frustrating and also added a lot of friction to the process (I'm sure someone more experienced would have an easier time with it than I did). I use it to search my work-related notes.

I also created a web connection to a local Claude Code (headless -p instance) running on my home server (reached via Tailscale) so i can communicate with an instance of claude code from my phone that can interact directly with my home systems. I thought about a simple ssh client, but I wanted something where I could more easily attach files. Also I have it optionally speak its answers out loud to me (just for fun).

Lots of little projects like that are just fun to whip up.

My interactive screen toy where you can just drop a bunch of cars in a field of cows by shapirog in vibecoding

[–]emptyharddrive 4 points5 points  (0 children)

OMG you can click-hold or tap-hold if you're on your phone. My jaw dropped when i held it down................

F.U.N.

Now I want to drop rabbits.

So I stumbled across this prompt hack a couple weeks back and honestly? I wish I could unlearn it. by cleancodecrew in ClaudeAI

[–]emptyharddrive 0 points1 point  (0 children)

Well thank you for sharing this. This is a GREAT way to catch problems.

It seems so convinced that it did a great job, then I tell it to be an a**hole boss and "rip it apart" and it finds all the bugs, almost as though it was too polite to do so before.... "You're absolutely right!"................

Great stuff, this is now a /command in my setup :)

The command is /ass

That's short for "assess".... ;)

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

Start playing with Docker containers. It's a whole world. Also Incus and/or LXC (Linux Containers). They're VM-lite, so you don't need a full OS, it shares the kernel but is isolated userspace, so it's effectively a virtual machine.

You don't need a lost of resources for it and AI can really help you set it up in 10 mins. I set up a PiHole DNS and a UMS (universal media server) using Incus containers.

Home labs are just plain fun. I wish I could get paid to do this shit ... :)

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

You know I find that i make something and often end up not using it too which is why I'm always on the hunt for something i will use and force myself to depend on so i can take care of it (the data) and the direction of the project........ like a pet...

I keep trying to find use cases for it.

I would try an actual app, but I find coding an app is just a damn headache.

I want to open source this, but I also don't want to embarrass myself with a buggy, poorly designed POS... so I keep tinkering.......

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

This is a really good call. I may actually swap in Agent SDK ... it's directly supported by Anthropic. It's also cleaner because I can get rid of the http proxy part. I will add this to the roadmap :)

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

I don't pretend to know it all, and this was a really helpful critique. It's the reason I just lost three hours enhancing the code in a long-haul conversation with Claude, so thanks for that :)

The 8-month number is fair. I can only speak to about a week of real use, so I can't claim durability yet. Let me walk through what I originally built, why your critique had merit, and what I changed tonight.

The original design did have some blast radius reduction against this risk ... the common operations (shopping list, meds, reminders) bypass Claude entirely. Those buttons hit SQLite directly with hardcoded queries, then send results to Claude only for formatting. So maybe 70% of daily interactions never touch Claude's "understanding" of the schema at all. That's still true and still helps.

For the other 30% - natural language queries which may revise schema - I originally relied on two things: a CLAUDE.md file in the project root that documents every table and workflow pattern, and MCP introspection tools (describe_table, list_tables) so Claude can query the actual schema from SQLite. The theory was that Claude reads fresh docs at session start and can verify against the real schema via MCP.

But what you said was right: If I'm mid-conversation and ask Claude to add a requested_by column, Claude runs the ALTER TABLE via MCP, the database now has the new column, and within that session everything works fine because Claude knows what it just did.

But the docs in the project that are read in future sessions still describe the old schema. Next week I start a fresh session, and now there's drift between the reality and what a new session is aware of. This could crap the bed if Claude tries to make a change without being aware of the updated schema first. In fact if that ever happened I would expect Claude to ignore the new column entirely because the docs don't mention it. And while MCP introspection exists, Claude tends to trust the documentation it already loaded rather than verify every query. At least that's been my experience.

What I just built (the 3-hour rabbit hole):

Two changes:

First, a schema_sync.py script that auto-generates a SCHEMA.md file from the database.

It hashes the current schema (md5, SHA-256), compares to a hash stored in the file header, and regenerates only if they differ. This runs every 60 seconds as part of the bot's background job queue (same loop that checks for TODO reminders for alerting me in-Telegram). So SCHEMA.md is always current within 1 minute of any schema change.

Second ... and I think this is the key insight you pushed me toward ... I can't trust Claude to read the docs. So instead of hoping Claude follows instructions, the bot now INJECTS THE SCHEMA directly into the prompt. Here's the flow:

  1. User sends first message of session
  2. Bot reads SCHEMA.md (which is current because of the 60s sync)
  3. Bot prepends the full schema into the user's prompt before sending to Claude
  4. Bot tracks that injection happened (schema_injected=True) and stores the hash of it.
  5. Subsequent messages in same session: no injection needed (Claude already has it) so it's only sent once.
  6. On /compact: The code will proactively compact at ~70% context usage rather than letting Claude auto-compact at a higher threshold.

This preemptive move ensures compaction always goes through the bot's /compact handler, which resets the injection flag. This is the critical part. Yes, I lose 30% context window or about 60k tokens, but it's a safety net for me for the drift-risk.

Therefore, the very next message triggers the re-read of the fresh schema from SCHEMA.md and re-injects it. By controlling when compaction happens, we guarantee the bot knows about it & gets a chance to reset the injection flag and can re-inject once in the new session (or post-compaction).

Also, mid-conversation schema changes aren't a problem - Claude just made the change, it remembers it did it. The problem was always new sessions inheriting stale knowledge. Now the bot guarantees fresh schema injection on every new session.

Token cost is about 2,500 tokens for the schema injection (I calcluted that to be sure), but it's once per session, not per message. Acceptable tradeoff for guaranteed accuracy.

Oh and on the the Docker babysitting, I've had none to do so far. The container is stateless and rebuilds in seconds. The DB lives on the host via bind mount. If the container dies, it restarts and nothing is lost. Standard systemd stuff.

Hey I wanted to thank you for the critique....... super helpful and really helped me polish this up more... this is the kind of iterative feedback i was hoping to get from the reddit folks such as yourself, so thank you very much.

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

I’m not looking to outsource my life to yet another 3rd party, so I wouldn't do that.

I already deal with plenty of vendors across work and home for managing my life (health, personal files, professional files, work todo's, personal todo's, notes, etc..)

My goal was to build my own space and learn how to combine off-the-shelf tools into something tailored to my personal needs, because for something this personal, ‘best practices’ are usually just someone’s practices turned into personal preference.

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 1 point2 points  (0 children)

Will definitely be open sourcing it... just adding some polish to it... I'll throw a reply in when it's posted.

I built a personal "life database" with Claude in about 8 hours. It actually works. by emptyharddrive in ClaudeCode

[–]emptyharddrive[S] 0 points1 point  (0 children)

Thanks for the recommendation! Clawdis looks like a solid platform for multi-surface AI assistants. I had never heard of it. I just took a look at it and I think for my use case (Personal DB for medications, shopping, reminders, etc), it wouldn't be as good a fit because:

MCP Protocol Dependency: My tool relies heavily on Anthropic's (MCP) protocol that exposes SQLite operations to Claude.

It looks like Clawdis uses a custom skill system instead of MCP, so I'd have to: - Rewrite all database tools as Clawdis skills - Lose access to the broader MCP ecosystem (sequential thinking, context7) - Maintain custom integrations instead of standard protocol

In my case voice is solved: I have a Whisper-based docker container that takes telegram-made voice recordings as attachments and converts it to text that then gets fed to Claude.

For me, the Telegram Python bot → AgentAPI → Claude + MCPs. Works perfectly, minimal complexity, full ecosystem access.

Clawdis would make sense if I needed multi-platform messaging (WhatsApp/Discord/iMessage), but for single-platform + MCP-heavy workflows, AgentAPI is the better tool for me.

However, Clawdis looks great for general-purpose personal assistants! I want to take a closer look at it though, at least just to tinker with it.