npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

lechnerio-git-hooks

v1.3.2

Published

Shared git hooks for lechnerio projects

Readme

lechnerio-git-hooks

Shared git hooks for all lechnerio projects. Install once, get commit linting, lint-staged, version bumping, and changelog generation.

Install

pnpm add -D lechnerio-git-hooks
pnpm approve-builds
pnpm install

For pnpm workspaces, add the -w flag:

pnpm add -wD lechnerio-git-hooks

What it does

On install, the package automatically:

  • Copies pre-commit, commit-msg, and post-commit hooks into .husky/
  • Copies generate-changelog.mjs into scripts/
  • Copies commitlint.config.js and .lintstagedrc.js into the project root
  • Adds a lint-staged script to package.json
  • Configures git to use .husky/ as the hooks path

Hooks

| Hook | What it does | | ------------- | -------------------------------------------------------------------------------------------- | | pre-commit | Runs lint-staged (eslint --fix + prettier) | | commit-msg | Enforces conventional commits via commitlint | | post-commit | Interactive version bump (subtle/patch/minor/major), changelog generation with optional skip flag, push/merge prompt |

Changelog versioning model

Commits belong to the version that was current while they were made. A Minor or Major bump closes the running version — all work since the previous bump stays under it, including the commit that triggered the bump — and opens the new version with a Version Upgrade to <version> marker entry. Future commits then accumulate under the new version.

AI release summaries

On Minor and Major version bumps, the post-commit hook sends the non-skipped commit messages of the version being closed to the Gemini API and stores the result as summary_en and summary_ger fields (English and German) on that version entry in data/changelog.json. This requires GITHOOKS_GEMINI_API_KEY in the project's .env file or environment; without it the summary step is skipped silently. Run node scripts/generate-changelog.mjs --summarize-version <version> to generate the summary for any version by hand (accepts the version with or without the v prefix, subtle suffixes are normalized). Summaries are only generated when summary_en or summary_ger is missing on the entry — to regenerate one, delete both fields from data/changelog.json first.

Peer dependencies (auto-installed)

  • @commitlint/cli
  • @commitlint/config-conventional
  • lint-staged

Project requirements

These are not included and must be installed by the project:

  • eslint
  • prettier

Environment variables

For non-interactive usage (CI, scripts):

| Variable | Values | | -------------- | --------------------------------------------------------------- | | VERSION_BUMP | 1 = subtle, 2 = patch, 3 = minor, 4 = major, 0 = skip | | POST_ACTION | 1 = push, 2 = merge to main, 0 = skip | | CHANGELOG_ADD | 1 = keep commit in changelog, 0 = mark it skipped (asked when version bump is skipped) | | GITHOOKS_GEMINI_API_KEY | Gemini API key for AI release summaries; unset = feature disabled | | GITHOOKS_GEMINI_MODEL | Optional Gemini model for summaries, defaults to gemini-flash-latest |

Update

pnpm update lechnerio-git-hooks

Removing old setup

If migrating from a manual setup, remove these before installing:

Remove-Item .husky\post-commit
Remove-Item .husky\pre-commit
Remove-Item .husky\commit-msg
Remove-Item commitlint.config.js
Remove-Item .lintstagedrc.js
Remove-Item scripts\generate-changelog.mjs

Also remove these from devDependencies if present:

pnpm remove @commitlint/cli @commitlint/config-conventional husky lint-staged