Install
openclaw skills install kami-image-searchA skill by Kami SmartHome. Capture frames from your camera, describe them with AI, and search your visual history using natural language.
openclaw skills install kami-image-searchSearch your camera's visual history with natural language.
Monitor your camera feed, capture frames automatically, and retrieve matching images by simply describing what you're looking for. Powered by the Kamivision cloud API for AI description and embedding generation.
bash setup.sh
Checks for python3 and ffmpeg, creates .venv/, and installs opencv-python-headless, numpy, requests, Pillow, faiss-cpu. Idempotent.
python3 and python3-venv installedffmpeg installed (setup.sh will attempt to install it)image_config.json configured with your stream URL and Kamivision API keyThis skill requires a KAMIVISION_API_KEY to access the Kamivision cloud API. The key is NOT included in the skill package — you must provide your own.
Ask the user: Do you already have a KAMIVISION_API_KEY?
image_config.json.Before running, confirm these key settings in image_config.json:
| Parameter | Default | Description |
|---|---|---|
STREAM_URL | — | RTSP/RTMP/HTTP camera stream URL |
DEVICE_ID | CAM-001 | Camera device identifier |
KAMIVISION_API_KEY | — | Your Kamivision API key |
CAPTURE_INTERVAL | 10 | Seconds between frame captures |
SIMILARITY_THRESHOLD | 0.35 | Search similarity threshold (0.0–1.0) |
SEARCH_TOP_K | 5 | Max results per search |
TIME_ZONE_OFFSET | 0 | UTC offset in hours for local time display (e.g. -12 for UTC+12, 8 for UTC+8) |
Ask the user: do any parameters need to be changed?
.venv/bin/python image_search.py --start-capture
.venv/bin/python image_search.py --stop-capture
.venv/bin/python image_search.py --status
# Single image
.venv/bin/python image_search.py --import /path/to/photo.jpg --json
# Entire directory (recursive)
.venv/bin/python image_search.py --import /path/to/photos/ --json
.venv/bin/python image_search.py --search "keys on the table" --json
.venv/bin/python image_search.py \
--search "person in blue jacket" \
--time-start 1754538000 --time-end 1754541600 \
--json
{
"status": "ok",
"query": "keys on the table",
"count": 1,
"results": [
{
"image_name": "CAM-001_1754538507.jpg",
"image_path": "/opt/image_data/CAM-001/20250815/CAM-001_1754538507.jpg",
"description": "A set of keys and a wallet on a table",
"timestamp": 1754538507,
"time": "2025-08-15 10:00:07 AM",
"score": 0.7823
}
]
}
| Code | Meaning |
|---|---|
0 | Success |
1 | Error (config issue, stream failure, API error, runtime exception) |
bash: .venv/bin/python: No such file or directory → Run bash setup.shOpenCV cannot open stream → Check camera is online and STREAM_URL is correctKamivision API error → Verify KAMIVISION_API_KEY and network connectivityUnsupported file format → Only JPEG, PNG, BMP, WebP are supportedNo search results → Ensure images have been captured/imported; try lowering SIMILARITY_THRESHOLDFAISS index load failed → Index may be corrupted; system rebuilds automatically, re-import data if needed