AIPM
Theme

Publishing

Create a skill package and publish it.

An AIPM skill package is a folder with a manifest and the files your AI tool needs. You publish it with the CLI. Users find and install it from the registry.

Install the AIPM CLI once before running these commands. See the install guide.

1. Create an account and reserve a package name

  1. Sign in with GitHub.
  2. Create an org namespace, such as @team.
  3. Reserve a package name, such as @team/review-helper.
  4. 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-helper

Manifest 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 --yes

Publish 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

  1. Create an AIPM account.
  2. Register an organization and reserve a package name such as @team/review-helper.
  3. Choose whether the package should be public or private.
  4. Generate a publish token that is valid for 5 minutes.
  5. Use the CLI to check, stage, and push the skill files to the registry.
  6. 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

ProblemWhat to do
Updating an existing skillChange the manifest version, then publish again.
Duplicate version errorAIPM does not overwrite versions. Publish a new version.
Invalid package nameUse scoped names like @team/review-helper.
Registry unavailableCheck the registry URL and run curl <registry-url>/health.