VCWS for macOS — Private Beta
A virtual camera that overlays widgets — name card, social handle, local time, company logo, AI Assistant, meeting agenda, hard stop, pomodoro — on your video calls.
Latest build
The download below auto-updates via Sparkle once installed — you only need to install once.
Download VCWS for macOSUniversal (Apple Silicon + Intel) · macOS 14 (Sonoma) or newer · ~7.5 MB
First-time install
-
1
Open the DMG and drag
VirtualCameraApp.appinto/Applications. -
2
Launch
VCWS Virtual Camerafrom Applications.An "Approve VCWS Camera Extension" dialog appears the first time. macOS won't let any app activate a camera extension without your explicit approval — this is a security feature.
-
3
Click Open System Settings in that dialog → toggle
VCWS Camera Extensionon → enter your admin password.The dialog deep-links you straight to the right pane (Login Items & Extensions → Camera Extensions). If you ever need to find it manually, it's at System Settings → General → Login Items & Extensions → Camera Extensions.
-
4
Allow camera access for VirtualCameraApp.
A standard macOS prompt will appear the first time the extension reads the physical camera.
-
5
Sign in.
Visit app.promptpov.com/login on the same Mac and click your magic-link email — the link opens promptpov via the
promptpov://URL scheme and authenticates the local agent. -
6
Open the dashboard and enable the widgets you want.
Toggle widgets on, drag them to position them on the 16:9 preview (edges snap; arrow keys nudge a selected widget), and pick a HUD layout: Panel right, Panel left, or Movable. The HUD is a separate floating window above your video app — distinct from the in-camera widgets baked into the video feed.
-
7
Open Zoom / FaceTime / Teams and pick
VCWS Virtual Cameraas your camera input.
Optional: Set up the AI Assistant
The AI Assistant widget is a chat surface that floats above your video app during a call. It uses your own Anthropic or OpenAI API key — keys are stored in your macOS Keychain and never sent to the VCWS backend.
-
1
In VCWS, press
⌘,(or VirtualCameraApp menu → Settings…) to open Settings. -
2
Paste an Anthropic or OpenAI key into the matching field and click Save.
Each row has a Get key → link that opens the provider's console if you don't have one yet. The status flips to "Configured ✓" once saved. To swap a key later, type the new one and click Save; to clear one, click Remove.
-
3
Enable the AI Assistant widget on the dashboard and pick the provider / model.
The widget opens as its own resizable, draggable window. Type a prompt, press Enter to send, or Shift+Enter for a newline. Conversation history persists across app restarts;
⌘Kclears it.
Optional: Set up pre-meeting briefings
VCWS can show a countdown banner on the HUD before any calendar event with a video-call link, and optionally draft a short AI briefing covering the agenda, attendees, and questions worth asking. Both are off by default.
-
1
In Settings (
⌘,), tick Pre-meeting briefing.macOS prompts for Calendar access the first time you turn this on. VCWS only reads event time, title, and meeting-link fields — nothing leaves your Mac unless you also opt into the AI briefing in step 3. If the macOS prompt doesn't appear, click Open Calendar privacy settings → in the same Settings window to grant access manually.
-
2
Pick a Lead time (5 / 10 / 15 / 20 min).
The countdown banner and the AI briefing both fire that many minutes before the meeting starts. 5 min is the default; bump it up if you want longer prep time.
-
3
(Optional) Tick Auto-draft briefing with AI.
Reuses your AI Assistant's configured provider + key (set up above) to stream a short briefing in a small floating window. Separately opt-in because the invite contents — title, notes, location, attendees — get sent to your AI provider, which is a different privacy boundary from the basic banner. Click Ask follow-up → on the briefing window to hand it off into the AI Assistant for further questions.
-
4
Calendar.app is the source.
VCWS reads whatever Calendar.app shows you — iCloud, Google, Exchange, and any subscribed ICS feeds. Events need a recognizable meeting link in the URL, location, or notes field. Zoom, Teams, Google Meet, Webex, FaceTime, and Skype are all detected.
Auto-updates
After install, VCWS checks for updates automatically every 24 hours, plus you can trigger a check anytime via VirtualCameraApp menu → Check for Updates….
Updates are signed end-to-end (Apple notarization + Sparkle EdDSA) and install in-place without re-downloading.
Trouble?
- • Widget text looks backwards in your local preview: Zoom and Teams default to mirroring your self-view, which flips the widgets along with your face. Other participants always see widgets the right way. If the local preview bothers you, untick Zoom → Settings → Video → Mirror my video or Teams → Settings → Devices → Mirror my video. You'll see yourself "as others see you," which feels strange for thirty seconds and then disappears.
- • "VCWS Virtual Camera" doesn't appear in your video app: log out and back in (the camera daemon's device list refreshes per session) or restart your Mac.
- • After installing an update, the camera doesn't show up in Zoom / FaceTime / Teams: quit VirtualCameraApp completely (
⌘Q) and relaunch it. Sparkle swaps the binary in place, but the system extension needs a fresh launch to re-register the device with consumers. - • System extension won't activate: make sure the Mac is signed in to your account, not a guest. System extensions need an active login session.
- • Pre-meeting briefing isn't firing: the calendar event needs to be newly created (editing an existing event keeps the original start time, so the new time isn't picked up) and must have a recognizable meeting link in the URL, location, or notes field. Watch the Console for the "Next meeting:" log line from VCWS to confirm what's being detected.
- • Calendar permission prompt didn't appear: open Settings (
⌘,) and click Open Calendar privacy settings → to deep-link straight to the right pane in System Settings, then enable VCWS there. - • Toggled 1080p output but the resolution didn't change: restart your video app (Zoom / FaceTime / Teams). They cache the camera format on first connect and won't re-query until the next launch.
- • Other issues: reach out to Brandon directly with the build version (it's in the menu under About VirtualCameraApp).