Jonathan Woodley

Project Alfred

2026Active

A personal assistant reachable from wherever I already am: a chat client, a panel on the wall, or just talking out loud. It remembers the conversation across all three.

One assistant, several front doors

Most assistant projects pick a single surface and live there. Alfred is built the other way round: the assistant is the constant, and Discord, an ESP32 touch panel and the Gemini Multimodal Live API are bridges into it. Ask it something in chat, then follow up out loud an hour later, and it is the same conversation.

That constraint drives most of the architecture. Every bridge has different latency, different input modality and a different idea of what a "message" is, so the core has to hold state that none of them own.

Memory that survives the context window

A live voice assistant runs out of context quickly. Alfred handles this with a four-tier memory compression system rather than a single rolling buffer: recent exchanges stay verbatim, older ones are progressively summarised, and durable facts get pulled out to retrieve by relevance instead of replaying every turn.

The effect is that a long-running assistant stops paying for its own history on every request, and stops forgetting things that mattered three days ago.

The Soul architecture

Persona is kept as its own layer rather than stuffed into a system prompt and hoped for. Separating the character of the assistant from its capabilities means the behaviour stays stable when tools, bridges or the underlying model change.

Acting on the house

Home Assistant integration turns it from a chat interface into something that manages an estate. It reads sensor state and acts on it, so a request gets answered with a change in the world instead of a paragraph about the change.

Role
Sole developer
Status
In active development
Bridges
Discord, ESP32 panel, Gemini Live API
Stack
Python, Gemini Multimodal Live, RAG, Home Assistant