AgenticCLI
▮ shipguardis the security scanner your coding agent runs before every commit.$ npm i -g @agenticcli/shipguard

──[ ▮ ]── changelog

Changelog

Every release, every rule. npm i -g @agenticcli/shipguard@latest

+ added~ fixed! breaking

v0.10.0

Clear, optional usage pings and a full docs set

  • A small anonymous ping the first time ShipGuard runs on an install and after a successful shipguard login, besides the one after each scan. Never file contents, paths, repo names, branches, commits or identity. A one-line notice on stderr appears before the first ping, so --json output stays clean
  • Easy opt-outs: SHIPGUARD_TELEMETRY=0, DO_NOT_TRACK=1, shipguard telemetry disable, or telemetry: { enabled: false } in your policy file. shipguard telemetry status shows the state and SHIPGUARD_TELEMETRY_DEBUG=1 prints the exact payload without sending it
  • SHIPGUARD_TRAFFIC=test or internal for people testing ShipGuard, so test runs stay apart from real usage
  • New README and docs pages (getting started, checks, CI setup, exit codes, privacy, FAQ), matching the npm page
  • GitHub Actions and npm dependencies updated; releases are published only through the GitHub release workflow, with npm provenance
v0.9.0

A scan can no longer say safe over files it did not read

  • UTF-16 files and text files with a stray NUL byte are now scanned, so one odd byte next to a secret no longer hides the whole file
  • A scan that read nothing (an empty folder, only ignored or binary files, or --changed on a clean checkout) is now degraded, so the verdict is DO_NOT_SHIP and --strict exits 1
  • coverage in the --json output shows which files were discovered, scanned and skipped, and why; schemaVersion is now 6
  • shipguard scan --json --strict no longer loses piped output
v0.8.1

Sign-in and token refresh fixes

  • shipguard login points to the right sign-in page; a rate-limited or unreachable token refresh no longer asks you to log in again
v0.8.0

First public release

  • Free local checks for hardcoded secrets, auth gaps, payment webhook risks, destructive database migrations and deployment misconfigurations. Everything runs on your machine; your code and your reports stay on your machine
  • Pro rules (after shipguard login) add deeper checks. Pro rule bundles are signed and verified before use
  • --json and --sarif output, inline suppressions with // shipguard-ignore: <ruleId> -- <reason>, and shipguard hook to install the gate as a git hook, a Claude Code hook or a CI job
  • When ShipGuard's hosted service is temporarily unavailable, the CLI says so plainly and exits with code 3; --json carries PLATFORM_UNAVAILABLE with retryAfterSeconds when known, and --allow-degraded still works
  • Anonymous usage ping with simple opt-outs: SHIPGUARD_TELEMETRY=0, DO_NOT_TRACK=1 or shipguard telemetry disable
  • Published to npm on oct 21, 2026 from GitHub Actions with npm provenance; every release from 0.8.0 on carries it
v0.7.1

First Pro scan works on a fresh machine

  • The first Pro scan on a fresh machine no longer fails; ~/.shipguard is created with private permissions
v0.7.0

Wider CORS detection, clearer usage pings

  • Wildcard CORS is caught in more setups, once per problem: origin reflection, Access-Control-Allow-Origin: * in vercel.json / firebase.json headers, and API Gateway CORS config. Look-alikes such as corsair are no longer flagged
  • The offline rule bundle is now corpus version 18
  • shipguard telemetry status | enable | disable, and SHIPGUARD_TELEMETRY_DEBUG=1 prints exactly what would be sent without sending it. The first ping on a machine prints one line to stderr saying so and how to turn it off
  • telemetry.enabled: false in your policy file now really turns usage pings off, and builds from a source checkout never send them. DO_NOT_TRACK=1 and SHIPGUARD_TELEMETRY=0 still win over everything
  • A --strict scan that exits with code 1 no longer loses its usage ping; shipguard feedback no longer makes a network call
v0.6.0

Secrets stay hidden, incomplete scans stop being "safe"

  • Scan output no longer prints secrets: anything that looks like a secret shows only its first 8 characters and then *** in the terminal, --json and saved reports. If you ran 0.5.x Pro scans, delete .shipguard/reports/ output and rotate any real key that was printed
  • Verdicts can change: suppressed findings no longer count toward the score, live Stripe keys are now critical, wildcard CORS is now high, and overlapping matches collapse into one finding — if you gate CI on --strict, re-run once
  • A scan that could not read everything (oversized file, read error, lost Pro rules, symlinked folder) now says DO_NOT_SHIP instead of SAFE_TO_SHIP, and --strict now stops with exit 1 in that case
  • Free scans now apply the 30 governed corpus rules bundled inside the CLI — no login, no network call
  • shipguard hook installs the gate as a git hook, a Claude Code hook or a GitHub Actions job; shipguard schema prints the output contract; every --json scan now carries runId, treeDigest and cliVersion
v0.5.1

Release-signing hardening

  • Release attestation now signs with real production keys, checked for freshness in CI on every publish
  • Fixed an npm bin path warning and added a publish-guard sentinel so a broken package can't reach latest
v0.5.0

Verdict-neutral exit codes + fail-loud Pro scans

  • Exit codes are verdict-neutral: 0 means the scan completed (read the JSON recommendation field), not "safe" — 1 only blocks with --strict
  • A failed Pro-tier fetch now fails loud with exit 3 instead of silently degrading to a free scan — opt in to the old behavior with --allow-degraded
  • scanId now persists across process restarts, closing a retry gap that could double-charge a Pro scan
  • Local observability store for scan history and regression checks
v0.4.1

ShipGuard is live

  • Five local check modules: secrets, auth, payments, database, deployment — free and unlimited, no account
  • Deterministic exit codes: 0 scan completed (verdict in the JSON recommendation field) · 1 blocked (with --strict) · 2 config error · 3 runtime error
  • --changed to scan just the files you edited, for local runs and agent loops
  • --json output for agent workflows and automation
  • Cloud scans against the full rule corpus, memory-only, never written to disk — Free, Plus, and Pro tiers
  • shipguard init scaffolds a policy file and a CI gate in one command