Browse Flint checks by language or purpose. Each linter links to a dedicated page with its behavior, configuration, and examples.
| Name | Linter | Formatter |
|---|---|---|
| C# | — | dotnet-format |
| Go | golangci-lint |
gofmt |
| Java | checkstyle |
google-java-format |
| JavaScript / TypeScript | biome |
biome-format |
| Kotlin | ktlint |
ktlint |
| Python | ruff |
ruff-format |
| Rust | cargo-clippy |
cargo-fmt |
| Name | Linter | Formatter |
|---|---|---|
| Dotenv | dotenv-linter |
dotenv-linter |
| JSON | biome |
biome-format |
| Markdown | rumdl |
rumdl |
| Shell | shellcheck |
shfmt |
| TOML | — | taplo |
| XML | xmllint |
— |
| YAML | ryl |
ryl |
| Name | Check |
|---|---|
| Dockerfile | hadolint |
| GitHub Actions | actionlint / zizmor |
| Kubernetes manifests | kube-linter |
| Name | Check | Description |
|---|---|---|
| EditorConfig | editorconfig-checker |
EditorConfig compliance |
| Flint setup | flint-setup |
Flint-managed setup and mise.toml layout |
| License headers | license-header |
Required file header text |
| Links | lychee |
Broken links |
| Renovate | renovate-deps |
Dependency update configuration |
| Spelling | typos |
Spelling in source and text files |
Invoked once per matched file.
Invoked once with all matched files as args; only changed files are passed.
Invoked once with no file args; for checks with patterns set (e.g.
cargo-clippy), skipped entirely if no matching files changed, but runs on the
whole project when it does run. golangci-lint is the exception — it uses
--new-from-rev to scope analysis to changed code even within the project run.
Implemented in-process rather than via a command template. These checks may run without file arguments or use custom orchestration logic. See How Flint runs checks for the higher-level model and when to choose native vs template checks.