`crimes@0.9.1` — Visible Welcome on Bare `crimes`
Draft release notes for the GitHub Release tagged
v0.9.1. The body below is what should go in the Releases page when you cut the tag — that triggers.github/workflows/release.ymland publishes to npm via Trusted Publishing.
crimes@0.9.1 is a UX-only patch: surface the three first-step
commands (crimes init --agents, crimes init, crimes --help)
somewhere users will actually see them.
- Bare
crimesprints a welcome banner. Runningcrimeswith no arguments now prints a short banner with the version, three first-step commands, and a docs link — instead of Commander’s long help dump.crimes --helpstill renders the full usage output.crimes --versionstill prints just the version. - Post-install message expanded. Now includes the version and
the same three commands. The script still runs, but npm 7+
swallows postinstall stdout / stderr by default, so most users
will never see it. The bare-
crimesbanner is the reliable surface.
No new detectors, no schema change. Finding and ExplainReport
wire formats are unchanged.
What shipped
Section titled “What shipped”Why this exists
Section titled “Why this exists”crimes@0.9.0 added a post-install script that printed:
crimes installed.Run `crimes init --agents` in a repo to add crimes.config.json plus Claude Code and Codex skill files.It was meant to nudge users toward the next step after npm install -g crimes. In practice it never fired in front of users, because
npm 7+ runs lifecycle scripts with stdio piped to /dev/null by
default — both stdout and stderr are silently suppressed. The
script did run; the output just never reached the terminal. Users
have to pass --foreground-scripts or set
foreground-scripts=true in .npmrc to see it.
That’s not a bug we can fix in our script — it’s an npm policy decision. Rather than fight it, 0.9.1 adds a CLI path that does work.
Bare crimes welcome banner
Section titled “Bare crimes welcome banner”Running crimes with no arguments now prints:
crimes 0.9.1
A crime scene investigator for your codebase. Built for agents, readable by humans.
Pick one to get started: crimes init --agents config + Claude Code and Codex skills crimes init just the config crimes --help list all commands
Docs: https://crimes.shPreviously, bare crimes printed Commander’s full help dump (a
wall of command descriptions with the init --agents tip pinned
at the bottom). The new banner is intentionally short and points
at the three commands a new user actually needs.
crimes --helpandcrimes -hstill render Commander’s usage output, unchanged.crimes --versionstill prints just the version string.crimes <unknown-command>still errors via Commander.- Scripts that rely on bare
crimesfor parseable output will see different text; the JSON output contract (--format jsonon every command) is unchanged.
Post-install message expanded
Section titled “Post-install message expanded”The post-install message now reads:
crimes 0.9.1 installed.
Pick one to get started: crimes init --agents config + Claude Code and Codex skills crimes init just the config crimes --help list all commands
Docs: https://crimes.shVersion is read from the installed package.json at runtime. The
CI / CRIMES_DISABLE_POSTINSTALL=1 escape hatch is unchanged.
To actually see this output on npm install -g crimes:
npm install -g --foreground-scripts crimes# or set once in your global .npmrc:echo "foreground-scripts=true" >> ~/.npmrcWhat’s not in 0.9.1
Section titled “What’s not in 0.9.1”- No
schema_versionbump.FindingandExplainReportwire formats are byte-identical to 0.9.0. - No new detectors. Detector count unchanged at 48.
- No new commands. No new flags.
- No package dependency changes.
Upgrading
Section titled “Upgrading”npm install -g crimes@0.9.1crimes --version # 0.9.1crimes # new welcome bannerNo action needed for existing users. Scripts that pipe bare
crimes output should switch to crimes --help (stable help
output) or a specific subcommand with --format json.
Notable links
Section titled “Notable links”docs/releases/v0.9.0.md— the previous release.packages/cli/src/index.ts— bare-crimeswelcome banner implementation.packages/cli/scripts/postinstall.mjs— post-install message source.