Skip to content
Development
Command

/ship

Client-side mode only — opt out of the no-checks gate. Without this flag, the script refuses to merge a PR with zero checks attached (almost always a "workflows haven't attached yet" race after a fresh PR). Pass only for repos that genuinely run no PR-side CI.

From plugin
nyann
741 skills41 commands3 hooks
> /plugin marketplace add thettwe/nyann
> /plugin install nyann@nyann-plugins

Command definition

ship.md
name: nyann:ship
description: >
  Open a GitHub pull request AND merge it in one step. Default uses
  GitHub's native auto-merge (returns immediately with outcome:"queued");
  `--client-side` polls for green CI in the foreground then runs
  `gh pr merge`. Requires `gh` installed + authed.
arguments:
  - name: client-side
    description: Poll wait-for-pr-checks in the foreground and merge when green, instead of GitHub auto-merge. Use when auto-merge isn't enabled on the repo.
    optional: true
  - name: merge-strategy
    description: squash | rebase | merge. Default squash.
    optional: true
  - name: draft
    description: Open the PR as a draft. Rarely useful with ship — auto-merge waits for ready-for-review.
    optional: true
  - name: base
    description: Target base branch. Defaults to upstream / origin HEAD / `main`.
    optional: true
  - name: timeout
    description: Client-side mode only — seconds to wait for CI before bailing. Default 1800 (30 min).
    optional: true
  - name: interval
    description: Client-side mode only — seconds between PR-check polls. Default 30. Don't go below 10.
    optional: true
  - name: allow-no-checks
    description: Client-side mode only — opt out of the no-checks gate. Without this flag, the script refuses to merge a PR with zero checks attached (almost always a "workflows haven't attached yet" race after a fresh PR). Pass only for repos that genuinely run no PR-side CI.
    optional: true

**Plugin root:** This is a Claude Code plugin, NOT a CLI tool. Do NOT search via `which`, `npm list`, `pip list`, or `brew list`. This file is at `<plugin_root>/commands/`. All scripts: `<plugin_root>/bin/`. Read the matching `skills/*/SKILL.md` for the full flow.

/nyann:ship

Wraps `bin/ship.sh`. Combines `bin/pr.sh` create + (auto-merge OR `bin/wait-for-pr-checks.sh` + `gh pr merge --delete-branch`) into one invocation that emits a ShipResult JSON (`schemas/ship-result.schema.json`).

| Outcome | Mode | Exit | Meaning | |---|---|---|---| | `queued` | auto-merge | 0 | GitHub will merge server-side when checks + reviews pass | | `shipped` | client-side | 0 | Wait completed, merge call succeeded, branch deleted | | `ci-failed` | client-side | 3 | At least one check failed; loop bailed early | | `ci-timeout` | client-side | 3 | Deadline hit, some still in progress | | `merge-failed` | either | 3 | auto-merge couldn't be enabled, or `gh pr merge` failed | | `pr-failed` | either | 3 | `bin/pr.sh` died before producing a URL | | `skipped` | either | 0 | gh missing/unauthed (nothing created) |

When to invoke

  • "ship this PR" / "open and merge" → run this (auto-merge default).
  • "ship it and block until merged" → run this with `--client-side`.
  • "create the PR and auto-merge it on green CI" → run this (default).

When NOT to invoke

  • The user wants only the PR opened, not merged → `/nyann:pr`.
  • The user wants to wait for CI but not merge → `/nyann:wait-for-pr-checks`.
  • The PR already exists and they want to merge it → just

`gh pr merge <num> --auto` directly; ship is for PR-creation + merge.

  • The user wants to tag a release after merge → `/nyann:release`

(run after ship reports `shipped` or after the auto-merge lands).

See `skills/ship/SKILL.md` for the full title/body synthesis flow, mode-selection guidance, and outcome interpretation.

Read more
@thettwe
Ships withnyann

ငြမ်း is Burmese for scaffolding. Nyann is the Claude Code plugin that picks expert git defaults for your stack — branching, working hooks (Husky / pre-commit.com / lefthook), commits, releases, CI, docs — then keeps the repo on those rails through every PR

Stars on GitHub

Momentum

stars in total
7
Star history of thettwe/nyann on GitHub, a chart by star-history.com

Other commands on nyann.

apply

apply

Command

Path to an IacPlan JSON from a prior /nyann:plan run, to apply the exact previewed plan.

@thettwe@thettweInstall Command
bootstrap

bootstrap

Command

Optional profile name to apply. If provided, skip stack detection's recommendation step and load this profile via…

@thettwe@thettweInstall Command
branch

branch

Command

The branch slug (feature/bugfix/hotfix) or version string (release).

@thettwe@thettweInstall Command
check-prereqs

check-prereqs

Command

If passed, emit the probe results as JSON instead of the human table.

@thettwe@thettweInstall Command
cleanup-branches

cleanup-branches

Command

Branch to use as the merge target. Defaults to the profile's primary base branch (auto-resolved through `origin/HEAD`, `main`, or…

@thettwe@thettweInstall Command

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command