← Back to the floor plan

SOFTWARE / AI ASSISTANT / 2026

Desktop
Buddy.

A small animated colleague who walks along the edge of my screen, keeps an eye on my calendar, and answers when I say “Hey Buddy”.

ON MY DESKTOP01
Desktop Buddy, a 3D cartoon character in a dark suit, waving
Rigged and rendered in Blender.
Type
Personal desktop app (Linux)
Built with
Python · PyQt6 · Claude API
Voice
faster-whisper · Piper, on the laptop
Languages
English · Telugu

01 / THE PROBLEM

My day lives in too many tabs.

Meetings sit in Outlook, notes in documents, quick messages on my phone, and the small things I promise to do live in my head. Each tool is good on its own, but nothing connects them, and a reminder that pops up once is easy to miss.

I wanted one friendly place to ask “what’s next?”, one that notices when I’m about to miss a meeting and doesn’t need me to open another app. Desktop Buddy is that place: a character on my desktop, backed by an AI assistant that can use my calendar, reminders and notes.

02 / A CHARACTER, NOT A WINDOW

Something you notice without being interrupted.

Buddy walks along the side of the screen, waves when he has something to say, and after ten quiet minutes pulls up a chair and sits down. When he speaks, his mouth moves with the words.

Five poses of Desktop Buddy: standing, walking in profile, walking toward the viewer, and two waves
I modelled, rigged and toon-shaded him in Blender, then rendered each animation from seven angles so he can turn as he walks.

A character carries information that a notification can’t. You can see at a glance whether he’s listening, thinking, talking or resting, and a wave is far easier to notice, and far kinder, than a pop-up.

03 / WHAT HE CAN DO

Small jobs that add up over a day.

  • Meeting reminders that don’t give up. Ten minutes before a meeting he shows a card with the join link, and repeats it every two minutes until I join or dismiss it. With the first reminder, he gives a short briefing on what the meeting is about.
  • Minutes of meeting. When I join a call, he asks whether to record. If I say yes, he transcribes it on the laptop, including mixed English and Telugu, and writes structured minutes: decisions, action items and owners.
  • An assistant with memory. I can ask about my schedule, set reminders, or tell him things to remember. Notes and past minutes are stored in a small local database he can search later.
  • Everyday shortcuts. “Open Downloads”, “open Firefox”, fixing the grammar in a paragraph, or drafting a WhatsApp message that he sends only after I confirm it.
  • A companion while I code. Hooked into my coding tools, he tells me when a long task has finished, so I can step away without watching the terminal.

04 / “HEY BUDDY”

A voice that works in the languages I actually speak.

Voice runs in stages, so the expensive steps only happen when they’re needed:

  1. Listen for speech. An adaptive gate follows the room’s background noise and cuts the microphone stream into utterances.
  2. Check for the wake phrase. A tiny, fast speech model listens for “Hey Buddy”. Anything else is dropped straight away.
  3. Understand the question. A larger model transcribes the command. If I spoke Telugu, it is translated into English for the assistant, and Buddy answers in Telugu.
  4. Answer and speak. Claude writes a short spoken reply, and a local text-to-speech voice says it while his mouth moves. For a few seconds afterwards he listens for a follow-up, without needing “Hey Buddy” again.

A lesson from debugging

One day, voice replies suddenly became very slow. The code hadn’t changed: after a restart, the laptop’s microphone gain had reset to maximum, so the silence in the room sounded as loud as speech and Buddy never heard a pause. Measuring the signal found the cause in minutes. The fix was a lower gain plus a listener that re-learns the room by itself. It was a good reminder to measure before guessing.

05 / DESIGNED FOR TRUST

An assistant on your desktop has to earn its place.

Something that listens and knows your calendar has to be trustworthy by design, not by promise. A few rules shaped the product:

  • Audio stays on the laptop. Wake-word detection, transcription and speech all run locally. Microphone audio is held in memory only until it has been checked.
  • Ask first, every time. Meetings are never recorded automatically, and messages are never sent without an explicit yes.
  • Step back on calls. When another app is using the microphone, he stops listening, so colleagues saying “buddy” won’t wake him.
  • Secrets stay out of the code. API keys and calendar links live in the user’s own settings, never in the repository.

06 / HOW IT’S BUILT

A desktop app with an AI core.

The main building blocks
PartWhat it doesBuilt with
CharacterWalking, waving, sitting and talking animationBlender, pre-rendered sprites, PyQt6
AssistantAnswers questions and uses tools: calendar, reminders, memory, apps, messagesClaude API with tool use, streaming
MemoryRemembers notes and past minutes and searches themSQLite with full-text search
VoiceWake word, speech recognition, translation, speechfaster-whisper, Silero VAD, Piper TTS
MeetingsReminders, briefings, recording and minutesOutlook calendar feed, PipeWire, Claude

The project is covered by more than 200 automated tests that run on every change, including the voice logic, which is tested without a microphone by feeding in generated audio.

07 / TAKEAWAYS

Start with the moment, not the model.

The most useful features came from specific moments in my day: missing a meeting link, forgetting what was agreed on a call, wanting to ask something without switching windows. The AI model matters, but the product is in the details around it: when to interrupt, when to stay quiet, and when to ask permission.

I built Desktop Buddy in phases, with Claude Code as my pair programmer. Each phase ended with something I could use the next day, which kept the roadmap honest. Next, I want to add a settings window, simpler installation and a short demo video.

08 / TRY IT

Explore the code.

Desktop Buddy is open source. The repository includes the Python application, the Blender scripts that build and render the character, and the test suite. It runs on Linux (GNOME) and needs a Claude API key for the assistant features.