dan’s digital workshop
Back to projects

Alfred, part 1 — the why, the constitution and the foundation

Building a personal AI butler that lives on my desk, knows my notes and answers me out loud — the why, the rules, and how the foundation went down.

ClaudeObsidianPythonLocal LLM

Problem

I take a lot of notes — too many to remember — and capture was easy but reuse was hard. My notes vault holds the answers to most of my questions, but asking one meant remembering I'd written it at all. I wanted a command centre that could answer from my own notes, show me what matters at a glance, and let me talk to it.

Approach

Before any build, I wrote four rules the project has to live by: open-source, local, private, and $0 — no per-use API costs. I picked a middle architecture: a foundation of existing tools plus a command centre built panel by panel, with a read/write bridge between Claude and my vault, gated by approval. The core runs on the Claude subscription I already pay for, no metered API calls, which is what kept v0.1 free.

Outcome

Session 1 validated the bridge both ways — a question only answerable from my notes was found correctly, and a proposed note update landed behind the approval gate. The real test wasn't the dashboard, it was whether a beginner with two spare evenings a week could take this from idea to something real without it collapsing into months of planning and nothing running.

Lessons learnt

The constitution turned out to be the most valuable document in the project — it decided every hard call later, including the voice one. And the stated goal every session was deliberately small: ship one visible, working thing, not ‘make progress’.