Install
openclaw skills install kami-smarthome-suiteKami 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.
openclaw skills install kami-smarthome-suiteKami SmartHome Suite is the one-stop installer for the kami-smarthome ecosystem. By installing this single skill, users get:
configure.sh --distribute to syncDesign principle: Single Source of Truth — one config file controls all skills. Core promise: configure once, run everywhere — once API key and notification channels are set, all 6 skills work out of the box.
This suite bundles the following 6 standalone skills:
| # | Skill | Emoji | Description | Use case |
|---|---|---|---|---|
| 1 | kami-package-detection | 📦 | Real-time package/parcel detection on RTSP streams using YOLO-World ONNX | Doorstep delivery alerts |
| 2 | kami-image-search | 🔍 | Periodic frame capture + VLM captioning + FAISS index for natural-language image search | Search historical frames |
| 3 | kami-video-search | 📹 | Continuous video segmentation + VLM scene description + natural-language clip search | Search historical clips |
| 4 | kami-fall-detection | 🚨 | Frame-difference detection + KamiClaw cloud inference for fall events | Elder / lone-resident care |
| 5 | kami-conflict-detection | 🥊 | Multi-person physical conflict (fight/shove) detection with event-driven alarm JSON | Security alerting |
| 6 | kami-suspicious-person | 🕵️ | Stranger recognition via SCRFD + ArcFace, detects unregistered face loitering | Doorway / stranger-loiter alerts |
kami-smarthome-suite (this skill — installer entry point)
├── kami-package-detection ── Package / delivery detection
├── kami-image-search ── Image search
├── kami-video-search ── Video recording & search
├── kami-fall-detection ── Fall detection (cloud API)
├── kami-conflict-detection ── Conflict / fight detection
└── kami-suspicious-person ── Stranger / suspicious-person detection
All Kami SmartHome skills are published on ClawHub and installed via clawhub install.
# Install the suite
clawhub install kami-smarthome-suite
# Run setup.sh — auto-installs all 6 skills + guides centralized config
bash {baseDir}/setup.sh
setup.sh performs:
python3.10-venv sudo dependency)Idempotent — re-running will not reinstall skills that are already present.
You can also install specific skills directly from ClawHub:
clawhub install kami-package-detection
clawhub install kami-image-search
clawhub install kami-video-search
clawhub install kami-fall-detection
clawhub install kami-conflict-detection
clawhub install kami-suspicious-person
After individual installs, run bash {baseDir}/configure.sh to apply unified configuration.
Agent behavior: when this skill is triggered, follow this order:
- Check whether sub-skills are installed (any missing sub-skill directory means "not installed") → if missing, run
bash {baseDir}/setup.sh- Check whether
kamiclaw_api_keyis empty in{baseDir}/kami_config.json→ if so, prompt the user- If both checks pass, skip the wizard and execute the user's request directly
kami-image-search, kami-video-search, etc. next to {baseDir}bash {baseDir}/setup.sh
This script will: download all 6 sub-skills from ClawHub + create venvs + install dependencieskamiclaw_api_key field from {baseDir}/kami_config.jsonnotifications section of {baseDir}/kami_config.jsonfall-detection / conflict-detection / suspicious-person push automatically when events fire):
feishu_webhook_url (+ optional feishu_webhook_secret for signed webhooks) — supported by all 3 alarm skillstelegram_bot_token + telegram_chat_id — supported by all 3 alarm skillsdiscord_webhook_url (push-only) — supported by all 3 alarm skillsdiscord_bot_token + discord_channel_id (two-way) — fall-detection onlyHTTPS_PROXY in your shell rc (e.g. ~/.bashrc) yourself — the suite intentionally does NOT manage proxy settingsAfter the user provides values:
{baseDir}/kami_config.jsonbash {baseDir}/configure.sh --distribute
To change the API key or notification channels later:
# Re-run the interactive wizard
bash {baseDir}/configure.sh
# Or edit directly and redistribute
vim {baseDir}/kami_config.json
bash {baseDir}/configure.sh --distribute
clawhub CLI installed (used to pull skills from ClawHub)Python 3.10 is required.
setup.shselects 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.
Recommended minimum hardware for each skill:
| Skill | CPU | Memory (RAM) | Storage | GPU | Notes |
|---|---|---|---|---|---|
| kami-package-detection | 2+ cores | 2 GB | 500 MB | not required | YOLO-World ONNX, CPU-only |
| kami-image-search | 2+ cores | 2 GB | 5 GB+ | not required | FAISS index + SQLite frame history |
| kami-video-search | 2+ cores | 2 GB | 10 GB+ | not required | Stores video segments, scales with retention |
| kami-fall-detection | 1+ core | 1 GB | 200 MB | not required | Local does frame-diff only; inference runs in cloud |
| kami-conflict-detection | 4+ cores | 4 GB | 1 GB | optional (accelerates) | Local YOLO person detection + multi-frame analysis |
| kami-suspicious-person | 4+ cores | 4 GB | 1.5 GB | optional (accelerates) | SCRFD + ArcFace ONNX (~1 GB) |
Recommended config to run all 6 skills concurrently:
If you only enable a subset of skills, refer to the corresponding rows above.
The suite uses a central config + auto-distribute model:
kami_config.json (Single Source of Truth)
│
▼ configure.py --distribute
├── kami-image-search/image_config.json
├── kami-video-search/stream_config.json
├── kami-fall-detection/config.json
├── kami-package-detection/config.json
├── kami-conflict-detection/config.json
├── kami-suspicious-person/config.json
└── ~/.kami/credentials.json (credential cache)
kami_config.jsonLocated in the suite directory, it contains the following sections:
| Section | Description | Skills affected |
|---|---|---|
kamiclaw_api_key | KamiClaw API key | The 4 cloud-API skills |
cameras.default | Camera RTSP URL / device ID | All 6 skills (auto-distributed to each skill's local config) |
notifications | Feishu / Telegram / Discord push settings | fall-detection, conflict-detection, suspicious-person |
skills.<name> | Per-skill tuning parameters | The corresponding skill |
Edit this file once and every skill is configured.
# Mode 1: interactive wizard (prompts each field)
bash {baseDir}/configure.sh
# Mode 2: set API key directly
bash {baseDir}/configure.sh sk_live_xxxxxxxx
# Mode 3: edit manually then distribute
vim {baseDir}/kami_config.json
bash {baseDir}/configure.sh --distribute
# Mode 4: show current config
bash {baseDir}/configure.sh --show
All skills use a local config.json-style file (auto-patched on configure.sh --distribute)
| Skill | Target file | Distributed fields |
|---|---|---|
kami-fall-detection | config.json | api_key, rtsp_url, feishu_webhook_url, telegram_bot_token, telegram_chat_id, discord_webhook_url, discord_bot_token, discord_channel_id |
kami-video-search | stream_config.json | KAMI_API_KEY, STREAM_URL, DEVICE_ID |
kami-image-search | image_config.json | KAMIVISION_API_KEY, STREAM_URL, DEVICE_ID |
kami-package-detection | config.json | rtsp_url, conf_threshold, run_time (pure local inference, no API key, class_names is NOT distributed) |
kami-conflict-detection | config.json | kami_api_key, rtsp_url, feishu_webhook, discord_webhook, telegram_bot_token, telegram_chat_id |
kami-suspicious-person | config.json | rtsp_url, feishu_webhook, discord_webhook, telegram_bot_token, telegram_chat_id (pure local inference, no API key) |
Each skill's argparse still keeps
os.environ.get(...)fallbacks forKAMI_API_KEY,FEISHU_WEBHOOK_URL,TELEGRAM_*,DISCORD_WEBHOOK_URL,HTTPS_PROXY. So power users can still export env vars manually — but the suite no longer manages~/.kami/kami.envitself.⚠️
HTTPS_PROXYis not part ofkami_config.json. If you need a proxy to reach Discord / Telegram, set it in your shell rc yourself.
After installing all skills, setup.sh automatically enters the centralized config flow:
kami_config.json and distributes to each skillbash configure.sh later anytime~/.kami/credentials.json and reused on subsequent installs| Skill | Local config file | Source | API key | Camera URL | Webhook |
|---|---|---|---|---|---|
| kami-package-detection | config.json | ← auto-distributed from kami_config.json | not needed | ✅ auto-distributed | not needed |
| kami-image-search | image_config.json | ← auto-distributed from kami_config.json | ✅ auto-distributed | ✅ auto-distributed | not needed |
| kami-video-search | stream_config.json | ← auto-distributed from kami_config.json | ✅ auto-distributed | ✅ auto-distributed | not needed |
| kami-fall-detection | config.json | ← auto-distributed from kami_config.json | ✅ auto-distributed | ✅ auto-distributed | ✅ auto-distributed |
| kami-conflict-detection | config.json | ← auto-distributed from kami_config.json | ✅ auto-distributed | ✅ auto-distributed | ✅ auto-distributed |
| kami-suspicious-person | config.json + face_db/ | ← auto-distributed from kami_config.json | not needed | ✅ auto-distributed | ✅ auto-distributed |
This suite involves camera streams, image capture and face recognition. Please review the following privacy notes before use:
| Skill | Processing | Data sent to cloud | Data stored locally |
|---|---|---|---|
| kami-package-detection | Pure local inference | none | no persistent storage |
| kami-image-search | Capture → cloud VLM captioning | image frames (for description and embedding generation) | captured frames, captions, FAISS index |
| kami-video-search | Recording → cloud VLM captioning | key frames of clips (for description and embedding generation) | video segments, captions |
| kami-fall-detection | Local frame-diff → cloud AI judgment | changed frames (only when motion is detected) | alarm clips (configurable) |
| kami-conflict-detection | Local person detection → cloud conflict analysis | multi-frame snapshots (only when multiple people are present) | no persistent storage |
| kami-suspicious-person | Pure local inference | none | face feature DB (user-built) |
image-search and video-search honor a retention_days parameter for automatic expiry~/.kami/credentials.json (mode 600, current user only)face_db/, fully under user controlface_db/ directory wipes all face dataPrivacy policy details: https://kamiclaw-skill.kamihome.com/privacy
| Exit code | Meaning |
|---|---|
0 | All skills installed successfully |
1 | Some skills failed to install (check logs) |
2 | Prerequisite missing (no clawhub, or neither conda nor pyenv is usable and Python 3.10 cannot be installed) |
clawhub CLI not available
clawhub: command not found
→ Install the ClawHub CLI first.
A skill failed to install
[!] kami-xxx (failed, exit 1)
→ Retry: clawhub install kami-xxx
KamiClaw API key not configured
→ Run bash configure.sh or register at https://kamiclaw-skill.kamihome.com
Config changes have no effect
→ After editing kami_config.json, run bash configure.sh --distribute to push the changes to each skill.