Skip to content

JoshuaLevi/SpecDesk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SpecDesk

Stream your Mac desktop to Snap Spectacles — multi-monitor, virtual displays, low latency.

Demo: https://youtu.be/ucbPuiMp8xM?t=59

Website: https://spec-desk.com

Download (macOS DMG): Latest Release

What is SpecDesk?

SpecDesk lets you use your Spectacles as extra monitors for your Mac. It streams your desktop displays in real-time using WebRTC (LiveKit), with ~200-500ms latency.

There are two ways to stream:

  • Website (any OS) — Open spec-desk.com in Chrome/Edge, create a room, share your screen. Works on Mac, Windows, and Linux.
  • Mac app — A native macOS app with multi-monitor support, built-in virtual display creation, and hardware-accelerated capture via ScreenCaptureKit.

Features

  • Multi-monitor streaming — Stream multiple displays at once, positioned correctly in AR based on your display arrangement
  • Virtual display creation (Mac app) — Create extra screens directly from the app using native macOS APIs
  • Low latency — WebRTC streaming via LiveKit instead of screenshots or RTSP
  • Easy pairing — Room codes (ABCD-1234) or QR code scanning. No tunnels, no port forwarding
  • Browser fallback — No Mac? Share your screen from any modern browser

How It Works

┌─────────────────────┐      ┌─────────────────┐      ┌──────────────┐
│  SpecDesk Mac App   │      │  LiveKit Cloud   │      │  Spectacles  │
│  (ScreenCaptureKit) │─────▶│  (WebRTC SFU)    │─────▶│  Lens        │
│                     │      │                  │      │  (WebView)   │
│  Alt: Browser at    │      │                  │      │              │
│  spec-desk.com      │─────▶│                  │─────▶│              │
└─────────────────────┘      └─────────────────┘      └──────────────┘
  1. SpecDesk Mac app (or the website) captures your displays and publishes video tracks to LiveKit Cloud
  2. Spectacles Lens loads a WebView that connects to the same LiveKit room and displays the video streams
  3. For multi-monitor setups, display layout metadata is sent so the Lens positions each screen correctly in 3D space

Quick Start

Option A: Download the Mac App

  1. Download the DMG from Releases
  2. Open SpecDesk, create a room
  3. Enter the room code on your Spectacles Lens
  4. Select displays and start streaming

Option B: Use the Website

  1. Open spec-desk.com/share in Chrome/Edge
  2. Create a room and click "Share Screen"
  3. Enter the room code on your Spectacles Lens

Project Structure

SpecDesk/
├── lens/                # Spectacles Lens (Lens Studio project)
├── webapp/              # Next.js web application
│   └── .env.example     # Environment variable template
├── mac-app/             # SpecDesk macOS app (Swift/SwiftUI)
├── edge-functions/      # Snap Cloud (Supabase) Edge Functions
│   ├── get-room/        # Room lookup proxy
│   ├── get-livekit-token/ # LiveKit token generator
│   ├── upload-qr-frame/ # QR camera frame upload to Storage
│   └── decode-qr/      # QR code decoder
├── database/            # SQL migrations for Snap Cloud
│   └── migrations/
├── SETUP.md             # Full self-hosting setup guide
└── LICENSE

Self-Hosting

Want to run your own instance? See SETUP.md for step-by-step instructions covering:

  1. Snap Cloud (Supabase) — Database + Edge Functions
  2. LiveKit Cloud — WebRTC streaming
  3. Vercel — Webapp hosting
  4. Lens Studio — Configuring the Lens
  5. macOS app — Building from source

Tech Stack

Component Technology
Spectacles Lens TypeScript, Lens Studio, WebView, SpectaclesInteractionKit
Webapp Next.js 14, React, LiveKit Client SDK, Supabase
Mac app Swift/SwiftUI, ScreenCaptureKit, LiveKit Swift SDK, CGVirtualDisplay
Streaming LiveKit Cloud (WebRTC SFU)
Database Snap Cloud (Supabase) — PostgreSQL + Edge Functions
Hosting Vercel

Requirements

  • Spectacles: Snap Spectacles (5th Gen)
  • Mac app: macOS 12.3 (Monterey) or later
  • Website: Chrome, Edge, or any WebRTC-capable browser

Contributing

Contributions are welcome! Feel free to open issues or submit pull requests.

License

MIT — see LICENSE

About

Stream your Mac desktop to Spectacles - native macOS app

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors