A linter for the Zig programming language
309
stars
468
commits
Zig
primary language
Sep 6, 2026
updated
An opinionated linter for the Zig programming language.

Pre-built binaries for Windows, MacOS, and Linux on x64 and aarch64 are available for each release.
curl -fsSL https://raw.githubusercontent.com/DonIsaac/zlint/refs/heads/main/tasks/install.sh | bash
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/DonIsaac/zlint/refs/heads/main/tasks/install.ps1" | Invoke-Expression
Direct binary installations can be updated in place:
zlint update
Clone this repo and compile the project with Zig.
zig build --release=safe
All lints and what they do can be found here.
Create a zlint.json file in the same directory as build.zig. This disables
all default rules, only enabling the ones you choose.
{
"rules": {
"unsafe-undefined": "error",
"homeless-try": "warn"
}
}
ZLint also supports ESLint-like disable directives to turn off some or all rules for a specific file.
// zlint-disable unsafe-undefined -- We need to come back and fix this later
const x: i32 = undefined;
If you have any rule ideas, please add them to the rule ideas board.
Interested in contributing code? Check out the contributing guide.
Zig
88.0%
Python
4.8%
TypeScript
3.3%
MDX
2.4%
A linter for the Zig programming language
309
stars
468
commits
Zig
primary language
Sep 6, 2026
updated
An opinionated linter for the Zig programming language.

Pre-built binaries for Windows, MacOS, and Linux on x64 and aarch64 are available for each release.
curl -fsSL https://raw.githubusercontent.com/DonIsaac/zlint/refs/heads/main/tasks/install.sh | bash
Invoke-WebRequest -Uri "https://raw.githubusercontent.com/DonIsaac/zlint/refs/heads/main/tasks/install.ps1" | Invoke-Expression
Direct binary installations can be updated in place:
zlint update
Clone this repo and compile the project with Zig.
zig build --release=safe
All lints and what they do can be found here.
Create a zlint.json file in the same directory as build.zig. This disables
all default rules, only enabling the ones you choose.
{
"rules": {
"unsafe-undefined": "error",
"homeless-try": "warn"
}
}
ZLint also supports ESLint-like disable directives to turn off some or all rules for a specific file.
// zlint-disable unsafe-undefined -- We need to come back and fix this later
const x: i32 = undefined;
If you have any rule ideas, please add them to the rule ideas board.
Interested in contributing code? Check out the contributing guide.
Zig
88.0%
Python
4.8%
TypeScript
3.3%
MDX
2.4%