$ sizelint - lint your working tree based on file sizes
Overview
sizelint is a fast, configurable file size linter that helps prevent large files from entering your Git repository.
It integrates seamlessly with Git workflows and can be used as a standalone tool, pre-commit hook, or as part of your CI/CD pipeline.
$ sizelint - usage
A git-aware file size linter
Usage: sizelint [OPTIONS] <COMMAND>
Commands:
check Check files for size violations
init Initialize sizelint configuration
rules Rule management
completions Generate shell completions
help Print this message or the help of the given subcommand(s)
Options:
-c, --config <FILE>
Configuration file path
-v, --verbose
Verbose output
--log-level <LOG_LEVEL>
Log level
[default: info]
Possible values:
- trace: Trace level logging
- debug: Debug level logging
- info: Info level logging
- warn: Warning level logging
- error: Error level logging
-h, --help
Print help (see a summary with '-h')
-V, --version
Print version
$ sizelint check
Check files for size violations
Usage: sizelint check [OPTIONS] [PATHS]...
Arguments:
[PATHS]...
Paths to check
Options:
-f, --format <FORMAT>
Output format
[default: human]
Possible values:
- human: Human-readable output
- json: JSON output
- summary: Summary only
--staged
Check only staged files (git diff --staged)
--working-tree
Check working tree files
-q, --quiet
Quiet mode (only show violations)
-h, --help
Print help (see a summary with '-h')
$ sizelint rules
Rule management
Usage: sizelint rules <COMMAND>
Commands:
list List available rules
describe Show rule documentation
help Print this message or the help of the given subcommand(s)
Options:
-h, --help Print help
$ sizelint init
Initialize sizelint configuration
Usage: sizelint init [OPTIONS]
Options:
-f, --force Force overwrite existing configuration
--stdout Print the default configuration to stdout
--edit Open configuration file in editor after creation
-h, --help Print help
Quick Start
Installation
Basic Usage
# Initialize configuration
# Check all files
# Check only staged files (great for pre-commit hooks)
# Check specific files
Configuration
sizelint uses TOML configuration files.
Run sizelint init to create a default configuration:
[sizelint]
max_file_size = "5MB"
warn_file_size = "2MB"
excludes = []
check_staged = false
check_working_tree = false
respect_gitignore = true
[rules.large_files]
type = "large_files"
enabled = true
description = "Checks for files that exceed configured size limits"
max_size = "5MB"
warn_size = "2MB"
includes = []
excludes = []
Documentation
- Manual Page - Complete reference in scdoc format
Development
Development Shell
Building
Testing
License
MIT License - see LICENSE file for details.