MCPInstall

frigate-configurator

Configure Frigate NVR with optimized YAML, object detection, recording, zones, and hardware acceleration. Use when setting up Frigate cameras, troubleshooting detection issues, configuring Coral TPU/OpenVINO, or integrating with Home Assistant.

Installs
117
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/nodnarbnitram/claude-code-extensions --skill frigate-configurator
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads frigate-configurator automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Frigate NVR Configuration Expert

Comprehensive Frigate NVR configuration assistance with optimized YAML generation, detector setup, and troubleshooting.

BEFORE YOU START

This skill prevents 12+ common errors and saves ~60% tokens on Frigate configuration.

MetricWithout SkillWith Skill
Setup Time2-4 hours30-45 min
Common Errors12+0
Token Usage~15,000~6,000

Known Issues This Skill Prevents

  1. Bus errors from insufficient shared memory allocation
  2. Green/distorted video from incorrect resolution configuration
  3. Database locked errors when using network storage for SQLite
  4. Missing audio in recordings due to default audio stripping
  5. MQTT connection failures from using localhost in Docker
  6. Coral TPU not detected due to missing device passthrough
  7. High CPU usage from missing hardware acceleration
  8. False positives from missing motion masks on timestamps
  9. No alerts triggered due to misconfigured required_zones
  10. Recording corruption from h265 streams without transcoding
  11. go2rtc WebRTC failures from missing STUN configuration
  12. Object detection misses from wrong detect stream resolution

Quick Start

Step 1: Create Minimal Configuration

mqtt:
  enabled: false

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://user:pass@192.168.1.100:554/stream1
          roles:
            - detect
    detect:
      width: 1280
      height: 720
      fps: 5

Why this matters: Start with the absolute minimum to verify camera connectivity before adding complexity. Frigate requires explicit detect stream role assignment.

Step 2: Add Hardware-Accelerated Detector

detectors:
  coral:
    type: edgetpu
    device: usb

# OR for Intel with OpenVINO:
detectors:
  ov:
    type: openvino
    device: GPU

Why this matters: CPU detection is not recommended for production. Even a single USB Coral TPU dramatically reduces CPU usage and improves detection latency.

Step 3: Enable Recording with Retention

record:
  enabled: true
  retain:
    days: 1
    mode: motion
  alerts:
    retain:
      days: 14
  detections:
    retain:
      days: 7

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://user:pass@192.168.1.100:554/stream1
          roles:
            - detect
        - path: rtsp://user:pass@192.168.1.100:554/stream2
          roles:
            - record

Why this matters: Use separate streams for detect (low-res) and record (high-res) to optimize performance. Retention modes prevent storage from filling up.

Critical Rules

Always Do

  • Use width and height that match your camera's ACTUAL resolution (verify with VLC)
  • Set detect fps between 5-10 (higher wastes resources, lower misses events)
  • Use separate streams for detect (sub-stream) and record (main stream)
  • Allocate adequate shm-size in Docker (64MB minimum per camera)
  • Create motion masks for timestamp overlays and areas with constant motion
  • Use environment variables for credentials: {FRIGATE_RTSP_PASSWORD}
  • Test RTSP URLs in VLC first before adding to Frigate config

Never Do

  • Never use localhost or 127.0.0.1 for MQTT inside Docker containers
  • Never set detect resolution higher than 1280x720 (wastes detector capacity)
  • Never enable recording without specifying retention policy
  • Never mount /media/frigate on network storage without relocating database
  • Never mix multiple detector types for object detection (e.g., Coral + OpenVINO)
  • Never use UDP RTSP transport without explicit configuration (TCP is default)

Common Mistakes

Wrong:

cameras:
  cam1:
    ffmpeg:
      inputs:
        - path: rtsp://192.168.1.100/stream
          roles:
            - detect
            - record
    detect:
      width: 1920
      height: 1080
      fps: 30

Correct:

cameras:
  cam1:
    ffmpeg:
      inputs:
        - path: rtsp://192.168.1.100/substream
          roles:
            - detect
        - path: rtsp://192.168.1.100/mainstream
          roles:
            - record
    detect:
      width: 1280
      height: 720
      fps: 5

