25 August 2026
Rather Dashing
Attentive followers of this project will have noticed a change in structure. This happened when I realised I was folding what should have been a Notion integration into the base application. Continuing down that path would have been a blunder, as Dixie would have shipped to users with preconceived Notions (pardon the pun) about how it should be used.
Dixie now has a local FastAPI app running separately from the assistant. It reads the same SQLite database, so it can inspect what Dixie is doing whether or not the assistant itself is running. Jinja2, server-rendered HTML, hand-written CSS, and a small amount of vanilla JavaScript. I considered Next.js and HTMX, but neither felt worth adding. Jinja2 keeps the whole thing in one ecosystem.
It started as a way to see memory. It now covers events, actions, failed actions, permissions, channel deliveries, adapter operations, health, reminders, configuration, and integrations.
Integrations can be configured, settings can be changed, memories can be forgotten, and scheduled reminders can be cancelled from the UI. Config-backed changes are written back with tomlkit, while things like quiet hours live in the database so they take effect immediately.
So far, all testing of Dixie has taken place on Discord. It is now time to extend that capability to Signal, as originally planned, and to Telegram.
