Camera Not Detected
Klaus says 'Cannot open camera at index 0'
Klaus says 'Cannot open camera at index 0'
Error message:Causes:
- Document camera not plugged in
- Camera in use by another application (Zoom, browser, etc.)
- Wrong camera index (if you have multiple cameras)
- USB connection issue
-
Verify camera is connected:
- Close other applications using the camera (Zoom, Skype, browser tabs with webcam access)
-
Try a different camera index in
~/.klaus/config.toml: - Re-run setup wizard to enumerate and select the correct camera
- Check USB connection - try a different USB port or cable
camera.py:89-103How do I list available cameras?
How do I list available cameras?
Klaus provides a camera enumeration function. You can test it:Example output:Set
camera_index in ~/.klaus/config.toml to the desired index.Reference: camera.py:22-34, device_catalog.pyCamera works in other apps but not Klaus
Camera works in other apps but not Klaus
On macOS:Check camera permissions:
- System Settings > Privacy & Security > Camera
- Ensure your terminal app has camera access
- If not listed, try triggering the permission prompt by running Klaus
cv2.CAP_DSHOW). Some cameras require specific drivers:- Install camera manufacturer’s drivers
- Test with another OpenCV-based application
- Check Windows camera privacy settings
camera.py:19Camera Rotation Issues
Image appears rotated or upside down
Image appears rotated or upside down
Configuration:Edit Example scenarios:
~/.klaus/config.toml:- Document camera upside down: Use
camera_rotation = "180" - Portrait frame incorrectly rotated: Use
camera_rotation = "none"to disable auto-rotation - Landscape frame rotated 90°: Use
camera_rotation = "270"to counter-rotate
camera.py:37-56, config.py:45-48Auto-rotation log messages
Auto-rotation log messages
When auto-rotation triggers, Klaus logs:If you see this and don’t want rotation, set:Reference:
camera.py:50-55Camera Resolution Issues
Camera resolution doesn't match config
Camera resolution doesn't match config
Klaus requests a specific resolution but the camera may not support it.Default resolution: 1920x1080Actual resolution logged on start:If the actual resolution is lower than requested, the camera doesn’t support that mode.To change resolution:Edit Common resolutions:
~/.klaus/config.toml:- 640x480 (VGA)
- 1280x720 (720p)
- 1920x1080 (1080p)
- 3840x2160 (4K)
camera.py:73-110, config.py:41-43Low quality image sent to Claude
Low quality image sent to Claude
Klaus captures frames as JPEG with quality=85 by default.The capture method:To verify capture quality, check:
- Camera resolution (higher resolution = better quality)
- Lighting conditions (document cameras with built-in lights help)
- Page position (ensure full page visible and in focus)
camera.py:147-153Camera Setup Recommendations
What document camera should I use?
What document camera should I use?
Klaus works best with:
-
USB document camera / visualiser (recommended)
- Example: PAKOTOO Document Camera (has built-in light)
- Amazon US: https://www.amazon.com/PAKOTOO-Document-Teachers-Classroom-Distance
- Amazon UK: https://www.amazon.co.uk/kitchbai-Visualiser-Teaching-Classroom-Chromebook
-
Phone on gooseneck mount (~$10-15) pointed at reading surface
- Use phone as webcam via:
- macOS + iPhone: Continuity Camera (built-in, iOS 16+, macOS Ventura+)
- macOS + Android: Camo (free, 1080p)
- Windows + Android: DroidCam (free)
- Windows + iPhone: Camo (free, 1080p)
- Use phone as webcam via:
README.md:126-146Using phone as document camera
Using phone as document camera
Continuity Camera (macOS + iPhone):No app installation needed (iOS 16+, macOS Ventura+):
- Ensure iPhone and Mac on same Wi-Fi / signed into same iCloud
- iPhone appears automatically as camera option in Klaus
- Install app on phone and computer
- Connect via USB or Wi-Fi (follow app instructions)
- Phone appears as webcam in Klaus camera list
- Select the phone camera in Klaus settings or setup wizard
README.md:138-145, camera.py:50-55Camera Background Thread
Camera preview frozen or laggy
Camera preview frozen or laggy
Klaus captures frames in a background daemon thread at ~30 fps.Causes of lag:Look for:
- High CPU usage - Check Activity Monitor / Task Manager
- USB bandwidth - Try a different USB port (use USB 3.0 if available)
- Camera firmware - Update document camera drivers
- “Camera opened” - Successful start
- “Audio input status” warnings - May indicate USB issues
- “Camera stopped” - Unexpected shutdown
camera.py:120-132Camera stops working mid-session
Camera stops working mid-session
If the camera stops capturing frames:
- USB disconnection - Check cable and port
- Power saving - Disable USB selective suspend (Windows) or Energy Saver (macOS)
- Camera firmware crash - Power cycle the document camera
camera.py:167-175Camera Data Privacy
Are camera images stored locally?
Are camera images stored locally?
No. Klaus does not store full images.What is stored:
- A short hash of each page capture (for deduplication)
- Thumbnail images shown in the chat feed (stored in memory, cleared on session switch)
- Base64-encoded JPEG images sent to Claude Vision API
- Images are not logged or saved to disk
README.md:272-278, camera.py:147-165Switching Cameras
How do I change cameras mid-session?
How do I change cameras mid-session?
Klaus supports live camera switching via the Settings dialog:
- Click the settings button (gear icon) in Klaus
- Go to the “Camera” tab
- Select a different camera from the dropdown
- Changes apply immediately (no restart needed)
~/.klaus/config.toml.Reference: main.py:842-854, settings_dialog.py, device_switch.pyCamera switch failed, Klaus rolled back
Camera switch failed, Klaus rolled back
If you see an error dialog:Klaus automatically reverts to the last working camera.Causes:
- Selected camera in use by another app
- Selected camera disconnected
- Camera requires driver not installed
- Close other apps using the camera
- Reconnect the camera
- Try a different camera from the list
device_switch.py, main.py:839-854