Plug in. Tap once. Forget it exists.
The camera and microphone in your phone are far better than the ones built into most laptops. Mikey turns them into a webcam and mic that every app on your PC can use: Google Meet, Zoom, Teams, Discord and OBS. No accounts, no cloud, no setup ritual.
Note
v0.1.0 is an early preview for Windows 10 / 11 and Android 8.0+. If something doesn't work, please open an issue.
- Mic and webcam in one app. Your phone shows up on the PC as a microphone and as Mikey Cam, in any app.
- Connects by itself. Mikey picks the best link (USB, Wi-Fi or Bluetooth) and moves to a better one when it appears, without dropping your call.
- Clear voice. Raw 48 kHz audio from the phone, lossless over USB, with noise suppression on the PC.
- Low delay. A 20 ms audio buffer over USB and 40 ms over Wi-Fi, growing only when the link is unsteady.
- Private by design. No accounts and no cloud: everything stays on your own cable or network. Mic and camera start off, and a new phone needs your OK on the PC.
- Light. A small native tray app written in Rust. No Electron, no web view.
- PC: Windows 10 and 11. Linux is in progress: the PC app builds there, but has no virtual mic, camera, tray or Bluetooth yet.
- Phone: Android 8.0 or newer.
From the latest release:
| File | Where it goes |
|---|---|
Mikey-v0.1.0-windows-x64.exe |
Your PC. Run it and Mikey appears in the system tray. |
Mikey-v0.1.0-android.apk |
Your phone. Android asks to allow installs from your browser or files app the first time. |
Mikey isn't code-signed yet, so Windows SmartScreen may warn you: click More info, then Run anyway.
- USB: turn on USB debugging on the phone, plug it in, and tap Allow on the phone. The PC needs Android platform-tools (
adb) on itsPATH. - Wi-Fi: put the phone and PC on the same network, and let Mikey through the firewall (how).
Open Mikey on the phone and tap the mic or the camera. The first time, click Allow on the PC to trust your phone.
In Meet, Zoom or Teams, choose Mikey Mic as the microphone and Mikey Cam as the camera.
Something not working? See Troubleshooting.
Build from source instead
You need Rust and Android Studio (Quail 4 or newer).
git clone --recursive https://github.com/diveshpatil9104/mikey.git
cd mikey/pc
cargo run --releaseThen open the android folder in Android Studio and press Run to install the phone app (more ways).
Running from the source folder also enables the panel's Setup Mic button: click it once and approve the administrator prompt to automatically configure Mikey Mic.
Mikey tries these in order and switches up as soon as a better one is available.
| Level | Link | Audio | Video |
|---|---|---|---|
| 1 | USB debugging | Lossless PCM, 48 kHz | Up to 1080p30 |
| 2 | USB tethering | Lossless PCM, 48 kHz | Up to 1080p30 |
| 3 | Wi-Fi (same network or the phone's hotspot) | Opus 96 kbps, or lossless | 720p30 by default, up to 1080p30 |
| 4 | Bluetooth | Opus 48 kbps | Audio only |
Phone (Android app) PC (Mikey tray app)
Mic: raw 48 kHz, 10 ms frames ──┐ ┌── Opus decode ▸ noise suppression (RNNoise)
├── link ───┤ ▸ jitter buffer ▸ drift correction ▸ virtual mic
Camera: CameraX ▸ JPEG ─────────┘ └── JPEG decode ▸ scale to 1920×1080 ▸ Mikey Cam
link = USB debugging · USB tethering · Wi-Fi · Bluetooth
The phone is always the client and the PC is always the server: TCP port 7653 for the stream and UDP port 7654 for finding the PC on your network. The full design lives in docs/, starting with the System Architecture and the Wire Protocol.
| Side | Built with |
|---|---|
| Android | Kotlin, Jetpack Compose, AAudio, CameraX, libopus |
| PC | Rust, cpal, nnnoiseless (RNNoise), opus-decoder, zune-jpeg, softcam |
| Phase | Goal | Status |
|---|---|---|
| 1 | Mic over USB | Done |
| 2 | Four connection levels, trust, phone UI | Done |
| 3 | Phone camera as a virtual webcam | Done |
| 4 | Audio quality: noise suppression, jitter buffer, drift correction | Done |
| 5 | Release: v0.1.0 preview is out; next are the Windows installer, Linux packages and v1.0 | In progress |
Details and the device test matrix are in the Roadmap & Test Matrix. Every release is listed in the Changelog.
| Document | What's in it |
|---|---|
| Install on PC | Building, running and the firewall |
| Install on Android | Building and installing the phone app |
| Troubleshooting | Fixes for connection, audio and camera problems |
| Architecture | A short tour of how Mikey fits together |
| All docs | Protocol, audio and video pipelines, design language, budgets |
Contributions are welcome, from typo fixes to new features. Read CONTRIBUTING.md first, and look for issues labeled good first issue.
- Fork the repo and create a branch, like
feat/your-idea. - Read the
docs/for the part you're changing. - Make your change and run the checks below.
- Open a pull request using the template, with proof that it works (a screenshot, recording or test output).
Build and check
Android
git submodule update --init # libopus
cd android
./gradlew assembleDebug # APK in android/app/build/outputs/apk/debug/
./gradlew testDebugUnitTest lintDebugPC
cd pc
cargo build --release
cargo fmt --check && cargo clippy -- -D warnings && cargo testCommit messages follow Conventional Commits, for example fix(pc): skip unknown frame types.
Questions and ideas go in Discussions. Please report security problems privately, as described in the security policy.
MIT. Copyright © 2026 Divesh Patil.
