A-Eyes 👀
A-Eyes (AI's eyes) is a CLI daemon that keeps your webcam open for instant captures without auto-exposure/focus delays. Perfect for AI agents needing quick "eyes".
For AI Agents
A-Eyes is published as a skill on skills.sh, making it easy to add webcam capabilities to your AI agent.
Install the skill
This installs the skill for popular AI coding agents (Pi, Claude Code, Cursor, Copilot, Cline, Codex, and more). Once installed, your agent will know how to use aeyes for capturing photos, recording videos, and viewing live webcam streams.
Features
- Daemon mode: Open webcam continuously (~30 FPS latest frame buffer).
- Fast CLI capture: Save latest frame in <100ms.
- Video capture: Record short video clips in AVI MJPEG format.
- Live streaming: Real-time MJPEG stream via HTTP with web UI.
- Multiple clients can stream from the same camera simultaneously.
- Multiple webcams can stream in parallel.
- Adaptive Linux exposure control to keep bright screens readable in dark rooms.
- HTTP API for frame, video, and stream capture.
- Linux V4L2 backend. macOS support via nokhwa/AVFoundation.
Installation
From crates.io (recommended)
From source
Usage
Start the daemon
Capture a frame
Capture a video clip
HTTP API
# List cameras
# Get a frame
# Capture a video (query params: max_length, fps)
&fps=15
# Live stream (MJPEG multipart)
Live Web UI
Open http://localhost:43210/web/0 in a browser to see a live view from camera 0.
Use http://localhost:43210/web/default for the daemon-selected camera.
Multiple clients can view the same stream simultaneously without affecting each other.
Inspecting the Webcam
You can view the live webcam feed directly in your browser while the daemon is running:
| Camera | URL |
|---|---|
| Camera 0 | http://localhost:43210/web/0 |
| Camera 1 | http://localhost:43210/web/1 |
| Default camera | http://localhost:43210/web/default |
Click any link above or ask me to open the browser for you.
Status & stop
Video Format
Videos are saved as AVI with MJPEG encoding. This format:
- Works with most video players (VLC, mpv, etc.)
- Requires no external dependencies for encoding
- Can be converted to MP4 with ffmpeg if needed:
Testing
# Run all tests (42 tests)
# Run with single thread (avoids port conflicts)
Tests use a FakeBackend that simulates camera capture without requiring actual webcam hardware.
License
MIT