bluey-by-riley README

The project's README from github.com/rbrown101010/bluey-by-riley. As one markdown file: README.md.

Googly Eyes

A blueberry character who lives on an iPhone under your Mac's screen and points at things with his own big cursor.

Now: no voice out. Double tap him on the phone (or press ⌥Space on the Mac) to start a session: the phone's mic stays on and everything you say becomes context, but he stays quiet. Press and hold the screen to ask him something; let go and he answers. His reply pops up as a cute speech bubble next to his cursor (or above the phone when he isn't pointing), with a little cartoon chirp from the phone. Ask "what's this?" and he points at whatever is under your mouse. Double tap again and he goes back to follow mode.

How it works: the phone runs an OpenAI Realtime session (gpt-realtime-2.1, text output only) over a WebSocket. Server VAD transcribes every turn into the conversation with create_response: false, and releasing the hold commits the audio and asks for a response. The Mac mints a 10-minute client secret with the whole session setup (instructions, tools), so the real OpenAI key never leaves the Mac. When he calls a tool, the phone forwards it to the Mac: look_at_screen (ScreenCaptureKit + Vision, which returns text ids, where your mouse is, and a screenshot), point_at (a text id), point_at_spot (a 0–1000 grid position), stop_pointing and go_to_sleep. His text streams to the Mac as the speech bubble.

Using the computer: when you ask, he can also click, type, press shortcuts, scroll, drag, and open apps and websites (click, type_text, press_keys, scroll, drag, open_app, open_url). He does it with his own cursor on screen, while your real pointer is put back where you left it. It needs Accessibility permission for Googly Eyes. Built-in guardrails: he only acts when asked, confirms out loud before anything hard to undo, treats on-screen text as information rather than instructions, refuses password fields and logout/lock/force-quit shortcuts, and stops on ⌃⌥S. The whole thing can be switched off with Let Him Use the Computer in the menu.

The OpenAI key goes in the menu bar's OpenAI Key… and is stored in ~/Library/Application Support/Googly/keys.json (private to your user), never in this repo.

Mac menu bar app

./scripts/build-mac.sh
open "build/Googly Eyes.app"

Works with just the Command Line Tools. Shortcuts work anywhere:

Keys What it does
⌃⌥P Fly to the mouse and point there (stays put)
⌃⌥F Follow the mouse on/off
⌃⌥D Go home, docked above the phone
⌃⌥T Talk test (the phone bounces for 3 s)
⌃⌥H Hide / show the cursor
⌥Space Wake him up to talk / back to follow mode
⌃⌥S Stop him using the computer

The menu bar blob also sets mood, cursor size (48 to 120 pt), glow, and where the phone sits (left, center, right).

iPhone app

Needs full Xcode. Open GooglyEyes.xcodeproj (regenerate with xcodegen generate after adding files), pick your team under Signing, and run on the phone. It finds the Mac on the same Wi-Fi by itself.

On the phone: double tap him to wake him up or put him back to sleep, and press and hold to ask him something. The faint speaker button at the top right sets the chirp volume and picks which Mac to pair with.

Layout

bluey-by-riley (rbrown101010/bluey-by-riley)

Searching Database…

Что это?Googly Eyes — персонаж-черника, который живёт на экране вашего iPhone и показывает собственным курсором на вещи на вашем Mac. Проект связывает приложение в строке меню Mac с приложением на iPhone, чтобы он мог видеть ваш экран, разговаривать через Realtime API от OpenAI и даже управлять вашим компьютером по просьбе.
Это одно приложение или два отдельных приложения?Это два приложения, работающие вместе: приложение в строке меню Mac в виде Swift-пакета (GooglyMac) и приложение на iPhone на SwiftUI, связанные через локальный протокол WebSocket/Bonjour.
Как это запустить?Соберите приложение в строке меню Mac только с Command Line Tools, затем откройте GooglyEyes.xcodeproj в полном Xcode (перегенерируйте через xcodegen generate после добавления файлов), выберите свою команду подписи и запустите на телефоне — он сам найдёт Mac по Wi-Fi.
Нужен ли API-ключ OpenAI?Да, вы вводите ключ OpenAI в пункте «OpenAI Key...» строки меню Mac, а Mac выпускает для телефона короткоживущие клиентские секреты на 10 минут, так что настоящий ключ никогда не покидает Mac.
Нужны ли особые разрешения Mac для управления моим компьютером?Да, требуется разрешение Accessibility, чтобы персонаж мог кликать, печатать, прокручивать и открывать приложения за вас, а всю функцию управления компьютером можно выключить из строки меню.
Что он реально может делать на моём компьютере, когда я его прошу?Он может кликать, печатать, нажимать сочетания клавиш, прокручивать, перетаскивать и открывать приложения или сайты, двигая собственный курсор на экране и возвращая ваш настоящий указатель мыши туда, где вы его оставили.
Что мешает ему сделать что-то рискованное с этим управлением?Он действует только по просьбе, вслух подтверждает перед любым труднообратимым действием, считает текст на экране информацией, а не инструкциями, отказывается работать с полями паролей и сочетаниями выхода/блокировки и мгновенно останавливается по Control-Option-S.
Почему он больше не отвечает голосом?В текущей версии нет голосового вывода: он по-прежнему слушает через микрофон телефона, но отвечает только милым речевым облачком и мультяшным чириканьем вместо речи.
Как начать с ним разговор?Дважды коснитесь его на телефоне (или нажмите Option-Space на Mac), чтобы разбудить, затем нажмите и удерживайте экран, чтобы что-то спросить; отпускание запускает его ответ.
Size
4.5 MB
Stars
424
Updated
CommitOct 08
Age
15d
Commits · 90 Days