Skip to content

Skills

SenseCraft CLI is built to be driven by agents, and the bridge is a set of skills — plain SKILL.md files that ship inside the CLI’s npm package. An agent that can read them knows what to run, which auth kind each command family needs, and when to stop and ask you — without you pasting reference material into the chat.

Step 1 of Setting up says “restart your AI tool to ensure all skills are fully loaded” — this page is the wiring how-to behind that line.

Pick whichever source is easier — the npm package is authoritative:

  • The npm package — already on your machine after installing: $(npm root -g)/@seeed-studio/sensecraft-cli/skills/
  • The source repo — skills/ in the public sensecraft-cli repo. The npm package is what your installed CLI actually loads; the repo may be ahead of the published package.
SkillPurpose
sensecraft-aiRouter — load this one first. Routes to the right domain skill and auth kind
sensecraft-dataSenseCAP devices / groups / data
sensecraft-appsCodeCraft Hub applications — publish / unpublish / delete
sensecraft-apps/create-appSub-skill of sensecraft-apps: turn a finished local project into an app, then update it local-first through a manifest
sensecraft-modelsModel library
sensecraft-filesFile upload
sensecraft-devices-cloudJetson / cloud kits
sensecraft-recameraClassic reCamera pick-and-open

The sensecraft-train and sensecraft-fleet skills — and the internal repo’s root sensecraft-cli skill — belong to the internal/development build; they are not in the public 0.2.x package.

sensecraft-apps/create-app is a nested sub-skill: sensecraft-ai routes to sensecraft-apps (CodeCraft Hub applications domain), and create-app owns the project-to-app authoring workflow. It is a folder inside sensecraft-apps/, so the symlink loop above already picks it up — there is no extra wiring step.

It keeps a sensecraft-app.json manifest in the project root as the source of truth. The manifest records the app id, the last pushed revision, and a content hash, so a retry never creates a duplicate and a later Console edit is shown to you as drift instead of being silently overwritten. Without git, the skill also writes timestamped snapshots under .sensecraft/archive/.

The workflow is four steps:

  1. Gather — read the project and ask one consolidated question round (scene, BOM, clone/commerce flags, cover).
  2. Validate — write the manifest from the shipped template and run the bundled validator plus the offline app fields / app blocks schemas.
  3. Create — upload images and firmware, then create the app in one go with app create --from-json (creating is not L2).
  4. Update local-first — edit the manifest, compare it with the remote app (app view --sketch), then push only the changed sections after one batch confirmation.

Publish, unpublish and delete stay with the parent sensecraft-apps skill — they carry the declaration consent. app clone is a CLI command (app clone --id <app_id> --yes), not part of this sub-skill. The sub-skill stops at a private draft; publishing is a separate, confirmed step. create-app ships with CLI 0.2.1 and later — run sensecraft-cli update if the folder is missing. The browser sign-in is plain auth init; there is no --kind flag. For the full walkthrough, see Turn a project into an app.

bash
# project-level (recommended — travels with the repo)
mkdir -p .claude/skills
for d in "$(npm root -g)/@seeed-studio/sensecraft-cli/skills"/*; do
ln -s "$d" ".claude/skills/$(basename "$d")"
done
# or user-level
mkdir -p ~/.claude/skills
ln -s "$(npm root -g)/@seeed-studio/sensecraft-cli/skills/sensecraft-ai" ~/.claude/skills/sensecraft-ai

Either open the sensecraft-cli repo as the workspace (Cursor reads skills/ directly), or symlink the skill folders into your Cursor skills directory (commonly ~/.cursor/skills/ — check your Cursor version’s settings for the exact location):

bash
mkdir -p ~/.cursor/skills
for d in "$(npm root -g)/@seeed-studio/sensecraft-cli/skills"/*; do
ln -s "$d" ~/.cursor/skills/"$(basename "$d")"
done

The skills are ordinary SKILL.md folders with no vendor-specific instructions. If your host auto-discovers skills, drop the folders into its discovery path. If it doesn’t, add skills/sensecraft-ai/SKILL.md plus the domain skill for your task to the project context.

  • The agent must be able to run shell commands. A chat-only host can read the skills but cannot actually operate your cloud account — it should say so rather than pretend.
  • Restart the agent after wiring so the skills are picked up.

The skills live inside the npm package, so npm install -g @seeed-studio/sensecraft-cli@latest updates them together with the CLI — new commands and new rules arrive in the same upgrade. If you symlinked the folders, you’re already current; if you copied them, re-copy after each upgrade (and restart the agent).

Then head back to Setting up, step 3 for your first task — or browse the use cases.