Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/generous-corp/pulp/shipgit clone --depth 1 https://github.com/Generous-Corp/pulpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/commands/generous-corp/pulp/ship)<a href="https://agentmods.dev/commands/generous-corp/pulp/ship"><img src="https://agentmods.dev/badge/commands/generous-corp/pulp/ship.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00067 | $0.02689 |
| Opus 5 | $0.00034 | $0.01345 |
| Sonnet 5 | $0.00013 | $0.00538 |
| Haiku 4.5 | $0.00007 | $0.00269 |
Grade A, and why
ship scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 193 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Ship a Pulp plugin or app — sign, notarize, package, and generate update feeds.
Before running any ship command
-
Run
pulp config showto check saved credentials. -
If no config exists, OR if the config file exists but all signing fields are commented out (only section headers shown), use AskUserQuestion to offer setup:
- "No signing config found. Would you like to set up signing credentials now?"
- Options: "Yes, set up macOS signing" / "Yes, set up Android signing" / "Skip for now"
- If yes, walk through
pulp config setfor each required field.
-
Check prerequisites for the target platform:
- macOS: Run
security find-identity -v -p codesigningto verify identity exists. - Android: Verify
ANDROID_HOMEis set. Verify keystore file exists. Verifyandroid/Gradle project exists. - Windows: Verify signing certificate is installed. Verify NSIS is on PATH.
- macOS: Run
-
If prerequisites are missing, use AskUserQuestion to offer solutions:
- "Android SDK not found. Would you like help setting it up?"
- Options: "Show install instructions" / "I'll set it up myself" / "Skip Android"
Pick the path first: one-off share vs full release
- "Make a build I can send a friend / share / put on a download page", or any
single
.app/.dmg/.pkgyou want to hand off → usepulp ship share(one command: sign → wrap.appin a DMG → notarize → staple → Gatekeeper-verify). This is the right tool when the user says things like "sign this so my friend can open it", "bundle the app to share", "make a DMG I can send". It does NOT touch the repo / GitHub release pipeline. - Full distribution release (versioned GitHub Release, appcast, all example
plugins) → that runs through CI (
sign-and-release.yml), not these local subcommands. For shipping a PR/release say "ship this" or use theciskill.
Standard workflow order (manual, per-stage)
- Build —
pulp build(must complete before signing) - Sign —
pulp ship sign(must sign before notarizing) - Package —
pulp ship package(creates installer from signed bundles) - Notarize —
pulp ship notarize --path <pkg|dmg|zip>(macOS only, after packaging) - Appcast —
pulp ship appcast(generate update feed pointing to packaged artifact)
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today First seen · 193 lines · 67 tokens per session scan A be6ffa598675
ship is a command published in the GitHub repository Generous-Corp/pulp (16 stars, last pushed today), licensed MIT. It adds 67 tokens to every session and 2,689 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-04.
Other commands, from other repositories
create-pr
Rebase from the latest origin/main, squash the commits from it, and then create a PR on github with intelligent commit messages based on staged changes. Invoke with /create-pr.
push-and-release
Git pull, resolve conflicts, push, fix hook errors, then release.
release
Ship a stable cmux release built by CI: bump version, update changelog, open a PR, merge, tag, then GitHub Actions builds, signs, and publishes.
land
Cadence-tick autonomous PR babysitter (CI-fix, resolve, converge, merge, close, release).
release
Create a release branch, run changeset version, review changelog, and prepare PR.
release
Prepare a release by updating docs and bumping the version.