Install TetherCam on your iPhone and Mac, connect a USB data cable, then choose TetherCam in your call app. Follow the Mac app setup below. For recording or streaming in OBS, use the OBS plugin instead of the Mac app.
Last updated: 2026-09-10. This is the guide version of the quick start on the homepage, with the troubleshooting cases spelled out.
Requirements
What you need before you start
Requirements
macOS 14+ for the Mac app, or macOS 12+ for the OBS plugin. Tested on Apple Silicon with macOS 26.
OBS Studio 30 or later, for Path B only. Tested with 32.2.2.
iOS 17 or later. Tested on an iPhone 15 Pro Max with iOS 26.6.
A data cable, not a charge-only one.
Path A, the Mac app, needs macOS 14 or newer and one approval of its camera extension in System Settings; it carries video only. Path B, the OBS plugin, runs from macOS 12 and carries the phone's microphone on the same cable since 0.2.0, with a mute switch in the app. The phone serves one receiver at a time, so run one path at a time.
Path A · the two apps, any Mac app
Install the two apps: iPhone and Mac
App one is TetherCam for iPhone, free on the App Store. App two is TetherCam for Mac, a menu bar app with its own camera extension: it publishes the iPhone as the system camera “TetherCam”, 1920x1080 at 30 fps, so Zoom, Microsoft Teams, Google Meet, FaceTime, QuickTime Player, Photo Booth, Safari, Chrome and anything else that lists system cameras see it like any webcam, with no OBS running.
Free and open source (MIT), macOS 14 or newer, Apple silicon and Intel. Not on the Mac App Store.
Install TetherCam on the iPhone from the App Store and open it.
Plug the iPhone into the Mac with the USB cable. The first time, tap Trust on the phone.
Open the .dmg and drag TetherCam into Applications with Finder, then open it. It lives in the menu bar and has no window.
macOS asks once to allow the camera extension: System Settings, General, Login Items & Extensions, Camera Extensions, switch TetherCam on. That takes your administrator password once, and the menu bar app has a button that opens exactly that pane.
In any app, pick the camera TetherCam: Zoom (camera menu), Google Meet (arrow next to the camera button), FaceTime (Video menu), QuickTime Player (New Movie Recording, arrow next to the record button), Photo Booth (Camera menu), Safari and Chrome (the site's own camera picker), Microsoft Teams (Settings, Devices), and anything else that lists system cameras, Webex, Slack or Discord among them, in its own camera settings. It reconnects by itself when the phone app restarts. Verified in Zoom 7.1.5 and Microsoft Teams on 2026-09-10; I have not tested Webex, Slack or Discord individually.
Homebrew instead:
brew tap kanevry/tethercam
brew install --cask tethercam
Verified with a real iPhone 15 Pro Max in QuickTime Player, Photo Booth, FaceTime, Google Meet in Chrome, Safari, Chrome and ffmpeg (2026-09-09) and in Zoom 7.1.5 and Microsoft Teams (2026-09-10).
Limits: the camera carries video only, because a macOS camera extension cannot carry audio; select your microphone separately in the call. The OBS plugin brings phone audio into OBS recordings and streams. The phone serves one receiver at a time, so run either the Mac app or the OBS source, not both; the second one says BUSY. The output is a fixed 1920x1080 at 30 fps, and a phone held upright is pillarboxed.
If something is off
The menu says “Error: TetherCam.app must be in /Applications”, but it is
Something other than Finder copied the app while it still carried the quarantine flag, so macOS App Translocation runs it from a random read-only path. Drag the app into /Applications with Finder, or run xattr -dr com.apple.quarantine /Applications/TetherCam.app and open it again.
No camera called “TetherCam” shows up
The camera extension is not enabled yet: System Settings, General, Login Items & Extensions, Camera Extensions, switch TetherCam on. Apps read the camera list when they launch, so quit the app completely (Cmd-Q) and reopen it. Still missing? Restart the Mac: macOS finishes registering a newly installed or updated camera extension only at the next boot. Zoom and Teams listed TetherCam right after that restart.
The picture stays black, or the menu says BUSY
Another receiver already holds the phone. Close the TetherCam source in OBS, or whatever else is connected, then reconnect. And make sure TetherCam is open and in the foreground on the phone; iOS suspends the listener as soon as the app goes to the background.
Both paths
Get the iPhone app
Free on the App Store since 2026-09-09, for iPhones with iOS 17 or later.
The TestFlight beta carries the next builds before they reach the store. You can also build the app from source with a free Apple ID.
Path B · OBS Studio
Install the OBS plugin on the Mac
The plugin installs into your own home folder, so it needs no administrator rights. Restart OBS after installing.
A
The .pkg from GitHub Releases
Download TetherCam-obs-plugin.pkg from the latest release and open it.
Signed and notarized since v0.1.0. Plugin 0.2.1 fixes a black source that could appear when plugin 0.2.0 met the 0.1.0 App Store app, so update if you see that. Prefer to build from source? See Install the Mac plugin.
B
The one-line installer
Read the script before you pipe it into a shell. It downloads the release bundle and unpacks it into the OBS plugins directory in your home folder, nothing else.
Developer ID signed and notarized by Apple since v0.1.0.
C
Homebrew
Prefer a cask? A personal tap carries the same signed bundle.
brew tap kanevry/tethercam
brew install --cask tethercam-obs
Copies the plugin bundle into your own OBS plugins folder, same as the installer above. No admin rights needed.
Path B, continued
Connect the iPhone and add the source in OBS
Plug the iPhone into the Mac with the data cable and unlock it. The first time you connect that particular Mac, the iPhone shows a “Trust This Computer?” prompt: tap Trust and enter the phone's passcode. Without this, the Mac cannot see the phone at all.
Open TetherCam on the phone and keep it in the foreground. iOS suspends the listener as soon as the app goes to the background, so the stream stops the moment you switch apps or lock the screen.
In OBS, choose Tools, then TetherCam: Add iPhone camera to current scene. That creates the source, names it TetherCam iPhone and fits it to your canvas. If a TetherCam source is already in the scene, the entry does nothing rather than adding a second one.
The phone's status line turns green and says Streaming 1080p30 once the picture is live.
Path B, sub-note
Also possible: Zoom, Teams and others via OBS → Start Virtual Camera
If you are recording or streaming in OBS anyway, you can let it pass the picture on as a camera instead of running the Mac app. That is also where the phone’s microphone arrives. For calls alone, the two apps of Path A are the shorter way.
With the TetherCam source live, click Start Virtual Camera in the OBS Controls dock.
The first time, macOS asks you to enable the OBS virtual-camera extension under System Settings, General, Login Items & Extensions, Camera Extensions, and wants your administrator password once. Come back to OBS and start the virtual camera again.
In Zoom, Teams, Google Meet or FaceTime pick the camera OBS Virtual Camera.
The audio does not travel with the virtual camera either: the phone’s microphone lands in the OBS audio mixer, which is what a recording or a stream uses, while a video call still takes its sound from whatever microphone you pick in the call. If you only need the picture, the TetherCam Mac app above is the shorter path.
Troubleshooting
What each status line means
Open the source's Properties dialog in OBS first. The status line at the top names the missing piece before you read the list below.
The status line says “No iPhone attached over USB”
Plug the phone into the Mac with a cable and unlock it. A charge-only cable will not show up in the device list, and the Mac cannot see a locked phone as a USB device it can trust.
The status line says “Waiting for iPhone”
Open TetherCam on the phone and keep it in the foreground. If it is already open, check the OBS log for a version or connection error, since this status also shows when the app and the plugin disagree on the protocol.
It is stuck on “iPhone reached, waiting for the first frame”
The Mac has found the phone and connected, but no video has arrived yet. If this does not change within a few seconds, unplug and replug the cable. That resets the USB connection without needing to reopen either app.
macOS says the .pkg is from an unidentified developer
Since v0.1.0 the .pkg is signed with a Developer ID Installer certificate and notarized by Apple, so this should not happen; the same is true for TetherCam-mac.dmg. If you see it anyway, you are most likely opening an older or a partial download. Fetch the file again from the latest release. As a fallback, right-click (or Control-click) the file, choose Open, and confirm Open again.
The source is black although the phone says it is streaming
If the Mac runs plugin 0.2.0 and the phone still runs the 0.1.0 App Store app, the source stays black: 0.2.0 asked for audio in a way the older app dropped silently. Plugin 0.2.1 fixes it. Update with brew upgrade --cask tethercam-obs or the new .pkg, restart OBS, and update the phone app from the App Store (0.2.0 or newer).
OBS still shows the old plugin after I installed an update
OBS reads plugins only at launch. After installing a new .pkg or copying in a new build, fully quit OBS and reopen it; a running instance keeps the plugin binary it already loaded.
Continuity Camera keeps grabbing the phone instead of TetherCam
On the iPhone, open Settings, General, AirPlay & Continuity, and turn off Continuity Camera. That stops the phone from also offering itself to macOS as a Continuity Camera device, which otherwise competes with TetherCam for the same camera hardware.
The phone never shows up at all, even with a good cable
usbmuxd is the system service that TetherCam relies on to reach the phone; it normally starts on its own the first time a phone is connected. If the plugin never gets past “No iPhone attached”, open Finder once with the phone plugged in and unlocked. That is usually enough to make macOS start the service and show the “Trust This Computer?” prompt, after which the plugin can see the phone too.