#git #linter

app lintje

Lintje is an opinionated linter for Git

17 releases (9 breaking)

0.11.3 Jan 28, 2023
0.11.2 Oct 15, 2022
0.11.0 Sep 11, 2022
0.7.1 Jun 20, 2022
0.3.1 Jul 15, 2021

#319 in Development tools

34 downloads per month

MIT license



Lintje is an opinionated linter for Git. It lints commit messages based on a preconfigured set of rules focussed on promoting communication between people. The idea is to write commits meant for other people reading them during reviews and debug sessions 2+ months from now.

  • No configuration. Don't spend time configuring your Git commit linter and instead adopt a preconfigured set of rules.
  • Portable. Lintje is a Rust project built for several Operating Systems and has no dependencies. Drop it into your project and it works.


Visit Lintje.dev for more information about Lintje, and the Lintje documentation.


Given the last commit in a project is this:

Fix bug

When running lintje to lint the last commit, the output will be:

$ lintje
Error[SubjectCliche]: The subject does not explain the change in much detail
  9a2ae29:1:1: Fix bug
  1 | Fix bug
    | ^^^^^^^ Describe the change in more detail

Error[MessagePresence]: No message body was found
  9a2ae29:3:1: Fix bug
  1 | Fix bug
  2 |
  3 |
    | ^ Add a message body with context about the change and why it was made

Error[BranchNameTicketNumber]: A ticket number was detected in the branch name
  Branch:1: fix-123
  | fix-123
  | ^^^^^^^ Remove the ticket number from the branch name or expand the branch name with more details

1 commit and branch inspected, 3 errors detected

For more usage examples, see the [usage docs].

Getting help

Need help with Lintje? Found a bug or have a question?

Reach out to me through the issue tracker, discussions, on Twitter @tombruijn (DMs are open) or on any Slack team you can find me on.



Make sure Rust is installed before continuing.

cargo build


cargo test


Docker is required to build all the different target releases using cross.

To build all different targets, run the build script:

rake build

The build output can be found in the dist/ directory.


Before release all the supported targets will be build. See Building for more information about the build step.

To release all different targets, run the release script:

rake release

The release will be pushed to GitHub.

Finally update the Lintje Homebrew tap.

Code of Conduct

This project has a Code of Conduct and contributors are expected to adhere to it.


~120K SLoC