Skip to content

`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.yml and 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 crimes prints a welcome banner. Running crimes with 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 --help still renders the full usage output. crimes --version still 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-crimes banner is the reliable surface.

No new detectors, no schema change. Finding and ExplainReport wire formats are unchanged.

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.

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.sh

Previously, 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 --help and crimes -h still render Commander’s usage output, unchanged.
  • crimes --version still prints just the version string.
  • crimes <unknown-command> still errors via Commander.
  • Scripts that rely on bare crimes for parseable output will see different text; the JSON output contract (--format json on every command) is unchanged.

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.sh

Version 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:

Terminal window
npm install -g --foreground-scripts crimes
# or set once in your global .npmrc:
echo "foreground-scripts=true" >> ~/.npmrc
  • No schema_version bump. Finding and ExplainReport wire 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.
Terminal window
npm install -g crimes@0.9.1
crimes --version # 0.9.1
crimes # new welcome banner

No 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.