Skip to content

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.