Sharing & Publishing
Publishing workflow
Publishing a skill follows four steps: write, validate, push it to your account, and submit it for review.
1. Write your skill
Follow the authoring guide to create a
well-structured SKILL.md with front matter, clear instructions, and
examples.
2. Validate locally
jsm validate ./my-skill
Fix any errors before proceeding. Common issues:
- Missing required front matter fields
- Name containing spaces or uppercase letters
- Description exceeding the character limit
3. Push it to your account
jsm push ./my-skill -m "Initial release" --attest
The --attest flag confirms you have the right to distribute this
content. This is required for every upload.
Include a changelog message with -m describing what changed. For
updates, focus on what is different from the previous version.
A pushed skill is private: only you can see and install it, and jsm sync
brings it to your other machines. Pushing does not submit it for review.
4. Submit it for review
To share the skill with other subscribers, open it in My Skills and click Submit for Review under Community Sharing.
Submitted skills go through a moderation review. You will receive a notification when your skill is approved or if changes are requested.
Review typically checks:
- The skill is functional and well-written
- Instructions are clear and produce consistent results
- The archive has no prompt injection, unsafe scripts or installers, opaque payloads, data exfiltration, or similar security risks
- Author-controlled telemetry, feedback POST endpoints, webhooks, analytics callbacks, shared-token callbacks, and similar outbound reporting flows have been removed
- Content does not violate the terms of service
- The skill does not duplicate existing catalog entries without improvement
Updating a published skill
Push a new version with a changelog message:
jsm push ./my-skill -m "Fixed edge case with empty input files"
Updates go through the same review process: a new version of an approved
skill leaves the community catalog until it is approved again. Check its
status in My Skills; if it shows as not in the community
catalog, click Submit for Review again. Once it is approved, existing
users receive the update on their next jsm sync unless they have pinned a
specific version.
Changelog best practices
Write changelogs that help users decide whether to update:
# Good
jsm push ./my-skill -m "Added TypeScript generic support; fixed false positive on arrow functions"
# Bad
jsm push ./my-skill -m "Updates"
You can validate changelog text before pushing:
jsm validate --changelog-text "Added TypeScript generic support"
Skill visibility
A skill you push stays private to your account until you submit it and it is approved; only then is it visible to other subscribers in the community catalog. You can take it out again at any time with Withdraw from Community in My Skills.
Team plan subscribers can create custom skills that are only visible to their organization. These are managed through the team portal and do not go through public moderation.
Community requests
Users can request skills they would like to see built. Check the request board for ideas:
jsm requests trending
Building a skill that fulfills a popular request is a good way to contribute something users actually need.
Feedback and iteration
After publishing, monitor feedback through the skill page on the web or through CLI notifications. Use feedback to improve your skill over time.
jsm notify list --unread
Removing a published skill
Open the skill in My Skills: Withdraw from Community takes it out of the community catalog, and Delete skill removes it from your account. Contact support if you need help.