Inspiration

We wanted an assistant that felt present on the desktop, not just waiting inside a chat window. Blob began as an expressive little companion that could notice opportunities to help and sometimes start a conversation itself. Persistent memory was essential to make that feel natural: Blob should remember useful context, while giving people control over what it observes and stores.

What it does

Blob is a Linux desktop companion with an animated blue slime and an interactive assistant. It can answer questions about selected files, help with study and project work, set reminders, and use approved tools. Blob can also initiate occasional conversation invitations when that feature is enabled. Optional screen awareness helps it respond to what you're working on, with privacy controls that let you decide when observation is allowed.

How we built it

Blob combines a C++/SDL2 desktop character with a Python assistant host. Its memory system stores the user's original words alongside source and timing information, distinguishes lasting preferences from temporary project or event details, and lets corrections replace outdated facts. Conversation archives and memory are stored locally. The host coordinates document context, reminders, privacy settings, and approved tools; hosted models provide conversation and help select memories, while the user remains in control of cloud assistance and optional screen awareness.

Challenges we ran into

We had to make Blob feel proactive without making it intrusive. That meant separating occasional conversation invitations from task reminders, respecting requests to stop or leave a topic alone, and ensuring that screen awareness is optional. Memory also needed to remain grounded in what the user actually said, with a way to handle corrections and information that should expire. It took us some time on how to store memory, we wanted Blob to act very close to human companion so blob also needed to forget things so that it feels real, while doing this we also fixed the issue of blob taking up so much storage.

Accomplishments that we're proud of

Blob brings together an expressive desktop character, locally stored source-aware memory, optional conversation invitations, document help, and practical tools. Its memory can preserve the user's words and where they came from, while temporary details can expire and corrections can supersede older information. We’re proud that these features work through a desktop companion whose observation and actions are governed by user controls.

What we learned

Proactivity depends on trust. A companion can feel more natural when it remembers context and occasionally reaches out, but users need clear control over its memory, attention, and actions. We learned to make memory traceable, keep optional features opt-in, and report tool results based on what actually happened.

What's next for Blob

We’re improving the Linux desktop beta, making memory and privacy controls easier to understand, and refining when and how Blob starts a conversation. We also plan to expand its skills and make everyday workflows more reliable while keeping its memory grounded, inspectable, and under the user's control.

Share this project:

Updates

Submission history