✨ v0.1.0 · now a real Mac app

a tiny buddy that lives on your Mac.

Twin floats on your desktop, knows roughly what you've been up to, and keeps all of it on your machine.

summon it anytime with ⌘ ⇧ spacefree · open source · macOS 13+

why local

your stuff stays on your laptop.

Twin keeps everything it knows about you in a DuckDB file at ~/.twin/twin.duckdb, right on your Mac. No accounts, no sync, no cloud database, no analytics. Twin has no server of its own, so there's nowhere for your data to go.

Twin is a real app anyone can install, not somebody's personal script. Everyone who installs it gets their own brand-new twin.duckdb, created on their Mac the first time they run Twin. Nothing is shared, synced, or pooled between users, so your data never mixes with anyone else's, and the database itself never leaves your machine.

What leaves your Mac: when you chat, one request goes straight to the AI provider you picked (Anthropic, OpenAI, Google or xAI) with your message, your name, the current time, today's calendar event titles and times, and a fuzzy spending summary like "spent money on food earlier this week". Amounts, balances, account numbers, merchants and raw SMS never leave, and Twin scrubs every request before it's sent. Ask about your screen and only a one-line description goes along. The screenshot itself is deleted on your Mac right away.

🦆
twin.duckdbyour transactions, on disk, on-device
stays home
🔑
your API keykept in the macOS Keychain, not a file
stays home
🫧
fuzzy summary"got paid yesterday", never "$1,240"
built locally
💬
your AI providerClaude, GPT, Gemini or Grok. your message, name, today's events + that summary
only exit
🚫
our serverswe don't have any. genuinely.
never

stuff it does

small buddy. surprisingly handy.

No dashboard, no onboarding flow, no 14-step tour. It's a little bubble on your screen that talks back.

one hotkey away

Hit ⌘ ⇧ space from anywhere and Twin pops up in a floating bubble. Hit it again and it goes away. No app to switch to.

remembers what you've been up to

Every time Twin starts, it pulls new bank texts from Messages into a local DuckDB file and checks today's calendar, so it has a rough picture of your day without you explaining it.

a little bit weird

Twin itself is warm and easygoing. Want more flavor? Swap in a sly shadow-ghost, a hype-machine spark, or a sleepy moon ghost with one click. None of them write you five-paragraph essays with headers.

fully open source

Every line is on GitHub. Read it, fork it, rip out the parts you don't like, give it a new personality. It's plain Python, not a black box.

peeks at your screen (only when asked)

Ask "what am I looking at?" and Twin takes one quick screenshot, reads it on your Mac, and deletes it right away. The AI only ever gets a one-line description, never the image.

bring your own AI

Claude, GPT, Gemini or Grok. Paste a key from whichever you like and Twin talks to it directly. Your key lives in the macOS Keychain, not in some file.

pick a vibe

five moods. same buddy.

Twin comes in five flavors. Same local brain, different attitude. Colors below are the exact palettes the app uses.

Twindefault
hanging out
hey friend! what's up?

The one you get out of the box. Warm, cheerful, easygoing, like a good friend who's happy to help. Light and kind, no big act.

/persona twin
Shade
lurking behind windows
Heh… you rang, friend? Ask me anything. Cmd+Shift+Space and I vanish.

A mischievous shadow-ghost. Grins a lot, teases a little, still firmly on your side.

/persona gengar
Ember
all fired up
Hey hey, friend! Ember's all fired up. What are we doing today?

A bright little spark who hypes you up and makes errands sound like an adventure.

/persona ember
Luna
here whenever you need me
Hi friend. Take a breath. What's on your mind?

Soft, patient, unhurried. Talks about money without judgment and helps you breathe out.

/persona calm
Assistant
ready
Hi friend. How can I help?

No quirks, no puns, no ghost. Clear, neutral answers, all business.

/persona plain

Pick your buddy during setup, then switch anytime by clicking a different one in Twin or typing /persona <name> with the lowercase name on each card. Pick nothing and you get Twin. Want no personality at all? /persona plain switches to Assistant, the no-frills fallback.

get twin

download. drag. say hi.

Twin is a real Mac app. No terminal, no Python, no config files. Setup happens inside Twin and takes about a minute.

Twin for Mac

v0.1.0 · macOS 13 Ventura or later · Apple silicon · free and open source

01

drag it into Applications

Unzip the download and drop Twin into your Applications folder. That's the whole install.

02

open it (once, the long way)

Twin isn't notarized by Apple yet, so macOS will say it can't check it. Head to System Settings → Privacy & Security and click Open Anyway. After that it opens like any app.

03

set it up in the bubble

Pick your AI provider, paste your API key (it goes straight into your Keychain), tell Twin your name, and pick a buddy. Done.

what macOS will ask about

⌨️
Accessibilityso ⌘ ⇧ space works from anywhere
for the hotkey
📅
Calendarsso Twin can mention what's coming up today
optional
💬
Full Disk Accessso Twin can read bank texts in Messages for your spending summary
optional
🖥️
Screen Recordingonly asked for the first time you ask Twin to look at your screen
optional

You'll need an API key from Anthropic, OpenAI, Google Gemini or xAI. Twin sends your chats straight to whichever you pick. Skip any permission and Twin still works, it just knows a little less.