Skip to content
projects-hacksPublic

About

Your screen, explained. A Mac notch app that explains whatever is on your screen out loud and draws on it as it talks: learn something new, get through any app, fix an error, review your own work.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Repository files navigation

Buddy

Buddy

Your screen, explained.
Ask about anything on your screen. Buddy explains it out loud and draws on it while it talks.
Learn something new, get through an app, fix an error, or check your own work, from your Mac's notch.

Latest release macOS 14.2 or later Apple silicon and Intel MIT license Bring your own API keys

projects-hacks.github.io/buddy

Download Buddy for Mac

Asked why a binary search crashes, Buddy rings each line in turn while it talks, and draws a trace of the list 3, 7, 9 on a card beside the code, pass by pass, until low and high both reach the missing index three

A real answer, sped up. The words under the notch are what Buddy is saying.

What it does

Hold Control + Option and ask, or type. Buddy answers out loud and draws on your screen while it talks. To cut in, just say "Buddy, wait…".

LEARN
Explains anything on your screen
Code, a paper, a dashboard, a lecture video. It rings what it is talking about, one sentence at a time, and on LeetCode gives a hint before the answer.
Try: "why does this crash on the last element?"
LEARN
Teaches a topic from scratch, then checks you
The screen turns into a whiteboard and Buddy teaches it part by part. Explain it back and it marks what you missed.
Try: "teach me TCP from scratch"
GET IT DONE
Walks you through any app
One step at a time, pointing at each button, and waits while you click. Ask again later and it replays from memory.
Try: "how do I export this as a PDF?"
FIX
Explains the error you just hit
An error in a terminal or editor makes the notch glow. One tap and Buddy rings the line that caused it.
Try: tap Control + Option when it glows
REVIEW
Reviews your own work
In Excalidraw, draw.io, Miro or Freeform it marks your boxes and sketches what is missing beside them.
Try: "what am I missing in this design?"
REMEMBER
Remembers what you learn
Every lesson becomes a notebook page, and a map shows which ideas are fading. All on your Mac.
Try: open Map from the notch
A whiteboard titled How tcp works: client and server boxes, the three-way handshake, and the part being taught The student's explanation of binary search drawn in purple, with the mistake ringed in red and the missing stopping rules dashed
Taught from scratch on a whiteboard Your explanation back, gaps marked in red
The Notebook window: lessons grouped by day and a page with its trace card The map of what you know: ideas joined to related ideas, coloured by how well you remember them
Every lesson, a notebook page A map of what you know

Each question goes to the model measured best for it, Claude Sonnet, Opus or Gemini Argon. A question costs one to six cents; hover Spent today in Settings to see where it went.

Install

The three install steps: drag Buddy onto Applications; open Buddy and click Done when macOS says it cannot check it; then in System Settings, Privacy and Security, click Open Anyway

The download window shows these same steps. macOS asks for Open Anyway once, because Buddy is not notarized. Setup then asks for your name and keys and walks through the permissions it needs; after that Buddy updates itself.

Anthropic key: recommended Gemini key: optional Deepgram key: optional, for a natural voice and sharper hearing

Or with Homebrew:

brew tap projects-hacks/buddy https://github.com/projects-hacks/buddy
brew trust projects-hacks/buddy
brew install --cask projects-hacks/buddy/buddy

Step by step, with troubleshooting: docs/install.md.

Using it

Keys Does
Hold Control + Option Ask out loud; your words show under the notch
Control + Option + T Type a question; Return sends, Shift + Return adds a line
Say "Buddy, wait…" while it talks Cut in with a question, or "Buddy, hold on", "go on", "Buddy, slower"; anything said without its name is ignored
Hover the notch The last lesson with Replay, the day's chat, and Notebook, Map and Settings in its top row
Hover the glow, then Explain this error (or tap Control + Option) When the notch glows red and says "An error on screen.", explain the error that just appeared
Esc Clear the drawing, or stop a walkthrough

Everything else is in the guide: How to use Buddy.

How it works

flowchart TD
    ask([Spoken or typed question]):::input --> prep
    subgraph prep [On the Mac, in about 0.7 s]
        capture[Screen capture and text index]:::device
        sort[Question sorter]:::device
        recall[Learning memory]:::device
    end
    prep --> route[Router]:::logic --> model{{Sonnet, Opus or Argon}}:::cloud
    model -->|drawing program, streamed| play[Voice and pen, sentence by sentence]:::device
    play --> you([You hear and see it]):::input

    classDef input fill:#fde68a,stroke:#b45309,color:#111
    classDef device fill:#bbf7d0,stroke:#15803d,color:#111
    classDef logic fill:#bfdbfe,stroke:#1d4ed8,color:#111
    classDef cloud fill:#e9d5ff,stroke:#7e22ce,color:#111
    style prep fill:#f0fdf4,stroke:#15803d
