CamGo — Imaging System

CLI-Controlled Imaging • Web-Based Local Interface

CamGo is a lightweight imaging system written in Go that provides explicit, deterministic control over camera hardware using FFmpeg as the capture engine.

The project is intentionally split into two distinct distributions to avoid compromising safety, clarity, or operational intent. Each variant serves a different execution environment while sharing the same core design philosophy.

Both versions remain idle by default, never access camera hardware implicitly, and expose only the minimum surface area required for their intended use.

CamGo CLI

Autonomous • Scripted • Non-Interactive

CamGo CLI is designed for environments where camera control must be explicit, predictable, and automation-safe. All capture operations are performed via command-line invocation with no interactive prompts or persistent state.

Snapshot and video recording commands execute immediately and perform exactly one operation per invocation. Recording duration is fixed at runtime, ensuring deterministic power usage, storage consumption, and execution windows.

A minimal HTTP server is available strictly for passive, view-only monitoring. No camera control, configuration, or mutation is exposed over the network.

This variant is intended for autonomous systems, remote sensors, satellite payloads, cron-based capture, and mission automation.

CamGo WebUI

Interactive • Localhost • Visual Control

CamGo WebUI provides a browser-based interface for local camera interaction in trusted environments. It is designed for situations where a human operator requires direct visual feedback and manual control.

The WebUI exposes explicit controls for camera selection, snapshot capture, and recording start/stop operations. The application remains idle until the user takes action.

Like the CLI variant, CamGo WebUI does not act as a camera driver. All capture operations are delegated to FFmpeg, while CamGo coordinates process lifecycle and state presentation.

This version is best suited for development, testing, demonstrations, and local monitoring where interactive feedback is required.

Design Note

CamGo intentionally separates interactive and autonomous use cases into distinct distributions. This prevents accidental exposure of control surfaces, preserves deterministic behavior, and keeps each variant minimal, focused, and predictable.

Metadata

Status: Stable

Capture Engine: FFmpeg

Platform: Linux

Language: Go

License: Private

Tags

Camera CLI WebUI FFmpeg Linux Autonomous