CamGo is a command-line–driven imaging controller designed for autonomous, non-interactive environments such as satellite payload cameras, remote sensors, and unattended imaging systems.
All camera control is performed exclusively via the CLI. The embedded web page and HTTP server exist solely to provide a passive, view-only camera feed for monitoring and verification.
CamGo does not act as a camera driver. All capture operations are delegated to FFmpeg. CamGo functions as a deterministic process coordinator with explicit execution and zero hidden behavior.
Version Information
Application: CamGo CLI
Version: 2.0.0
Author: K0NxT3D
Language: Go (single-file build)
Control Model: CLI only
Web Interface: View-only
Core Capabilities
📸 Snapshot Capture (CLI)
- Single-frame capture via explicit command
- Immediate device release after capture
- Timestamped JPEG output
- No background camera access
🎬 Timed Video Recording (CLI)
- Fixed-duration recording in seconds or minutes
- Single FFmpeg process per capture
- Exclusive device access during recording
- Clean process termination and finalized files
👁 View-Only Camera Feed (HTTP)
- Passive single-frame MJPEG snapshots
- No remote control surface
- No authentication or mutation endpoints
- Safe for monitoring only
Runtime Behavior Model
Startup
On startup, CamGo resolves the camera device and output directory, then optionally launches a view-only HTTP server. No camera hardware is accessed unless explicitly commanded via CLI flags.
Capture Execution
Snapshot and recording operations are executed immediately when invoked from the command line. Each invocation performs exactly one operation and exits unless the view server is running.
Monitoring
The web interface provides a passive image endpoint for verification and monitoring only. No capture, recording, or device control is exposed over HTTP.
CLI Usage
./camgo [options]
Capture Commands
./camgo -s ./camgo -s -out /path/to/output_dir/ ./camgo-cli -s -device /dev/video2 -out /path/to/output_dir/ ./camgo -r -t 30 ./camgo -r -t 30 -headless -out /path/to/output_dir/ ./camgo -r -T 2 ./camgo -r -T 2 -headless -device /dev/video2 -out /path/to/output_dir
Options
| Command | Description |
|---|---|
-s |
Capture snapshot |
-r |
Record video |
-t <sec> |
Recording duration in seconds |
-T <min> |
Recording duration in minutes |
-device <path> |
Video device |
-out <dir> |
Output directory |
-port <port> |
HTTP view port |
-headless |
Disable browser launch |
-v |
Version |
-h |
Help |
Design Principles
- CLI-only control surface
- No implicit camera access
- No remote mutation
- Single-file deployment
- Deterministic, automation-safe behavior
Requirements
- Linux system with V4L2 camera support
- FFmpeg available in system PATH
- Writable application directory
Disclaimer
CamGo is intended for autonomous and trusted environments. The HTTP endpoint is view-only and does not implement authentication or encryption. Operators are responsible for appropriate network isolation and legal compliance.