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.
$
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.
| Repository | Files | Checkstyle | lintal | Speedup |
|---|---|---|---|---|
| Agrona | 289 | 1.49s | 0.32s | 4.7x |
| Artio | 726 | 2.55s | 0.65s | 3.9x |
| Aeron | 929 | 4.76s | 1.54s | 3.1x |
Run benchmarks yourself:
mise run benchmark29 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
$
mise
$
Build from source
$
Usage
Simple, familiar commands
Check files for violations
$
Fix violations automatically
$
Use a specific config
$
Preview fixes without applying
$
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.