Why: Using 1080p@30fps for detection wastes resources. Detection works best at 720p or lower at 5fps. Always use the camera's sub-stream for detection and main stream for recording.

Known Issues Prevention

IssueRoot CauseSolution
Bus ErrorInsufficient shared memorySet shm-size: 256mb in docker-compose
Database LockedSQLite on network storageUse database.path: /config/frigate.db
Green/Distorted VideoWrong resolution in configMatch camera's actual output resolution
No Audio in RecordingsDefault audio removalUse preset-record-generic-audio-aac
MQTT Connection Failedlocalhost in DockerUse host IP address instead
Coral Not DetectedMissing device passthroughAdd /dev/bus/usb to Docker devices
High CPU UsageMissing hwaccelAdd appropriate preset (vaapi/qsv/nvidia)
Missing AlertsNo required_zonesConfigure zones with review.alerts.required_zones
UDP Stream FailuresTCP is default in FrigateAdd preset-rtsp-udp to input args

Configuration Reference

config.yml Structure

# MQTT Configuration (optional but recommended)
mqtt:
  enabled: true
  host: 192.168.1.50
  port: 1883
  user: "{FRIGATE_MQTT_USER}"
  password: "{FRIGATE_MQTT_PASSWORD}"

# Detector Configuration
detectors:
  coral:
    type: edgetpu
    device: usb  # or pci for M.2/PCIe

# Global Object Settings
objects:
  track:
    - person
    - car
    - dog
    - cat
  filters:
    person:
      min_area: 5000
      max_area: 100000
      threshold: 0.7

# Recording Settings
record:
  enabled: true
  retain:
    days: 1
    mode: motion
  alerts:
    retain:
      days: 14
  detections:
    retain:
      days: 7

# Snapshot Settings
snapshots:
  enabled: true
  retain:
    default: 7

# Camera Configuration
cameras:
  front_door:
    enabled: true
    ffmpeg:
      inputs:
        - path: "rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.1.100:554/stream1"
          input_args: preset-rtsp-restream
          roles:
            - detect
        - path: "rtsp://{FRIGATE_RTSP_USER}:{FRIGATE_RTSP_PASSWORD}@192.168.1.100:554/stream0"
          input_args: preset-rtsp-restream
          roles:
            - record
      output_args:
        record: preset-record-generic-audio-aac
    detect:
      width: 1280
      height: 720
      fps: 5
    motion:
      mask:
        - 0,0,200,0,200,100,0,100  # Timestamp area
    zones:
      front_yard:
        coordinates: 100,500,400,500,400,720,100,720
        objects:
          - person
          - car
    review:
      alerts:
        required_zones:
          - front_yard

Key settings:

  • detect.fps: 5 is optimal for most cameras (reduces detector load)
  • detect.width/height: Must match actual camera sub-stream resolution
  • record.retain.mode: Use motion or active_objects to save storage
  • motion.mask: Define polygons as comma-separated coordinates
  • zones.coordinates: Bottom-center of bounding box determines zone presence

Hardware Acceleration Presets

Intel (6th Gen+)

# For Intel gen8+ (prefer QSV)
ffmpeg:
  hwaccel_args: preset-intel-qsv-h264  # or preset-intel-qsv-h265

# For Intel gen1-gen7 (use VAAPI)
ffmpeg:
  hwaccel_args: preset-vaapi

NVIDIA GPU

ffmpeg:
  hwaccel_args: preset-nvidia

Requires NVIDIA Container Toolkit:

# docker-compose.yml
services:
  frigate:
    runtime: nvidia
    environment:
      - NVIDIA_VISIBLE_DEVICES=all

AMD GPU

ffmpeg:
  hwaccel_args: preset-vaapi

# docker-compose.yml
environment:
  - LIBVA_DRIVER_NAME=radeonsi

Raspberry Pi

# Raspberry Pi 4/5
ffmpeg:
  hwaccel_args: preset-rpi-64-h264  # or preset-rpi-64-h265

Requires: gpu_mem=128 in /boot/config.txt and device mapping in Docker.

