Skip to content

linthis

Crates.io PyPI License: MIT

A fast, cross-platform multi-language linter and formatter written in Rust.

Features

  • Single Command: Run linting, formatting, security, and complexity checks simultaneously
  • Multi-Language Support: Rust, Python, TypeScript, JavaScript, Go, Java, C++, Swift, Kotlin, Lua, Dart, Shell, Ruby, PHP, Scala, C# and more
  • Auto-Detection: Automatically detect programming languages used in your project
  • Security Scanning (SAST): Built-in secrets detection + OpenGrep/Semgrep, Bandit, Gosec, Flawfinder
  • Complexity Analysis: Cyclomatic/cognitive complexity per function with threshold enforcement
  • Flexible Configuration: Support for project config, global config, and CLI parameters with dotted key paths
  • Plugin System: Share and reuse configurations via Git repositories (HTTPS with SSH auto-fallback)
  • Format Presets: Support for popular code styles like Google, Airbnb, Standard
  • Parallel Processing: Leverage multi-core CPU for faster file processing with per-file caching
  • Fix Commit Mode: Three modes for auto-fix handling — squash / dirty / fixup
  • Self-Update: linthis update with install method detection (cargo, pip, uv, pipx)
  • Global Data Storage: Runtime data stored in ~/.linthis/projects/ — keeps project directory clean

Example Usage

# Check and format current directory
linthis

# Check only (no formatting)
linthis -c
linthis --check-only

# Format only (no checking)
linthis -f
linthis --format-only

# Check Git staged files
linthis -s
linthis --staged

Video Tutorials

See linthis in action with short video demos:

  1. Quick Start — Install and run your first check (20s)
  2. Multi-Language — Auto-detect 18+ languages (15s)
  3. Plugin System — Share configs across teams (20s)
  4. AI Fix — AI-powered code fixes (20s)
  5. Git Hooks — Automatic pre-commit linting (15s)
  6. Editor Integration — VS Code, JetBrains, Neovim, Claude Code (15s)
  7. AI Agent Hook — AI agent integration (20s)

Why linthis?

  1. Unified Interface: One tool for all languages instead of managing multiple linters
  2. Fast: Written in Rust with parallel processing support
  3. Easy Setup: Works out of the box with sensible defaults
  4. Team Friendly: Plugin system for sharing configurations across projects