Skip to content
Back to skills

Viseron

ASecurity

"Guides Viseron self-hosted NVR deployment, camera recording,

  • 247 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 9, 2026
developmentpythongosqldockerapibackend

Works with

  • api

Security analysis

A100/100

Pro scans all 20 files and shows the line behind each finding

Scanned September 9, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill viseron --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Viseron?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Viseron
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-viseron/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-viseron)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: viseron
description: "Guides Viseron self-hosted NVR deployment, camera recording,
  computer-vision detection, integrations, and backend extension workflows."
metadata:
  disco-role: operating
disable-model-invocation: true
license: MIT
---

# Viseron Repo Skill

Use this skill when a task involves Viseron, the self-hosted local NVR and AI computer-vision application, especially when the user needs to configure cameras, recording, storage, object/motion/face/license-plate detection, notifications, automations, or backend components.

## First checks

- Viseron is normally operated as a containerized service with a YAML `config.yaml` and optional `secrets.yaml` mounted into the runtime config directory.
- The Python distribution is named `viseron` and the primary import package is `viseron`; source checkouts also rely on a top-level `manager.py` helper for some subprocess modules.
- Treat live cameras, Docker images, PostgreSQL, MQTT brokers, notification credentials, detector services, GPU/EdgeTPU/Hailo devices, and model downloads as target-host requirements unless the user explicitly asks to verify them.
- Run bundled scripts from this skill only against user-provided config snippets or an already prepared Viseron runtime/development environment; they are preflight helpers and do not replace Viseron startup validation.

## Route by task

- **Install, deploy, or validate global configuration**: load [configuration-and-deployment](sub-skills/configuration-and-deployment/SKILL.md) for Docker/container setup, `config.yaml`, `secrets.yaml`, webserver/auth/API, logging, safe mode, and startup validation.
- **Configure camera streams, NVR, recording, storage tiers, snapshots, timelapse, or live view**: load [camera-recording-pipeline](sub-skills/camera-recording-pipeline/SKILL.md) for FFmpeg/GStreamer/go2rtc, stream URLs, FFprobe metadata, recorder/NVR behavior, retention, and storage troubleshooting.
- **Choose or debug motion/object/post-processing AI components**: load [detection-and-ai-components](sub-skills/detection-and-ai-components/SKILL.md) for MOG2/background subtraction, MQTT external motion, YOLO, Darknet, EdgeTPU, Hailo, CodeProject.AI, DeepStack, dlib, CompreFace, labels, masks, zones, filters, and training/post-processing touchpoints.
- **Automate events or control integrations**: load [automation-and-integrations](sub-skills/automation-and-integrations/SKILL.md) for MQTT/Home Assistant, webhooks, Discord/Gotify/Telegram notifications, Telegram commands, ONVIF PTZ, data-stream events, and Jinja templates.
- **Modify or extend Viseron source code**: load [developer-extension](sub-skills/developer-extension/SKILL.md) for component/domain lifecycle, config schemas, reload behavior, entities, docs generation, tests, and source-root import caveats.

## Root references and scripts

- Read [component capability index](references/component-capability-index.md) when deciding which component/domain owns a user request before loading a sub-skill.
- Read [cross-cutting troubleshooting](references/troubleshooting.md) for install/import, optional dependency, Docker, config, service, and source-root failures that span multiple sub-skills.
- Read [repo provenance](references/repo-provenance.md) when checking whether this skill is stale relative to a newer Viseron checkout.
- Run [scripts/check_viseron_imports.py](scripts/check_viseron_imports.py) in a Viseron Python environment to probe core imports and optional dependency availability without contacting cameras or services.
- Run [scripts/extract_config_schema_summary.py](scripts/extract_config_schema_summary.py) in a Viseron source/runtime environment to list available component schemas and setup hooks.

## Common workflow skeletons

### Review a user configuration

1. Load `configuration-and-deployment` and validate YAML/secrets syntax first.
2. Route each top-level component to the owning sub-skill using the component capability index.
3. Check cross-component dependencies: cameras must load before NVR, object/motion detectors are optional or required depending on the component, and post-processors need object-detector labels that can trigger them.
4. For every external service, credential, device, model, or camera URL, separate static config review from target-host runtime verification.

### Diagnose missing recordings or detections

