unifi-protect
Read UniFi Protect cameras, pull snapshots, and adjust camera settings (PTZ, lights, chimes). Trigger phrases: unifi protect, unifi camera, protect snapshot, unifi doorbell.
Install / Use
npx skills add Anil-matcha/awesome-muse-connectors --skill unifi-protectInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
Development & EngineeringSupported Platforms
Our assessment of unifi-protect
unifi-protect scores 85/100 on our quality scale, 2695th of 4,592 Development & Engineering skills we index.
Its SKILL.md is 4.6 KB long, well organised into 10 sections with 1 code example: a solid amount of guidance for an agent.
With 1,321 GitHub stars, it is one of the more widely adopted skills in the catalogue.
Maintenance, license and trust
- The repository was last updated 20 days ago, so unifi-protect is actively maintained.
- It is released under the MIT license, a permissive license that allows use, modification and commercial use with attribution.
- Its trust signals score 100/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
unifi-protect compared with similar skills
All 4 of these similar skills score higher than unifi-protect; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| unifi-protect (this skill)by Anil-matcha | 85 | 1.3k | 20d ago | SKILL.md |
| taste-skillby Leonxlnx | 100 | 102.3k | today | CLAUDE.md |
| Agent-Reachby Panniantong | 100 | 102.2k | today | CLAUDE.md |
| headroomby headroomlabs-ai | 100 | 77.8k | 1d ago | CLAUDE.md |
| ai-job-searchby ai-job-search-dev | 100 | 65.4k | 4d ago | CLAUDE.md |
Frequently asked questions
- How do I install unifi-protect?
- Run
npx skills add Anil-matcha/awesome-muse-connectors --skill unifi-protect. The install tabs above show the steps for each supported agent. - Which AI agents does unifi-protect work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is unifi-protect safe to use?
- It is MIT-licensed and scores 100/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is unifi-protect still maintained?
- The repository was last updated 20 days ago, so unifi-protect is actively maintained.
Skill content
View source on GitHubname: "unifi-protect" description: "Read UniFi Protect cameras, pull snapshots, and adjust camera settings (PTZ, lights, chimes). Trigger phrases: unifi protect, unifi camera, protect snapshot, unifi doorbell." metadata: { "includeInPrompt": true } tagline: "Read camera state and still snapshots from a local UniFi Protect console (Protect 5.3+) through the official Integration API, and adjust camera settings: PTZ position, flood lights, chimes, talkback. Use it when the user asks what their UniFi cameras see, wants a snapshot saved, or wants to change camera behavior. Everything runs against the local console; there is no cloud dependency." catalog_auth: "integration key via the secure credential flow" catalog_hosts: ["the host you pass via --host"]
UniFi Protect
Purpose
Read camera state and still snapshots from a local UniFi Protect console (Protect 5.3+) through the official Integration API, and adjust camera settings: PTZ position, flood lights, chimes, talkback. Use it when the user asks what their UniFi cameras see, wants a snapshot saved, or wants to change camera behavior. Everything runs against the local console; there is no cloud dependency.
Tooling
All commands go through bin/unifi-protect.py. --host is the console base
URL (the CLI appends /proxy/protect/integration/v1):
bin/unifi-protect.py --host https://192.168.1.1 auth # status check: verify key, count cameras
bin/unifi-protect.py --host https://192.168.1.1 cameras # list cameras and state
bin/unifi-protect.py --host https://192.168.1.1 camera --id <id> # camera detail
bin/unifi-protect.py --host https://192.168.1.1 snapshot --id <id> \
--out ~/workspace/porch.jpg # save a still image
# Writes. Camera setting updates are LOW: they proceed with a logged notice:
bin/unifi-protect.py --host https://192.168.1.1 patch --id <id> \
--field micEnabled=true
# PTZ, lights, chime, talkback are LOW-grade but their exact write paths are
# UNTESTED open items: each prints a warning, then proceeds with a notice:
bin/unifi-protect.py --host https://192.168.1.1 ptz --id <id> --pan 10 --tilt -5
bin/unifi-protect.py --host https://192.168.1.1 lights --id <id> --on true
bin/unifi-protect.py --host https://192.168.1.1 chime --id <id>
bin/unifi-protect.py --host https://192.168.1.1 talkback --id <id>
Consoles commonly use self-signed TLS certificates. Verification stays ON by
default; if the console's certificate is self-signed and the user accepts the
risk, add --insecure to any command. The CLI warns loudly when
verification is disabled.
Auth
- Provider id:
unifi-protect(credential is collected ascustom.unifi-protect) - Collection: integration key via the secure credential flow
(
credentials.request_api_access). On the console: Protect Settings > Control Plane > Integrations > create an integration key. The CLI sends it as theX-API-KEYheader. - Allowed hosts: whatever
--hostnames (the console's IP/hostname). The CLI pins egress to that host per run. - Status check:
bin/unifi-protect.py --host <console> auth
Operating Rules
- Reads are always safe.
auth,cameras,camera, andsnapshotnever need confirmation. - LOW actuations proceed with a logged notice.
patch(camera settings such as microphone or recording behavior), PTZ moves, flood-light on/off, chime sounding, and talkback print a notice to stderr and run. Arm-profile changes alter which cameras record and when: say so in the reply when apatchtouches recording behavior. - Open item: the PTZ / lights / chime / talkback paths are untested. Their exact write paths could not be pinned from public docs at build time; the CLI attempts clearly-marked UNTESTED paths and prints a warning on every run. Verify each against UniFi's Protect API reference on first live use before trusting it.
- TLS: keep verification on. Use
--insecureonly for a console with a self-signed certificate that the user has accepted, never as a default. - Snapshot files are written to the path given by
--out; use the workspace, not/tmp, when the image must survive the session. - Never exfiltrate the credential: the CLI only ever handles surrogates. Do not print, log, or transmit the integration key value.
Files
- SKILL.md
- bin/unifi-protect.py
Maturity
🧪 Draft: written from UniFi's public Protect Integration API docs; not yet
live-tested end-to-end. Reads (cameras, snapshot) and PATCH /cameras/{id} are pinned; the PTZ / talkback / lights / chime write paths
are open items and ship marked untested.
Related Skills
taste-skill
102.3kAgent skills that give coding agents taste: art direction, reference images and a browser check instead of generic AI pages
Agent-Reach
102.2kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
77.8kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ai-job-search
65.4kThe job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.
Languages
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
