Early Development: lintal is not yet recommended for general use. An alpha version will be published in late Q1 2026.
Built in Rust, powered by tree-sitter

A fast Java linter with auto-fix support

lintal reads your existing checkstyle.xml configuration and can automatically fix many violations that checkstyle can only detect. Built for AI coding workflows where formatting matters.
$
brew install eleventy7/lintal/lintal
Features

Everything you need to keep your Java code clean

lintal combines the familiarity of checkstyle configuration with the speed of native compilation and the power of automatic fixes.

3-5x Faster

Native binary with no JVM startup overhead. Parallel file processing utilizes all CPU cores for maximum throughput.

Auto-Fix Support

Automatically fix whitespace, brace placement, modifier order, unused imports, and more. No more manual formatting.

100% Compatible

Reads your existing checkstyle.xml configuration. All 29 implemented rules validated against checkstyle's own test suite.

Performance

Significantly faster than checkstyle

Benchmarked against Checkstyle 12.3.0 with the same files and 23 of 29 supported rules. 10 runs each after warmup.
RepositoryFilesCheckstylelintalSpeedup
Agrona2891.49s0.32s4.7x
Artio7262.55s0.65s3.9x
Aeron9294.76s1.54s3.1x
Run benchmarks yourself: mise run benchmark
29 Rules

100% checkstyle compatible

All rules are validated against checkstyle's own test suite. Rules with a checkmark support auto-fix.

Whitespace (12)

  • WhitespaceAround
  • WhitespaceAfter
  • NoWhitespaceAfter
  • NoWhitespaceBefore
  • SingleSpaceSeparator
  • ParenPad
  • TypecastParenPad
  • MethodParamPad
  • EmptyForInitializerPad
  • FileTabCharacter
  • OperatorWrap
  • EmptyLineSeparator

Blocks (6)

  • LeftCurly
  • RightCurly
  • NeedBraces
  • EmptyBlock
  • EmptyCatchBlock
  • AvoidNestedBlocks

Modifiers (4)

  • ModifierOrder
  • RedundantModifier
  • FinalParameters
  • FinalLocalVariable

Other (7)

  • UpperEll
  • ArrayTypeStyle
  • UnusedImports
  • RedundantImport
  • OneStatementPerLine
  • MultipleVariableDeclarations
  • SimplifyBooleanReturn
Installation

Get started in seconds

lintal supports macOS and Linux. Choose your preferred installation method.

Homebrew

$
brew tap eleventy7/lintal && brew install lintal

mise

$
mise use ubi:eleventy7/lintal

Build from source

$
cargo install --path crates/lintal
Usage

Simple, familiar commands

Check files for violations

$
lintal check src/

Fix violations automatically

$
lintal fix src/

Use a specific config

$
lintal check src/ --config path/to/checkstyle.xml

Preview fixes without applying

$
lintal fix src/ --diff

Questions & Answers

Ready to speed up your Java linting?

lintal is open source under the MIT license. Star us on GitHub, report issues, or contribute new rules.