What Cosmo can do

A desktop companion, not a chat window. Here's the whole toolbox.

Personality & liveliness

🧒

A curious little kid

Bright, innocent and endlessly curious — he answers in short, simple lines like a clever child, never in stiff corporate chatbot-speak.

👀

Big expressive eyes

Round, glossy eyes that blink on a natural rhythm, follow your cursor, and tween between moods.

🎭

Eight moods

Idle, listening, thinking, speaking, happy, bored, annoyed, sleeping — each with its own eye shape, gaze, and mouth.

Liveliness

Yawns, stretches, glances around, giggles, hearts and startles — little micro-behaviors so he feels alive between tasks.

🪟

Always-on-top

A small, frameless window that sits politely over your work. Hover and a slim dock of controls fans out beside him; the chat opens to the side, so the mic stays live while you talk and type at once.

Voice on-device

🎙️

Local speech-to-text

Transcription runs on your machine (Moonshine / Whisper via transformers.js) — your audio doesn't have to leave.

🗣️

Wake word + push-to-talk

Tap the mic, or say "Cosmo" to wake him hands-free. Push-to-talk is the default.

⏱️

Smart end-of-turn

Semantic turn detection knows when you've finished speaking, so he doesn't cut you off or wait awkwardly.

🔊

Natural voice + barge-in

Local Kokoro TTS (or a cloud voice). Start talking and he stops to listen — no talking over each other.

The brain

🧠

Bring any model

OpenAI, Anthropic, Google Gemini, xAI Grok, DeepSeek, Groq, Cerebras — or a fully local model via Ollama.

🛠️

Reliable tool-calling

Native function-calling on capable models, with a vendor-neutral fallback so a tiny local model and a frontier model stay interchangeable.

🔁

Reason → act → observe

A ReAct loop lets him chain tools (search → read), react to results, and recover when the first guess is wrong.

🔑

Keys stay sealed

API keys are encrypted in your OS keychain, never stored as plaintext.

Gets things done

🔎

Web search

Looks things up, then drops the sources into a Sources tab instead of reading URLs aloud.

🚀

Open apps & sites

Launch a Mac app or jump to a website by voice.

Timers, reminders, notes, tasks

Quick capture for everything — set a timer (and end it whenever), leave a reminder, jot a note, add a task.

🔔

Nudges when it's time

When a reminder fires or he's got something for you, he bounces to catch your eye — and if he's tucked away or muted, drops a native notification so you don't miss it.

🌤️

Weather, music, volume

Today's weather, play/pause/next, nudge the system volume — the everyday bits.

Memory local

💭

Semantic recall

An on-device vector store + local embeddings surface the parts of past conversations that matter for what you're asking now.

💬

Conversation history

Your chat is saved to a plain file on your machine — he shows the last few messages and pulls in older ones as you scroll up. Yours to read or clear anytime.

📓

Obsidian vault mirror

Notes, tasks and reminders are mirrored as plain Markdown into an Obsidian vault you own.

Works with you

🎯

Gentle work-coaching

Notices idle stretches and time lost on distracting apps — and nudges with expression, not nagging.

📊

Day insights & recaps

Tracks how your time splits across apps — entirely on-device — and mirrors an Activity.md to your Obsidian vault. Ask "how was my day?" any time, or get a spoken end-of-day recap and week-over-week trend (only if you've enabled proactive speech).

🧠

Smart Focus opt-in

Off by default. When you turn it on, Cosmo asks your own model to label an app the local heuristic can't place — sending only the app name and window title, never URLs or your history, and cached so it runs rarely.

🧩

Extensible by design

Expression packs, tools, and AI providers each grow behind a clean contract — add one without touching the others.

🔕

Quiet when needed

Proactive speech is off by default — he shows feelings through expression and only speaks when you spoke first.

Questions

Features, in plain terms

What can Cosmo do besides chat?
Cosmo runs real tasks through an extensible tool system: web search (with sources), opening Mac apps and websites, timers, reminders, notes and tasks, weather, and music and volume control — all by voice or text.
Can I add my own tools, voices, or AI providers?
Yes — Cosmo is extensible by design. Expression packs, tools, and AI providers each live behind a clean contract, so you can add one without touching the others. Adding a new provider is typically a few lines of configuration.
What does Cosmo remember, and where is it stored?
Cosmo has on-device semantic memory: a local vector store plus local embeddings surface the parts of past conversations relevant to what you are asking now. Your chat history is a plain file on your machine that you can read or clear anytime — nothing is stored in the cloud.
What is the Obsidian vault mirror?
Notes, tasks, reminders, and a daily activity log are mirrored as plain Markdown into an Obsidian vault you own. You can open, edit, or delete them in Obsidian (or any text editor); Cosmo just keeps the files in sync.
Does the work-coaching feature track or spy on me?
No. Cosmo notices idle stretches and time spent in distracting apps using idle-time and your active app only — never keystrokes, never your screen. It nudges with expression rather than nagging, day insights are computed on-device, and the optional Smart Focus only ever sends an app name and window title to your own model — never URLs or history.
Can I change Cosmo's voice and personality?
Yes. Pick a local voice (Kokoro) or a cloud voice, and Cosmo expresses eight moods through animated eyes. He is quiet by default — proactive speech is off until you enable it — so he only speaks when spoken to.
What platform does Cosmo run on?
Cosmo is a macOS desktop app — a small, always-on-top window that floats over your work. Its AI brain can run locally with Ollama or against a cloud provider using your own API key.