@napplet/skills
v0.2.0
Published
Agent skills (design / build / test) that let a coding agent create a napplet end-to-end, plus a napplet-skills installer for Claude Code, Cursor, Windsurf, Codex/Amp, Gemini, and Copilot
Maintainers
Readme
@napplet/skills
Agent skills that let a coding agent design, build, and test a napplet end-to-end — plus a
napplet-skillsinstaller that drops them into whatever location your agent reads.
A napplet is a sandboxed Nostr iframe app (NIP-5D). These skills carry the exact, verified API surface and protocol constraints an agent needs so that one well-scoped prompt produces a working, conformant napplet.
- npm:
@napplet/skills - JSR:
@napplet/skills
The skills
| Skill | When | Covers |
| --- | --- | --- |
| design-napplet | First — plan before code | Sandbox/CSP constraints, choosing NAP capabilities, hard-vs-optional requirements, responsive layout for any viewport (full-screen → tiny widget), the build spec to hand off. |
| build-napplet | Implementation | @napplet/shim + @napplet/sdk, the Vite manifest plugin, relay/storage/identity/inc/resource/config/theme, capability gating via shell.supports(), the single-file artifact rule. |
| test-napplet | Before publishing | Protocol conformance via napplet-conformance (real Chromium + reference shell), interpreting failures, the runtime guard, CI wiring. |
Each skill is a self-contained SKILL.md with YAML frontmatter (name,
description) — the format Claude Code, Cursor, and most agents consume.
Install routes
No build step needed — the CLI ships the Markdown and places it for you.
# one-off, no install:
npx @napplet/skills install --to claude| --to | Destination | Layout |
| --- | --- | --- |
| claude | .claude/skills/<skill>/SKILL.md | one folder per skill |
| claude-user | ~/.claude/skills/<skill>/SKILL.md | global, all projects |
| cursor | .cursor/rules/<skill>.mdc | one rule file per skill |
| windsurf | .windsurf/rules/<skill>.md | one rule file per skill |
| agents | AGENTS.md | appended block (Codex, Amp, Jules, generic) |
| gemini | GEMINI.md | appended block (Gemini CLI) |
| copilot | .github/copilot-instructions.md | appended block |
appendDoc targets are idempotent — re-running replaces the managed
<!-- @napplet/skills:start -->…<!-- @napplet/skills:end --> block, never
duplicating it. The rest of the file is untouched.
Custom locations
napplet-skills install --dir vendor/skills # writes <dir>/<skill>/SKILL.md
napplet-skills install --out CONTRIBUTING.md # appends the managed block
napplet-skills install --to claude --symlink # symlink instead of copy
napplet-skills print build-napplet > skill.md # raw markdown to stdoutInstall a single skill by naming it:
napplet-skills install build-napplet --to geminiCLI
napplet-skills list List shipped skills
napplet-skills print [skill] Print SKILL.md to stdout (all, or one)
napplet-skills install [skill] [options] Install into an agent locationProgrammatic API
import { listSkills, readSkill, install } from '@napplet/skills';
listSkills(); // [{ name, description, path }, …]
readSkill('build-napplet'); // full SKILL.md source
install({ to: 'claude' }); // → InstallResult[]
install({ dir: 'vendor/skills' }); // custom skillDirLicense
MIT
