Shipcheck
/install shipcheck
shipcheck — pre-publish PII & secret check
shipcheck is a best-effort pre-publish safety net. Run it before npm publish,
clawhub publish, or pushing a repo public to catch the stuff you'll regret shipping:
absolute /Users/\x3Cyou>/ paths, internal IPs, Tailscale hostnames, API keys, internal
project codenames, and soft natural-language personal leaks in markdown.
It is NOT:
- a replacement for manual review
- a full secret scanner (gitleaks / trufflehog cover more)
- a security audit
It is one more pair of eyes before you hit publish.
When to use this skill
Trigger this skill when the user is about to publish or push something public:
npm publish/npm publish --dry-runclawhub publish ./my-skill ...git pushto a brand-new public repo- "check leaks", "is it safe to share?", "扫一下个人信息", "发布前体检"
Install
npm i -g @symbolstar/shipcheck
# or one-shot
npx -y @symbolstar/shipcheck
Run
npm package (default mode)
Scans only files that would actually be published — resolves package.json.files,
.npmignore, .gitignore statically (does not invoke npm pack).
cd /path/to/npm-package
shipcheck
Skill folder / generic repo
shipcheck --scan-mode=dir ./path/to/skill-or-repo
Common flags
shipcheck --scan-mode=dir|npm # default: npm
shipcheck --allow \x3Cid> # acknowledge a finding by id
shipcheck --config ./shipcheck.config.json
What it catches
| Category | Examples | Severity |
|---|---|---|
secrets |
AWS keys, GitHub PAT (ghp_/gho_/ghu_/ghs_/ghr_), OpenAI sk-…, Anthropic sk-ant-…, Google AIza…, Slack xox[bp]-…, JWT, PEM/SSH private keys (~30 rules) |
critical |
identity |
Emails, China mobile + E.164, /Users/\x3Cname>/ & /home/\x3Cname>/ absolute paths, SSH fingerprint |
high |
infra |
RFC1918 IPs, Tailscale CGNAT 100.64/10, *.tail\x3Cid>.ts.net, *.lan/*.local, private git remotes |
high |
business |
User-defined forbidden_terms from shipcheck.config.json (codenames, internal product names…) |
medium |
softNL |
Chinese first-person personal context in *.md (我家 / 我老板 / 我同事 + 关系词) |
info |
binaries |
*.png/.jpg/.mp4/.zip/.pdf > 50 KB inside the publish set |
warn |
Recommended workflow
# 1. Run it
shipcheck # or: shipcheck --scan-mode=dir .
# 2. Triage findings
# - real leak → fix the file
# - false positive → add to shipcheck.config.json allow / forbidden_terms
# 3. Re-run until 0 critical / high
shipcheck
# 4. Publish
npm publish # or: clawhub publish ./skill --slug ...
Exit codes
| Code | Meaning |
|---|---|
0 |
No findings, or only allow-listed / info / warn |
1 |
One or more critical / high / medium findings — do not ship |
Use the exit code in CI or prepublishOnly:
{
"scripts": {
"prepublishOnly": "shipcheck && npm run build && npm test"
}
}
Configuration (optional)
shipcheck.config.json in the project root:
{
"forbidden_terms": ["AcmeInternalCodename", "ProjectStarfish"],
"allow": [
"rule:identity.absolute-home:fixtures/golden/01/setup.md#L12"
],
"scanMode": "npm"
}
Links
- npm: \x3Chttps://www.npmjs.com/package/@symbolstar/shipcheck>
- source: \x3Chttps://github.com/SymbolStar/shipcheck> (public mirror — main dev on local repo)
- author: SymbolStar
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install shipcheck - After installation, invoke the skill by name or use
/shipcheck - Provide required inputs per the skill's parameter spec and get structured output
What is Shipcheck?
Pre-ship safety net. Scan an npm package, OpenClaw skill folder, or git repo BEFORE publishing to catch personal info leaks (absolute home paths, emails, int... It is an AI Agent Skill for Claude Code / OpenClaw, with 66 downloads so far.
How do I install Shipcheck?
Run "/install shipcheck" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Shipcheck free?
Yes, Shipcheck is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Shipcheck support?
Shipcheck is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Shipcheck?
It is built and maintained by SymbolStar (@symbolstar); the current version is v0.1.0.