Skip to main content
skill CX Codex

autoship · vercel-labs — Claude Code skill: what it does, how to install

Automates changeset releases and package publishing with AI-generated notes. It fits projects using changesets for npm workflows.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add vercel-labs/autoship --skill autoship -a claude-code
Open on GitHub

What autoship does

The skill drives the autoship CLI to handle the entire package release cycle. It clones the repo, inspects commits since the latest version tag, and suggests a patch, minor, or major bump. Then it writes changeset descriptions with an AI model, opens the PR, waits for CI checks, merges it, and triggers npm publishing through the Version Packages pull request.

You must authenticate the GitHub CLI with gh auth login and provide an AI_GATEWAY_API_KEY before running it. If AI generation fails, autoship falls back to manual input. Repositories are stored locally inside ~/.autoship/config.json.

What it helps with

  • publish automated patch, minor, or major package releases
  • generate changeset descriptions from commit diffs using AI
  • merge release pull requests and trigger npm publishing
  • run unattended release commands in CI/CD pipelines

Example prompts for the agent

  • Release a patch version for myproject using autoship
  • Create a changeset and bump the version for myproject
  • Run an automated minor release for myproject with no prompts

How to install autoship

1Skills CLI (Vercel)

npx skills add vercel-labs/autoship --skill autoship -a claude-code

2Manually: put the files in place

~/.claude/skills/autoship/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/autoship/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about autoship

How do I install autoship in Claude Code?

Run npx skills add vercel-labs/autoship --skill autoship -a claude-code in your terminal. This registers the skill for Claude Code.

What does autoship do?

It automates the full changesets workflow from cloning and analyzing commit history to opening pull requests, waiting for CI, and triggering npm publication.

What prerequisites are required before using autoship?

You need an active GitHub CLI login via gh auth login and an AI_GATEWAY_API_KEY environment variable. You must also configure each project once with autoship add <name>.

Source text

SKILL.md · Apache-2.0
---
name: autoship
description: CLI tool for automated changeset-based releases with AI-generated descriptions. Use when the user needs to release a package, create changesets, bump versions, or automate npm publishing workflows. Triggers include requests to "release a package", "create a changeset", "publish to npm", "bump the version", "automate releases", or any task involving version management and package publishing for repositories using the changesets workflow.
allowed-tools: Bash(autoship:*), Bash(npx autoship:*)
---

# Automated Releases with autoship

## Core Workflow

Every release follows this pattern:

1. **Configure**: `autoship add <name>` (one-time setup)
2. **Release**: `autoship <name>` (interactive) or `autoship <name> -t patch -y` (automated)

The tool handles the complete release cycle:
- Clone repository
- Analyze changes and suggest release type (patch/minor/major)
- Generate AI-powered changeset description
- Create and merge changeset PR
- Wait for and merge Version Packages PR
- Trigger npm publish

## Requirements

Before using autoship, ensure:

```bash
# GitHub CLI must be authenticated
gh auth login

# API key for AI features
export AI_GATEWAY_API_KEY="your-key"
```

## Essential Commands

```bash
# One-time setup: add a repository
autoship add myproject
# Prompts for: owner, repo name, base branch

# List configured repositories
autoship list

# Interactive release (prompts for type and message)
autoship myproject

# Automated release (no prompts)
autoship myproject -t patch -y
autoship myproject -t minor -y
autoship myproject -t major -y

# Release with custom message (skips AI generation)
autoship myproject -t patch -m "Fixed login bug" -y
```

## Command Options

```bash
autoship [repo]                    # Interactive repo selection if omitted
  -t, --type <type>                # Release type: patch, minor, major
  -m, --message <message>          # Custom changeset description
  -y, --yes                        # Skip all confirmations
  -h, --help                       # Show help
```

## Common Patterns

### Fully Automated Patch Release

```bash
autoship myproject -t patch -y
```

### AI-Assisted Interactive Release

```bash
autoship myproject
# 1. AI analyzes commits since last release
# 2. AI suggests release type (patch/minor/major)
# 3. You confirm or change the type
# 4. AI generates changeset description
# 5. You review and approve
# 6. Tool handles PR creation and merging
```

### Custom Message Release

```bash
autoship myproject -t minor -m "Added new authentication providers" -y
```

### CI/CD Integration

```bash
# In GitHub Actions or CI pipeline
export AI_GATEWAY_API_KEY="${{ secrets.AI_GATEWAY_API_KEY }}"
npx autoship myproject -t patch -y
```

## What autoship Does (10 Steps)

1. **Clone** - Clones the repository from the base branch
2. **Analyze** - Finds latest version tag, analyzes commits and diff
3. **Suggest** - AI suggests release type based on changes
4. **Generate** - AI generates changeset description
5. **Branch** - Creates release branch with changeset file
6. **PR** - Creates pull request for the changeset
7. **Wait** - Waits for CI checks to pass
8. **Merge** - Merges the changeset PR
9. **Version PR** - Waits for changesets action to create Version Packages PR
10. **Publish** - Merges Version Packages PR to trigger npm publish

## Output Format

autoship provides clear step-by-step output:

```
[1/10] Cloning repository from main...
  > Repository cloned
  > Package: my-package @ 1.2.3

[2/10] Creating release branch...
  > Branch created: release/patch-1706123456789

[3/10] Generating changeset...
  > Changeset created: fluffy-pants-dance.md

...

Release Complete!
The patch release has been published.
```

## Configuration

Config is stored at `~/.autoship/config.json`:

```json
{
  "repos": {
    "myproject": {
      "owner": "vercel-labs",
      "repo": "myproject",
      "baseBranch": "main",
      "cloneUrl": "https://github.com/vercel-labs/myproject.git"
    }
  }
}
```

## Deep-Dive Documentation

| Reference | When to Use |
|-----------|-------------|
| [references/commands.md](references/commands.md) | Full command reference with all options |
| [references/configuration.md](references/configuration.md) | Config file format and repository setup |
| [references/ci-integration.md](references/ci-integration.md) | GitHub Actions and CI/CD setup |

## Ready-to-Use Templates

| Template | Description |
|----------|-------------|
| [templates/automated-release.sh](templates/automated-release.sh) | Fully automated release script |
| [templates/setup-repo.sh](templates/setup-repo.sh) | Non-interactive repository setup |

```bash
./templates/automated-release.sh myproject patch
./templates/setup-repo.sh myproject vercel-labs myproject main
```

## Troubleshooting

### "No repositories configured"

Run `autoship add <name>` to configure a repository first.

### "Repository not found"

Check `autoship list` for available repos. The name is case-sensitive.

### CI checks failing

The tool will show which checks failed. Fix the issues in the target repository, then retry.

### AI generation failed

If AI fails, autoship falls back to manual input. Ensure `AI_GATEWAY_API_KEY` is set.

© vercel-labs · Apache-2.0 · vercel-labs/autoship

Similar skills

Everything for DevOps and infrastructure →

autoship by other authors comes first.

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor