eko

One laptop.
Every headphone.

eko echoes your computer's audio to every phone nearby over Wi‑Fi, so everyone listens on their own headphones. No accounts, no cables, and you approve every device.

eko for Windows Download

No macOS build yet. iPhones listen in Safari by scanning the desktop's QR code.

Scroll

01 Why eko

Movie night on a train.
Nobody wants the speaker.

We had phones and headphones, but only one laptop. Playing it out loud annoys everyone around you. Bluetooth sends sound to one pair of headphones, and sharing it with several needs LE Audio or Auracast, which most devices don't support.

02 The name

eko is an echo.

An echo is a sound that comes back from somewhere else. eko plays your laptop's sound once and lets it come back out of every phone in the room.

The mark is one ring and its echo: the same shape, turned around.

/ˈɛk.oʊ/ · a sound that comes back

03 How it works

Start. Scan.
Approve. Listen.

Start eko on the laptop. Phones join with a QR code or from a list of nearby hosts. Nobody types an IP address and nobody makes an account, and the person with the laptop decides who gets in.

04 Under the hood

Two conversations.
One carries the music.

eko streams with WebRTC, the same technology behind video calls in your browser. It brings encryption, routing between devices, and low-latency Opus audio. A WebSocket handles the first conversation: who is joining and how to reach them. The second conversation is the audio itself, and getting the first one working tells you nothing about the second.

05 Encode once

One encoder.
Every listener.

The desktop records whatever the speakers play, cuts it into 20 ms slices, and encodes each one as 48 kHz stereo Opus. Every packet is encoded once and shared, so the fifth listener doesn't cost a fifth encoder.

3 listeners · 1 encoder

Smaller packets mean less waiting but more overhead. Bigger buffers survive bad Wi‑Fi but add delay. The job is finding the smallest numbers that still sound smooth.

06 You decide

Finding isn't joining.

Scanning the QR code or spotting the laptop nearby only identifies a phone. Approval authorizes it, and nothing plays until the host says yes.

07 Any network

Direct first.
Relayed only when needed.

On a home network the audio goes straight from the laptop to each phone. Public and office Wi‑Fi often block that, so the browser client falls back to an encrypted TURN relay on Cloudflare. That costs a hop, so it's the backup and never the plan, and eko shows which path each device took.

08 The whole system

Rust does the live work.

eko has three parts: a desktop app that captures and sends audio, an Android app that plays it, and a browser page for iPhones. React draws the buttons, and Rust owns everything that has to keep running while the movie plays.

Desktop

Tauri 2 with a Rust core. WASAPI loopback capture, Opus encoding, WebRTC, approval, and sessions.

Android

Native Rust receives, decodes, and plays through Oboe. Pause clears the buffer, so play returns to live.

Browser

The fallback for iPhones and everything else. It runs in Safari from the same QR code.

09 What's different

Use the phones
everyone already has.

The other ways to share a laptop's sound each give something up.

  • Speakers

    Everyone hears it, including the people trying to sleep.

  • Bluetooth

    One pair of headphones per laptop.

  • Auracast

    One-to-many audio, but every device needs LE Audio support.

  • A video call

    Accounts, internet, and audio tuned for voices.

  • eko

    Phones you already carry, over local Wi‑Fi, with each device approved by you.

  • No accounts
  • No IP addresses
  • No special hardware
  • Encrypted WebRTC
  • Works offline on Android

Get eko.

Install it on the laptop, open eko on your phone, and scan the QR code.

eko for Windows Download