Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Create, update, validate, and evaluate Wisp skills. Use when authoring a project-local or installable skill, refining its trigger description, adding deterministic scripts or Python sidecars, or testing whether another Agent can follow the workflow.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 5% | 0% |
| case-13 | ✗→✓ | ▲ Improved | -52% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -34% | 0% |
| case-15 | ✗→✓ | ▲ Improved | -37% | 0% |
| case-16 | ✗→✓ | ▲ Improved | -28% | 0% |
Author project-local skills under .wisp/skills/<name>/. Wisp also discovers bundled skills, user-installed skills, and paths configured by WISP_SKILLS_PATH, but only normal project paths are directly writable through Agent file tools.
text<skill-name>/ ├── SKILL.md ├── kernel.py # optional pure helper definitions ├── scripts/ # optional standalone deterministic programs ├── references/ # optional detailed domain material └── assets/ # optional output templates or static inputs
Keep SKILL.md concise. Put triggering information in frontmatter description; put essential procedure in the body; move detailed variants to one-level-deep references. Add only resources the workflow actually uses.
outputs.
.wisp/skills/<name>/SKILL.md with write.
new script on representative local data.
kernel.py only for small reusable Python helpers. Loading a skill doesnot inject Wisp tools into Python. The rendered skill supplies a one-time exec(compile(open(...))) instruction that defines the sidecar names in the persistent python kernel.
scripts/quick_validate.py <skill-directory>.
it with search_skills and load it with use_skill.
available, use a fresh bounded task with only the skill path and user-style request; do not leak the expected answer into the evaluation prompt.
For a user-wide installation, ask the user to install the validated folder via Settings → Skills. There is no Agent-side publish, overwrite, or delete API.
At minimum include:
yaml--- name: my-skill description: Perform X. Use when the user asks for Y, Z, or related output. ---
The folder name and name should match. The description is the primary trigger; state both what the skill does and when it should be selected.
Keep top-level code definition-only:
python to call helpers after the one-time loader instruction.Use scripts/ instead when a helper is a standalone CLI, exceeds roughly one hundred lines, needs argument parsing, or should run through run_in_context.
Use the bundled scripts only when their extra rigor is useful:
scripts/run_eval.py for test prompts;scripts/aggregate_benchmark.py for repeated result aggregation;scripts/generate_report.py and eval-viewer/ for human review;scripts/improve_description.py for trigger-description experiments;scripts/package_skill.py to package a validated skill folder.Inspect each script's CLI help before running it. Keep evaluation artifacts out of the skill folder unless they are intentional reusable resources.
search_skills and use_skill do not edit the catalog.workspace paths.
run_in_context executes deterministic work; it does not publish skills orcall models.
customize and usesave_specialist only when that explicit tool is advertised.
Other measured skills in the registry, with their headline benchmark lift.