Install the AIPM CLI once before running these commands. See the install guide.
1. Create an account and reserve a package name
- Sign in with GitHub.
- Create an org namespace, such as @team.
- Reserve a package name, such as @team/review-helper.
- Open the package dashboard. You will use it later to generate a 5-minute publish token.
2. Create a skill folder
The fastest path is to let the CLI create a folder named after the skill. It includes aipm.manifest.json, SKILL.md, and .aipmignore.
aipm publish init --name @team/review-helper --template code-review
cd review-helperManifest shape
Each skill needs an aipm.manifest.json file and a main file, usually SKILL.md.
{
"schemaVersion": "0.1",
"name": "@team/review-helper",
"version": "1.0.0",
"type": "skill",
"description": "Review checklist for project PRs",
"entry": "SKILL.md",
"targets": ["cursor"],
"license": "Apache-2.0",
"usage": "Ask the assistant to review the current diff and return findings first.",
"tags": ["code-review", "pull-requests"],
"categories": ["Engineering", "Quality"],
"sourceUrl": "https://github.com/team/review-helper",
"examples": [
{
"title": "Review staged changes",
"prompt": "Review my staged changes for correctness, regressions, missing tests, and security risk."
}
],
"releaseNotes": "Initial release."
}Skill packages with setup prompts
Some skills need a one-time setup step, such as adding debug logger files to the installing project. Use helper files for temporary setup docs and prompts. AIPM saves the prompt for the user to copy into their AI tool; it does not execute prompts or scripts.
{
"schemaVersion": "0.1",
"name": "@aipm/debug-log-server",
"version": "1.0.0",
"type": "skill",
"description": "Install and use a dev-only debug log server workflow.",
"entry": "SKILL.md",
"targets": ["cursor", "claude"],
"install": {
"helperFiles": [
{ "from": "setup/DEBUGGER_LOG_SETUP.md", "to": "DEBUGGER_LOG_SETUP.md" },
{ "from": "setup/SETUP_PROMPT.md", "to": "SETUP_PROMPT.md" }
],
"postInstall": {
"mode": "manual_prompt",
"promptFile": "SETUP_PROMPT.md",
"cleanup": "after_user_confirmation"
}
}
}Permanent files belong in mainFiles. Temporary setup guides, prompts, templates, and migration notes belong in helperFiles.
Metadata that helps users find your skill
Treat the manifest as the public package page source. Write a short description, longer usage guidance, tags, categories, example prompts, a source URL when available, and release notes for every version.
3. Check and publish from the CLI
aipm publish explain # (optional)
aipm publish add .
aipm publish status # (optional)
aipm publish preview # (optional)
aipm publish validate # (optional)
aipm publish token --package @team/review-helper # (optional)
AIPM_TOKEN=<5-minute-token> aipm publish push --yesPublish tokens are short lived and only used for uploading package versions. aipm login is for reading and installing private packages; it does not replace publish tokens.
Starter templates
Templates only create starter SKILL.md content. Pick the closest one, then edit the generated files before you stage and publish. See the skill templates guide for when to use each starter.
Publish an existing AI-tool skill
If Cursor, Claude, Codex, or another AI tool already created skill files, import that file or folder into an AIPM package folder. This copies the source into a new folder and creates the AIPM manifest around it.
aipm publish import ~/.codex/skills/review-helper --name @team/review-helper
cd review-helper
aipm publish add .
aipm publish preview # (optional)Self-service publishing flow
- Create an AIPM account.
- Register an organization and reserve a package name such as @team/review-helper.
- Choose whether the package should be public or private.
- Generate a publish token that is valid for 5 minutes.
- Use the CLI to check, stage, and push the skill files to the registry.
- Open the package page and confirm the install command works for the expected target.
Target examples
See supported targets for the folders AIPM writes to.
Cursor-only
"targets": ["cursor"]Use this when the skill should install only into Cursor.
Claude-only
"targets": ["claude"]Use this when the skill is built for Claude project instructions.
Multi-tool
"targets": ["cursor", "claude"]Use this when the same skill should install into more than one AI tool.
Common publishing problems
| Problem | What to do |
|---|---|
| Updating an existing skill | Change the manifest version, then publish again. |
| Duplicate version error | AIPM does not overwrite versions. Publish a new version. |
| Invalid package name | Use scoped names like @team/review-helper. |
| Registry unavailable | Check the registry URL and run curl <registry-url>/health. |