Object Detector Types

USB Coral TPU

detectors:
  coral:
    type: edgetpu
    device: usb  # Single USB Coral
    # device: usb:0  # First of multiple USB Corals

Docker device mapping:

devices:
  - /dev/bus/usb:/dev/bus/usb

M.2/PCIe Coral TPU

detectors:
  coral:
    type: edgetpu
    device: pci
    # device: pci:0  # First of multiple PCIe Corals

OpenVINO (Intel)

detectors:
  ov:
    type: openvino
    device: GPU  # or CPU

model:
  path: /openvino-model/ssdlite_mobilenet_v2.xml
  width: 300
  height: 300

ONNX (Multi-GPU)

detectors:
  onnx:
    type: onnx
    # Automatically uses: ROCm (AMD), OpenVINO (Intel), TensorRT (NVIDIA)

Advanced Features

Zone-Based Speed Estimation

zones:
  driveway:
    coordinates: 100,500,400,500,400,720,100,720
    distances:
      - "100,500|400,500|20ft"  # 20 feet between points
    speed:
      threshold: 15  # Minimum mph to register

Audio Detection

audio:
  enabled: true
  listen:
    - bark
    - fire_alarm
    - scream
    - speech

cameras:
  front_door:
    ffmpeg:
      inputs:
        - path: rtsp://camera/stream
          roles:
            - audio

GenAI Event Descriptions

genai:
  enabled: true
  provider: ollama
  base_url: http://192.168.1.100:11434
  model: llava

Face Recognition (Frigate+)

face_recognition:
  enabled: true
  threshold: 0.6

cameras:
  front_door:
    detect:
      width: 1280  # Higher res improves face detection

License Plate Recognition

lpr:
  enabled: true

cameras:
  driveway:
    lpr:
      enabled: true

go2rtc Integration

go2rtc:
  streams:
    front_door:
      - rtsp://user:pass@192.168.1.100:554/stream1
      - "ffmpeg:front_door#video=copy#audio=opus"
  webrtc:
    candidates:
      - 192.168.1.50:8555
      - stun:8555

Docker Compose Template

services:
  frigate:
    container_name: frigate
    image: ghcr.io/blakeblackshear/frigate:stable
    restart: unless-stopped
    shm_size: "256mb"
    devices:
      - /dev/bus/usb:/dev/bus/usb  # USB Coral
      - /dev/dri/renderD128:/dev/dri/renderD128  # Intel GPU
    volumes:
      - ./config:/config
      - ./storage:/media/frigate
      - type: tmpfs
        target: /tmp/cache
        tmpfs:
          size: 1000000000
    ports:
      - "8971:8971"  # Web UI
      - "8554:8554"  # RTSP feeds
      - "8555:8555/tcp"  # WebRTC
      - "8555:8555/udp"  # WebRTC
    environment:
      FRIGATE_RTSP_USER: admin
      FRIGATE_RTSP_PASSWORD: ${RTSP_PASSWORD}
      FRIGATE_MQTT_USER: frigate
      FRIGATE_MQTT_PASSWORD: ${MQTT_PASSWORD}

Bundled Resources

Templates

Located in templates/:

  • docker-compose.yml - Production-ready compose file
  • config-minimal.yml - Minimal starter config
  • config-full.yml - Full-featured config template

References

Located in references/:

  • detector-comparison.md - Detector performance comparison
  • ffmpeg-presets.md - All available FFmpeg presets
  • mqtt-topics.md - MQTT topic reference

Scripts

Located in scripts/:

  • validate-config.sh - Validate config syntax before applying

Dependencies

Required

PackageVersionPurpose
Docker20.10+Container runtime
docker-compose2.0+Service orchestration

Optional

PackageVersionPurpose
NVIDIA Container ToolkitLatestNVIDIA GPU support
Coral Edge TPU runtimeLatestCoral TPU support

Official Documentation

Troubleshooting

Camera Shows Offline

Symptoms: Camera fps shows 0, web UI shows offline status

Solution:

