{"skill":{"slug":"sensecraft-ai-model-hub","displayName":"SenseCraft AI Model Hub","summary":"Connect OpenClaw to the SenseCraft public model library to search, inspect, export, and download AI vision models for software and edge AI workflows.","description":"---\nname: sensecraft-ai-model-hub\ndescription: Connect OpenClaw to the SenseCraft public model library to search, inspect, export, and download AI vision models for software and edge AI workflows.\n---\n\n# SenseCraft AI Model Hub\n\n## Overview\n\nUse this skill to treat the SenseCraft public model library as a practical source of pretrained vision models for OpenClaw.\n\nThe core workflow is fixed:\n\n1. `list_model` to discover model IDs\n2. `view_model` to resolve a model into full metadata and `file_url`\n3. download from `file_url`\n\nAssume:\n- base URL: `https://sensecraft.seeed.cc/aiserverapi`\n- default `appid=131`\n- public endpoints are anonymous unless evidence shows otherwise\n- list responses do **not** include direct download URLs\n- the actual download URL is `data.file_url` from `view_model`\n\n## Use bundled script first\n\nPrefer the bundled script for repeatable work instead of rebuilding curl pipelines every time.\n\nCommands:\n- `scripts/sensecraft_models.py list` — list one page of public models\n- `scripts/sensecraft_models.py view <id>` — show one model detail with URL hints\n- `scripts/sensecraft_models.py index` — crawl all pages, fetch detail rows, summarize, and export an index\n- `scripts/sensecraft_models.py download` — download one or more model files and emit a manifest\n- `scripts/sensecraft_webcam_person_demo.py` — run a local webcam person-detection demo with a downloaded SenseCraft TFLite model\n\n## Good default responses\n\n### Find models\n\nUse when the request is like:\n- “search SenseCraft for person models”\n- “list classification models”\n- “show models for uniform_type 32”\n\nPrefer:\n\n```bash\npython3 scripts/sensecraft_models.py list --search person --length 30\npython3 scripts/sensecraft_models.py list --task 1 --uniform-type 32 --length 50\n```\n\n### Inspect one model\n\nUse when the request is like:\n- “what is model 60768?”\n- “give me the download link for this model ID”\n\nPrefer:\n\n```bash\npython3 scripts/sensecraft_models.py view 60768\n```\n\nThis returns annotated detail including:\n- `file_url`\n- filename hint\n- extension hint\n- whether the URL looks like a `.tflite` artifact\n\n### Export a searchable full index\n\nUse when the request is like:\n- “dump the whole public model catalog”\n- “make me a JSON/CSV index”\n- “summarize what model types are in the library”\n\nPrefer:\n\n```bash\npython3 scripts/sensecraft_models.py index --format json --output ./sensecraft-models.json --summary --summary-json ./sensecraft-summary.json\npython3 scripts/sensecraft_models.py index --format csv --output ./sensecraft-models.csv\n```\n\nUse filters to reduce scope when possible:\n\n```bash\npython3 scripts/sensecraft_models.py index --task 1 --uniform-type 32 --format json --output ./filtered.json\npython3 scripts/sensecraft_models.py index --model-format 2 --format table --summary\n```\n\n### Download models\n\nUse when the request is like:\n- “download model 60768”\n- “download these several models”\n- “download everything from this exported index”\n\nPrefer:\n\n```bash\npython3 scripts/sensecraft_models.py download --model-id 60768 --output-dir ./downloads --manifest ./downloaded.json --summary\npython3 scripts/sensecraft_models.py download --from-index ./sensecraft-models.json --output-dir ./downloads --manifest ./downloaded.json --summary-json ./downloaded-summary.json\n```\n\n### Run a local webcam demo\n\nUse when the request is like:\n- “download a model and show me live inference from my webcam”\n- “make a local Python script that opens the camera and draws boxes”\n- “validate a SenseCraft model on my laptop before deployment”\n\nPrefer this path for a minimal local demo:\n\n1. Run `scripts/setup_local_demo_env.sh`\n2. Let `scripts/run_local_person_demo.sh` auto-download model `60080` into `./models` if missing\n3. Run the launcher script\n\nExample:\n\n```bash\nbash scripts/setup_local_demo_env.sh\nbash scripts/run_local_person_demo.sh\n```\n\nHelpful variants:\n\n```bash\nbash scripts/run_local_person_demo.sh --debug\nbash scripts/run_local_person_demo.sh --camera 1\npython3 scripts/sensecraft_webcam_person_demo.py --image ./sample.png --save ./annotated.png\n```\n\nRead `references/local-webcam-demo.md` before changing the postprocess logic or if the user reports bad boxes.\nKeep local demo assets under the skill root with this layout:\n- `models/` — downloaded TFLite artifacts and manifests\n- `captures/` — saved annotated frames from live demos\n- `scripts/` — setup, launcher, and Python entrypoints\n\n## Output requirements\n\nWhen summarizing models for the user, include as many of these as available:\n- `id`\n- `name`\n- `description`\n- `task`\n- `uniform_types`\n- `model_format`\n- `file_url`\n- filename or extension hint if relevant\n- whether the artifact *looks like* `.tflite`\n\nWhen recommending a model for OpenClaw integration, also include:\n- expected purpose of the model\n- uncertainty about task mapping or format\n- whether the artifact should be inspected after download before claiming TFLite compatibility\n\n## Field interpretation rule\n\nDo not invent semantic names for `task`, `uniform_type`, or `model_format` unless the mapping is documented.\n\nSafe behavior:\n- report raw numeric values exactly\n- compare/group/filter by those raw values\n- if the user wants human-readable meanings, state that the meaning is not confirmed and ask for or look for authoritative mapping\n\nRead `references/field-mapping-notes.md` if the user asks what those numeric values mean.\n\n## API behavior\n\n### List models\n\nCall:\n\n```text\nGET /model/list_model\n```\n\nTypical parameters:\n- `appid=131`\n- `length`\n- `page`\n- `search`\n- `uniform_type`\n- repeated `task`\n\nReturned list items typically include:\n- `id`\n- `name`\n- `description`\n- `uniform_types`\n- `task`\n\nDo not expect `file_url` here.\n\n### View model detail\n\nCall:\n\n```text\nGET /model/view_model?appid=131&model_id=<ID>\n```\n\nRead from the detail response:\n- `data.id`\n- `data.name`\n- `data.description`\n- `data.task`\n- `data.uniform_types`\n- `data.model_format`\n- `data.file_url`\n\n`data.file_url` is the real download link.\n\n### Download model\n\nDownload with redirect following enabled.\n\nEquivalent shell shape:\n\n```bash\ncurl -L 'FILE_URL' -o output.bin\n```\n\n## Safety and reliability rules\n\n- Treat the library as public, but do not assume the API contract is perfectly stable.\n- Use small delays during bulk detail fetches or downloads; avoid aggressive parallel floods.\n- Retry transient request failures a small number of times.\n- If `view_model` fails for a specific ID, skip it and record the failure during bulk crawls.\n- Preserve original metadata in exported JSON when possible.\n- Do not claim a model is definitely TFLite only from category or filename hints.\n- After download, inspect the artifact if exact runtime compatibility matters.\n- Do not guess YOLO-family fused-output decoding from generic tutorials when SSCMA-Micro or model-specific evidence is available.\n- For macOS local demos, warn that webcam access may fail until the terminal app has camera permission.\n\n## References\n\n- `references/sensecraft-api.md` — API contract and workflow notes\n- `references/field-mapping-notes.md` — guidance for unknown numeric mappings\n- `references/integration-notes.md` — post-download validation and TFLite integration checks\n- `references/local-webcam-demo.md` — proven local webcam demo flow, package choices, and decoding caveats\n\n## Decision rule\n\nIf the user wants source discovery, indexing, filtering, URL resolution, or downloading from SenseCraft, stay inside this skill.\n\nIf the user wants broader model selection across multiple ecosystems, use this skill to retrieve SenseCraft candidates first, then compare them against wider TFLite integration constraints.\n","tags":{"latest":"1.1.2"},"stats":{"comments":0,"downloads":493,"installsAllTime":18,"installsCurrent":0,"stars":1,"versions":5},"createdAt":1773915536987,"updatedAt":1778492029687},"latestVersion":{"version":"1.1.2","createdAt":1773975128640,"changelog":"Refined the store summary to a cleaner single-line product description for better search and listing display.","license":"MIT-0"},"metadata":null,"owner":{"handle":"jancee","userId":"s1776bw21n4vaxezg3m8gwmpm583zgbc","displayName":"Jancee","image":"https://avatars.githubusercontent.com/u/12582402?v=4"},"moderation":null}