Built secure by default
Every design decision in omni-vision-pro starts from one question ... where does this data go? Here is the honest answer, plus the safeguards and settings behind it.
Where your data goes
- ✓ No key / AI off ... everything stays local via Tesseract
- ✓ Gemini mode ... only a resized image goes to Google
- ✓ OpenAI mode ... only a resized low-detail image goes to OpenAI
- ✓ Code & ZIP context ... read locally, never sent to vision providers
- ✓ API keys ... stored in the private Omni .env, never in client JSON/TOML
Built-in safeguards
- ✓ ZIPs inspected in memory ... no filesystem extraction
- ✓ Path traversal, duplicate, encryption, CRC, ratio & ZIP-bomb checks
- ✓ No symlink traversal
- ✓ Skips node_modules, .git, binaries & secret files automatically
- ✓ Returned contents are marked untrusted ... models must not follow instructions inside files
Settings & environment
Private by location
Most users only need the provider menu. For fine-grained control, optional settings live in a private file that is never part of client JSON or TOML.
Environment variables & optional settings
OMNI_ALLOWED_ROOTSRestrict code/ZIP reading to these roots ... semicolon on Windows, colon on macOS/LinuxOMNI_INCLUDE_ABSOLUTE_PATHS=trueInclude absolute paths in outputGEMINI_MODELChoose the Gemini model, e.g. gemini-2.5-flashGEMINI_FALLBACK_MODELGemini fallback modelOMNI_MAX_IMAGESMax images per request (default 10)OMNI_CLOUD_TIMEOUT_MSCloud timeout (default 30000)OMNI_OCR_TIMEOUT_MSOCR timeout (default 90000)OMNI_VISION_PROVIDERauto · gemini · openai · ocrWhere settings are stored
Windows%APPDATA%\omni-vision-pro\.envmacOS / Linux${XDG_CONFIG_HOME:-~/.config}/omni-vision-pro/.envThe easiest setup is one line: GEMINI_API_KEY=your_key or OPENAI_API_KEY=your_key. Save the file and restart the AI client. With no OMNI_VISION_PROVIDER line, automatic mode is used ... a saved key enables AI vision and local OCR stays the final fallback.
Never pass API keys as command arguments. The CLI rejects key flags because shell history and process lists can expose them.
This website
Hardened delivery
The site itself is served with strict security headers on every response ... HTTPS everywhere, no inline scripts, no third-party trackers.
HTTPS everywhere
Served over TLS with HSTS preload headers on every route.
Strict CSP
Scripts, styles, fonts and images are locked to approved origins.
No clickjacking
X-Frame-Options DENY plus frame-ancestors none.
No tracking
Zero analytics, zero cookies, zero third-party scripts.
Private by default, by design
Install it locally ... it's open source, so you can verify every line.