# Test RTSP URL directly
ffprobe -rtsp_transport tcp "rtsp://user:pass@ip:554/stream"

# Check Docker logs
docker logs frigate 2>&1 | grep -i "camera_name"

High CPU Usage

Symptoms: CPU consistently above 80%, system becomes unresponsive

Solution:

  1. Enable hardware acceleration (see presets above)
  2. Reduce detect fps from 10 to 5
  3. Lower detect resolution to 720p or below
  4. Add Coral TPU for object detection

No Objects Detected

Symptoms: Motion detected but no object events created

Solution:

  1. Verify detector is configured and running: check /api/stats
  2. Check object filters aren't too restrictive (min_area, threshold)
  3. Ensure detect stream resolution is correct
  4. Verify objects list includes desired types

Recording Not Working

Symptoms: Events show but no recordings available

Solution:

# Ensure record role is assigned
cameras:
  cam1:
    ffmpeg:
      inputs:
        - path: rtsp://camera/stream
          roles:
            - record  # Must be explicitly set
    record:
      enabled: true  # Must be true

Setup Checklist

Before deploying Frigate, verify:

  • Docker and docker-compose installed
  • RTSP URLs tested in VLC (note actual resolution)
  • Camera credentials ready for environment variables
  • Storage volume has adequate space (100GB+ recommended)
  • Shared memory size configured (64MB per camera minimum)
  • Hardware acceleration device mapped (if applicable)
  • Coral TPU device mapped (if using)
  • MQTT broker accessible (if integrating with Home Assistant)
  • Port 8971 available for web UI
  • Firewall allows required ports (8554, 8555 for streaming)

FAQ

What does the frigate-configurator skill do?

Configure Frigate NVR with optimized YAML, object detection, recording, zones, and hardware acceleration. Use when setting up Frigate cameras, troubleshooting detection issues, configuring Coral TPU/OpenVINO, or integrating with Home Assistant.

How do I install frigate-configurator?

Run npx skills add https://github.com/nodnarbnitram/claude-code-extensions --skill frigate-configurator in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/frigate-configurator/ (personal) or .claude/skills/frigate-configurator/ (project).

Which AI agents can use frigate-configurator?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is frigate-configurator safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains frigate-configurator?

It is published by nodnarbnitram in nodnarbnitram/claude-code-extensions. It has 117 recorded installs.

More from nodnarbnitram/claude-code-extensions

View all →

tauri-v2

nodnarbnitram/claude-code-extensions

Tauri v2+ cross-platform app development with Rust backend. Use when configuring tauri.conf.json, implementing Rust commands ([tauri::command]), setting up IPC patterns (invoke, emit, channels), configuring permissions/capabilities, troubleshooting build issues, or deploying desktop/mobile apps. Triggers on Tauri, src-tauri, invoke, emit, capabilities.json.

Backend & APIs8.1K installs

code-reviewer

nodnarbnitram/claude-code-extensions

Review code for best practices, security issues, and potential bugs. Use when reviewing code changes, checking PRs, analyzing code quality, or performing security audits.

ha-voice

nodnarbnitram/claude-code-extensions

Configure Home Assistant Assist voice control with pipelines, intents, wake words, and speech processing. Use when setting up voice control, creating custom intents, configuring TTS/STT, or building voice satellites. Activates on keywords: Assist, voice control, wake word, intent, sentence, TTS, STT, Piper, Whisper, Wyoming.

Media & Creative218 installs

esphome-config-helper

nodnarbnitram/claude-code-extensions

This skill should be used when the user asks to "create an esphome config", "set up an esp32 device", "configure esphome yaml", "add a sensor to esphome", "fix esphome compile error", or mentions "gpio pin assignment", "wifi setup", "ota update", or error messages like "Unknown platform", "GPIO already in use", "Could not compile", or "WiFi connection failed". Provides rapid ESPHome configuration generation, troubleshooting, and validation.

136 installs

ha-energy

nodnarbnitram/claude-code-extensions

Open the skill to read its SKILL.md instructions.

104 installs

ha-automation

nodnarbnitram/claude-code-extensions

Open the skill to read its SKILL.md instructions.

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs