Back to browse
GitHub Repository

A lightning fast shell linter/formatter/LSP server

41 starsRust

Shuck – a fast shell linter written in Rust

by ewhauser421·Apr 30, 2026·8 points·1 comment

AI Analysis

●●●BangerSlickCrowd Pleaser

Clean-room Rust implementation runs 20x faster than ShellCheck with compatible output.

Strengths
  • Extracts and lints embedded shell code directly from GitHub Actions workflow files.
  • ShellCheck compatibility mode allows drop-in replacement without changing CI scripts.
  • Built-in caching layer significantly speeds up incremental runs in monorepos.
Weaknesses
  • Early stage project may miss edge cases covered by ShellCheck's mature rule set.
  • Behavior differences due to clean-room implementation could cause migration friction.
Target Audience

DevOps engineers and maintainers of large shell script repositories

Similar To

ShellCheck

Post Description

I’ve been working on shuck, a shell script linter written in Rust.

ShellCheck is excellent project and set the bar for this space. However, it's very slow and take up a far amount of resources. shuck is conservatively 20x faster than shellcheck and uses a fraction of the resources.

shuck should mostly be a drop in replacement for shellcheck but it is not a port since shellcheck is GPL. It is s clean-room implementation with its own parser and analysis engine, so behavior may differ in some cases. shuck is tested against shellcheck on a large number of open source projects with a lot of shell scripts and has very few variations.

That said, I’ve tried to make migration easy: shuck supports ShellCheck-style suppression 2) you can run shuck in shellcheck compatibility mode where it has all the same CLI args and output.

This is still early, and I’d especially love feedback from people who maintain large monorepos, CI-heavy projects, or lots of shell scripts. I’m interested in places where ShellCheck compatibility matters, places where it does not, and which classes of shell bugs people most want lint/fix support for next.

Similar Projects

Developer Tools●●Solid

A universal code formatter using Rust, Tree-sitter, and Rhai

Neatify exposes AST-level formatting as live Rhai scripts, so you write real code to shape output instead of tweaking a dozen JSON flags. The Tree-sitter backbone means any language with a grammar can be targeted, and the repo-first flavoring plus LLM-assisted script generation is a smart, practical twist. It's clearly early-stage (defaults modify files in-place and coverage is limited), but the architecture is an interesting alternative to opinionated, black-box formatters.

WizardryNiche Gem
its-a-new-world
233mo ago