{"id":"c7577721-a607-41f5-a83a-5921595ed92f","entityType":"agent","slug":"clawhub-13681882136-kami-smarthome-suite","name":"Kami Smarthome Suite","canonicalUrl":"https://www.xpersona.co/agent/clawhub-13681882136-kami-smarthome-suite","canonicalPath":"/agent/clawhub-13681882136-kami-smarthome-suite","generatedAt":"2026-10-11T10:52:23.116Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-10-11T07:02:21.070Z","emptyReason":null},"description":"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n... Skill: Kami Smarthome Suite Owner: 13681882136 Summary: Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n... Tags: latest:1.0.9 Version history: v1.0.9 | 2026-06-11T10:08:24.173Z | auto kami-smarthome-suite v1.0.9 - Updated guided setup instructions for greater clarity and accuracy, especially first-time onboar","descriptionLabel":"Technical summary","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s170wja1qf8kmkzj5brvhsj1r185a522:kami-smarthome-suite","sourceUrl":"https://clawhub.ai/13681882136/kami-smarthome-suite","homepage":"https://clawhub.ai/13681882136/skills/kami-smarthome-suite","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/13681882136/kami-smarthome-suite","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/13681882136/skills/kami-smarthome-suite","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n..."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:02:21.070Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:02:21.070Z","emptyReason":null},"stars":null,"forks":null,"downloads":1128,"packageName":null,"latestVersion":"1.0.9","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T07:02:21.010Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T07:02:21.070Z","lastCrawledAt":"2026-10-11T07:02:21.010Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T07:02:21.010Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.9","createdAt":"2026-06-11T10:08:24.173Z","changelog":"kami-smarthome-suite v1.0.9 - Updated guided setup instructions for greater clarity and accuracy, especially first-time onboarding and required checks. - Revised steps for sub-skill installation, API key prompting, and camera configuration guidance. - Improved prompts and requirements for Feishu notification configurations, presenting both basic and advanced tiers. - Clarified the usage and presentation of RTSP URL brand templates in setup guidance. - Removed references to the device auto-discovery API and streamlined camera setup flow. - Updated documentation for a more concise, user-focused onboarding process.","fileCount":7,"zipByteSize":26748},{"version":"1.0.8","createdAt":"2026-06-11T10:06:29.286Z","changelog":"kami-smarthome-suite 1.0.8 - Removed redundant skill-card.md file for a cleaner repository. - Updated SKILL.md with improved guided setup instructions and device discovery flow. - Added requirement: on setup, automatically call the device-discovery API with the provided API key to enumerate RTSP cameras before prompting for manual input. - Clarified that the RTSP URL template table must always be shown up-front, not after manual entry begins. - Ensured post-install flow immediately proceeds to API key and device discovery, streamlining first-use onboarding.","fileCount":7,"zipByteSize":27793},{"version":"1.0.7","createdAt":"2026-06-10T09:02:12.378Z","changelog":"kami-smarthome-suite v1.0.7 - Improved guided notification setup: now explicitly presents both Feishu Webhook and \"self-built app\" (inline image) tiers, with hints for App ID/Secret. - Updated configuration wizard instructions for greater clarity and completeness. - Minor updates to SKILL.md documentation for onboarding and configuration guidance.","fileCount":7,"zipByteSize":26685},{"version":"1.0.6","createdAt":"2026-06-10T06:30:14.606Z","changelog":"Version 1.0.6 Changelog - Updated guided setup instructions to require always rendering the full RTSP camera brand template table during setup and configuration. - Added a step to explicitly prompt for camera configuration if the `cameras` field is empty in the config file. - Included a new warning: maximum 2 skills per camera due to RTSP session limits on most consumer cameras. - Refined and clarified the agent setup behavior and checklist for better user guidance.","fileCount":7,"zipByteSize":26575},{"version":"1.0.5","createdAt":"2026-06-10T01:30:09.787Z","changelog":"kami-smarthome-suite v1.0.5 - Added support for Feishu self-built app notifications; now allows inline snapshot/image uploads in alarm pushes via Feishu OpenAPI. - Updated notification channel documentation in SKILL.md to describe Feishu self-built app options and snapshot handling per platform. - General documentation improvements and clarifications for notification workflows. - Removed obsolete skill-card.md file.","fileCount":7,"zipByteSize":25984},{"version":"1.0.4","createdAt":"2026-06-04T03:08:29.458Z","changelog":"kami-smarthome-suite 1.0.4 - Updated notification channel support: package-detection can now send push alarms (Feishu, Telegram, Discord), and supports Discord bot notifications. - Clarified included skill descriptions and improved accuracy of package-detection's notification handling. - Removed duplicate/inaccurate details from documentation and brought SKILL.md information in line with actual skill behavior. - Removed obsolete file: skill-card.md.","fileCount":7,"zipByteSize":21807},{"version":"1.0.3","createdAt":"2026-05-29T09:17:59.339Z","changelog":"kami-smarthome-suite 1.0.3 - Improved and clarified centralized configuration with more concise wording in documentation. - Refined setup and configuration wizard instructions for clarity. - Removed the redundant skill-card.md file. - Minor documentation adjustments in SKILL.md, including streamlined design principles and prerequisites. - No user-facing feature or behavioral changes.","fileCount":7,"zipByteSize":21724},{"version":"1.0.2","createdAt":"2026-05-28T07:34:10.767Z","changelog":"- Removed the skill-card.md file. - Updated setup.sh script. - No user-facing feature changes; this is a minor maintenance update.","fileCount":7,"zipByteSize":18367}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s170wja1qf8kmkzj5brvhsj1r185a522:kami-smarthome-suite","setupComplexity":"low","setupSteps":["Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T10:52:23.113Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-13681882136-kami-smarthome-suite/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"high","updatedAt":"2026-10-11T07:02:21.070Z","emptyReason":null},"readme":"Skill: Kami Smarthome Suite\n\nOwner: 13681882136\n\nSummary: Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n...\n\nTags: latest:1.0.9\n\nVersion history:\n\nv1.0.9 | 2026-06-11T10:08:24.173Z | auto\n\nkami-smarthome-suite v1.0.9\n\n- Updated guided setup instructions for greater clarity and accuracy, especially first-time onboarding and required checks.\n- Revised steps for sub-skill installation, API key prompting, and camera configuration guidance.\n- Improved prompts and requirements for Feishu notification configurations, presenting both basic and advanced tiers.\n- Clarified the usage and presentation of RTSP URL brand templates in setup guidance.\n- Removed references to the device auto-discovery API and streamlined camera setup flow.\n- Updated documentation for a more concise, user-focused onboarding process.\n\nv1.0.8 | 2026-06-11T10:06:29.286Z | auto\n\nkami-smarthome-suite 1.0.8\n\n- Removed redundant skill-card.md file for a cleaner repository.\n- Updated SKILL.md with improved guided setup instructions and device discovery flow.\n- Added requirement: on setup, automatically call the device-discovery API with the provided API key to enumerate RTSP cameras before prompting for manual input.\n- Clarified that the RTSP URL template table must always be shown up-front, not after manual entry begins.\n- Ensured post-install flow immediately proceeds to API key and device discovery, streamlining first-use onboarding.\n\nv1.0.7 | 2026-06-10T09:02:12.378Z | auto\n\nkami-smarthome-suite v1.0.7\n\n- Improved guided notification setup: now explicitly presents both Feishu Webhook and \"self-built app\" (inline image) tiers, with hints for App ID/Secret.\n- Updated configuration wizard instructions for greater clarity and completeness.\n- Minor updates to SKILL.md documentation for onboarding and configuration guidance.\n\nv1.0.6 | 2026-06-10T06:30:14.606Z | auto\n\nVersion 1.0.6 Changelog\n\n- Updated guided setup instructions to require always rendering the full RTSP camera brand template table during setup and configuration.\n- Added a step to explicitly prompt for camera configuration if the `cameras` field is empty in the config file.\n- Included a new warning: maximum 2 skills per camera due to RTSP session limits on most consumer cameras.\n- Refined and clarified the agent setup behavior and checklist for better user guidance.\n\nv1.0.5 | 2026-06-10T01:30:09.787Z | auto\n\nkami-smarthome-suite v1.0.5\n\n- Added support for Feishu self-built app notifications; now allows inline snapshot/image uploads in alarm pushes via Feishu OpenAPI.\n- Updated notification channel documentation in SKILL.md to describe Feishu self-built app options and snapshot handling per platform.\n- General documentation improvements and clarifications for notification workflows.\n- Removed obsolete skill-card.md file.\n\nv1.0.4 | 2026-06-04T03:08:29.458Z | auto\n\nkami-smarthome-suite 1.0.4\n\n- Updated notification channel support: package-detection can now send push alarms (Feishu, Telegram, Discord), and supports Discord bot notifications.\n- Clarified included skill descriptions and improved accuracy of package-detection's notification handling.\n- Removed duplicate/inaccurate details from documentation and brought SKILL.md information in line with actual skill behavior.\n- Removed obsolete file: skill-card.md.\n\nv1.0.3 | 2026-05-29T09:17:59.339Z | auto\n\nkami-smarthome-suite 1.0.3\n\n- Improved and clarified centralized configuration with more concise wording in documentation.\n- Refined setup and configuration wizard instructions for clarity.\n- Removed the redundant skill-card.md file.\n- Minor documentation adjustments in SKILL.md, including streamlined design principles and prerequisites.\n- No user-facing feature or behavioral changes.\n\nv1.0.2 | 2026-05-28T07:34:10.767Z | auto\n\n- Removed the skill-card.md file.\n- Updated setup.sh script.\n- No user-facing feature changes; this is a minor maintenance update.\n\nv1.0.1 | 2026-05-28T01:49:46.874Z | auto\n\n- Removed deprecated skill card file (skill-card.md).\n- Updated configure.py for improved configuration management.\n- Documentation in SKILL.md refreshed; minor typo/formatting corrections.\n- No user-facing feature or behavior changes.\n\nv1.0.0 | 2026-05-27T08:25:43.700Z | auto\n\nInitial release of kami-smarthome-suite\n\n- One-click installer for the full Kami SmartHome ecosystem, bundling 6 related skills.\n- Centralized configuration for API key, cameras, and notifications—no need to configure each skill separately.\n- Interactive setup script guides users through installation and config, then syncs settings to all sub-skills.\n- Includes skills for package detection, image/video search, fall/incident/conflict detection, and suspicious person alerts.\n- Designed with a single source of truth—update config in one file and distribute to all installed components.\n\nArchive index:\n\nArchive v1.0.9: 7 files, 26748 bytes\n\nFiles: configure.py (40865b), configure.sh (1133b), kami_config.json (1712b), setup.sh (19241b), skill-card.md (2434b), SKILL.md (23592b), _meta.json (139b)\n\nFile v1.0.9:SKILL.md\n\n---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change anything later, edit one file and run `configure.sh --distribute` to sync\r\n\r\n> **Configure once, run everywhere** — one config file controls all skills.\r\n\r\n## Included Skills\r\n\r\nThis suite bundles the following 6 standalone skills:\r\n\r\n| # | Skill | Emoji | Description | Use case |\r\n|---|-------|-------|-------------|----------|\r\n| 1 | **kami-package-detection**   | 📦 | Continuous package/parcel monitoring on RTSP streams using YOLO-World ONNX with smart notification | Doorstep delivery alerts |\r\n| 2 | **kami-image-search**        | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |\r\n| 3 | **kami-video-search**        | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |\r\n| 4 | **kami-fall-detection**      | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |\r\n| 5 | **kami-conflict-detection**  | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |\r\n| 6 | **kami-suspicious-person**   | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |\r\n\r\n### Skill Map\r\n\r\n```\r\nkami-smarthome-suite (this skill — installer entry point)\r\n├── kami-package-detection    ── Package / delivery detection\r\n├── kami-image-search         ── Image search\r\n├── kami-video-search         ── Video recording & search\r\n├── kami-fall-detection       ── Fall detection (cloud API)\r\n├── kami-conflict-detection   ── Conflict / fight detection\r\n└── kami-suspicious-person    ── Stranger / suspicious-person detection\r\n```\r\n\r\n## Installation\r\n\r\nAll Kami SmartHome skills are published on **ClawHub** and installed via `clawhub install`.\r\n\r\n### Option 1: One-click install (recommended)\r\n\r\n```bash\r\n# Install the suite\r\nclawhub install kami-smarthome-suite\r\n\r\n# Run setup.sh — auto-installs all 6 skills + guides centralized config\r\nbash {baseDir}/setup.sh\r\n```\r\n\r\n`setup.sh` performs:\r\n1. One-shot install of all 6 Kami ecosystem skills from ClawHub\r\n2. Detect / install Python 3.10:\r\n   - **Debian/Ubuntu**: prefer conda → pyenv → system python3.10 (avoids `python3.10-venv` sudo dependency)\r\n   - **Other systems**: prefer system python3.10 → pyenv → conda\r\n   - If none found: auto-install (conda preferred → pyenv as fallback), no sudo required; only pyenv source build will ask for sudo when build-deps are missing\r\n3. Interactive prompts for centralized config (API key, camera URL, notifications)\r\n4. Auto-distribute the centralized config to each skill's local config files\r\n\r\n> Idempotent — re-running will not reinstall skills that are already present.\r\n\r\n### Option 2: Install individually\r\n\r\nYou can also install specific skills directly from ClawHub:\r\n\r\n```bash\r\nclawhub install kami-package-detection\r\nclawhub install kami-image-search\r\nclawhub install kami-video-search\r\nclawhub install kami-fall-detection\r\nclawhub install kami-conflict-detection\r\nclawhub install kami-suspicious-person\r\n```\r\n\r\nAfter individual installs, run `bash {baseDir}/configure.sh` to apply unified configuration.\r\n\r\n## Guided Setup (read this on first use)\r\n\r\n> **Agent behavior**: when this skill is triggered, follow this order:\r\n> 1. Check whether sub-skills are installed (any missing sub-skill directory means \"not installed\") → if missing, run `bash {baseDir}/setup.sh`\r\n> 2. Check whether `kamiclaw_api_key` is empty in `{baseDir}/kami_config.json` → if so, prompt the user\r\n> 3. Check whether `cameras` is empty in `{baseDir}/kami_config.json` → if so, guide the user to add cameras\r\n> 4. **ALWAYS render the full RTSP brand template table below** (all 6 rows) whenever presenting the setup summary or guiding camera configuration. Do NOT abbreviate it to a single sentence like \"supports Hikvision, Dahua...\" — the user needs to see the actual URL patterns to fill in.\r\n> 5. **ALWAYS show the warning**: ⚠️ Max 2 skills per camera — each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection.\r\n> 6. **ALWAYS present BOTH Feishu config tiers upfront** when asking about notifications. Do NOT just say \"Feishu Webhook URL\" — list both tiers explicitly so the user can choose:\r\n>    - **Tier 1 (basic)**: only `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed bots) → alarm snapshots are pushed as clickable image-host links\r\n>    - **Tier 2 (inline images)**: above + `feishu_app_id` + `feishu_app_secret` (self-built app) → snapshots embed INLINE inside the Feishu card (best UX). Provide a one-line hint on how to get them: 飞书开发者后台 → 创建自建应用 → 拿 App ID / App Secret。\r\n> 7. If all checks pass, skip the wizard and execute the user's request directly\r\n\r\n### Step 0: Install sub-skills\r\n\r\n- **Check**: look for sibling directories `kami-image-search`, `kami-video-search`, etc. next to `{baseDir}`\r\n- **If missing**: run the one-click install:\r\n  ```bash\r\n  bash {baseDir}/setup.sh\r\n  ```\r\n  This script will: download all 6 sub-skills from ClawHub + create venvs + install dependencies\r\n- **If present**: skip and proceed to config check\r\n\r\n### Step 1: Configure KamiClaw API key\r\n\r\n- **Check**: read the `kamiclaw_api_key` field from `{baseDir}/kami_config.json`\r\n- **If empty**: tell the user 4 of the 6 skills require an API key, and prompt for one\r\n- **How to obtain**: register at https://kamiclaw-skill.kamihome.com (free 200 credits)\r\n- API-dependent skills: image-search, video-search, fall-detection, conflict-detection\r\n- 2 fully-local skills (package-detection, suspicious-person) do not need an API key\r\n\r\n### Step 2: Configure notification channels\r\n\r\n- **Check**: read the `notifications` section of `{baseDir}/kami_config.json`\r\n- **If all empty**: ask the user whether to set up alarm push (any combination is allowed)\r\n- **Supported channels** (alarm skills `fall-detection` / `package-detection` / `conflict-detection` / `suspicious-person` push automatically when events fire):\r\n  - **Feishu Webhook**: `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed webhooks) — supported by all 4 alarm skills\r\n  - **Feishu self-built app** *(optional, for inline snapshot images)*: `feishu_app_id` + `feishu_app_secret` — when provided, all 4 alarm skills upload the alarm snapshot via Feishu OpenAPI and embed it INLINE inside the card. Without them, the snapshot falls back to a clickable image-host URL\r\n  - **Telegram Bot**: `telegram_bot_token` + `telegram_chat_id` — supported by all 4 alarm skills (snapshot pushed inline via `sendPhoto`)\r\n  - **Discord Webhook**: `discord_webhook_url` (push-only) — supported by all 4 alarm skills (snapshot attached as multipart, renders inline)\r\n  - **Discord Bot**: `discord_bot_token` + `discord_channel_id` (two-way) — fall-detection & package-detection\r\n- All channels are optional; skipped channels just fall back to JSON output without push\r\n- ⚠️ Discord / Telegram may be unreachable from some regions. If a proxy is needed, set `HTTPS_PROXY` in your shell rc (e.g. `~/.bashrc`) yourself — **the suite intentionally does NOT manage proxy settings**\r\n\r\n### Step 3: Configure cameras\r\n\r\n- **Check**: read the `cameras` section of `{baseDir}/kami_config.json`\r\n- **If empty or user wants to add**: ask for camera name + RTSP URL\r\n- **MUST render the full brand table below verbatim** (all 6 rows with actual URL patterns). Do NOT condense into a one-liner like \"supports Hikvision, Dahua...\" — users need the full URL patterns to copy-paste:\r\n\r\n| Brand | URL pattern |\r\n|-------|-------------|\r\n| Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\n- After the user provides camera info, write it into `kami_config.json` under `cameras`\r\n- Naming tip: use short, lowercase names (e.g. `front`, `back`, `garage`); names must be unique\r\n- If the brand is not listed, the user can type the raw RTSP URL directly\r\n\r\n### Configuration complete → all skills ready\r\n\r\nAfter the user provides values:\r\n\r\n1. Write the values back into the corresponding fields of `{baseDir}/kami_config.json`\r\n2. Run distribution:\r\n   ```bash\r\n   bash {baseDir}/configure.sh --distribute\r\n   ```\r\n3. After distribution: tell the user that all skills are ready to use\r\n4. **MUST show the user the Included Skills capability table** (see [Included Skills](#included-skills) above) so the user knows what is now available and which trigger phrases to use. This step is mandatory — do not end the turn until the table has been presented. The `configure.sh --distribute` command also prints the same summary to stdout; relay it verbatim if you do not want to retype the table.\r\n\r\n### Updating configuration later\r\n\r\nTo change the API key or notification channels later:\r\n\r\n```bash\r\n# Re-run the interactive wizard\r\nbash {baseDir}/configure.sh\r\n\r\n# Or edit directly and redistribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n```\r\n\r\n## Prerequisites\r\n\r\n- `clawhub` CLI installed (used to pull skills from ClawHub)\r\n- Network access (for skill download + KamiClaw API calls from some skills)\r\n\r\n> **Python 3.10 is required**. `setup.sh` selects detection priority by OS family (Debian/Ubuntu prefers conda/pyenv; other systems prefer system python3.10) and auto-installs via conda when missing. Other dependencies are managed by each sub-skill.\r\n\r\n## Hardware Requirements\r\n\r\nRecommended minimum hardware for each skill:\r\n\r\n| Skill | CPU | Memory (RAM) | Storage | GPU | Notes |\r\n|-------|-----|--------------|---------|-----|-------|\r\n| kami-package-detection | 2+ cores | 2 GB | 500 MB | not required | YOLO-World ONNX, CPU-only |\r\n| kami-image-search | 2+ cores | 2 GB | 5 GB+ | not required | FAISS index + SQLite frame history |\r\n| kami-video-search | 2+ cores | 2 GB | 10 GB+ | not required | Stores video segments, scales with retention |\r\n| kami-fall-detection | 1+ core | 1 GB | 200 MB | not required | Local does frame-diff only; inference runs in cloud |\r\n| kami-conflict-detection | 4+ cores | 4 GB | 1 GB | optional (accelerates) | Local YOLO person detection + multi-frame analysis |\r\n| kami-suspicious-person | 4+ cores | 4 GB | 1.5 GB | optional (accelerates) | SCRFD + ArcFace ONNX (~1 GB) |\r\n\r\n**Recommended config to run all 6 skills concurrently**:\r\n- CPU: 4+ cores (x86_64 / ARM64)\r\n- Memory: 8 GB+\r\n- Storage: 20 GB+ free space\r\n- Network: stable connection (RTSP pull + API calls)\r\n- OS: Linux (Ubuntu 20.04+ recommended)\r\n\r\n> If you only enable a subset of skills, refer to the corresponding rows above.\r\n\r\n## Centralized Configuration\r\n\r\n### Design\r\n\r\nThe suite uses a **central config + auto-distribute** model:\r\n\r\n```\r\nkami_config.json (Single Source of Truth)\r\n       │\r\n       ▼  configure.py --distribute\r\n       ├── kami-image-search/image_config.json\r\n       ├── kami-video-search/stream_config.json\r\n       ├── kami-fall-detection/config.json\r\n       ├── kami-package-detection/config.json\r\n       ├── kami-conflict-detection/config.json\r\n       ├── kami-suspicious-person/config.json\r\n       └── ~/.kami/credentials.json + cameras.json (cached for any skill)\r\n```\r\n\r\n### Central config file `kami_config.json`\r\n\r\nLocated in the suite directory, it contains the following sections:\r\n\r\n| Section | Description | Skills affected |\r\n|---------|-------------|-----------------|\r\n| `kamiclaw_api_key` | KamiClaw API key | The 4 cloud-API skills |\r\n| `cameras` | Map of named cameras (`name -> {stream_url}`) | All 6 skills (auto-distributed) |\r\n| `notifications` | Feishu / Telegram / Discord push settings | fall-detection, package-detection, conflict-detection, suspicious-person |\r\n| `skills.<name>.cameras` | Per-skill camera selector: `[]` = all, `[\"front\"]` = filter by name | Selects which cameras each skill receives |\r\n| `skills.<name>` | Per-skill tuning parameters | The corresponding skill |\r\n\r\nEdit this file once and every skill is configured.\r\n\r\n### Multi-Camera Support\r\n\r\nThe suite manages multiple cameras under the top-level `cameras` map. Give each camera a short, unique name (the dict key); each skill references cameras by that name.\r\n\r\n```json\r\n{\r\n  \"cameras\": {\r\n    \"front\":  { \"stream_url\": \"rtsp://...\" },\r\n    \"back\":   { \"stream_url\": \"rtsp://...\" },\r\n    \"garage\": { \"stream_url\": \"rtsp://...\" }\r\n  },\r\n  \"skills\": {\r\n    \"kami-image-search\":      { \"cameras\": [] },                  // all cameras\r\n    \"kami-package-detection\": { \"cameras\": [\"front\", \"garage\"] }  // filter by name\r\n  }\r\n}\r\n```\r\n\r\n**Naming tip.** Use short, lowercase, meaningful names (room or location, e.g. `front`, `back`, `garage`). Names must be unique inside `cameras`. If you skip naming, the suite auto-assigns `cam1`, `cam2`, ... in order.\r\n\r\n- Interactive mode: the wizard asks for a name, press Enter to auto-assign.\r\n- CLI mode: `--add-camera NAME=URL` (explicit) or `--add-camera URL` (auto-assigned).\r\n\r\nAll 6 skills support native multi-camera: each selected camera runs as an independent background process.\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\nRecommended combos per camera placement:\r\n\r\n| Camera position | Suggested skills (pick up to 2) |\r\n|----------------|------------------|\r\n| Front door / porch | `package-detection` + `suspicious-person` |\r\n| Living room / hallway | `fall-detection` + `conflict-detection` |\r\n| Garage / warehouse | `package-detection` + `image-search` |\r\n| General coverage | `image-search` + `video-search` (full archival) |\r\n\r\n**`image-search` vs `video-search`:**\r\n\r\n| | image-search | video-search |\r\n|--|--|--|\r\n| Capture | Periodic snapshots (every N seconds) | 24/7 continuous video recording |\r\n| Storage | Light (~5 GB) | Heavy (30 GB+) |\r\n| Search result | Single matching frame | Video clip with context |\r\n| Best for | \"Was there a package?\" quick lookups | \"What happened yesterday afternoon?\" full replay |\r\n\r\nUse `image-search` alone for lightweight event spot-checks; add `video-search` when you need complete footage for evidence or review.\r\n\r\n### Common Brand RTSP Templates\r\n\r\nDon't remember your camera's RTSP path? The wizard ships built-in templates for the most common IP-camera brands. Pick `[t]emplate-add` instead of `[a]dd` and just fill in IP / username / password.\r\n\r\n| Brand key | Brand | URL pattern |\r\n|-----------|-------|-------------|\r\n| `hikvision` | Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| `dahua` | Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| `tplink` | TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| `ezviz` | EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| `uniview` | Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| `reolink` | Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\nUsage:\r\n\r\n```bash\r\n# List all built-in templates\r\nbash {baseDir}/configure.sh --list-templates\r\n\r\n# Interactive: pick a brand, fill in fields, the URL is rendered for you\r\nbash {baseDir}/configure.sh\r\n#   Choice: t\r\n#   Pick: 1 (hikvision)\r\n#   Camera IP: 192.168.1.64\r\n#   Username: admin\r\n#   Password: pass@123      (special chars are auto URL-encoded)\r\n#   Built URL: rtsp://admin:pass%40123@192.168.1.64:554/Streaming/Channels/101\r\n```\r\n\r\n> Special characters in user / password (e.g. `@`, `:`, `#`) are automatically URL-encoded so the resulting RTSP URL is always valid. If your camera brand isn't listed, just type the raw RTSP URL via `[a]dd` or `--add-camera`.\r\n\r\n### Usage\r\n\r\n```bash\r\n# Mode 1: interactive wizard (prompts each field, supports add/edit/delete cameras)\r\nbash {baseDir}/configure.sh\r\n\r\n# Mode 2: set API key directly\r\nbash {baseDir}/configure.sh sk_live_xxxxxxxx\r\n\r\n# Mode 3: edit manually then distribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n\r\n# Mode 4: show current config\r\nbash {baseDir}/configure.sh --show\r\n\r\n# Mode 5: add / remove cameras non-interactively (repeatable)\r\nbash {baseDir}/configure.sh --add-camera rtsp://10.0.0.1/stream             # auto-named cam1\r\nbash {baseDir}/configure.sh --add-camera front=rtsp://10.0.0.1/stream       # explicit name\r\nbash {baseDir}/configure.sh --remove-camera front\r\n\r\n# Mode 6: list common-brand RTSP URL templates\r\nbash {baseDir}/configure.sh --list-templates\r\n```\r\n\r\n### Distribution Map\r\n\r\n| Skill | Target file | Distributed fields |\r\n|-------|-------------|--------------------|\r\n| `kami-image-search`       | `image_config.json`  | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMIVISION_API_KEY`, `CAPTURE_INTERVAL`, `RETENTION_DAYS` |\r\n| `kami-video-search`       | `stream_config.json` | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMI_API_KEY`, `SEGMENT_DURATION`, `RETENTION_DAYS` |\r\n| `kami-fall-detection`     | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `api_key`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id`, `pre_seconds`, `post_seconds`, `save_alarm_clips` |\r\n| `kami-package-detection`  | `config.json`        | `cameras: [{rtsp_url, device_id}, ...]` (all selected cameras), `conf_threshold`, `run_time`, `alarm_cooldown`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id` (pure local inference, no API key) |\r\n| `kami-conflict-detection` | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `kami_api_key`, `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` |\r\n| `kami-suspicious-person`  | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` (pure local inference, no API key) |\r\n\r\n> Power-user tip: each skill's argparse also accepts env vars (`KAMI_API_KEY`, `FEISHU_WEBHOOK_URL`, `TELEGRAM_*`, `DISCORD_WEBHOOK_URL`, `HTTPS_PROXY`) as a fallback. If you need an HTTPS proxy for Discord / Telegram, export `HTTPS_PROXY` in your shell rc — proxy settings are out of scope for `kami_config.json`.\r\n\r\n### Integration with setup.sh\r\n\r\n`setup.sh` automatically enters the centralized config flow after installing all skills. If skipped, run `bash configure.sh` later anytime.\r\n\r\n## Exit Codes\r\n\r\n| Exit code | Meaning |\r\n|-----------|---------|\r\n| `0` | All skills installed successfully |\r\n| `1` | Some skills failed to install (check logs) |\r\n| `2` | Prerequisite missing (no `clawhub`, or neither conda nor pyenv is usable and Python 3.10 cannot be installed) |\r\n\r\n## Troubleshooting\r\n\r\n**`clawhub` CLI not available**\r\n```\r\nclawhub: command not found\r\n```\r\n→ Install the ClawHub CLI first.\r\n\r\n**A skill failed to install**\r\n```\r\n[!] kami-xxx (failed, exit 1)\r\n```\r\n→ Retry: `clawhub install kami-xxx`\r\n\r\n**KamiClaw API key not configured**\r\n→ Run `bash configure.sh` or register at https://kamiclaw-skill.kamihome.com\r\n\r\n**Config changes have no effect**\r\n→ After editing `kami_config.json`, run `bash configure.sh --distribute` to push the changes to each skill.\r\n\r\n## Privacy Notice\r\n\r\nThis suite involves camera streams, image capture and face recognition. Please review the following privacy notes before use:\r\n\r\n### Cloud API calls\r\n\r\n- 4 skills depend on **KamiClaw API** (image-search, video-search, fall-detection, conflict-detection); 2 skills (package-detection, suspicious-person) run **fully locally**\r\n- Data sent to the cloud is used only for real-time inference and is **not persisted nor used for model training**\r\n- API traffic uses HTTPS encryption\r\n\r\n### Local data storage\r\n\r\n- Captured frames, video segments, etc. are stored under each skill's working directory and can be cleaned manually\r\n- `image-search` and `video-search` honor a `retention_days` parameter for automatic expiry\r\n- The API key and camera list are cached in `~/.kami/` (mode 600, current user only)\r\n\r\n### Face data (kami-suspicious-person)\r\n\r\n- The face feature database is built and matched fully locally — **nothing is uploaded to any server**\r\n- Files are stored under `face_db/`, fully under user control\r\n- Removing the `face_db/` directory wipes all face data\r\n\r\n### User control\r\n\r\n- Users freely choose which skills to enable; disabled skills collect nothing\r\n- All camera URLs are user-supplied; skills do not auto-discover or auto-connect cameras\r\n- Users can stop a skill, delete local data, or revoke the API key at any time\r\n\r\n> Privacy policy details: https://kamiclaw-skill.kamihome.com/privacy\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn7e9156e1awf00v1sas2wkdfd85a4zh\",\n  \"slug\": \"kami-smarthome-suite\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1781172504173\n}\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nKami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration for API keys, cameras, and notifications.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[13681882136](https://clawhub.ai/user/13681882136)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and smart-home operators use this skill to install and centrally configure the Kami SmartHome ecosystem for RTSP camera monitoring, notifications, visual search, and event detection.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The setup flow downloads additional skills and dependencies and may request broad install authority.\n\nMitigation: Review setup.sh and configure.py before installation, run the installer in a controlled environment, and grant elevated permissions only after confirming the requested package actions.\n\nRisk: Camera URLs, API keys, and notification credentials may be stored in local plaintext configuration or exposed through command-line history and terminal output.\n\nMitigation: Avoid passing secrets on the command line, restrict file permissions on local configuration files, treat setup output as sensitive, and rotate any secret that may have been exposed.\n\nRisk: RTSP camera streams and notification snapshots can contain sensitive home or workplace imagery.\n\nMitigation: Configure only trusted cameras and notification channels, limit access to generated outputs, and confirm that camera use complies with the deployment environment's privacy requirements.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/13681882136/skills/kami-smarthome-suite)\n- [KamiClaw API portal](https://kamiclaw-skill.kamihome.com)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON configuration details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May update local Kami configuration and distribute it to installed sub-skills.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.0.9:kami_config.json\n\n{\n  \"_comment\": \"Kami SmartHome Suite - Centralized Configuration\",\n  \"_doc\": \"One config to rule them all. Edit this file, then run: bash configure.sh to distribute settings to all skills.\",\n  \"_cameras_doc\": \"Camera name = the dict key. It is used as the canonical identifier (logs, alarm messages, snapshot dirs). Add as many cameras as needed; each skill's 'cameras' field selects which to use ([] = all).\",\n  \"kamiclaw_api_key\": \"\",\n  \"cameras\": {\n    \"yuanqu\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.XXX/stream1\"\n    },\n    \"bangongshi\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.xxx/stream1\"\n    }\n  },\n  \"notifications\": {\n    \"feishu_webhook_url\": \"\",\n    \"feishu_webhook_secret\": \"\",\n    \"feishu_app_id\": \"\",\n    \"feishu_app_secret\": \"\",\n    \"telegram_bot_token\": \"\",\n    \"telegram_chat_id\": \"\",\n    \"discord_webhook_url\": \"\",\n    \"discord_bot_token\": \"\",\n    \"discord_channel_id\": \"\"\n  },\n  \"skills\": {\n    \"kami-image-search\": {\n      \"cameras\": [],\n      \"capture_interval\": 10,\n      \"retention_days\": 30\n    },\n    \"kami-video-search\": {\n      \"cameras\": [],\n      \"segment_duration\": 10,\n      \"retention_days\": 3\n    },\n    \"kami-fall-detection\": {\n      \"cameras\": [],\n      \"pre_seconds\": 3.0,\n      \"post_seconds\": 3.0,\n      \"save_alarm_clips\": true\n    },\n    \"kami-conflict-detection\": {\n      \"cameras\": [],\n      \"sample_interval\": 1.0,\n      \"min_persons\": 2,\n      \"run_time\": 0\n    },\n    \"kami-suspicious-person\": {\n      \"cameras\": [],\n      \"loiter_threshold\": 300,\n      \"sample_interval\": 2.0,\n      \"run_time\": 0\n    },\n    \"kami-package-detection\": {\n      \"cameras\": [],\n      \"run_time\": 0,\n      \"conf_threshold\": 0.25,\n      \"alarm_cooldown\": 60\n    }\n  }\n}\n\nArchive v1.0.8: 7 files, 27793 bytes\n\nFiles: configure.py (40865b), configure.sh (1133b), kami_config.json (1542b), setup.sh (19241b), skill-card.md (2544b), SKILL.md (26663b), _meta.json (139b)\n\nFile v1.0.8:SKILL.md\n\n---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change anything later, edit one file and run `configure.sh --distribute` to sync\r\n\r\n> **Configure once, run everywhere** — one config file controls all skills.\r\n\r\n## Included Skills\r\n\r\nThis suite bundles the following 6 standalone skills:\r\n\r\n| # | Skill | Emoji | Description | Use case |\r\n|---|-------|-------|-------------|----------|\r\n| 1 | **kami-package-detection**   | 📦 | Continuous package/parcel monitoring on RTSP streams using YOLO-World ONNX with smart notification | Doorstep delivery alerts |\r\n| 2 | **kami-image-search**        | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |\r\n| 3 | **kami-video-search**        | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |\r\n| 4 | **kami-fall-detection**      | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |\r\n| 5 | **kami-conflict-detection**  | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |\r\n| 6 | **kami-suspicious-person**   | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |\r\n\r\n### Skill Map\r\n\r\n```\r\nkami-smarthome-suite (this skill — installer entry point)\r\n├── kami-package-detection    ── Package / delivery detection\r\n├── kami-image-search         ── Image search\r\n├── kami-video-search         ── Video recording & search\r\n├── kami-fall-detection       ── Fall detection (cloud API)\r\n├── kami-conflict-detection   ── Conflict / fight detection\r\n└── kami-suspicious-person    ── Stranger / suspicious-person detection\r\n```\r\n\r\n## Installation\r\n\r\nAll Kami SmartHome skills are published on **ClawHub** and installed via `clawhub install`.\r\n\r\n### Option 1: One-click install (recommended)\r\n\r\n```bash\r\n# Install the suite\r\nclawhub install kami-smarthome-suite\r\n\r\n# Run setup.sh — auto-installs all 6 skills + guides centralized config\r\nbash {baseDir}/setup.sh\r\n```\r\n\r\n`setup.sh` performs:\r\n1. One-shot install of all 6 Kami ecosystem skills from ClawHub\r\n2. Detect / install Python 3.10:\r\n   - **Debian/Ubuntu**: prefer conda → pyenv → system python3.10 (avoids `python3.10-venv` sudo dependency)\r\n   - **Other systems**: prefer system python3.10 → pyenv → conda\r\n   - If none found: auto-install (conda preferred → pyenv as fallback), no sudo required; only pyenv source build will ask for sudo when build-deps are missing\r\n3. Interactive prompts for centralized config (API key, camera URL, notifications)\r\n4. Auto-distribute the centralized config to each skill's local config files\r\n\r\n> Idempotent — re-running will not reinstall skills that are already present.\r\n\r\n### Option 2: Install individually\r\n\r\nYou can also install specific skills directly from ClawHub:\r\n\r\n```bash\r\nclawhub install kami-package-detection\r\nclawhub install kami-image-search\r\nclawhub install kami-video-search\r\nclawhub install kami-fall-detection\r\nclawhub install kami-conflict-detection\r\nclawhub install kami-suspicious-person\r\n```\r\n\r\nAfter individual installs, run `bash {baseDir}/configure.sh` to apply unified configuration.\r\n\r\n## Guided Setup (read this on first use)\r\n\r\n> **Agent behavior**: when this skill is triggered, follow this order:\r\n> 1. Check whether sub-skills are installed (any missing sub-skill directory means \"not installed\") → if missing, run `bash {baseDir}/setup.sh`\r\n> 2. Check whether `kamiclaw_api_key` is empty in `{baseDir}/kami_config.json` → if so, prompt the user\r\n> 3. Check whether `cameras` is empty in `{baseDir}/kami_config.json` → if so, guide the user to add cameras. **If `kamiclaw_api_key` is set, ALWAYS first run `curl -s -X GET \"https://kamiclaw-test.kamivision.com/v1/device/rtsp\" -H \"X-API-Key: <key>\"` to auto-discover Kami-bound cameras (Step 3a)** and present `deviceName` + `rtspUrl` to the user as a table; only fall back to manual input if discovery returns empty / fails.\r\n> 4. **ALWAYS render the full RTSP brand template table below** (all 6 rows) in the FIRST setup-prompt message (the same message that asks for the API key) AND whenever the user needs to manually type a URL (Step 3b). The user must see the actual URL patterns up-front, not after they've already committed to manual mode — some users have NO Kami-bound cameras and need the templates immediately. Do NOT abbreviate it to a single sentence like \"supports Hikvision, Dahua...\".\r\n> 5. **ALWAYS show the warning**: ⚠️ Max 2 skills per camera — each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection.\r\n> 6. **ALWAYS present BOTH Feishu config tiers upfront** when asking about notifications. Do NOT just say \"Feishu Webhook URL\" — list both tiers explicitly so the user can choose:\r\n>    - **Tier 1 (basic)**: only `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed bots) → alarm snapshots are pushed as clickable image-host links\r\n>    - **Tier 2 (inline images)**: above + `feishu_app_id` + `feishu_app_secret` (self-built app) → snapshots embed INLINE inside the Feishu card (best UX). Provide a one-line hint on how to get them: 飞书开发者后台 → 创建自建应用 → 拿 App ID / App Secret。\r\n> 7. If all checks pass, skip the wizard and execute the user's request directly\r\n\r\n### Step 0: Install sub-skills\r\n\r\n- **Check**: look for sibling directories `kami-image-search`, `kami-video-search`, etc. next to `{baseDir}`\r\n- **If missing**: run the one-click install:\r\n  ```bash\r\n  bash {baseDir}/setup.sh\r\n  ```\r\n  This script will: download all 6 sub-skills from ClawHub + create venvs + install dependencies\r\n- **If present**: skip and proceed to config check\r\n\r\n> 📢 **After all 6 sub-skills are installed (whether just now or pre-existing), the Agent MUST IMMEDIATELY proceed to Step 1 (ask for KamiClaw API key) and Step 3a (call the device-discovery API with that key)**, instead of stopping at a \"installation complete\" summary. Do not wait for the user to ask — the discovery flow is a mandatory part of first-use onboarding.\r\n\r\n### Step 1: Configure KamiClaw API key\r\n\r\n- **Check**: read the `kamiclaw_api_key` field from `{baseDir}/kami_config.json`\r\n- **If empty**: tell the user 4 of the 6 skills require an API key, and prompt for one\r\n- **How to obtain**: register at https://kamiclaw-skill.kamihome.com (free 200 credits)\r\n- API-dependent skills: image-search, video-search, fall-detection, conflict-detection\r\n- 2 fully-local skills (package-detection, suspicious-person) do not need an API key\r\n- **Once the key is provided, IMMEDIATELY use it to run the Kami device discovery in Step 3a** — do NOT first ask about notifications or cameras. The API key unlocks both AI inference *and* automatic camera enrollment.\r\n- 🚨 **The setup-prompt message that asks for the API key MUST also embed the full Step 3b RTSP brand template table below verbatim** (all 6 rows). Reason: some users have no Kami-bound cameras at all — they need the templates visible from the very first prompt so they can prepare an RTSP URL while obtaining the key. Do NOT defer the table to a later message.\r\n\r\n  Example layout for the first prompt (do not skip the table):\r\n  ```\r\n  Please provide your KamiClaw API key (register: https://kamiclaw-skill.kamihome.com).\r\n  Once provided I will auto-discover any Kami-bound cameras for you.\r\n\r\n  If you do not have a Kami-bound camera, you can paste a raw RTSP URL\r\n  later — here are the common brand templates for reference:\r\n\r\n  | Brand | URL pattern |\r\n  | … (paste full 6-row table) … |\r\n\r\n  ⚠️ Max 2 skills per camera — …\r\n  ```\r\n\r\n### Step 2: Configure notification channels\r\n\r\n- **Check**: read the `notifications` section of `{baseDir}/kami_config.json`\r\n- **If all empty**: ask the user whether to set up alarm push (any combination is allowed)\r\n- **Supported channels** (alarm skills `fall-detection` / `package-detection` / `conflict-detection` / `suspicious-person` push automatically when events fire):\r\n  - **Feishu Webhook**: `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed webhooks) — supported by all 4 alarm skills\r\n  - **Feishu self-built app** *(optional, for inline snapshot images)*: `feishu_app_id` + `feishu_app_secret` — when provided, all 4 alarm skills upload the alarm snapshot via Feishu OpenAPI and embed it INLINE inside the card. Without them, the snapshot falls back to a clickable image-host URL\r\n  - **Telegram Bot**: `telegram_bot_token` + `telegram_chat_id` — supported by all 4 alarm skills (snapshot pushed inline via `sendPhoto`)\r\n  - **Discord Webhook**: `discord_webhook_url` (push-only) — supported by all 4 alarm skills (snapshot attached as multipart, renders inline)\r\n  - **Discord Bot**: `discord_bot_token` + `discord_channel_id` (two-way) — fall-detection & package-detection\r\n- All channels are optional; skipped channels just fall back to JSON output without push\r\n- ⚠️ Discord / Telegram may be unreachable from some regions. If a proxy is needed, set `HTTPS_PROXY` in your shell rc (e.g. `~/.bashrc`) yourself — **the suite intentionally does NOT manage proxy settings**\r\n\r\n### Step 3: Configure cameras\r\n\r\n- **Check**: read the `cameras` section of `{baseDir}/kami_config.json`\r\n- **If empty or user wants to add**: ask for camera name + RTSP URL\r\n\r\n#### Step 3a: Auto-discover Kami cameras (if API key is set)\r\n\r\nIf the user has provided a KamiClaw API key in Step 1, **MUST first attempt to discover cameras already bound to their Kami account** before asking for a manual RTSP URL. Run:\r\n\r\n```bash\r\ncurl -s -X GET \"https://kamiclaw-test.kamivision.com/v1/device/rtsp\" \\\r\n     -H \"X-API-Key: <kamiclaw_api_key>\"\r\n```\r\n\r\nReplace `<kamiclaw_api_key>` with the value from `kami_config.json -> kamiclaw_api_key`.\r\n\r\n- The response is a JSON array; each entry contains at least `deviceName` and `rtspUrl`\r\n- **MUST present the full discovery result to the user as a table** (one row per camera with `deviceName` and `rtspUrl`) and ask which to import\r\n- For each camera the user picks, write it into `kami_config.json -> cameras` using `deviceName` as the dict key and `rtspUrl` as `stream_url`\r\n- If the API returns an empty list / 401 / network error: tell the user, then fall back to Step 3b (manual input)\r\n- If the user prefers to type their own RTSP URL even when discovery succeeds, also fall back to Step 3b\r\n\r\n#### Step 3b: Manual RTSP URL input\r\n\r\n- **MUST render the full brand table below verbatim** (all 6 rows with actual URL patterns). Do NOT condense into a one-liner like \"supports Hikvision, Dahua...\" — users need the full URL patterns to copy-paste:\r\n\r\n| Brand | URL pattern |\r\n|-------|-------------|\r\n| Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\n- After the user provides camera info, write it into `kami_config.json` under `cameras`\r\n- Naming tip: use short, lowercase names (e.g. `front`, `back`, `garage`); names must be unique\r\n- If the brand is not listed, the user can type the raw RTSP URL directly\r\n\r\n### Configuration complete → all skills ready\r\n\r\nAfter the user provides values:\r\n\r\n1. Write the values back into the corresponding fields of `{baseDir}/kami_config.json`\r\n2. Run distribution:\r\n   ```bash\r\n   bash {baseDir}/configure.sh --distribute\r\n   ```\r\n3. After distribution: tell the user that all skills are ready to use\r\n4. **MUST show the user the Included Skills capability table** (see [Included Skills](#included-skills) above) so the user knows what is now available and which trigger phrases to use. This step is mandatory — do not end the turn until the table has been presented. The `configure.sh --distribute` command also prints the same summary to stdout; relay it verbatim if you do not want to retype the table.\r\n\r\n### Updating configuration later\r\n\r\nTo change the API key or notification channels later:\r\n\r\n```bash\r\n# Re-run the interactive wizard\r\nbash {baseDir}/configure.sh\r\n\r\n# Or edit directly and redistribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n```\r\n\r\n## Prerequisites\r\n\r\n- `clawhub` CLI installed (used to pull skills from ClawHub)\r\n- Network access (for skill download + KamiClaw API calls from some skills)\r\n\r\n> **Python 3.10 is required**. `setup.sh` selects detection priority by OS family (Debian/Ubuntu prefers conda/pyenv; other systems prefer system python3.10) and auto-installs via conda when missing. Other dependencies are managed by each sub-skill.\r\n\r\n## Hardware Requirements\r\n\r\nRecommended minimum hardware for each skill:\r\n\r\n| Skill | CPU | Memory (RAM) | Storage | GPU | Notes |\r\n|-------|-----|--------------|---------|-----|-------|\r\n| kami-package-detection | 2+ cores | 2 GB | 500 MB | not required | YOLO-World ONNX, CPU-only |\r\n| kami-image-search | 2+ cores | 2 GB | 5 GB+ | not required | FAISS index + SQLite frame history |\r\n| kami-video-search | 2+ cores | 2 GB | 10 GB+ | not required | Stores video segments, scales with retention |\r\n| kami-fall-detection | 1+ core | 1 GB | 200 MB | not required | Local does frame-diff only; inference runs in cloud |\r\n| kami-conflict-detection | 4+ cores | 4 GB | 1 GB | optional (accelerates) | Local YOLO person detection + multi-frame analysis |\r\n| kami-suspicious-person | 4+ cores | 4 GB | 1.5 GB | optional (accelerates) | SCRFD + ArcFace ONNX (~1 GB) |\r\n\r\n**Recommended config to run all 6 skills concurrently**:\r\n- CPU: 4+ cores (x86_64 / ARM64)\r\n- Memory: 8 GB+\r\n- Storage: 20 GB+ free space\r\n- Network: stable connection (RTSP pull + API calls)\r\n- OS: Linux (Ubuntu 20.04+ recommended)\r\n\r\n> If you only enable a subset of skills, refer to the corresponding rows above.\r\n\r\n## Centralized Configuration\r\n\r\n### Design\r\n\r\nThe suite uses a **central config + auto-distribute** model:\r\n\r\n```\r\nkami_config.json (Single Source of Truth)\r\n       │\r\n       ▼  configure.py --distribute\r\n       ├── kami-image-search/image_config.json\r\n       ├── kami-video-search/stream_config.json\r\n       ├── kami-fall-detection/config.json\r\n       ├── kami-package-detection/config.json\r\n       ├── kami-conflict-detection/config.json\r\n       ├── kami-suspicious-person/config.json\r\n       └── ~/.kami/credentials.json + cameras.json (cached for any skill)\r\n```\r\n\r\n### Central config file `kami_config.json`\r\n\r\nLocated in the suite directory, it contains the following sections:\r\n\r\n| Section | Description | Skills affected |\r\n|---------|-------------|-----------------|\r\n| `kamiclaw_api_key` | KamiClaw API key | The 4 cloud-API skills |\r\n| `cameras` | Map of named cameras (`name -> {stream_url}`) | All 6 skills (auto-distributed) |\r\n| `notifications` | Feishu / Telegram / Discord push settings | fall-detection, package-detection, conflict-detection, suspicious-person |\r\n| `skills.<name>.cameras` | Per-skill camera selector: `[]` = all, `[\"front\"]` = filter by name | Selects which cameras each skill receives |\r\n| `skills.<name>` | Per-skill tuning parameters | The corresponding skill |\r\n\r\nEdit this file once and every skill is configured.\r\n\r\n### Multi-Camera Support\r\n\r\nThe suite manages multiple cameras under the top-level `cameras` map. Give each camera a short, unique name (the dict key); each skill references cameras by that name.\r\n\r\n```json\r\n{\r\n  \"cameras\": {\r\n    \"front\":  { \"stream_url\": \"rtsp://...\" },\r\n    \"back\":   { \"stream_url\": \"rtsp://...\" },\r\n    \"garage\": { \"stream_url\": \"rtsp://...\" }\r\n  },\r\n  \"skills\": {\r\n    \"kami-image-search\":      { \"cameras\": [] },                  // all cameras\r\n    \"kami-package-detection\": { \"cameras\": [\"front\", \"garage\"] }  // filter by name\r\n  }\r\n}\r\n```\r\n\r\n**Naming tip.** Use short, lowercase, meaningful names (room or location, e.g. `front`, `back`, `garage`). Names must be unique inside `cameras`. If you skip naming, the suite auto-assigns `cam1`, `cam2`, ... in order.\r\n\r\n- Interactive mode: the wizard asks for a name, press Enter to auto-assign.\r\n- CLI mode: `--add-camera NAME=URL` (explicit) or `--add-camera URL` (auto-assigned).\r\n\r\nAll 6 skills support native multi-camera: each selected camera runs as an independent background process.\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\nRecommended combos per camera placement:\r\n\r\n| Camera position | Suggested skills (pick up to 2) |\r\n|----------------|------------------|\r\n| Front door / porch | `package-detection` + `suspicious-person` |\r\n| Living room / hallway | `fall-detection` + `conflict-detection` |\r\n| Garage / warehouse | `package-detection` + `image-search` |\r\n| General coverage | `image-search` + `video-search` (full archival) |\r\n\r\n**`image-search` vs `video-search`:**\r\n\r\n| | image-search | video-search |\r\n|--|--|--|\r\n| Capture | Periodic snapshots (every N seconds) | 24/7 continuous video recording |\r\n| Storage | Light (~5 GB) | Heavy (30 GB+) |\r\n| Search result | Single matching frame | Video clip with context |\r\n| Best for | \"Was there a package?\" quick lookups | \"What happened yesterday afternoon?\" full replay |\r\n\r\nUse `image-search` alone for lightweight event spot-checks; add `video-search` when you need complete footage for evidence or review.\r\n\r\n### Common Brand RTSP Templates\r\n\r\nDon't remember your camera's RTSP path? The wizard ships built-in templates for the most common IP-camera brands. Pick `[t]emplate-add` instead of `[a]dd` and just fill in IP / username / password.\r\n\r\n| Brand key | Brand | URL pattern |\r\n|-----------|-------|-------------|\r\n| `hikvision` | Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| `dahua` | Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| `tplink` | TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| `ezviz` | EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| `uniview` | Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| `reolink` | Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\nUsage:\r\n\r\n```bash\r\n# List all built-in templates\r\nbash {baseDir}/configure.sh --list-templates\r\n\r\n# Interactive: pick a brand, fill in fields, the URL is rendered for you\r\nbash {baseDir}/configure.sh\r\n#   Choice: t\r\n#   Pick: 1 (hikvision)\r\n#   Camera IP: 192.168.1.64\r\n#   Username: admin\r\n#   Password: pass@123      (special chars are auto URL-encoded)\r\n#   Built URL: rtsp://admin:pass%40123@192.168.1.64:554/Streaming/Channels/101\r\n```\r\n\r\n> Special characters in user / password (e.g. `@`, `:`, `#`) are automatically URL-encoded so the resulting RTSP URL is always valid. If your camera brand isn't listed, just type the raw RTSP URL via `[a]dd` or `--add-camera`.\r\n\r\n### Usage\r\n\r\n```bash\r\n# Mode 1: interactive wizard (prompts each field, supports add/edit/delete cameras)\r\nbash {baseDir}/configure.sh\r\n\r\n# Mode 2: set API key directly\r\nbash {baseDir}/configure.sh sk_live_xxxxxxxx\r\n\r\n# Mode 3: edit manually then distribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n\r\n# Mode 4: show current config\r\nbash {baseDir}/configure.sh --show\r\n\r\n# Mode 5: add / remove cameras non-interactively (repeatable)\r\nbash {baseDir}/configure.sh --add-camera rtsp://10.0.0.1/stream             # auto-named cam1\r\nbash {baseDir}/configure.sh --add-camera front=rtsp://10.0.0.1/stream       # explicit name\r\nbash {baseDir}/configure.sh --remove-camera front\r\n\r\n# Mode 6: list common-brand RTSP URL templates\r\nbash {baseDir}/configure.sh --list-templates\r\n```\r\n\r\n### Distribution Map\r\n\r\n| Skill | Target file | Distributed fields |\r\n|-------|-------------|--------------------|\r\n| `kami-image-search`       | `image_config.json`  | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMIVISION_API_KEY`, `CAPTURE_INTERVAL`, `RETENTION_DAYS` |\r\n| `kami-video-search`       | `stream_config.json` | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMI_API_KEY`, `SEGMENT_DURATION`, `RETENTION_DAYS` |\r\n| `kami-fall-detection`     | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `api_key`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id`, `pre_seconds`, `post_seconds`, `save_alarm_clips` |\r\n| `kami-package-detection`  | `config.json`        | `cameras: [{rtsp_url, device_id}, ...]` (all selected cameras), `conf_threshold`, `run_time`, `alarm_cooldown`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id` (pure local inference, no API key) |\r\n| `kami-conflict-detection` | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `kami_api_key`, `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` |\r\n| `kami-suspicious-person`  | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` (pure local inference, no API key) |\r\n\r\n> Power-user tip: each skill's argparse also accepts env vars (`KAMI_API_KEY`, `FEISHU_WEBHOOK_URL`, `TELEGRAM_*`, `DISCORD_WEBHOOK_URL`, `HTTPS_PROXY`) as a fallback. If you need an HTTPS proxy for Discord / Telegram, export `HTTPS_PROXY` in your shell rc — proxy settings are out of scope for `kami_config.json`.\r\n\r\n### Integration with setup.sh\r\n\r\n`setup.sh` automatically enters the centralized config flow after installing all skills. If skipped, run `bash configure.sh` later anytime.\r\n\r\n## Exit Codes\r\n\r\n| Exit code | Meaning |\r\n|-----------|---------|\r\n| `0` | All skills installed successfully |\r\n| `1` | Some skills failed to install (check logs) |\r\n| `2` | Prerequisite missing (no `clawhub`, or neither conda nor pyenv is usable and Python 3.10 cannot be installed) |\r\n\r\n## Troubleshooting\r\n\r\n**`clawhub` CLI not available**\r\n```\r\nclawhub: command not found\r\n```\r\n→ Install the ClawHub CLI first.\r\n\r\n**A skill failed to install**\r\n```\r\n[!] kami-xxx (failed, exit 1)\r\n```\r\n→ Retry: `clawhub install kami-xxx`\r\n\r\n**KamiClaw API key not configured**\r\n→ Run `bash configure.sh` or register at https://kamiclaw-skill.kamihome.com\r\n\r\n**Config changes have no effect**\r\n→ After editing `kami_config.json`, run `bash configure.sh --distribute` to push the changes to each skill.\r\n\r\n## Privacy Notice\r\n\r\nThis suite involves camera streams, image capture and face recognition. Please review the following privacy notes before use:\r\n\r\n### Cloud API calls\r\n\r\n- 4 skills depend on **KamiClaw API** (image-search, video-search, fall-detection, conflict-detection); 2 skills (package-detection, suspicious-person) run **fully locally**\r\n- Data sent to the cloud is used only for real-time inference and is **not persisted nor used for model training**\r\n- API traffic uses HTTPS encryption\r\n\r\n### Local data storage\r\n\r\n- Captured frames, video segments, etc. are stored under each skill's working directory and can be cleaned manually\r\n- `image-search` and `video-search` honor a `retention_days` parameter for automatic expiry\r\n- The API key and camera list are cached in `~/.kami/` (mode 600, current user only)\r\n\r\n### Face data (kami-suspicious-person)\r\n\r\n- The face feature database is built and matched fully locally — **nothing is uploaded to any server**\r\n- Files are stored under `face_db/`, fully under user control\r\n- Removing the `face_db/` directory wipes all face data\r\n\r\n### User control\r\n\r\n- Users freely choose which skills to enable; disabled skills collect nothing\r\n- All camera URLs are user-supplied; skills do not auto-discover or auto-connect cameras\r\n- Users can stop a skill, delete local data, or revoke the API key at any time\r\n\r\n> Privacy policy details: https://kamiclaw-skill.kamihome.com/privacy\n\nFile v1.0.8:_meta.json\n\n{\n  \"ownerId\": \"kn7e9156e1awf00v1sas2wkdfd85a4zh\",\n  \"slug\": \"kami-smarthome-suite\",\n  \"version\": \"1.0.8\",\n  \"publishedAt\": 1781172389286\n}\n\nFile v1.0.8:skill-card.md\n\n## Description: <br>\nKami SmartHome skill bundle that installs the Kami SmartHome ecosystem and centralizes API key, camera, and notification configuration. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[13681882136](https://clawhub.ai/user/13681882136) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to install and configure six Kami smart-home camera skills for package detection, image and video search, fall detection, conflict detection, and suspicious-person detection over RTSP cameras. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The suite requires sensitive camera RTSP URLs, notification tokens, and a KamiClaw API key. <br>\nMitigation: Install only when comfortable sharing those values with the suite, avoid sharing terminal logs or screenshots, and review displayed configuration before distribution. <br>\nRisk: The installer makes broad Python environment changes and sources the user's shell profile. <br>\nMitigation: Review setup.sh before running it and use a clean shell profile without unexpected commands in ~/.bashrc. <br>\nRisk: Server security evidence reports under-disclosed camera discovery, credential-display, and installer-scope risks. <br>\nMitigation: Review the setup flow before adding an API key, confirm camera discovery behavior, and proceed only with intended devices and notification channels. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/13681882136/kami-smarthome-suite) <br>\n- [KamiClaw registration](https://kamiclaw-skill.kamihome.com) <br>\n- [Kami RTSP device discovery API](https://kamiclaw-test.kamivision.com/v1/device/rtsp) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration] <br>\n**Output Format:** [Markdown guidance with shell commands and JSON configuration updates] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May install related ClawHub skills, update local config files, and cache camera/API credential data when the user runs the setup flow.] <br>\n\n## Skill Version(s): <br>\n1.0.8 (source: server release metadata; artifact frontmatter is 1.0.0) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.8:kami_config.json\n\n{\n  \"_comment\": \"Kami SmartHome Suite - Centralized Configuration\",\n  \"_doc\": \"One config to rule them all. Edit this file, then run: bash configure.sh to distribute settings to all skills.\",\n  \"_cameras_doc\": \"Camera name = the dict key. It is used as the canonical identifier (logs, alarm messages, snapshot dirs). Add as many cameras as needed; each skill's 'cameras' field selects which to use ([] = all).\",\n  \"kamiclaw_api_key\": \"\",\n  \"cameras\": {},\n  \"notifications\": {\n    \"feishu_webhook_url\": \"\",\n    \"feishu_webhook_secret\": \"\",\n    \"feishu_app_id\": \"\",\n    \"feishu_app_secret\": \"\",\n    \"telegram_bot_token\": \"\",\n    \"telegram_chat_id\": \"\",\n    \"discord_webhook_url\": \"\",\n    \"discord_bot_token\": \"\",\n    \"discord_channel_id\": \"\"\n  },\n  \"skills\": {\n    \"kami-image-search\": {\n      \"cameras\": [],\n      \"capture_interval\": 10,\n      \"retention_days\": 30\n    },\n    \"kami-video-search\": {\n      \"cameras\": [],\n      \"segment_duration\": 10,\n      \"retention_days\": 3\n    },\n    \"kami-fall-detection\": {\n      \"cameras\": [],\n      \"pre_seconds\": 3.0,\n      \"post_seconds\": 3.0,\n      \"save_alarm_clips\": true\n    },\n    \"kami-conflict-detection\": {\n      \"cameras\": [],\n      \"sample_interval\": 1.0,\n      \"min_persons\": 2,\n      \"run_time\": 0\n    },\n    \"kami-suspicious-person\": {\n      \"cameras\": [],\n      \"loiter_threshold\": 300,\n      \"sample_interval\": 2.0,\n      \"run_time\": 0\n    },\n    \"kami-package-detection\": {\n      \"cameras\": [],\n      \"run_time\": 0,\n      \"conf_threshold\": 0.25,\n      \"alarm_cooldown\": 60\n    }\n  }\n}\n\nArchive v1.0.7: 7 files, 26685 bytes\n\nFiles: configure.py (40865b), configure.sh (1133b), kami_config.json (1712b), setup.sh (19241b), skill-card.md (2367b), SKILL.md (23592b), _meta.json (139b)\n\nFile v1.0.7:SKILL.md\n\n---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change anything later, edit one file and run `configure.sh --distribute` to sync\r\n\r\n> **Configure once, run everywhere** — one config file controls all skills.\r\n\r\n## Included Skills\r\n\r\nThis suite bundles the following 6 standalone skills:\r\n\r\n| # | Skill | Emoji | Description | Use case |\r\n|---|-------|-------|-------------|----------|\r\n| 1 | **kami-package-detection**   | 📦 | Continuous package/parcel monitoring on RTSP streams using YOLO-World ONNX with smart notification | Doorstep delivery alerts |\r\n| 2 | **kami-image-search**        | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |\r\n| 3 | **kami-video-search**        | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |\r\n| 4 | **kami-fall-detection**      | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |\r\n| 5 | **kami-conflict-detection**  | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |\r\n| 6 | **kami-suspicious-person**   | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |\r\n\r\n### Skill Map\r\n\r\n```\r\nkami-smarthome-suite (this skill — installer entry point)\r\n├── kami-package-detection    ── Package / delivery detection\r\n├── kami-image-search         ── Image search\r\n├── kami-video-search         ── Video recording & search\r\n├── kami-fall-detection       ── Fall detection (cloud API)\r\n├── kami-conflict-detection   ── Conflict / fight detection\r\n└── kami-suspicious-person    ── Stranger / suspicious-person detection\r\n```\r\n\r\n## Installation\r\n\r\nAll Kami SmartHome skills are published on **ClawHub** and installed via `clawhub install`.\r\n\r\n### Option 1: One-click install (recommended)\r\n\r\n```bash\r\n# Install the suite\r\nclawhub install kami-smarthome-suite\r\n\r\n# Run setup.sh — auto-installs all 6 skills + guides centralized config\r\nbash {baseDir}/setup.sh\r\n```\r\n\r\n`setup.sh` performs:\r\n1. One-shot install of all 6 Kami ecosystem skills from ClawHub\r\n2. Detect / install Python 3.10:\r\n   - **Debian/Ubuntu**: prefer conda → pyenv → system python3.10 (avoids `python3.10-venv` sudo dependency)\r\n   - **Other systems**: prefer system python3.10 → pyenv → conda\r\n   - If none found: auto-install (conda preferred → pyenv as fallback), no sudo required; only pyenv source build will ask for sudo when build-deps are missing\r\n3. Interactive prompts for centralized config (API key, camera URL, notifications)\r\n4. Auto-distribute the centralized config to each skill's local config files\r\n\r\n> Idempotent — re-running will not reinstall skills that are already present.\r\n\r\n### Option 2: Install individually\r\n\r\nYou can also install specific skills directly from ClawHub:\r\n\r\n```bash\r\nclawhub install kami-package-detection\r\nclawhub install kami-image-search\r\nclawhub install kami-video-search\r\nclawhub install kami-fall-detection\r\nclawhub install kami-conflict-detection\r\nclawhub install kami-suspicious-person\r\n```\r\n\r\nAfter individual installs, run `bash {baseDir}/configure.sh` to apply unified configuration.\r\n\r\n## Guided Setup (read this on first use)\r\n\r\n> **Agent behavior**: when this skill is triggered, follow this order:\r\n> 1. Check whether sub-skills are installed (any missing sub-skill directory means \"not installed\") → if missing, run `bash {baseDir}/setup.sh`\r\n> 2. Check whether `kamiclaw_api_key` is empty in `{baseDir}/kami_config.json` → if so, prompt the user\r\n> 3. Check whether `cameras` is empty in `{baseDir}/kami_config.json` → if so, guide the user to add cameras\r\n> 4. **ALWAYS render the full RTSP brand template table below** (all 6 rows) whenever presenting the setup summary or guiding camera configuration. Do NOT abbreviate it to a single sentence like \"supports Hikvision, Dahua...\" — the user needs to see the actual URL patterns to fill in.\r\n> 5. **ALWAYS show the warning**: ⚠️ Max 2 skills per camera — each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection.\r\n> 6. **ALWAYS present BOTH Feishu config tiers upfront** when asking about notifications. Do NOT just say \"Feishu Webhook URL\" — list both tiers explicitly so the user can choose:\r\n>    - **Tier 1 (basic)**: only `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed bots) → alarm snapshots are pushed as clickable image-host links\r\n>    - **Tier 2 (inline images)**: above + `feishu_app_id` + `feishu_app_secret` (self-built app) → snapshots embed INLINE inside the Feishu card (best UX). Provide a one-line hint on how to get them: 飞书开发者后台 → 创建自建应用 → 拿 App ID / App Secret。\r\n> 7. If all checks pass, skip the wizard and execute the user's request directly\r\n\r\n### Step 0: Install sub-skills\r\n\r\n- **Check**: look for sibling directories `kami-image-search`, `kami-video-search`, etc. next to `{baseDir}`\r\n- **If missing**: run the one-click install:\r\n  ```bash\r\n  bash {baseDir}/setup.sh\r\n  ```\r\n  This script will: download all 6 sub-skills from ClawHub + create venvs + install dependencies\r\n- **If present**: skip and proceed to config check\r\n\r\n### Step 1: Configure KamiClaw API key\r\n\r\n- **Check**: read the `kamiclaw_api_key` field from `{baseDir}/kami_config.json`\r\n- **If empty**: tell the user 4 of the 6 skills require an API key, and prompt for one\r\n- **How to obtain**: register at https://kamiclaw-skill.kamihome.com (free 200 credits)\r\n- API-dependent skills: image-search, video-search, fall-detection, conflict-detection\r\n- 2 fully-local skills (package-detection, suspicious-person) do not need an API key\r\n\r\n### Step 2: Configure notification channels\r\n\r\n- **Check**: read the `notifications` section of `{baseDir}/kami_config.json`\r\n- **If all empty**: ask the user whether to set up alarm push (any combination is allowed)\r\n- **Supported channels** (alarm skills `fall-detection` / `package-detection` / `conflict-detection` / `suspicious-person` push automatically when events fire):\r\n  - **Feishu Webhook**: `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed webhooks) — supported by all 4 alarm skills\r\n  - **Feishu self-built app** *(optional, for inline snapshot images)*: `feishu_app_id` + `feishu_app_secret` — when provided, all 4 alarm skills upload the alarm snapshot via Feishu OpenAPI and embed it INLINE inside the card. Without them, the snapshot falls back to a clickable image-host URL\r\n  - **Telegram Bot**: `telegram_bot_token` + `telegram_chat_id` — supported by all 4 alarm skills (snapshot pushed inline via `sendPhoto`)\r\n  - **Discord Webhook**: `discord_webhook_url` (push-only) — supported by all 4 alarm skills (snapshot attached as multipart, renders inline)\r\n  - **Discord Bot**: `discord_bot_token` + `discord_channel_id` (two-way) — fall-detection & package-detection\r\n- All channels are optional; skipped channels just fall back to JSON output without push\r\n- ⚠️ Discord / Telegram may be unreachable from some regions. If a proxy is needed, set `HTTPS_PROXY` in your shell rc (e.g. `~/.bashrc`) yourself — **the suite intentionally does NOT manage proxy settings**\r\n\r\n### Step 3: Configure cameras\r\n\r\n- **Check**: read the `cameras` section of `{baseDir}/kami_config.json`\r\n- **If empty or user wants to add**: ask for camera name + RTSP URL\r\n- **MUST render the full brand table below verbatim** (all 6 rows with actual URL patterns). Do NOT condense into a one-liner like \"supports Hikvision, Dahua...\" — users need the full URL patterns to copy-paste:\r\n\r\n| Brand | URL pattern |\r\n|-------|-------------|\r\n| Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\n- After the user provides camera info, write it into `kami_config.json` under `cameras`\r\n- Naming tip: use short, lowercase names (e.g. `front`, `back`, `garage`); names must be unique\r\n- If the brand is not listed, the user can type the raw RTSP URL directly\r\n\r\n### Configuration complete → all skills ready\r\n\r\nAfter the user provides values:\r\n\r\n1. Write the values back into the corresponding fields of `{baseDir}/kami_config.json`\r\n2. Run distribution:\r\n   ```bash\r\n   bash {baseDir}/configure.sh --distribute\r\n   ```\r\n3. After distribution: tell the user that all skills are ready to use\r\n4. **MUST show the user the Included Skills capability table** (see [Included Skills](#included-skills) above) so the user knows what is now available and which trigger phrases to use. This step is mandatory — do not end the turn until the table has been presented. The `configure.sh --distribute` command also prints the same summary to stdout; relay it verbatim if you do not want to retype the table.\r\n\r\n### Updating configuration later\r\n\r\nTo change the API key or notification channels later:\r\n\r\n```bash\r\n# Re-run the interactive wizard\r\nbash {baseDir}/configure.sh\r\n\r\n# Or edit directly and redistribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n```\r\n\r\n## Prerequisites\r\n\r\n- `clawhub` CLI installed (used to pull skills from ClawHub)\r\n- Network access (for skill download + KamiClaw API calls from some skills)\r\n\r\n> **Python 3.10 is required**. `setup.sh` selects detection priority by OS family (Debian/Ubuntu prefers conda/pyenv; other systems prefer system python3.10) and auto-installs via conda when missing. Other dependencies are managed by each sub-skill.\r\n\r\n## Hardware Requirements\r\n\r\nRecommended minimum hardware for each skill:\r\n\r\n| Skill | CPU | Memory (RAM) | Storage | GPU | Notes |\r\n|-------|-----|--------------|---------|-----|-------|\r\n| kami-package-detection | 2+ cores | 2 GB | 500 MB | not required | YOLO-World ONNX, CPU-only |\r\n| kami-image-search | 2+ cores | 2 GB | 5 GB+ | not required | FAISS index + SQLite frame history |\r\n| kami-video-search | 2+ cores | 2 GB | 10 GB+ | not required | Stores video segments, scales with retention |\r\n| kami-fall-detection | 1+ core | 1 GB | 200 MB | not required | Local does frame-diff only; inference runs in cloud |\r\n| kami-conflict-detection | 4+ cores | 4 GB | 1 GB | optional (accelerates) | Local YOLO person detection + multi-frame analysis |\r\n| kami-suspicious-person | 4+ cores | 4 GB | 1.5 GB | optional (accelerates) | SCRFD + ArcFace ONNX (~1 GB) |\r\n\r\n**Recommended config to run all 6 skills concurrently**:\r\n- CPU: 4+ cores (x86_64 / ARM64)\r\n- Memory: 8 GB+\r\n- Storage: 20 GB+ free space\r\n- Network: stable connection (RTSP pull + API calls)\r\n- OS: Linux (Ubuntu 20.04+ recommended)\r\n\r\n> If you only enable a subset of skills, refer to the corresponding rows above.\r\n\r\n## Centralized Configuration\r\n\r\n### Design\r\n\r\nThe suite uses a **central config + auto-distribute** model:\r\n\r\n```\r\nkami_config.json (Single Source of Truth)\r\n       │\r\n       ▼  configure.py --distribute\r\n       ├── kami-image-search/image_config.json\r\n       ├── kami-video-search/stream_config.json\r\n       ├── kami-fall-detection/config.json\r\n       ├── kami-package-detection/config.json\r\n       ├── kami-conflict-detection/config.json\r\n       ├── kami-suspicious-person/config.json\r\n       └── ~/.kami/credentials.json + cameras.json (cached for any skill)\r\n```\r\n\r\n### Central config file `kami_config.json`\r\n\r\nLocated in the suite directory, it contains the following sections:\r\n\r\n| Section | Description | Skills affected |\r\n|---------|-------------|-----------------|\r\n| `kamiclaw_api_key` | KamiClaw API key | The 4 cloud-API skills |\r\n| `cameras` | Map of named cameras (`name -> {stream_url}`) | All 6 skills (auto-distributed) |\r\n| `notifications` | Feishu / Telegram / Discord push settings | fall-detection, package-detection, conflict-detection, suspicious-person |\r\n| `skills.<name>.cameras` | Per-skill camera selector: `[]` = all, `[\"front\"]` = filter by name | Selects which cameras each skill receives |\r\n| `skills.<name>` | Per-skill tuning parameters | The corresponding skill |\r\n\r\nEdit this file once and every skill is configured.\r\n\r\n### Multi-Camera Support\r\n\r\nThe suite manages multiple cameras under the top-level `cameras` map. Give each camera a short, unique name (the dict key); each skill references cameras by that name.\r\n\r\n```json\r\n{\r\n  \"cameras\": {\r\n    \"front\":  { \"stream_url\": \"rtsp://...\" },\r\n    \"back\":   { \"stream_url\": \"rtsp://...\" },\r\n    \"garage\": { \"stream_url\": \"rtsp://...\" }\r\n  },\r\n  \"skills\": {\r\n    \"kami-image-search\":      { \"cameras\": [] },                  // all cameras\r\n    \"kami-package-detection\": { \"cameras\": [\"front\", \"garage\"] }  // filter by name\r\n  }\r\n}\r\n```\r\n\r\n**Naming tip.** Use short, lowercase, meaningful names (room or location, e.g. `front`, `back`, `garage`). Names must be unique inside `cameras`. If you skip naming, the suite auto-assigns `cam1`, `cam2`, ... in order.\r\n\r\n- Interactive mode: the wizard asks for a name, press Enter to auto-assign.\r\n- CLI mode: `--add-camera NAME=URL` (explicit) or `--add-camera URL` (auto-assigned).\r\n\r\nAll 6 skills support native multi-camera: each selected camera runs as an independent background process.\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\nRecommended combos per camera placement:\r\n\r\n| Camera position | Suggested skills (pick up to 2) |\r\n|----------------|------------------|\r\n| Front door / porch | `package-detection` + `suspicious-person` |\r\n| Living room / hallway | `fall-detection` + `conflict-detection` |\r\n| Garage / warehouse | `package-detection` + `image-search` |\r\n| General coverage | `image-search` + `video-search` (full archival) |\r\n\r\n**`image-search` vs `video-search`:**\r\n\r\n| | image-search | video-search |\r\n|--|--|--|\r\n| Capture | Periodic snapshots (every N seconds) | 24/7 continuous video recording |\r\n| Storage | Light (~5 GB) | Heavy (30 GB+) |\r\n| Search result | Single matching frame | Video clip with context |\r\n| Best for | \"Was there a package?\" quick lookups | \"What happened yesterday afternoon?\" full replay |\r\n\r\nUse `image-search` alone for lightweight event spot-checks; add `video-search` when you need complete footage for evidence or review.\r\n\r\n### Common Brand RTSP Templates\r\n\r\nDon't remember your camera's RTSP path? The wizard ships built-in templates for the most common IP-camera brands. Pick `[t]emplate-add` instead of `[a]dd` and just fill in IP / username / password.\r\n\r\n| Brand key | Brand | URL pattern |\r\n|-----------|-------|-------------|\r\n| `hikvision` | Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| `dahua` | Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| `tplink` | TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| `ezviz` | EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| `uniview` | Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| `reolink` | Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\nUsage:\r\n\r\n```bash\r\n# List all built-in templates\r\nbash {baseDir}/configure.sh --list-templates\r\n\r\n# Interactive: pick a brand, fill in fields, the URL is rendered for you\r\nbash {baseDir}/configure.sh\r\n#   Choice: t\r\n#   Pick: 1 (hikvision)\r\n#   Camera IP: 192.168.1.64\r\n#   Username: admin\r\n#   Password: pass@123      (special chars are auto URL-encoded)\r\n#   Built URL: rtsp://admin:pass%40123@192.168.1.64:554/Streaming/Channels/101\r\n```\r\n\r\n> Special characters in user / password (e.g. `@`, `:`, `#`) are automatically URL-encoded so the resulting RTSP URL is always valid. If your camera brand isn't listed, just type the raw RTSP URL via `[a]dd` or `--add-camera`.\r\n\r\n### Usage\r\n\r\n```bash\r\n# Mode 1: interactive wizard (prompts each field, supports add/edit/delete cameras)\r\nbash {baseDir}/configure.sh\r\n\r\n# Mode 2: set API key directly\r\nbash {baseDir}/configure.sh sk_live_xxxxxxxx\r\n\r\n# Mode 3: edit manually then distribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n\r\n# Mode 4: show current config\r\nbash {baseDir}/configure.sh --show\r\n\r\n# Mode 5: add / remove cameras non-interactively (repeatable)\r\nbash {baseDir}/configure.sh --add-camera rtsp://10.0.0.1/stream             # auto-named cam1\r\nbash {baseDir}/configure.sh --add-camera front=rtsp://10.0.0.1/stream       # explicit name\r\nbash {baseDir}/configure.sh --remove-camera front\r\n\r\n# Mode 6: list common-brand RTSP URL templates\r\nbash {baseDir}/configure.sh --list-templates\r\n```\r\n\r\n### Distribution Map\r\n\r\n| Skill | Target file | Distributed fields |\r\n|-------|-------------|--------------------|\r\n| `kami-image-search`       | `image_config.json`  | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMIVISION_API_KEY`, `CAPTURE_INTERVAL`, `RETENTION_DAYS` |\r\n| `kami-video-search`       | `stream_config.json` | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMI_API_KEY`, `SEGMENT_DURATION`, `RETENTION_DAYS` |\r\n| `kami-fall-detection`     | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `api_key`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id`, `pre_seconds`, `post_seconds`, `save_alarm_clips` |\r\n| `kami-package-detection`  | `config.json`        | `cameras: [{rtsp_url, device_id}, ...]` (all selected cameras), `conf_threshold`, `run_time`, `alarm_cooldown`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id` (pure local inference, no API key) |\r\n| `kami-conflict-detection` | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `kami_api_key`, `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` |\r\n| `kami-suspicious-person`  | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` (pure local inference, no API key) |\r\n\r\n> Power-user tip: each skill's argparse also accepts env vars (`KAMI_API_KEY`, `FEISHU_WEBHOOK_URL`, `TELEGRAM_*`, `DISCORD_WEBHOOK_URL`, `HTTPS_PROXY`) as a fallback. If you need an HTTPS proxy for Discord / Telegram, export `HTTPS_PROXY` in your shell rc — proxy settings are out of scope for `kami_config.json`.\r\n\r\n### Integration with setup.sh\r\n\r\n`setup.sh` automatically enters the centralized config flow after installing all skills. If skipped, run `bash configure.sh` later anytime.\r\n\r\n## Exit Codes\r\n\r\n| Exit code | Meaning |\r\n|-----------|---------|\r\n| `0` | All skills installed successfully |\r\n| `1` | Some skills failed to install (check logs) |\r\n| `2` | Prerequisite missing (no `clawhub`, or neither conda nor pyenv is usable and Python 3.10 cannot be installed) |\r\n\r\n## Troubleshooting\r\n\r\n**`clawhub` CLI not available**\r\n```\r\nclawhub: command not found\r\n```\r\n→ Install the ClawHub CLI first.\r\n\r\n**A skill failed to install**\r\n```\r\n[!] kami-xxx (failed, exit 1)\r\n```\r\n→ Retry: `clawhub install kami-xxx`\r\n\r\n**KamiClaw API key not configured**\r\n→ Run `bash configure.sh` or register at https://kamiclaw-skill.kamihome.com\r\n\r\n**Config changes have no effect**\r\n→ After editing `kami_config.json`, run `bash configure.sh --distribute` to push the changes to each skill.\r\n\r\n## Privacy Notice\r\n\r\nThis suite involves camera streams, image capture and face recognition. Please review the following privacy notes before use:\r\n\r\n### Cloud API calls\r\n\r\n- 4 skills depend on **KamiClaw API** (image-search, video-search, fall-detection, conflict-detection); 2 skills (package-detection, suspicious-person) run **fully locally**\r\n- Data sent to the cloud is used only for real-time inference and is **not persisted nor used for model training**\r\n- API traffic uses HTTPS encryption\r\n\r\n### Local data storage\r\n\r\n- Captured frames, video segments, etc. are stored under each skill's working directory and can be cleaned manually\r\n- `image-search` and `video-search` honor a `retention_days` parameter for automatic expiry\r\n- The API key and camera list are cached in `~/.kami/` (mode 600, current user only)\r\n\r\n### Face data (kami-suspicious-person)\r\n\r\n- The face feature database is built and matched fully locally — **nothing is uploaded to any server**\r\n- Files are stored under `face_db/`, fully under user control\r\n- Removing the `face_db/` directory wipes all face data\r\n\r\n### User control\r\n\r\n- Users freely choose which skills to enable; disabled skills collect nothing\r\n- All camera URLs are user-supplied; skills do not auto-discover or auto-connect cameras\r\n- Users can stop a skill, delete local data, or revoke the API key at any time\r\n\r\n> Privacy policy details: https://kamiclaw-skill.kamihome.com/privacy\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn7e9156e1awf00v1sas2wkdfd85a4zh\",\n  \"slug\": \"kami-smarthome-suite\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1781082132378\n}\n\nFile v1.0.7:skill-card.md\n\n## Description: <br>\nKami SmartHome Suite installs and configures the Kami SmartHome ecosystem with centralized setup for API keys, cameras, and notifications. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[13681882136](https://clawhub.ai/user/13681882136) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal smart-home users and operators use this skill to install, configure, and keep camera-based Kami SmartHome skills in sync for package detection, image and video search, fall detection, conflict detection, and suspicious-person monitoring. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill stores camera URLs, API keys, and notification tokens in local plaintext JSON configuration files. <br>\nMitigation: Install only on trusted machines, protect the skill directory, and avoid entering or displaying credentials in shared terminals. <br>\nRisk: The installer has broad local setup authority and sources the user's shell configuration during setup. <br>\nMitigation: Review setup.sh before running it, especially the automatic shell configuration sourcing, and run the setup from an account with only the permissions needed. <br>\nRisk: Rendered RTSP URLs can expose camera credentials. <br>\nMitigation: Use least-privilege camera credentials where possible and avoid sharing setup output that includes RTSP URLs. <br>\n\n\n## Reference(s): <br>\n- [Kami Smarthome Suite on ClawHub](https://clawhub.ai/13681882136/kami-smarthome-suite) <br>\n- [KamiClaw API Portal](https://kamiclaw-skill.kamihome.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [guidance, shell commands, configuration] <br>\n**Output Format:** [Markdown guidance with shell commands and JSON configuration updates] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May install and configure multiple local smart-home skills and distribute camera, API key, and notification settings.] <br>\n\n## Skill Version(s): <br>\n1.0.7 (source: ClawHub release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.7:kami_config.json\n\n{\n  \"_comment\": \"Kami SmartHome Suite - Centralized Configuration\",\n  \"_doc\": \"One config to rule them all. Edit this file, then run: bash configure.sh to distribute settings to all skills.\",\n  \"_cameras_doc\": \"Camera name = the dict key. It is used as the canonical identifier (logs, alarm messages, snapshot dirs). Add as many cameras as needed; each skill's 'cameras' field selects which to use ([] = all).\",\n  \"kamiclaw_api_key\": \"\",\n  \"cameras\": {\n    \"yuanqu\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.XXX/stream1\"\n    },\n    \"bangongshi\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.xxx/stream1\"\n    }\n  },\n  \"notifications\": {\n    \"feishu_webhook_url\": \"\",\n    \"feishu_webhook_secret\": \"\",\n    \"feishu_app_id\": \"\",\n    \"feishu_app_secret\": \"\",\n    \"telegram_bot_token\": \"\",\n    \"telegram_chat_id\": \"\",\n    \"discord_webhook_url\": \"\",\n    \"discord_bot_token\": \"\",\n    \"discord_channel_id\": \"\"\n  },\n  \"skills\": {\n    \"kami-image-search\": {\n      \"cameras\": [],\n      \"capture_interval\": 10,\n      \"retention_days\": 30\n    },\n    \"kami-video-search\": {\n      \"cameras\": [],\n      \"segment_duration\": 10,\n      \"retention_days\": 3\n    },\n    \"kami-fall-detection\": {\n      \"cameras\": [],\n      \"pre_seconds\": 3.0,\n      \"post_seconds\": 3.0,\n      \"save_alarm_clips\": true\n    },\n    \"kami-conflict-detection\": {\n      \"cameras\": [],\n      \"sample_interval\": 1.0,\n      \"min_persons\": 2,\n      \"run_time\": 0\n    },\n    \"kami-suspicious-person\": {\n      \"cameras\": [],\n      \"loiter_threshold\": 300,\n      \"sample_interval\": 2.0,\n      \"run_time\": 0\n    },\n    \"kami-package-detection\": {\n      \"cameras\": [],\n      \"run_time\": 0,\n      \"conf_threshold\": 0.25,\n      \"alarm_cooldown\": 60\n    }\n  }\n}\n\nArchive v1.0.6: 7 files, 26575 bytes\n\nFiles: configure.py (40783b), configure.sh (1133b), kami_config.json (1720b), setup.sh (19241b), skill-card.md (2935b), SKILL.md (22961b), _meta.json (139b)\n\nFile v1.0.6:SKILL.md\n\n---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change anything later, edit one file and run `configure.sh --distribute` to sync\r\n\r\n> **Configure once, run everywhere** — one config file controls all skills.\r\n\r\n## Included Skills\r\n\r\nThis suite bundles the following 6 standalone skills:\r\n\r\n| # | Skill | Emoji | Description | Use case |\r\n|---|-------|-------|-------------|----------|\r\n| 1 | **kami-package-detection**   | 📦 | Continuous package/parcel monitoring on RTSP streams using YOLO-World ONNX with smart notification | Doorstep delivery alerts |\r\n| 2 | **kami-image-search**        | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |\r\n| 3 | **kami-video-search**        | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |\r\n| 4 | **kami-fall-detection**      | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |\r\n| 5 | **kami-conflict-detection**  | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |\r\n| 6 | **kami-suspicious-person**   | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |\r\n\r\n### Skill Map\r\n\r\n```\r\nkami-smarthome-suite (this skill — installer entry point)\r\n├── kami-package-detection    ── Package / delivery detection\r\n├── kami-image-search         ── Image search\r\n├── kami-video-search         ── Video recording & search\r\n├── kami-fall-detection       ── Fall detection (cloud API)\r\n├── kami-conflict-detection   ── Conflict / fight detection\r\n└── kami-suspicious-person    ── Stranger / suspicious-person detection\r\n```\r\n\r\n## Installation\r\n\r\nAll Kami SmartHome skills are published on **ClawHub** and installed via `clawhub install`.\r\n\r\n### Option 1: One-click install (recommended)\r\n\r\n```bash\r\n# Install the suite\r\nclawhub install kami-smarthome-suite\r\n\r\n# Run setup.sh — auto-installs all 6 skills + guides centralized config\r\nbash {baseDir}/setup.sh\r\n```\r\n\r\n`setup.sh` performs:\r\n1. One-shot install of all 6 Kami ecosystem skills from ClawHub\r\n2. Detect / install Python 3.10:\r\n   - **Debian/Ubuntu**: prefer conda → pyenv → system python3.10 (avoids `python3.10-venv` sudo dependency)\r\n   - **Other systems**: prefer system python3.10 → pyenv → conda\r\n   - If none found: auto-install (conda preferred → pyenv as fallback), no sudo required; only pyenv source build will ask for sudo when build-deps are missing\r\n3. Interactive prompts for centralized config (API key, camera URL, notifications)\r\n4. Auto-distribute the centralized config to each skill's local config files\r\n\r\n> Idempotent — re-running will not reinstall skills that are already present.\r\n\r\n### Option 2: Install individually\r\n\r\nYou can also install specific skills directly from ClawHub:\r\n\r\n```bash\r\nclawhub install kami-package-detection\r\nclawhub install kami-image-search\r\nclawhub install kami-video-search\r\nclawhub install kami-fall-detection\r\nclawhub install kami-conflict-detection\r\nclawhub install kami-suspicious-person\r\n```\r\n\r\nAfter individual installs, run `bash {baseDir}/configure.sh` to apply unified configuration.\r\n\r\n## Guided Setup (read this on first use)\r\n\r\n> **Agent behavior**: when this skill is triggered, follow this order:\r\n> 1. Check whether sub-skills are installed (any missing sub-skill directory means \"not installed\") → if missing, run `bash {baseDir}/setup.sh`\r\n> 2. Check whether `kamiclaw_api_key` is empty in `{baseDir}/kami_config.json` → if so, prompt the user\r\n> 3. Check whether `cameras` is empty in `{baseDir}/kami_config.json` → if so, guide the user to add cameras\r\n> 4. **ALWAYS render the full RTSP brand template table below** (all 6 rows) whenever presenting the setup summary or guiding camera configuration. Do NOT abbreviate it to a single sentence like \"supports Hikvision, Dahua...\" — the user needs to see the actual URL patterns to fill in.\r\n> 5. **ALWAYS show the warning**: ⚠️ Max 2 skills per camera — each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection.\r\n> 6. If all checks pass, skip the wizard and execute the user's request directly\r\n\r\n### Step 0: Install sub-skills\r\n\r\n- **Check**: look for sibling directories `kami-image-search`, `kami-video-search`, etc. next to `{baseDir}`\r\n- **If missing**: run the one-click install:\r\n  ```bash\r\n  bash {baseDir}/setup.sh\r\n  ```\r\n  This script will: download all 6 sub-skills from ClawHub + create venvs + install dependencies\r\n- **If present**: skip and proceed to config check\r\n\r\n### Step 1: Configure KamiClaw API key\r\n\r\n- **Check**: read the `kamiclaw_api_key` field from `{baseDir}/kami_config.json`\r\n- **If empty**: tell the user 4 of the 6 skills require an API key, and prompt for one\r\n- **How to obtain**: register at https://kamiclaw-skill.kamihome.com (free 200 credits)\r\n- API-dependent skills: image-search, video-search, fall-detection, conflict-detection\r\n- 2 fully-local skills (package-detection, suspicious-person) do not need an API key\r\n\r\n### Step 2: Configure notification channels\r\n\r\n- **Check**: read the `notifications` section of `{baseDir}/kami_config.json`\r\n- **If all empty**: ask the user whether to set up alarm push (any combination is allowed)\r\n- **Supported channels** (alarm skills `fall-detection` / `package-detection` / `conflict-detection` / `suspicious-person` push automatically when events fire):\r\n  - **Feishu Webhook**: `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed webhooks) — supported by all 4 alarm skills\r\n  - **Feishu self-built app** *(optional, for inline snapshot images)*: `feishu_app_id` + `feishu_app_secret` — when provided, all 4 alarm skills upload the alarm snapshot via Feishu OpenAPI and embed it INLINE inside the card. Without them, the snapshot falls back to a clickable image-host URL\r\n  - **Telegram Bot**: `telegram_bot_token` + `telegram_chat_id` — supported by all 4 alarm skills (snapshot pushed inline via `sendPhoto`)\r\n  - **Discord Webhook**: `discord_webhook_url` (push-only) — supported by all 4 alarm skills (snapshot attached as multipart, renders inline)\r\n  - **Discord Bot**: `discord_bot_token` + `discord_channel_id` (two-way) — fall-detection & package-detection\r\n- All channels are optional; skipped channels just fall back to JSON output without push\r\n- ⚠️ Discord / Telegram may be unreachable from some regions. If a proxy is needed, set `HTTPS_PROXY` in your shell rc (e.g. `~/.bashrc`) yourself — **the suite intentionally does NOT manage proxy settings**\r\n\r\n### Step 3: Configure cameras\r\n\r\n- **Check**: read the `cameras` section of `{baseDir}/kami_config.json`\r\n- **If empty or user wants to add**: ask for camera name + RTSP URL\r\n- **MUST render the full brand table below verbatim** (all 6 rows with actual URL patterns). Do NOT condense into a one-liner like \"supports Hikvision, Dahua...\" — users need the full URL patterns to copy-paste:\r\n\r\n| Brand | URL pattern |\r\n|-------|-------------|\r\n| Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\n- After the user provides camera info, write it into `kami_config.json` under `cameras`\r\n- Naming tip: use short, lowercase names (e.g. `front`, `back`, `garage`); names must be unique\r\n- If the brand is not listed, the user can type the raw RTSP URL directly\r\n\r\n### Configuration complete → all skills ready\r\n\r\nAfter the user provides values:\r\n\r\n1. Write the values back into the corresponding fields of `{baseDir}/kami_config.json`\r\n2. Run distribution:\r\n   ```bash\r\n   bash {baseDir}/configure.sh --distribute\r\n   ```\r\n3. After distribution: tell the user that all skills are ready to use\r\n4. **MUST show the user the Included Skills capability table** (see [Included Skills](#included-skills) above) so the user knows what is now available and which trigger phrases to use. This step is mandatory — do not end the turn until the table has been presented. The `configure.sh --distribute` command also prints the same summary to stdout; relay it verbatim if you do not want to retype the table.\r\n\r\n### Updating configuration later\r\n\r\nTo change the API key or notification channels later:\r\n\r\n```bash\r\n# Re-run the interactive wizard\r\nbash {baseDir}/configure.sh\r\n\r\n# Or edit directly and redistribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n```\r\n\r\n## Prerequisites\r\n\r\n- `clawhub` CLI installed (used to pull skills from ClawHub)\r\n- Network access (for skill download + KamiClaw API calls from some skills)\r\n\r\n> **Python 3.10 is required**. `setup.sh` selects detection priority by OS family (Debian/Ubuntu prefers conda/pyenv; other systems prefer system python3.10) and auto-installs via conda when missing. Other dependencies are managed by each sub-skill.\r\n\r\n## Hardware Requirements\r\n\r\nRecommended minimum hardware for each skill:\r\n\r\n| Skill | CPU | Memory (RAM) | Storage | GPU | Notes |\r\n|-------|-----|--------------|---------|-----|-------|\r\n| kami-package-detection | 2+ cores | 2 GB | 500 MB | not required | YOLO-World ONNX, CPU-only |\r\n| kami-image-search | 2+ cores | 2 GB | 5 GB+ | not required | FAISS index + SQLite frame history |\r\n| kami-video-search | 2+ cores | 2 GB | 10 GB+ | not required | Stores video segments, scales with retention |\r\n| kami-fall-detection | 1+ core | 1 GB | 200 MB | not required | Local does frame-diff only; inference runs in cloud |\r\n| kami-conflict-detection | 4+ cores | 4 GB | 1 GB | optional (accelerates) | Local YOLO person detection + multi-frame analysis |\r\n| kami-suspicious-person | 4+ cores | 4 GB | 1.5 GB | optional (accelerates) | SCRFD + ArcFace ONNX (~1 GB) |\r\n\r\n**Recommended config to run all 6 skills concurrently**:\r\n- CPU: 4+ cores (x86_64 / ARM64)\r\n- Memory: 8 GB+\r\n- Storage: 20 GB+ free space\r\n- Network: stable connection (RTSP pull + API calls)\r\n- OS: Linux (Ubuntu 20.04+ recommended)\r\n\r\n> If you only enable a subset of skills, refer to the corresponding rows above.\r\n\r\n## Centralized Configuration\r\n\r\n### Design\r\n\r\nThe suite uses a **central config + auto-distribute** model:\r\n\r\n```\r\nkami_config.json (Single Source of Truth)\r\n       │\r\n       ▼  configure.py --distribute\r\n       ├── kami-image-search/image_config.json\r\n       ├── kami-video-search/stream_config.json\r\n       ├── kami-fall-detection/config.json\r\n       ├── kami-package-detection/config.json\r\n       ├── kami-conflict-detection/config.json\r\n       ├── kami-suspicious-person/config.json\r\n       └── ~/.kami/credentials.json + cameras.json (cached for any skill)\r\n```\r\n\r\n### Central config file `kami_config.json`\r\n\r\nLocated in the suite directory, it contains the following sections:\r\n\r\n| Section | Description | Skills affected |\r\n|---------|-------------|-----------------|\r\n| `kamiclaw_api_key` | KamiClaw API key | The 4 cloud-API skills |\r\n| `cameras` | Map of named cameras (`name -> {stream_url}`) | All 6 skills (auto-distributed) |\r\n| `notifications` | Feishu / Telegram / Discord push settings | fall-detection, package-detection, conflict-detection, suspicious-person |\r\n| `skills.<name>.cameras` | Per-skill camera selector: `[]` = all, `[\"front\"]` = filter by name | Selects which cameras each skill receives |\r\n| `skills.<name>` | Per-skill tuning parameters | The corresponding skill |\r\n\r\nEdit this file once and every skill is configured.\r\n\r\n### Multi-Camera Support\r\n\r\nThe suite manages multiple cameras under the top-level `cameras` map. Give each camera a short, unique name (the dict key); each skill references cameras by that name.\r\n\r\n```json\r\n{\r\n  \"cameras\": {\r\n    \"front\":  { \"stream_url\": \"rtsp://...\" },\r\n    \"back\":   { \"stream_url\": \"rtsp://...\" },\r\n    \"garage\": { \"stream_url\": \"rtsp://...\" }\r\n  },\r\n  \"skills\": {\r\n    \"kami-image-search\":      { \"cameras\": [] },                  // all cameras\r\n    \"kami-package-detection\": { \"cameras\": [\"front\", \"garage\"] }  // filter by name\r\n  }\r\n}\r\n```\r\n\r\n**Naming tip.** Use short, lowercase, meaningful names (room or location, e.g. `front`, `back`, `garage`). Names must be unique inside `cameras`. If you skip naming, the suite auto-assigns `cam1`, `cam2`, ... in order.\r\n\r\n- Interactive mode: the wizard asks for a name, press Enter to auto-assign.\r\n- CLI mode: `--add-camera NAME=URL` (explicit) or `--add-camera URL` (auto-assigned).\r\n\r\nAll 6 skills support native multi-camera: each selected camera runs as an independent background process.\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\nRecommended combos per camera placement:\r\n\r\n| Camera position | Suggested skills (pick up to 2) |\r\n|----------------|------------------|\r\n| Front door / porch | `package-detection` + `suspicious-person` |\r\n| Living room / hallway | `fall-detection` + `conflict-detection` |\r\n| Garage / warehouse | `package-detection` + `image-search` |\r\n| General coverage | `image-search` + `video-search` (full archival) |\r\n\r\n**`image-search` vs `video-search`:**\r\n\r\n| | image-search | video-search |\r\n|--|--|--|\r\n| Capture | Periodic snapshots (every N seconds) | 24/7 continuous video recording |\r\n| Storage | Light (~5 GB) | Heavy (30 GB+) |\r\n| Search result | Single matching frame | Video clip with context |\r\n| Best for | \"Was there a package?\" quick lookups | \"What happened yesterday afternoon?\" full replay |\r\n\r\nUse `image-search` alone for lightweight event spot-checks; add `video-search` when you need complete footage for evidence or review.\r\n\r\n### Common Brand RTSP Templates\r\n\r\nDon't remember your camera's RTSP path? The wizard ships built-in templates for the most common IP-camera brands. Pick `[t]emplate-add` instead of `[a]dd` and just fill in IP / username / password.\r\n\r\n| Brand key | Brand | URL pattern |\r\n|-----------|-------|-------------|\r\n| `hikvision` | Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| `dahua` | Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| `tplink` | TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| `ezviz` | EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| `uniview` | Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| `reolink` | Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\nUsage:\r\n\r\n```bash\r\n# List all built-in templates\r\nbash {baseDir}/configure.sh --list-templates\r\n\r\n# Interactive: pick a brand, fill in fields, the URL is rendered for you\r\nbash {baseDir}/configure.sh\r\n#   Choice: t\r\n#   Pick: 1 (hikvision)\r\n#   Camera IP: 192.168.1.64\r\n#   Username: admin\r\n#   Password: pass@123      (special chars are auto URL-encoded)\r\n#   Built URL: rtsp://admin:pass%40123@192.168.1.64:554/Streaming/Channels/101\r\n```\r\n\r\n> Special characters in user / password (e.g. `@`, `:`, `#`) are automatically URL-encoded so the resulting RTSP URL is always valid. If your camera brand isn't listed, just type the raw RTSP URL via `[a]dd` or `--add-camera`.\r\n\r\n### Usage\r\n\r\n```bash\r\n# Mode 1: interactive wizard (prompts each field, supports add/edit/delete cameras)\r\nbash {baseDir}/configure.sh\r\n\r\n# Mode 2: set API key directly\r\nbash {baseDir}/configure.sh sk_live_xxxxxxxx\r\n\r\n# Mode 3: edit manually then distribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n\r\n# Mode 4: show current config\r\nbash {baseDir}/configure.sh --show\r\n\r\n# Mode 5: add / remove cameras non-interactively (repeatable)\r\nbash {baseDir}/configure.sh --add-camera rtsp://10.0.0.1/stream             # auto-named cam1\r\nbash {baseDir}/configure.sh --add-camera front=rtsp://10.0.0.1/stream       # explicit name\r\nbash {baseDir}/configure.sh --remove-camera front\r\n\r\n# Mode 6: list common-brand RTSP URL templates\r\nbash {baseDir}/configure.sh --list-templates\r\n```\r\n\r\n### Distribution Map\r\n\r\n| Skill | Target file | Distributed fields |\r\n|-------|-------------|--------------------|\r\n| `kami-image-search`       | `image_config.json`  | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMIVISION_API_KEY`, `CAPTURE_INTERVAL`, `RETENTION_DAYS` |\r\n| `kami-video-search`       | `stream_config.json` | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMI_API_KEY`, `SEGMENT_DURATION`, `RETENTION_DAYS` |\r\n| `kami-fall-detection`     | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `api_key`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id`, `pre_seconds`, `post_seconds`, `save_alarm_clips` |\r\n| `kami-package-detection`  | `config.json`        | `cameras: [{rtsp_url, device_id}, ...]` (all selected cameras), `conf_threshold`, `run_time`, `alarm_cooldown`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id` (pure local inference, no API key) |\r\n| `kami-conflict-detection` | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `kami_api_key`, `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` |\r\n| `kami-suspicious-person`  | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` (pure local inference, no API key) |\r\n\r\n> Power-user tip: each skill's argparse also accepts env vars (`KAMI_API_KEY`, `FEISHU_WEBHOOK_URL`, `TELEGRAM_*`, `DISCORD_WEBHOOK_URL`, `HTTPS_PROXY`) as a fallback. If you need an HTTPS proxy for Discord / Telegram, export `HTTPS_PROXY` in your shell rc — proxy settings are out of scope for `kami_config.json`.\r\n\r\n### Integration with setup.sh\r\n\r\n`setup.sh` automatically enters the centralized config flow after installing all skills. If skipped, run `bash configure.sh` later anytime.\r\n\r\n## Exit Codes\r\n\r\n| Exit code | Meaning |\r\n|-----------|---------|\r\n| `0` | All skills installed successfully |\r\n| `1` | Some skills failed to install (check logs) |\r\n| `2` | Prerequisite missing (no `clawhub`, or neither conda nor pyenv is usable and Python 3.10 cannot be installed) |\r\n\r\n## Troubleshooting\r\n\r\n**`clawhub` CLI not available**\r\n```\r\nclawhub: command not found\r\n```\r\n→ Install the ClawHub CLI first.\r\n\r\n**A skill failed to install**\r\n```\r\n[!] kami-xxx (failed, exit 1)\r\n```\r\n→ Retry: `clawhub install kami-xxx`\r\n\r\n**KamiClaw API key not configured**\r\n→ Run `bash configure.sh` or register at https://kamiclaw-skill.kamihome.com\r\n\r\n**Config changes have no effect**\r\n→ After editing `kami_config.json`, run `bash configure.sh --distribute` to push the changes to each skill.\r\n\r\n## Privacy Notice\r\n\r\nThis suite involves camera streams, image capture and face recognition. Please review the following privacy notes before use:\r\n\r\n### Cloud API calls\r\n\r\n- 4 skills depend on **KamiClaw API** (image-search, video-search, fall-detection, conflict-detection); 2 skills (package-detection, suspicious-person) run **fully locally**\r\n- Data sent to the cloud is used only for real-time inference and is **not persisted nor used for model training**\r\n- API traffic uses HTTPS encryption\r\n\r\n### Local data storage\r\n\r\n- Captured frames, video segments, etc. are stored under each skill's working directory and can be cleaned manually\r\n- `image-search` and `video-search` honor a `retention_days` parameter for automatic expiry\r\n- The API key and camera list are cached in `~/.kami/` (mode 600, current user only)\r\n\r\n### Face data (kami-suspicious-person)\r\n\r\n- The face feature database is built and matched fully locally — **nothing is uploaded to any server**\r\n- Files are stored under `face_db/`, fully under user control\r\n- Removing the `face_db/` directory wipes all face data\r\n\r\n### User control\r\n\r\n- Users freely choose which skills to enable; disabled skills collect nothing\r\n- All camera URLs are user-supplied; skills do not auto-discover or auto-connect cameras\r\n- Users can stop a skill, delete local data, or revoke the API key at any time\r\n\r\n> Privacy policy details: https://kamiclaw-skill.kamihome.com/privacy\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn7e9156e1awf00v1sas2wkdfd85a4zh\",\n  \"slug\": \"kami-smarthome-suite\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1781073014606\n}\n\nFile v1.0.6:skill-card.md\n\n## Description: <br>\nKami SmartHome skill bundle for installing and centrally configuring the Kami SmartHome ecosystem, including API key, camera, and notification setup. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[13681882136](https://clawhub.ai/user/13681882136) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to install and configure the Kami SmartHome suite for RTSP camera monitoring, searchable camera history, event detection, alarms, and notifications across six related skills. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The installer can make broad local changes, including downloading components, creating Python environments, and installing related skills. <br>\nMitigation: Review setup.sh before execution and run setup only when the user explicitly wants the full Kami smart-home stack. <br>\nRisk: The setup and configuration flow handles sensitive RTSP camera URLs, API keys, webhook secrets, bot tokens, and notification credentials. <br>\nMitigation: Protect configuration files, avoid sharing logs or screen output containing secrets, and rotate credentials if they may have been exposed. <br>\nRisk: Vague smart-home requests could trigger installation or configuration behavior broader than the user intended. <br>\nMitigation: Confirm the intended action before running setup or distribution commands, especially on first use or when configuration is incomplete. <br>\nRisk: Multiple skills can open independent RTSP sessions against the same camera, which may exceed common consumer camera connection limits. <br>\nMitigation: Limit active skills to no more than two per camera or use additional cameras or sub-streams for broader coverage. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/13681882136/kami-smarthome-suite) <br>\n- [ClawHub publisher profile](https://clawhub.ai/user/13681882136) <br>\n- [KamiClaw API registration](https://kamiclaw-skill.kamihome.com) <br>\n- [KamiClaw privacy policy](https://kamiclaw-skill.kamihome.com/privacy) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown guidance with shell commands and JSON configuration updates] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May guide local setup scripts, write camera/API configuration, and distribute shared settings to related Kami skills.] <br>\n\n## Skill Version(s): <br>\n1.0.6 (source: server release metadata; artifact frontmatter reports 1.0.0) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.6:kami_config.json\n\n{\n  \"_comment\": \"Kami SmartHome Suite - Centralized Configuration\",\n  \"_doc\": \"One config to rule them all. Edit this file, then run: bash configure.sh to distribute settings to all skills.\",\n  \"_cameras_doc\": \"Camera name (the dict key) is also used as device_id. Add as many cameras as needed; each skill's 'cameras' field selects which to use ([] = all).\",\n  \"kamiclaw_api_key\": \"\",\n  \"cameras\": {\n    \"yuanqu\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.XXX/stream1\",\n      \"device_id\": \"camera1\"\n    },\n    \"bangongshi\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.xxx/stream1\",\n      \"device_id\": \"camera2\"\n    }\n  },\n  \"notifications\": {\n    \"feishu_webhook_url\": \"\",\n    \"feishu_webhook_secret\": \"\",\n    \"feishu_app_id\": \"\",\n    \"feishu_app_secret\": \"\",\n    \"telegram_bot_token\": \"\",\n    \"telegram_chat_id\": \"\",\n    \"discord_webhook_url\": \"\",\n    \"discord_bot_token\": \"\",\n    \"discord_channel_id\": \"\"\n  },\n  \"skills\": {\n    \"kami-image-search\": {\n      \"cameras\": [],\n      \"capture_interval\": 10,\n      \"retention_days\": 30\n    },\n    \"kami-video-search\": {\n      \"cameras\": [],\n      \"segment_duration\": 10,\n      \"retention_days\": 3\n    },\n    \"kami-fall-detection\": {\n      \"cameras\": [],\n      \"pre_seconds\": 3.0,\n      \"post_seconds\": 3.0,\n      \"save_alarm_clips\": true\n    },\n    \"kami-conflict-detection\": {\n      \"cameras\": [],\n      \"sample_interval\": 1.0,\n      \"min_persons\": 2,\n      \"run_time\": 0\n    },\n    \"kami-suspicious-person\": {\n      \"cameras\": [],\n      \"loiter_threshold\": 300,\n      \"sample_interval\": 2.0,\n      \"run_time\": 0\n    },\n    \"kami-package-detection\": {\n      \"cameras\": [],\n      \"run_time\": 0,\n      \"conf_threshold\": 0.25,\n      \"alarm_cooldown\": 60\n    }\n  }\n}\n\nArchive v1.0.5: 7 files, 25984 bytes\n\nFiles: configure.py (40783b), configure.sh (1133b), kami_config.json (1720b), setup.sh (19241b), skill-card.md (2523b), SKILL.md (20866b), _meta.json (139b)\n\nFile v1.0.5:SKILL.md\n\n---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change anything later, edit one file and run `configure.sh --distribute` to sync\r\n\r\n> **Configure once, run everywhere** — one config file controls all skills.\r\n\r\n## Included Skills\r\n\r\nThis suite bundles the following 6 standalone skills:\r\n\r\n| # | Skill | Emoji | Description | Use case |\r\n|---|-------|-------|-------------|----------|\r\n| 1 | **kami-package-detection**   | 📦 | Continuous package/parcel monitoring on RTSP streams using YOLO-World ONNX with smart notification | Doorstep delivery alerts |\r\n| 2 | **kami-image-search**        | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |\r\n| 3 | **kami-video-search**        | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |\r\n| 4 | **kami-fall-detection**      | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |\r\n| 5 | **kami-conflict-detection**  | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |\r\n| 6 | **kami-suspicious-person**   | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |\r\n\r\n### Skill Map\r\n\r\n```\r\nkami-smarthome-suite (this skill — installer entry point)\r\n├── kami-package-detection    ── Package / delivery detection\r\n├── kami-image-search         ── Image search\r\n├── kami-video-search         ── Video recording & search\r\n├── kami-fall-detection       ── Fall detection (cloud API)\r\n├── kami-conflict-detection   ── Conflict / fight detection\r\n└── kami-suspicious-person    ── Stranger / suspicious-person detection\r\n```\r\n\r\n## Installation\r\n\r\nAll Kami SmartHome skills are published on **ClawHub** and installed via `clawhub install`.\r\n\r\n### Option 1: One-click install (recommended)\r\n\r\n```bash\r\n# Install the suite\r\nclawhub install kami-smarthome-suite\r\n\r\n# Run setup.sh — auto-installs all 6 skills + guides centralized config\r\nbash {baseDir}/setup.sh\r\n```\r\n\r\n`setup.sh` performs:\r\n1. One-shot install of all 6 Kami ecosystem skills from ClawHub\r\n2. Detect / install Python 3.10:\r\n   - **Debian/Ubuntu**: prefer conda → pyenv → system python3.10 (avoids `python3.10-venv` sudo dependency)\r\n   - **Other systems**: prefer system python3.10 → pyenv → conda\r\n   - If none found: auto-install (conda preferred → pyenv as fallback), no sudo required; only pyenv source build will ask for sudo when build-deps are missing\r\n3. Interactive prompts for centralized config (API key, camera URL, notifications)\r\n4. Auto-distribute the centralized config to each skill's local config files\r\n\r\n> Idempotent — re-running will not reinstall skills that are already present.\r\n\r\n### Option 2: Install individually\r\n\r\nYou can also install specific skills directly from ClawHub:\r\n\r\n```bash\r\nclawhub install kami-package-detection\r\nclawhub install kami-image-search\r\nclawhub install kami-video-search\r\nclawhub install kami-fall-detection\r\nclawhub install kami-conflict-detection\r\nclawhub install kami-suspicious-person\r\n```\r\n\r\nAfter individual installs, run `bash {baseDir}/configure.sh` to apply unified configuration.\r\n\r\n## Guided Setup (read this on first use)\r\n\r\n> **Agent behavior**: when this skill is triggered, follow this order:\r\n> 1. Check whether sub-skills are installed (any missing sub-skill directory means \"not installed\") → if missing, run `bash {baseDir}/setup.sh`\r\n> 2. Check whether `kamiclaw_api_key` is empty in `{baseDir}/kami_config.json` → if so, prompt the user\r\n> 3. If both checks pass, skip the wizard and execute the user's request directly\r\n\r\n### Step 0: Install sub-skills\r\n\r\n- **Check**: look for sibling directories `kami-image-search`, `kami-video-search`, etc. next to `{baseDir}`\r\n- **If missing**: run the one-click install:\r\n  ```bash\r\n  bash {baseDir}/setup.sh\r\n  ```\r\n  This script will: download all 6 sub-skills from ClawHub + create venvs + install dependencies\r\n- **If present**: skip and proceed to config check\r\n\r\n### Step 1: Configure KamiClaw API key\r\n\r\n- **Check**: read the `kamiclaw_api_key` field from `{baseDir}/kami_config.json`\r\n- **If empty**: tell the user 4 of the 6 skills require an API key, and prompt for one\r\n- **How to obtain**: register at https://kamiclaw-skill.kamihome.com (free 200 credits)\r\n- API-dependent skills: image-search, video-search, fall-detection, conflict-detection\r\n- 2 fully-local skills (package-detection, suspicious-person) do not need an API key\r\n\r\n### Step 2: Configure notification channels\r\n\r\n- **Check**: read the `notifications` section of `{baseDir}/kami_config.json`\r\n- **If all empty**: ask the user whether to set up alarm push (any combination is allowed)\r\n- **Supported channels** (alarm skills `fall-detection` / `package-detection` / `conflict-detection` / `suspicious-person` push automatically when events fire):\r\n  - **Feishu Webhook**: `feishu_webhook_url` (+ optional `feishu_webhook_secret` for signed webhooks) — supported by all 4 alarm skills\r\n  - **Feishu self-built app** *(optional, for inline snapshot images)*: `feishu_app_id` + `feishu_app_secret` — when provided, all 4 alarm skills upload the alarm snapshot via Feishu OpenAPI and embed it INLINE inside the card. Without them, the snapshot falls back to a clickable image-host URL\r\n  - **Telegram Bot**: `telegram_bot_token` + `telegram_chat_id` — supported by all 4 alarm skills (snapshot pushed inline via `sendPhoto`)\r\n  - **Discord Webhook**: `discord_webhook_url` (push-only) — supported by all 4 alarm skills (snapshot attached as multipart, renders inline)\r\n  - **Discord Bot**: `discord_bot_token` + `discord_channel_id` (two-way) — fall-detection & package-detection\r\n- All channels are optional; skipped channels just fall back to JSON output without push\r\n- ⚠️ Discord / Telegram may be unreachable from some regions. If a proxy is needed, set `HTTPS_PROXY` in your shell rc (e.g. `~/.bashrc`) yourself — **the suite intentionally does NOT manage proxy settings**\r\n\r\n### Configuration complete → all skills ready\r\n\r\nAfter the user provides values:\r\n\r\n1. Write the values back into the corresponding fields of `{baseDir}/kami_config.json`\r\n2. Run distribution:\r\n   ```bash\r\n   bash {baseDir}/configure.sh --distribute\r\n   ```\r\n3. After distribution: tell the user that all skills are ready to use\r\n4. **MUST show the user the Included Skills capability table** (see [Included Skills](#included-skills) above) so the user knows what is now available and which trigger phrases to use. This step is mandatory — do not end the turn until the table has been presented. The `configure.sh --distribute` command also prints the same summary to stdout; relay it verbatim if you do not want to retype the table.\r\n\r\n### Updating configuration later\r\n\r\nTo change the API key or notification channels later:\r\n\r\n```bash\r\n# Re-run the interactive wizard\r\nbash {baseDir}/configure.sh\r\n\r\n# Or edit directly and redistribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n```\r\n\r\n## Prerequisites\r\n\r\n- `clawhub` CLI installed (used to pull skills from ClawHub)\r\n- Network access (for skill download + KamiClaw API calls from some skills)\r\n\r\n> **Python 3.10 is required**. `setup.sh` selects detection priority by OS family (Debian/Ubuntu prefers conda/pyenv; other systems prefer system python3.10) and auto-installs via conda when missing. Other dependencies are managed by each sub-skill.\r\n\r\n## Hardware Requirements\r\n\r\nRecommended minimum hardware for each skill:\r\n\r\n| Skill | CPU | Memory (RAM) | Storage | GPU | Notes |\r\n|-------|-----|--------------|---------|-----|-------|\r\n| kami-package-detection | 2+ cores | 2 GB | 500 MB | not required | YOLO-World ONNX, CPU-only |\r\n| kami-image-search | 2+ cores | 2 GB | 5 GB+ | not required | FAISS index + SQLite frame history |\r\n| kami-video-search | 2+ cores | 2 GB | 10 GB+ | not required | Stores video segments, scales with retention |\r\n| kami-fall-detection | 1+ core | 1 GB | 200 MB | not required | Local does frame-diff only; inference runs in cloud |\r\n| kami-conflict-detection | 4+ cores | 4 GB | 1 GB | optional (accelerates) | Local YOLO person detection + multi-frame analysis |\r\n| kami-suspicious-person | 4+ cores | 4 GB | 1.5 GB | optional (accelerates) | SCRFD + ArcFace ONNX (~1 GB) |\r\n\r\n**Recommended config to run all 6 skills concurrently**:\r\n- CPU: 4+ cores (x86_64 / ARM64)\r\n- Memory: 8 GB+\r\n- Storage: 20 GB+ free space\r\n- Network: stable connection (RTSP pull + API calls)\r\n- OS: Linux (Ubuntu 20.04+ recommended)\r\n\r\n> If you only enable a subset of skills, refer to the corresponding rows above.\r\n\r\n## Centralized Configuration\r\n\r\n### Design\r\n\r\nThe suite uses a **central config + auto-distribute** model:\r\n\r\n```\r\nkami_config.json (Single Source of Truth)\r\n       │\r\n       ▼  configure.py --distribute\r\n       ├── kami-image-search/image_config.json\r\n       ├── kami-video-search/stream_config.json\r\n       ├── kami-fall-detection/config.json\r\n       ├── kami-package-detection/config.json\r\n       ├── kami-conflict-detection/config.json\r\n       ├── kami-suspicious-person/config.json\r\n       └── ~/.kami/credentials.json + cameras.json (cached for any skill)\r\n```\r\n\r\n### Central config file `kami_config.json`\r\n\r\nLocated in the suite directory, it contains the following sections:\r\n\r\n| Section | Description | Skills affected |\r\n|---------|-------------|-----------------|\r\n| `kamiclaw_api_key` | KamiClaw API key | The 4 cloud-API skills |\r\n| `cameras` | Map of named cameras (`name -> {stream_url}`) | All 6 skills (auto-distributed) |\r\n| `notifications` | Feishu / Telegram / Discord push settings | fall-detection, package-detection, conflict-detection, suspicious-person |\r\n| `skills.<name>.cameras` | Per-skill camera selector: `[]` = all, `[\"front\"]` = filter by name | Selects which cameras each skill receives |\r\n| `skills.<name>` | Per-skill tuning parameters | The corresponding skill |\r\n\r\nEdit this file once and every skill is configured.\r\n\r\n### Multi-Camera Support\r\n\r\nThe suite manages multiple cameras under the top-level `cameras` map. Give each camera a short, unique name (the dict key); each skill references cameras by that name.\r\n\r\n```json\r\n{\r\n  \"cameras\": {\r\n    \"front\":  { \"stream_url\": \"rtsp://...\" },\r\n    \"back\":   { \"stream_url\": \"rtsp://...\" },\r\n    \"garage\": { \"stream_url\": \"rtsp://...\" }\r\n  },\r\n  \"skills\": {\r\n    \"kami-image-search\":      { \"cameras\": [] },                  // all cameras\r\n    \"kami-package-detection\": { \"cameras\": [\"front\", \"garage\"] }  // filter by name\r\n  }\r\n}\r\n```\r\n\r\n**Naming tip.** Use short, lowercase, meaningful names (room or location, e.g. `front`, `back`, `garage`). Names must be unique inside `cameras`. If you skip naming, the suite auto-assigns `cam1`, `cam2`, ... in order.\r\n\r\n- Interactive mode: the wizard asks for a name, press Enter to auto-assign.\r\n- CLI mode: `--add-camera NAME=URL` (explicit) or `--add-camera URL` (auto-assigned).\r\n\r\nAll 6 skills support native multi-camera: each selected camera runs as an independent background process.\r\n\r\n> ⚠️ **Max 2 skills per camera.** Each skill opens an independent RTSP connection; most consumer cameras support only 2–4 concurrent sessions. Exceeding this causes stream disconnection. If you need more coverage, add a second camera or use the sub-stream.\r\n\r\nRecommended combos per camera placement:\r\n\r\n| Camera position | Suggested skills (pick up to 2) |\r\n|----------------|------------------|\r\n| Front door / porch | `package-detection` + `suspicious-person` |\r\n| Living room / hallway | `fall-detection` + `conflict-detection` |\r\n| Garage / warehouse | `package-detection` + `image-search` |\r\n| General coverage | `image-search` + `video-search` (full archival) |\r\n\r\n**`image-search` vs `video-search`:**\r\n\r\n| | image-search | video-search |\r\n|--|--|--|\r\n| Capture | Periodic snapshots (every N seconds) | 24/7 continuous video recording |\r\n| Storage | Light (~5 GB) | Heavy (30 GB+) |\r\n| Search result | Single matching frame | Video clip with context |\r\n| Best for | \"Was there a package?\" quick lookups | \"What happened yesterday afternoon?\" full replay |\r\n\r\nUse `image-search` alone for lightweight event spot-checks; add `video-search` when you need complete footage for evidence or review.\r\n\r\n### Common Brand RTSP Templates\r\n\r\nDon't remember your camera's RTSP path? The wizard ships built-in templates for the most common IP-camera brands. Pick `[t]emplate-add` instead of `[a]dd` and just fill in IP / username / password.\r\n\r\n| Brand key | Brand | URL pattern |\r\n|-----------|-------|-------------|\r\n| `hikvision` | Hikvision | `rtsp://{user}:{pwd}@{ip}:554/Streaming/Channels/101` (`101`=ch1 main, `102`=ch1 sub) |\r\n| `dahua` | Dahua | `rtsp://{user}:{pwd}@{ip}:554/cam/realmonitor?channel=1&subtype=0` (`subtype=0` main, `1` sub) |\r\n| `tplink` | TP-Link | `rtsp://{user}:{pwd}@{ip}:554/stream1` (`stream1` main, `stream2` sub) |\r\n| `ezviz` | EZVIZ | `rtsp://admin:{verify_code}@{ip}:554/H264/ch1/main/av_stream` |\r\n| `uniview` | Uniview | `rtsp://{user}:{pwd}@{ip}:554/media/video1` |\r\n| `reolink` | Reolink | `rtsp://{user}:{pwd}@{ip}:554/h264Preview_01_main` |\r\n\r\nUsage:\r\n\r\n```bash\r\n# List all built-in templates\r\nbash {baseDir}/configure.sh --list-templates\r\n\r\n# Interactive: pick a brand, fill in fields, the URL is rendered for you\r\nbash {baseDir}/configure.sh\r\n#   Choice: t\r\n#   Pick: 1 (hikvision)\r\n#   Camera IP: 192.168.1.64\r\n#   Username: admin\r\n#   Password: pass@123      (special chars are auto URL-encoded)\r\n#   Built URL: rtsp://admin:pass%40123@192.168.1.64:554/Streaming/Channels/101\r\n```\r\n\r\n> Special characters in user / password (e.g. `@`, `:`, `#`) are automatically URL-encoded so the resulting RTSP URL is always valid. If your camera brand isn't listed, just type the raw RTSP URL via `[a]dd` or `--add-camera`.\r\n\r\n### Usage\r\n\r\n```bash\r\n# Mode 1: interactive wizard (prompts each field, supports add/edit/delete cameras)\r\nbash {baseDir}/configure.sh\r\n\r\n# Mode 2: set API key directly\r\nbash {baseDir}/configure.sh sk_live_xxxxxxxx\r\n\r\n# Mode 3: edit manually then distribute\r\nvim {baseDir}/kami_config.json\r\nbash {baseDir}/configure.sh --distribute\r\n\r\n# Mode 4: show current config\r\nbash {baseDir}/configure.sh --show\r\n\r\n# Mode 5: add / remove cameras non-interactively (repeatable)\r\nbash {baseDir}/configure.sh --add-camera rtsp://10.0.0.1/stream             # auto-named cam1\r\nbash {baseDir}/configure.sh --add-camera front=rtsp://10.0.0.1/stream       # explicit name\r\nbash {baseDir}/configure.sh --remove-camera front\r\n\r\n# Mode 6: list common-brand RTSP URL templates\r\nbash {baseDir}/configure.sh --list-templates\r\n```\r\n\r\n### Distribution Map\r\n\r\n| Skill | Target file | Distributed fields |\r\n|-------|-------------|--------------------|\r\n| `kami-image-search`       | `image_config.json`  | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMIVISION_API_KEY`, `CAPTURE_INTERVAL`, `RETENTION_DAYS` |\r\n| `kami-video-search`       | `stream_config.json` | `cameras: [{STREAM_URL, DEVICE_ID}, ...]` (all selected cameras), `KAMI_API_KEY`, `SEGMENT_DURATION`, `RETENTION_DAYS` |\r\n| `kami-fall-detection`     | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `api_key`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id`, `pre_seconds`, `post_seconds`, `save_alarm_clips` |\r\n| `kami-package-detection`  | `config.json`        | `cameras: [{rtsp_url, device_id}, ...]` (all selected cameras), `conf_threshold`, `run_time`, `alarm_cooldown`, `feishu_webhook_url`, `feishu_app_id`, `feishu_app_secret`, `telegram_bot_token`, `telegram_chat_id`, `discord_webhook_url`, `discord_bot_token`, `discord_channel_id` (pure local inference, no API key) |\r\n| `kami-conflict-detection` | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `kami_api_key`, `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` |\r\n| `kami-suspicious-person`  | `config.json`        | `cameras: [{rtsp_url, name}, ...]` (all selected cameras), `feishu_webhook`, `feishu_app_id`, `feishu_app_secret`, `discord_webhook`, `telegram_bot_token`, `telegram_chat_id` (pure local inference, no API key) |\r\n\r\n> Power-user tip: each skill's argparse also accepts env vars (`KAMI_API_KEY`, `FEISHU_WEBHOOK_URL`, `TELEGRAM_*`, `DISCORD_WEBHOOK_URL`, `HTTPS_PROXY`) as a fallback. If you need an HTTPS proxy for Discord / Telegram, export `HTTPS_PROXY` in your shell rc — proxy settings are out of scope for `kami_config.json`.\r\n\r\n### Integration with setup.sh\r\n\r\n`setup.sh` automatically enters the centralized config flow after installing all skills. If skipped, run `bash configure.sh` later anytime.\r\n\r\n## Exit Codes\r\n\r\n| Exit code | Meaning |\r\n|-----------|---------|\r\n| `0` | All skills installed successfully |\r\n| `1` | Some skills failed to install (check logs) |\r\n| `2` | Prerequisite missing (no `clawhub`, or neither conda nor pyenv is usable and Python 3.10 cannot be installed) |\r\n\r\n## Troubleshooting\r\n\r\n**`clawhub` CLI not available**\r\n```\r\nclawhub: command not found\r\n```\r\n→ Install the ClawHub CLI first.\r\n\r\n**A skill failed to install**\r\n```\r\n[!] kami-xxx (failed, exit 1)\r\n```\r\n→ Retry: `clawhub install kami-xxx`\r\n\r\n**KamiClaw API key not configured**\r\n→ Run `bash configure.sh` or register at https://kamiclaw-skill.kamihome.com\r\n\r\n**Config changes have no effect**\r\n→ After editing `kami_config.json`, run `bash configure.sh --distribute` to push the changes to each skill.\r\n\r\n## Privacy Notice\r\n\r\nThis suite involves camera streams, image capture and face recognition. Please review the following privacy notes before use:\r\n\r\n### Cloud API calls\r\n\r\n- 4 skills depend on **KamiClaw API** (image-search, video-search, fall-detection, conflict-detection); 2 skills (package-detection, suspicious-person) run **fully locally**\r\n- Data sent to the cloud is used only for real-time inference and is **not persisted nor used for model training**\r\n- API traffic uses HTTPS encryption\r\n\r\n### Local data storage\r\n\r\n- Captured frames, video segments, etc. are stored under each skill's working directory and can be cleaned manually\r\n- `image-search` and `video-search` honor a `retention_days` parameter for automatic expiry\r\n- The API key and camera list are cached in `~/.kami/` (mode 600, current user only)\r\n\r\n### Face data (kami-suspicious-person)\r\n\r\n- The face feature database is built and matched fully locally — **nothing is uploaded to any server**\r\n- Files are stored under `face_db/`, fully under user control\r\n- Removing the `face_db/` directory wipes all face data\r\n\r\n### User control\r\n\r\n- Users freely choose which skills to enable; disabled skills collect nothing\r\n- All camera URLs are user-supplied; skills do not auto-discover or auto-connect cameras\r\n- Users can stop a skill, delete local data, or revoke the API key at any time\r\n\r\n> Privacy policy details: https://kamiclaw-skill.kamihome.com/privacy\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn7e9156e1awf00v1sas2wkdfd85a4zh\",\n  \"slug\": \"kami-smarthome-suite\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1781055009787\n}\n\nFile v1.0.5:skill-card.md\n\n## Description: <br>\nKami SmartHome skill bundle: a one-click installer for the Kami SmartHome ecosystem with centralized configuration for API keys, cameras, and notifications. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[13681882136](https://clawhub.ai/user/13681882136) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and smart-home operators use this skill to install and configure Kami SmartHome skills for RTSP camera monitoring, natural-language image and video search, package detection, fall detection, conflict detection, suspicious-person alerts, and notification delivery. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill handles real RTSP camera URLs, API keys, and notification tokens. <br>\nMitigation: Run setup intentionally, review configuration before distribution, and avoid sharing terminal logs after entering camera URLs or tokens. <br>\nRisk: Default camera selection can apply multiple monitoring skills broadly across configured cameras. <br>\nMitigation: Narrow each skill's camera list to the intended cameras instead of leaving every skill on all cameras unless that coverage is deliberate. <br>\nRisk: The installer pulls six sub-skills and their dependencies before configuration. <br>\nMitigation: Verify the six sub-skills and dependency installation steps before running setup in an environment with real cameras. <br>\n\n\n## Reference(s): <br>\n- [Kami Smarthome Suite on ClawHub](https://clawhub.ai/13681882136/kami-smarthome-suite) <br>\n- [KamiClaw API Registration](https://kamiclaw-skill.kamihome.com) <br>\n- [KamiClaw Privacy Policy](https://kamiclaw-skill.kamihome.com/privacy) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown guidance with bash commands and JSON configuration updates] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May update kami_config.json and distribute camera, API key, and notification settings to installed Kami skills.] <br>\n\n## Skill Version(s): <br>\n1.0.5 (source: server release; artifact frontmatter reports 1.0.0) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.5:kami_config.json\n\n{\n  \"_comment\": \"Kami SmartHome Suite - Centralized Configuration\",\n  \"_doc\": \"One config to rule them all. Edit this file, then run: bash configure.sh to distribute settings to all skills.\",\n  \"_cameras_doc\": \"Camera name (the dict key) is also used as device_id. Add as many cameras as needed; each skill's 'cameras' field selects which to use ([] = all).\",\n  \"kamiclaw_api_key\": \"\",\n  \"cameras\": {\n    \"yuanqu\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.XXX/stream1\",\n      \"device_id\": \"camera1\"\n    },\n    \"bangongshi\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.xxx/stream1\",\n      \"device_id\": \"camera2\"\n    }\n  },\n  \"notifications\": {\n    \"feishu_webhook_url\": \"\",\n    \"feishu_webhook_secret\": \"\",\n    \"feishu_app_id\": \"\",\n    \"feishu_app_secret\": \"\",\n    \"telegram_bot_token\": \"\",\n    \"telegram_chat_id\": \"\",\n    \"discord_webhook_url\": \"\",\n    \"discord_bot_token\": \"\",\n    \"discord_channel_id\": \"\"\n  },\n  \"skills\": {\n    \"kami-image-search\": {\n      \"cameras\": [],\n      \"capture_interval\": 10,\n      \"retention_days\": 30\n    },\n    \"kami-video-search\": {\n      \"cameras\": [],\n      \"segment_duration\": 10,\n      \"retention_days\": 3\n    },\n    \"kami-fall-detection\": {\n      \"cameras\": [],\n      \"pre_seconds\": 3.0,\n      \"post_seconds\": 3.0,\n      \"save_alarm_clips\": true\n    },\n    \"kami-conflict-detection\": {\n      \"cameras\": [],\n      \"sample_interval\": 1.0,\n      \"min_persons\": 2,\n      \"run_time\": 0\n    },\n    \"kami-suspicious-person\": {\n      \"cameras\": [],\n      \"loiter_threshold\": 300,\n      \"sample_interval\": 2.0,\n      \"run_time\": 0\n    },\n    \"kami-package-detection\": {\n      \"cameras\": [],\n      \"run_time\": 0,\n      \"conf_threshold\": 0.25,\n      \"alarm_cooldown\": 60\n    }\n  }\n}\n\nArchive v1.0.4: 7 files, 21807 bytes\n\nFiles: configure.py (30402b), configure.sh (1133b), kami_config.json (1666b), setup.sh (19241b), skill-card.md (2809b), SKILL.md (17067b), _meta.json (139b)\n\nFile v1.0.4:SKILL.md\n\n---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change an\n\nArchive v1.0.3: 7 files, 21724 bytes\n\nFiles: configure.py (29747b), configure.sh (1133b), kami_config.json (1638b), setup.sh (19241b), skill-card.md (2811b), SKILL.md (16841b), _meta.json (139b)\n\nArchive v1.0.2: 7 files, 18367 bytes\n\nFiles: configure.py (17790b), configure.sh (1133b), kami_config.json (1356b), setup.sh (18940b), skill-card.md (2633b), SKILL.md (17489b), _meta.json (139b)\n\nArchive v1.0.1: 7 files, 18757 bytes\n\nFiles: configure.py (17790b), configure.sh (1133b), kami_config.json (1356b), setup.sh (20787b), skill-card.md (2718b), SKILL.md (17489b), _meta.json (139b)\n\nArchive v1.0.0: 7 files, 19530 bytes\n\nFiles: configure.py (20480b), configure.sh (1133b), kami_config.json (1356b), setup.sh (20787b), skill-card.md (2370b), SKILL.md (17507b), _meta.json (139b)","readmeExcerpt":"Skill: Kami Smarthome Suite Owner: 13681882136 Summary: Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n... Tags: latest:1.0.9 Version history: v1.0.9 | 2026-06-11T10:08:24.173Z | auto kami-smarthome-suite v1.0.9 - Updated guided setup instructions for greater clarity and accuracy, especially first-time onboar","codeSnippets":[],"executableExamples":[],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\r\nname: kami-smarthome-suite\r\ndescription: \"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — no more configuring each skill individually.\"\r\nversion: 1.0.0\r\nauthor: kami-smarthome\r\ntags:\r\n  - smart-home\r\n  - kami\r\n  - smarthome\r\n  - suite\r\n  - bundle\r\n  - camera\r\n  - rtsp\r\n  - detect\r\n  - video\r\n  - image-search\r\n  - package-detection\r\n  - fall-detection\r\n  - conflict-detection\r\n  - face-recognition\r\n  - surveillance\r\n  - security\r\ntriggers:\r\n  - kami smart home\r\n  - kami smarthome suite\r\n  - install kami skills\r\n  - install all kami\r\n  - smart home suite\r\n  - kami home assistant\r\n  - install kami suite\r\n  - kami all skills\r\n  - smart home bundle\r\nmetadata:\r\n  openclaw:\r\n    requires:\r\n      bins:\r\n        - python3.10\r\n      hardware:\r\n        cpu: \"4+ cores (x86_64 / ARM64)\"\r\n        memory: \"8 GB+\"\r\n        storage: \"20 GB+\"\r\n        gpu: \"optional (speeds up ONNX inference)\"\r\n      network:\r\n        - \"RTSP camera access (LAN)\"\r\n        - \"Internet (KamiClaw API)\"\r\n      devices:\r\n        - \"RTSP IP camera\"\r\n    emoji: \"🏠\"\r\n---\r\n\r\n# Kami SmartHome Suite\r\n\r\n## Overview\r\n\r\nKami SmartHome Suite is the one-stop installer for the **kami-smarthome** ecosystem. By installing this single skill, users get:\r\n\r\n1. **Batch download** — install all 6 ecosystem skills from ClawHub in one go\r\n2. **Guided configuration** — interactive setup for API key and notification channels; **all skills are ready to use immediately after configuration**\r\n3. **Centralized config management** — to change anything later, edit one file and run `configure.sh --distribute` to sync\r\n\r\n> **Configure once, run everywhere** — one config file controls all skills.\r\n\r\n## Included Skills\r\n\r\nThis suite bundles the following 6 standalone skills:\r\n\r\n| # | Skill | Emoji | Description | Use case |\r\n|---|-------|-------|-------------|----------|\r\n| 1 | **kami-package-detection**   | 📦 | Continuous package/parcel monitoring on RTSP streams using YOLO-World ONNX with smart notification | Doorstep delivery alerts |\r\n| 2 | **kami-image-search**        | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |\r\n| 3 | **kami-video-search**        | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |\r\n| 4 | **kami-fall-detection**      | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |\r\n| 5 | **kami-conflict-detection**  | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |\r\n| 6 | **kami-suspicious-person**   | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |\r\n\r\n### Skill Map\r\n\r\n```\r\nkami-smarthome-suite (this skill — installer entry point)\r\n├── kami-package-detection    ── "},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn7e9156e1awf00v1sas2wkdfd85a4zh\",\n  \"slug\": \"kami-smarthome-suite\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1781172504173\n}"},{"path":"skill-card.md","content":"## Description:\n\nKami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration for API keys, cameras, and notifications.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[13681882136](https://clawhub.ai/user/13681882136)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and smart-home operators use this skill to install and centrally configure the Kami SmartHome ecosystem for RTSP camera monitoring, notifications, visual search, and event detection.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The setup flow downloads additional skills and dependencies and may request broad install authority.\n\nMitigation: Review setup.sh and configure.py before installation, run the installer in a controlled environment, and grant elevated permissions only after confirming the requested package actions.\n\nRisk: Camera URLs, API keys, and notification credentials may be stored in local plaintext configuration or exposed through command-line history and terminal output.\n\nMitigation: Avoid passing secrets on the command line, restrict file permissions on local configuration files, treat setup output as sensitive, and rotate any secret that may have been exposed.\n\nRisk: RTSP camera streams and notification snapshots can contain sensitive home or workplace imagery.\n\nMitigation: Configure only trusted cameras and notification channels, limit access to generated outputs, and confirm that camera use complies with the deployment environment's privacy requirements.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/13681882136/skills/kami-smarthome-suite)\n- [KamiClaw API portal](https://kamiclaw-skill.kamihome.com)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON configuration details]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May update local Kami configuration and distribute it to installed sub-skills.]\n\n## Skill Version(s):\n\n1.0.9 (source: server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"kami_config.json","content":"{\n  \"_comment\": \"Kami SmartHome Suite - Centralized Configuration\",\n  \"_doc\": \"One config to rule them all. Edit this file, then run: bash configure.sh to distribute settings to all skills.\",\n  \"_cameras_doc\": \"Camera name = the dict key. It is used as the canonical identifier (logs, alarm messages, snapshot dirs). Add as many cameras as needed; each skill's 'cameras' field selects which to use ([] = all).\",\n  \"kamiclaw_api_key\": \"\",\n  \"cameras\": {\n    \"yuanqu\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.XXX/stream1\"\n    },\n    \"bangongshi\": {\n      \"stream_url\": \"rtsp://admin:xxx@192.168.xxx/stream1\"\n    }\n  },\n  \"notifications\": {\n    \"feishu_webhook_url\": \"\",\n    \"feishu_webhook_secret\": \"\",\n    \"feishu_app_id\": \"\",\n    \"feishu_app_secret\": \"\",\n    \"telegram_bot_token\": \"\",\n    \"telegram_chat_id\": \"\",\n    \"discord_webhook_url\": \"\",\n    \"discord_bot_token\": \"\",\n    \"discord_channel_id\": \"\"\n  },\n  \"skills\": {\n    \"kami-image-search\": {\n      \"cameras\": [],\n      \"capture_interval\": 10,\n      \"retention_days\": 30\n    },\n    \"kami-video-search\": {\n      \"cameras\": [],\n      \"segment_duration\": 10,\n      \"retention_days\": 3\n    },\n    \"kami-fall-detection\": {\n      \"cameras\": [],\n      \"pre_seconds\": 3.0,\n      \"post_seconds\": 3.0,\n      \"save_alarm_clips\": true\n    },\n    \"kami-conflict-detection\": {\n      \"cameras\": [],\n      \"sample_interval\": 1.0,\n      \"min_persons\": 2,\n      \"run_time\": 0\n    },\n    \"kami-suspicious-person\": {\n      \"cameras\": [],\n      \"loiter_threshold\": 300,\n      \"sample_interval\": 2.0,\n      \"run_time\": 0\n    },\n    \"kami-package-detection\": {\n      \"cameras\": [],\n      \"run_time\": 0,\n      \"conf_threshold\": 0.25,\n      \"alarm_cooldown\": 60\n    }\n  }\n}"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":"Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n... Skill: Kami Smarthome Suite Owner: 13681882136 Summary: Kami SmartHome skill bundle. One-click installer for the entire Kami SmartHome ecosystem with centralized configuration (API key, cameras, notifications) — n... Tags: latest:1.0.9 Version history: v1.0.9 | 2026-06-11T10:08:24.173Z | auto kami-smarthome-suite v1.0.9 - Updated guided setup instructions for greater clarity and accuracy, especially first-time onboar","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":1680,"uniquenessScore":45,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T07:02:21.070Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T07:02:21.070Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T10:52:23.116Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}