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.
Where the skills live
Section titled “Where the skills live”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.
The skill map
Section titled “The skill map”| Skill | Purpose |
|---|---|
sensecraft-ai | Router — load this one first. Routes to the right domain skill and auth kind |
sensecraft-data | SenseCAP devices / groups / data |
sensecraft-apps | CodeCraft Hub applications — publish / unpublish / delete |
sensecraft-apps/create-app | Sub-skill of sensecraft-apps: turn a finished local project into an app, then update it local-first through a manifest |
sensecraft-models | Model library |
sensecraft-files | File upload |
sensecraft-devices-cloud | Jetson / cloud kits |
sensecraft-recamera | Classic 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.
The create-app sub-skill
Section titled “The create-app sub-skill”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:
- Gather — read the project and ask one consolidated question round (scene, BOM, clone/commerce flags, cover).
- Validate — write the manifest from the shipped template and run the
bundled validator plus the offline
app fields/app blocksschemas. - Create — upload images and firmware, then create the app in one go
with
app create --from-json(creating is not L2). - 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.
Wire them into your tool
Section titled “Wire them into your tool”Claude Code
Section titled “Claude Code” # project-level (recommended — travels with the repo)mkdir -p .claude/skillsfor d in "$(npm root -g)/@seeed-studio/sensecraft-cli/skills"/*; do ln -s "$d" ".claude/skills/$(basename "$d")"done
# or user-levelmkdir -p ~/.claude/skillsln -s "$(npm root -g)/@seeed-studio/sensecraft-cli/skills/sensecraft-ai" ~/.claude/skills/sensecraft-aiCursor
Section titled “Cursor”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):
mkdir -p ~/.cursor/skillsfor d in "$(npm root -g)/@seeed-studio/sensecraft-cli/skills"/*; do ln -s "$d" ~/.cursor/skills/"$(basename "$d")"doneCodex, opencode, pi, and other hosts
Section titled “Codex, opencode, pi, and other hosts”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.
Two rules to know
Section titled “Two rules to know”- 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.
Skills ride along with upgrades
Section titled “Skills ride along with upgrades”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.