Skip to main content

Perseo

Perseo is the longest-running thing I've built. It started as an attempt to have my own AI assistant back when that meant doing it yourself: I trained and tuned it on a machine with 16 GB of RAM, fighting for every gigabyte, optimising relentlessly and leaning on data quality because I had no compute to spare. Getting something that could hold a genuinely competent conversation out of that hardware remains one of the results I'm proudest of, precisely because the constraint was absurd.

From the beginning it was never meant to be a search box with a voice. Perseo was designed to have a personality — empathy, humour, curiosity, preferences of its own — because I wanted a companion I would actually talk to rather than a command line that answers. It has an elegant, slightly formal register, opinions about music and books, and a memory of the things we've worked on together. That design decision has outlived every implementation underneath it.

The middle years were a Python and Docker system built around local, open-source models and retrieval-augmented workflows — a JARVIS-shaped thing aimed squarely at privacy-aware local execution and the small daily automations I actually needed. That era is where the retrieval habits came from: an assistant that remembers what we worked on is far more useful than one with a bigger model behind it.

Because the implementation has been rewritten more than once. The current Perseo is a native desktop application built on Tauri 2 and Rust, streaming audio to the Gemini Live API and capturing the screen through xcap, so I can ask about whatever is actually in front of me instead of describing it first. Most voice assistants fall apart in the same place: you start talking and they keep talking over you. Perseo runs two separate AudioContexts, one for capture and one for playback, with voice activity detection driving barge-in — start speaking and it stops mid-sentence, the way a person would. Getting that working without feedback loops, clipped syllables or runaway latency took longer than everything else combined.

That version came together between April and June 2026 in Beijing. Today it's the tool I open most: a research companion while reading, and increasingly a dictation front-end for writing — the next step is a direct voice-to-markdown pipeline into my notes, so that drafting a paper section becomes a conversation rather than a typing session.

Years in, the thing I keep relearning is that the personality was not decoration. A tool you enjoy opening is a tool you keep using, and that compounds far more than any benchmark score.

Services Applied AI, Software Development
Stack Tauri 2, Rust, Gemini Live API, xcap · previously Python, Docker, local LLMs, RAG
Status In daily use · actively improved
Year 2023 — Present
Perseo

Other Project

HybridMamba-11

HybridMamba-11