Project FRIDAY is a personal multimodal operating system for macOS. You speak; it answers in under ten words and projects rich, live visual substance on screen: interactive 3D spatial scenes, asynchronous SVG charts, and deep desktop agency.
Most voice assistants trap you in endless spoken monologues. FRIDAY redefines the human-computer interface by keeping conversational speech under ten words while orchestrating a dynamic visual workspace.
Full-duplex conversational audio over Google Gemini Live WebSocket API (`gemini-3.1-flash-live-preview`). Streams 16 kHz PCM microphone capture and plays back 24 kHz Aoede voice with natural barge-in interruptions.
A Three.js plasma core that *is* the status display. Strict color-encoded states (Idle cyan, Listening blue, Thinking amber, Speaking emerald) with zero distracting UI chrome, gliding smoothly into spatial mode.
Asking for data mounts a shimmering skeleton card instantly. An asynchronous background agent synthesizes verified HTML โ hero figures, inline SVG charts, metric matrices โ and hydrates the card in seconds.
Live, persistent, interactive 3D scene graphs in Three.js with object-level delta updates (`update_3d_scene`). Plus markerless hand tracking via local MediaPipe HandLandmarker WASM and Tripo3D text-to-3D asset generation.
Hardware-level input automation via Quartz CoreGraphics (`CGEventPost`), multi-monitor coordinate projection, Accessibility tree inspection (`AXUIElement`), EventKit calendars, Apple Mail, and shell execution.
Gemini Live stays 100% responsive for voice turns by delegating heavy multi-step automation to specialized background models: Gemini 3.1 Pro for desktop workflows and Gemini 3.7 Flash for spatial scene planning.
How FRIDAY orchestrates low-latency voice, asynchronous widget generation, spatial 3D rendering, and native OS automation in a unified asynchronous event loop.
create_skeleton_widget. Shimmering placeholder mounts in 0 ms.
SVE renders live, persistent 3D scene graphs in Three.js. Rather than regenerating scenes, FRIDAY broadcasts incremental delta operationsโhighlighting, exploding, recoloring, or transforming objects on the fly.
Spoken commands like "Highlight the rotors and explode the hull" are converted into JSON delta operations:
Zero scene teardown. WebGL geometries and animation mixers persist continuously across turns.
Track hands through the webcam feed locally without specialized hardware or wearables:
How FRIDAY mounts live information cards without stalling conversational audio turns. Test the skeleton-to-card hydration flow below.
FRIDAY executes directly against macOS Quartz Window Server and Accessibility APIsโnot through slow sandboxed browser emulation.
Directly injects mouse clicks, drags, smooth trackpad scrolling, and keyboard shortcuts at the kCGHIDEventTap hardware layer. Operates seamlessly across multi-monitor setups without single-screen clamping.
Enumerates all active displays, Retina scaling factors, and Desktop Spaces. Maps normalized model coordinates (0โ1000) back to physical pixels for pinpoint click accuracy on any monitor.
When connecting remotely from an iPhone or iPad over Tailscale HTTPS, all shell commands and AppleScript executions suspend for one-tap biometric approval with a 45-second auto-deny timeout.
38 native tools exposed directly to the model. Search and filter by category to inspect parameters, descriptions, and execution context.
Follow the step-by-step instructions below to configure permissions, initialize your environment, and launch FRIDAY on macOS.
FRIDAY requires macOS 12 Monterey or higher (tested on Sonoma & Sequoia) and Python 3.10+.
Enable in System Settings โ Privacy & Security โ Accessibility for PyObjC CGEvent automation and UI element inspection.
Grant access for Quartz multi-monitor capture, FaceTime camera input, and MediaPipe hand gesture tracking.
The Project FRIDAY codebase is currently maintained as a private repository while core multimodal features and security sandboxing are finalized. The repository will be made publicly accessible on GitHub in an upcoming open-source release.
Copy the template and insert your Gemini API Key:
Access FRIDAY securely from your iPhone or Android phone without opening public router ports: