Place cameras on a floorplan, aim their coverage, and see where activity concentrates
LessMore activity
Upload or draw a floorplan, pick a camera, then click on the plan to place it. Drag a camera pin to aim its coverage cone. Click a pin to open the camera.
Time
Source
Severity
Description
Models per task
Route each task to its own provider & model. Tip: run Captioning on a cheap local model and Q&A on OpenAI for fast answers. Applied live & saved.
Captioning (vision)
Q&A / RAG (chat)
Embeddings (search)
Provider credentials
OpenAI
Local (Ollama)
Custom
Token usage (this session)
—
Object detection & triggers
A local YOLO detector flags objects and only then spends an LLM call to explain the frame — far cheaper and fewer false alerts. Tuned for CPU.
Detection mode
What to detect
Behavioral analytics— site-wide events on top of per-camera zones
Per-camera zones, lines & arming
Tune one camera at a time and target where in its view things matter — instead of watching the whole frame the same way. Arm switches this camera's monitoring on/off (disarmed = no CPU, no alerts). Zones are areas you draw to catch intrusion or loitering inside them only (e.g. behind a counter); Lines catch crossings (e.g. through a doorway), with an optional direction. Each shape gets its own severity and can be limited to specific object classes. Pick a camera to start.
Pipeline & retention
Source connectors
Registered video-source types (extendable in code).
Edit cameras.yaml to add cameras/streams.
Privacy & GDPR masking
faces/zones blurred before the AI sees them
When enabled, faces (and any private zones) are blurred on each frame before it is sent to the vision model and, optionally, before the evidence snapshot is stored. Keeps identifiable footage out of cloud inference and retention.
Notifications
Send alerts to a webhook, Telegram, or email when an anomaly at/above the threshold fires.
Describe the scene in plain words so the AI can judge what is normal vs. noteworthy. This is different from Rules below (the hard keywords that raise an alert). Choose Global for the whole site, or a single camera to add specifics for just that view — camera notes are layered on top of the global context.
Rules — what to flag
Hot-reloaded the moment you save
Each card is one rule: choose where it applies, how serious it is, and the words/phrases that should trigger an alert when the AI sees them. No syntax to remember.
Describe a rule in plain English
Camera groups — reuse one rule across several cameras
Give a set of cameras a shared name (e.g. indoor), then scope a rule to that group.
Advanced — raw rules file
Direct edit of rules.txt. Saving here overrides the builder above.
Bearer tokens for integrations (scripts, NVRs, automations). Send as Authorization: Bearer <token>. The token value is shown once at creation — store it securely.
Name
Role
Last used
Actions
New token (copy now — it won't be shown again)
GDPR data-subject rights
Admin only
Search the event log for a person/description, then export (right of access) or erase (right to erasure) every matching event and its snapshots/clips. Matching is full-text over captions; all words must appear. Erasure is permanent and audited.
Tip: pick Room and drag to draw an area, then it asks for a name. Label places free text. Erase removes a shape you click. Save renders it as your floorplan so you can place camera markers on it.