Loading

The model answers with a short drawing program, and the first sentence is spoken while the rest is still being written. Details in docs/how-it-works.md.

Privacy

What Where it goes
Screen Captured whole only while you hold the keys or ask, and dropped if no question follows, or after a click while a walkthrough waits; those checks are compared on the Mac and discarded
Errors While a terminal, editor, Xcode or a coding judge's page is in front, after Return, a run shortcut or a click, the front window alone is read on the Mac (its accessibility text, or text recognition on the part that changed) to spot an error. Nothing is stored; fingerprints of errors already seen stay in memory until Buddy quits, and nothing is sent until you accept the offer
Voice The microphone is open while the keys are held and, so you can talk over it, while an answer plays; then only words said to Buddy by name are acted on. A small mic beside "explaining" in the notch shows it is open, Esc or Stop ends the answer and closes it, and with a Bluetooth headset as the microphone it listens through the Mac's own microphone instead, so the headset is never switched to call quality. Heard by Deepgram when a Deepgram key is set; otherwise transcribed on the Mac
Teach it back After you ask to explain a topic ("let me explain X back to you"), the microphone stays open hands free until you are done: you say "I'm done", press Return, go quiet for eight seconds, or three minutes pass. The red meter and "Listening" show the whole time, and Esc or Cancel throws it away. Heard like any question (Deepgram with a key, on the Mac without); what you said goes to the model that answers board turns (Sonnet first with an Anthropic key) to be drawn and checked, and is kept on the board's Notebook page and, as every answer is, in the diagnostic log
Lectures When you ask while a video is in front, the minute before the playback time is read from the page's transcript or YouTube's captions (only the video's id goes to YouTube). Where there is none, and once you allow System Audio Recording, the front app's own sound is turned into words on your Mac while it plays, never sent anywhere for this, filed by the video's playback time so a question at any point you watched gets the minute before it. The words stay in memory for that app while Buddy runs, and the last 90 seconds of sound until you switch apps (a small screen glyph shows in the notch while sound is kept), never on disk. They are used only when you ask about the video, meaning a player's time is on screen or you ask what was said, and keep the video's voice from being taken for yours. Only when too little was heard on your Mac, as right after a video starts, or your Mac cannot recognise speech itself, is the newest 65 seconds of sound sent to be transcribed when you ask (by Deepgram with a key). For a browser that is all its tabs. Never the microphone; never calls, meetings or music apps, and any app using a microphone counts as a call
Sent The screenshot and question, to the model that answers, with the lecture's last minute when there is one
Kept Transcripts, memory and how-tos in ~/Library/Application Support/Buddy; keys in the Keychain
Notebook Each finished lesson as a page in ~/Library/Application Support/Buddy/Notebook: the question, what was said, the cards drawn, and a small JPEG of only the part of the screen that was marked, cut from that question's screenshot (never the whole screen). A board lesson or a teach-back is one page when you leave the board, the whole board kept as one drawing with what was said. About 70 to 150 KB a page, the picture cut from the display's own pixels so code stays sharp, under 2 KB for an answer without a drawing. A cancelled question keeps nothing. Never uploaded; the Notebook window shows each page's size, deletes a page, a day or everything, and can stop keeping new lessons
Map Drawn on the Mac from memory. The first time it opens, ideas with no links on record yet (memory from before 2.0) have only their names and one-sentence summaries sent to Claude Haiku, 20 ideas a call, once, to find how they relate; no lesson, question or screen goes with them
Analytics None
Building from source

Needs Xcode 16 and a self-signed code signing certificate named Clicky Local Dev (Keychain Access > Certificate Assistant > Create a Certificate, Self Signed Root, Code Signing). The name predates Buddy and has to stay: installed copies only accept updates signed with it.

git clone https://github.com/projects-hacks/buddy.git
cd buddy
zsh scripts/build-local.sh

Logs go to ~/Library/Logs/Buddy.log. Releases: docs/releasing.md. Source map: AGENTS.md. Tests: scripts/.

Credits

Started as a fork of Clicky by Farza (MIT). Drawing uses rough.js and perfect-freehand (MIT). Licensed under MIT.

About

Your screen, explained. A Mac notch app that explains whatever is on your screen out loud and draws on it as it talks: learn something new, get through any app, fix an error, review your own work.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages