A lightweight macOS menu bar app for YouTubers and content creators
Show your face in a floating camera overlay during screen recordings
- π₯ Live Camera Preview - Display your FaceTime HD camera in a floating window
- π Always On Top - Keep the camera above all other windows during recording
- πͺ Draggable & Resizable - Position and size the window exactly where you need it
- π Mirror Camera - Flip the camera view horizontally
- β‘ Performance Optimized - Minimal CPU and memory usage during screen recordings
- π« No Dock Icon - Sits quietly in the menu bar
- ποΈ Quick Controls - Easy access to all features from the menu bar
- π Privacy First - No recording, no data collection, camera only when you want it
- YouTubers doing tutorial videos
- Streamers wanting picture-in-picture
- Educators recording lessons
- Presenters during screen shares
- Anyone who wants to show their face during recordings
ββββββββββββββββββββββββββββββββββββ
β ShowMe [πΉ] (Menu Bar) β
ββββββββββββββββββββββββββββββββββββ
βββββββββββββββββββ
β β
β Your Face β β Floating camera window
β β
βββββββββββββββββββ
- Download the latest
ShowMe-1.0.dmgfrom releases - Open the DMG and drag ShowMe to Applications
- Launch ShowMe from Applications
- Grant camera permissions when prompted
- Click the camera icon in the menu bar to show/hide your camera
- macOS 13.0+ (Ventura or later)
- Xcode 15.0+
- Apple Developer Account (for code signing and notarization)
# Clone the repository
git clone https://github.com/yourusername/ShowMe.git
cd ShowMe
# Open in Xcode
open ShowMe.xcodeproj
# Or build from command line
./build.sh# Build the app
./build.sh
# Run the app
open build/ShowMe.app# Complete build pipeline: build + sign + notarize + DMG
./build-release.sh \
"Developer ID Application: Your Name (TEAMID)" \
your-apple-id@example.com \
your-app-specific-password \
YOURTEAMID# 1. Build only
./build.sh
# 2. Code sign
./sign.sh "Developer ID Application: Your Name (TEAMID)"
# 3. Notarize
./notarize.sh your-apple-id@example.com app-specific-password TEAMID
# 4. Create DMG
./create-dmg.sh- Join the Apple Developer Program ($99/year)
- Go to Certificates, Identifiers & Profiles
- Create a Developer ID Application certificate
- Download and install it in Keychain Access
security find-identity -v -p codesigningLook for something like:
1) ABC123DEF456 "Developer ID Application: Your Name (TEAMID)"
- Go to Apple ID Account
- Sign in
- In the Security section, click Generate Password under App-Specific Passwords
- Label it "ShowMe Notarization"
- Save the generated password
In ShowMe.xcodeproj, change the bundle identifier from com.yourcompany.ShowMe to your own (e.g., com.yourname.ShowMe)
Click the πΉ icon in the menu bar to access:
- Show/Hide Camera - Toggle the camera preview window (βC)
- Settings
- Always On Top - Keep window above all others
- Mirror Camera - Flip the camera horizontally
- Window Size - Quick size presets (Small, Medium, Large, Extra Large)
- About ShowMe - Version and info
- Quit ShowMe - Close the app (βQ)
- Drag - Click and drag anywhere on the window to move it
- Resize - Drag the corners or edges to resize
- Close - Click the red button to hide (doesn't quit the app)
βC- Show/Hide camera previewβQ- Quit ShowMe
- SwiftUI - Modern UI framework
- AppKit - Window management and menu bar integration
- AVFoundation - Camera capture and preview
- Core Animation - Smooth preview rendering
ShowMe/
βββ ShowMeApp.swift # Main app entry point, menu bar setup
βββ CameraManager.swift # Camera capture and preview logic
βββ CameraWindowController.swift # Floating window management
βββ Info.plist # App configuration and permissions
βββ ShowMe.entitlements # Security entitlements
βββ ShowMe.xcodeproj/ # Xcode project
βββ build.sh # Build script
βββ sign.sh # Code signing script
βββ notarize.sh # Notarization script
βββ create-dmg.sh # DMG creation script
βββ build-release.sh # Complete build pipeline
- App lifecycle management
- Menu bar item creation
- User interactions and settings
- Permission requests
- AVCaptureSession setup
- Camera device management
- Preview layer creation
- Mirror transformation
- Floating window configuration
- Always-on-top behavior
- Drag and resize handling
- Preview layer integration
- Why: Unobtrusive, always accessible, doesn't clutter the Dock
- Benefit: Perfect for utility apps that run in the background
- Always on Top: Essential for screen recording - you want the camera visible
- Borderless Option: Cleaner look for recordings
- Rounded Corners: Modern macOS aesthetic
- Lazy Camera Start: Camera only activates when window is shown
- Efficient Preview: Uses hardware-accelerated video layers
- Memory Management: Properly releases resources when hidden
- No Recording: Only preview, never saves or uploads video
- Clear Permissions: Explicit camera permission request with explanation
- Open Source: Users can verify what the app does
Pros:
- Automatic updates
- Built-in trust (users don't see security warnings)
- Discoverability
Cons:
- 30% revenue share with Apple
- Strict review process
- Sandboxing requirements
Steps:
- Create an App Store distribution certificate
- Create an App ID
- Create a provisioning profile
- Archive in Xcode
- Upload via Xcode Organizer
- Submit for review
Pros:
- Full control
- No revenue share
- Faster updates
Cons:
- Users see "developer cannot be verified" warning (until notarization)
- Manual update mechanism needed
Steps:
- Get Developer ID certificate
- Sign the app (
./sign.sh) - Notarize with Apple (
./notarize.sh) - Create DMG (
./create-dmg.sh) - Upload to your website
Pros:
- Free hosting
- Version tracking
- Community contributions
Cons:
- No automatic updates
- Need to handle security warnings
Steps:
- Build and sign the app
- Create DMG
- Create a GitHub release
- Upload the DMG as an asset
- Camera Access - To display the video preview
- Requested on first launch
- Can be revoked in System Settings > Privacy & Security > Camera
The app uses Apple's Hardened Runtime for enhanced security:
- Code injection protection
- Memory corruption protections
- Secure system call handling
Notarization ensures:
- No known malware
- Proper code signing
- Verified by Apple
- Safe to distribute outside the App Store
- Check permissions: System Settings > Privacy & Security > Camera
- Restart the app: Quit and relaunch
- Check camera connection: Try in Photo Booth or FaceTime
- Close other camera apps: Only one app can use the camera at a time
- The window might be on a different space/desktop
- Use Mission Control to find it, or quit and relaunch
- Close other camera apps
- Reduce preview window size
- Check Activity Monitor for CPU usage
This happens if the app isn't properly signed/notarized:
# Remove quarantine attribute
xattr -cr /Applications/ShowMe.appFor distribution, always sign and notarize properly.
- Multiple camera support
- Shape overlays (circle, rounded rectangle)
- Custom borders and shadows
- Hotkey to show/hide camera
- Remember window position
- Recording capability (optional)
- Chroma key / green screen effect
- Preset positions (top-left, bottom-right, etc.)
- Opacity control
- Virtual camera driver integration
- OBS Studio plugin
- Cloud sync for settings
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the needs of content creators everywhere
- Built with Apple's excellent AVFoundation framework
- Thanks to the macOS developer community
- Issues: GitHub Issues
- Email: support@showme.app
- Twitter: @ShowMeApp
If you find ShowMe useful, please consider starring the repository!
Made with β€οΈ for content creators
Download β’ Documentation β’ Report Bug