1. Load `camera-recording-pipeline` to check camera connectivity, stream metadata, recorder/NVR settings, storage tiers, and live-frame availability.
2. Load `detection-and-ai-components` to check whether motion/object labels, zones, masks, `scan_on_motion_only`, `trigger_event_recording`, `store`, and post-processor labels can produce the expected event.
3. Load `automation-and-integrations` only if the event exists in Viseron but an MQTT/webhook/notification/Telegram side effect is missing.

### Add or modify a backend component

1. Load `developer-extension` before editing code.
2. Keep `setup_domains()` hot-reload safe: register domain instances only, and avoid expensive shared initialization there.
3. Put component-level resources in `setup()`, declare `CONFIG_SCHEMA`, and model domain dependencies with `RequireDomain` or `OptionalDomain`.
4. After code changes, select focused native tests from the relevant sub-skill's candidate list rather than running hardware, container, or external-service checks by default.

## Who owns what

| User request signal | Owning route | Why |
|---|---|---|
| `config.yaml`, `secrets.yaml`, startup error, safe mode, web UI, API token, auth, or logging | `configuration-and-deployment` | These are global deployment concerns and should be checked before any camera or detector tuning. |
| RTSP/MJPEG URL, FFmpeg command, FFprobe timeout, recorder, NVR, live view, snapshots, timelapse, storage tier | `camera-recording-pipeline` | These concerns are tied to frame acquisition, recordings, and retained media. |
| Motion detected but no recording, label mismatch, zone/mask issue, model/device choice, EdgeTPU/Hailo/YOLO/Darknet, face or plate recognition | `detection-and-ai-components` | These are AI pipeline and post-processing choices. |
| MQTT entity/topic, webhook, Telegram, Discord, Gotify, PTZ, event topic, Jinja template | `automation-and-integrations` | These are side effects or control surfaces layered on top of Viseron events. |
| Setup hook, config schema, reload diff, domain dependency, entity class, docs generation, tests, or import caveat in source code | `developer-extension` | These are repo-maintenance and backend-extension tasks. |

## How to use the bundled scripts

- `scripts/check_viseron_imports.py` prints a compact import/probe report for core modules and selected optional groups. Use it when you need to know whether a Viseron environment is ready for source inspection or which optional backend is missing.
- `scripts/extract_config_schema_summary.py` summarizes which components expose `CONFIG_SCHEMA`, `setup()`, and `setup_domains()`. Use it when choosing which component-owned sub-skill should own a new configuration branch.
- The sub-skill scripts are intentionally narrow and safe. They should fail fast on malformed local input instead of starting Viseron or contacting live hardware/services.

## Verification boundaries

This skill was constructed from source, docs, tests, generated component explorer config, and CPU-safe installed-package inspection. It does **not** claim that this construction host verified live cameras, Docker images, PostgreSQL services, MQTT brokers, notification endpoints, YOLO/Darknet inference, EdgeTPU, Hailo, GStreamer/PyGObject, or CUDA/VA-API/Jetson/Raspberry Pi acceleration. Those remain explicit target-host checks.

Files in this skill

  • SKILL.md7.5 KB
  • references/component-capability-index.md5.6 KB
  • references/repo-provenance.md2.5 KB
  • references/repo-routing-metadata.json326 B
  • references/troubleshooting.md5.5 KB
  • scripts/check_viseron_imports.py4.6 KB
  • scripts/extract_config_schema_summary.py3.3 KB
  • sub-skills/automation-and-integrations/SKILL.md2.7 KB
  • sub-skills/automation-and-integrations/references/events-and-templates.md7.1 KB
  • sub-skills/automation-and-integrations/references/mqtt-and-home-assistant.md7 KB
  • sub-skills/automation-and-integrations/references/troubleshooting.md9.4 KB
  • sub-skills/automation-and-integrations/references/webhooks-notifications-and-ptz.md9.8 KB
  • sub-skills/automation-and-integrations/scripts/render_template_condition.py9.1 KB
  • sub-skills/camera-recording-pipeline/SKILL.md2.9 KB
  • sub-skills/camera-recording-pipeline/references/camera-streams.md9.2 KB
  • sub-skills/camera-recording-pipeline/references/live-view-and-go2rtc.md5.2 KB
  • sub-skills/camera-recording-pipeline/references/storage-and-recordings.md10.3 KB
  • sub-skills/camera-recording-pipeline/references/troubleshooting.md8.1 KB
  • sub-skills/camera-recording-pipeline/scripts/build_ffmpeg_url.py8.1 KB
  • sub-skills/configuration-and-deployment/SKILL.md2.6 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…