Skip to main content

Media Processing Pipeline

Omni processes incoming media automatically — transcribing audio, describing images, extracting text from documents. The pipeline is designed for resilience with circuit breakers, retry logic, and health metrics.

Processing Flow

Processors

Prompt Overrides

Each processor uses a configurable LLM prompt. You can override the defaults:
Available prompt names: image, video, document, gate.

Circuit Breaker

The media pipeline uses a circuit breaker pattern to prevent cascading failures when the AI backend is down or slow: When the circuit is open, messages are stored without media processing. They can be reprocessed later via batch operations.

Retry Logic

Failed processing attempts are retried with exponential backoff. After max retries, the message is stored without processed media and flagged for batch reprocessing.

Health Metrics

Monitor media processing health:

Batch Processing

For bulk media operations — reprocess failed items, process historical messages, or run ad-hoc transcription:

Media Storage

Downloaded media files are stored locally at:
Browse and download media:
Media files persist on disk indefinitely until you run a cleanup. On a busy instance the ~/.omni/data/media/ tree grows unbounded — schedule periodic pruning if you do not need full media history.

See also

Messaging

omni media list, download, and inline TTS via omni send --tts.

Batch processing

omni batch for bulk transcription and description backfills.

Voice gateway

Real-time voice streaming and DAVE-protected sessions.

Providers

Configure Gemini, ElevenLabs, and Groq for transcription and TTS.