Open-Awesome
CategoriesAlternativesStacksSelf-HostedExplore
Open-Awesome

© 2026 Open-Awesome. Curated for the developer elite.

TermsPrivacyAboutGitHubRSS
  1. Home
  2. Lua
  3. luacheck

luacheck

MITLua0.23.0

A static analyzer and linter for Lua code that detects undefined globals, unused variables, and other common issues.

GitHubGitHub
2.0k stars338 forks0 contributors

What is luacheck?

Luacheck is a static analyzer and linter for Lua code that detects a wide range of issues such as undefined global variables, unused variables, uninitialized variable access, and unreachable code. It helps developers write cleaner, more reliable Lua code by identifying potential bugs and code smells early in the development process.

Target Audience

Lua developers, from beginners to experts, who want to improve code quality and maintainability in their projects, including those using Lua 5.1, 5.2, 5.3, or LuaJIT.

Value Proposition

Luacheck stands out for its extensive configurability, support for multiple Lua versions, and detailed, actionable warnings that integrate seamlessly into development workflows via editor plugins and CI/CD pipelines.

Overview

A tool for linting and static analysis of Lua code.

Use Cases

Best For

  • Enforcing coding standards in Lua projects
  • Detecting subtle bugs like undefined globals before runtime
  • Improving code maintainability by identifying unused variables
  • Integrating static analysis into CI/CD pipelines for Lua code
  • Supporting multiple Lua versions (5.1, 5.2, 5.3, LuaJIT) in a single tool
  • Customizing linting rules for project-specific globals and coding conventions

Not Ideal For

  • Projects needing integrated code formatting alongside linting in a single tool
  • Teams requiring deep semantic analysis or type inference for complex Lua codebases
  • Environments prioritizing minimal setup and zero additional dependencies over customizability

Pros & Cons

Pros

Multi-Lua Version Support

Supports Lua 5.1, 5.2, 5.3, and LuaJIT, as stated in the overview, making it versatile for projects using different Lua versions.

High Configurability

Options can be set via command line, config files, or inline comments, allowing fine-grained control over static analysis rules, as detailed in the documentation.

Comprehensive Issue Detection

Detects undefined globals, unused variables, uninitialized access, and unreachable code, helping catch bugs early, as highlighted in the key features.

Editor Integration

Has plugins for popular editors like Vim, Sublime, and Atom, facilitating real-time feedback, as listed in the related projects section.

Cons

Module Interface Instability

The README notes that the module interface may change between minor releases, which can break custom integrations or scripts relying on it.

Parallel Checking Dependency

Parallel analysis requires installing LuaLanes separately, adding an extra step and potential compatibility issues, as mentioned in the installation section.

Linting-Only Functionality

Lacks built-in code formatting or refactoring tools, necessitating additional software for complete code quality management.

Frequently Asked Questions

Quick Stats

Stars2,042
Forks338
Contributors0
Open Issues44
Last commit3 years ago
CreatedSince 2014

Tags

#linter#luajit#code-quality#development-tools#lua#linting#static-analysis#luacheck

Built With

L
LuaLanes
S
Sphinx
L
LuaFileSystem
L
LuaRocks
L
Lua

Included in

Lua4.5k
Auto-fetched 17 hours ago

Related Projects

Typed LuaTyped Lua

An Optional Type System for Lua

Stars588
Forks48
Last commit6 years ago
MetaluaMetalua

The metalua programming language

Stars369
Forks62
Last commit2 years ago
luadec51luadec51

Lua Decompiler for Lua version 5.1

Stars356
Forks134
Last commit4 years ago
LuaMinifyLuaMinify

Lua source code minifier.

Stars272
Forks51
Last commit3 years ago
Community-curated · Updated weekly · 100% open source

Found a gem we're missing?

Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.

Submit a projectStar on GitHub