Skip to content
cccskills
FreePublished on GitHub

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.

The English summary is being prepared. Showing the original description.

Run score Not tested

See how to install

Files included (2)

  • SKILL.md4.6 KB
  • bin/unifi-protect.py11.8 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

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 as custom.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 the X-API-KEY header.
  • Allowed hosts: whatever --host names (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

  1. Reads are always safe. auth, cameras, camera, and snapshot never need confirmation.
  2. 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 a patch touches recording behavior.
  3. 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.
  4. TLS: keep verification on. Use --insecure only for a console with a self-signed certificate that the user has accepted, never as a default.
  5. Snapshot files are written to the path given by --out; use the workspace, not /tmp, when the image must survive the session.
  6. 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.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

<What it does, one line>. Trigger phrases: <phrases>.

The English summary is being prepared. Showing the original description.

Anil-matcha/awesome-muse-connectors1.4KUpdated Oct 14, 2026

List Airtable bases, read table records, and add records. Trigger phrases: airtable, my base, add a record, spreadsheet.

The English summary is being prepared. Showing the original description.

Anil-matcha/awesome-muse-connectors1.4KUpdated Oct 14, 2026

Stock quotes and daily price history. Trigger phrases: stock quote, alphavantage, stock price.

The English summary is being prepared. Showing the original description.

Anil-matcha/awesome-muse-connectors1.4KUpdated Oct 14, 2026

Search travel with Amadeus: flight offers and prices, airport autocomplete, hotel offers, cheapest dates. Trigger phrases: amadeus, flight search, flight prices, hotel search.

The English summary is being prepared. Showing the original description.

Anil-matcha/awesome-muse-connectors1.4KUpdated Oct 14, 2026

Check Anthropic API access and list available Claude models. Read-only. Trigger phrases: anthropic, claude models, anthropic api.

The English summary is being prepared. Showing the original description.

Anil-matcha/awesome-muse-connectors1.4KUpdated Oct 14, 2026

apollo

Free

Search B2B contacts with Apollo.io: find people by title and company, enrich contacts and companies. Trigger phrases: apollo, find prospects, enrich contact.

The English summary is being prepared. Showing the original description.

Anil-matcha/awesome-muse-connectors1.4KUpdated Oct 14, 2026

See all skills by Anil-matcha

Report a problem with this skill