shellcheck-py
Python wrapper around invoking shellcheck (https://www.shellcheck.net/)
What it is and what it does
shellcheck-py wraps shellcheck as a Python package, downloading and installing a pre-built binary for your platform so you can use it without a separate system dependency. After installation, the shellcheck command is available directly in your environment, making it easy to integrate into Python-based workflows and CI/CD pipelines.
The package is designed for developers who want shellcheck available as a pip dependency rather than managing it through system package managers. It supports macOS (both Intel and ARM), Linux, and Windows, and integrates cleanly with pre-commit hooks for automated linting in version control workflows.
Use it for:
- Lint scripts in CI/CD pipelines without requiring system-level installation.
- Set up pre-commit hooks to automatically check scripts for common errors before commits.
- Include as a development dependency in Python projects that also contain shell scripts.
- Run on Windows where native shell tooling is less common.
- Ensure consistent script quality across macOS and Linux development environments.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Provides a pip-installable shellcheck binary that works across macOS, Linux, and Windows without requiring a separate system installation.
Yes, if you need shellcheck in a Python environment or CI/CD pipeline and want to avoid system package management. The package is actively maintained, has no runtime dependencies, and carries permissive licensing. Medium install friction from platform-specific binaries is a minor trade-off for convenience. Not worth installing if you already have shellcheck available system-wide and don't need it as a Python dependency.
Install
shellcheck-py on PyPI
pip
pip install shellcheck-pyuv
uv add shellcheck-pypoetry
poetry add shellcheck-pyInstalling shellcheck-py
Before you install
Medium install friction due to platform-specific binary downloads, but the package is actively maintained with recent releases and no runtime dependencies to manage.
License in practice
MIT license is permissive; you can use this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install shellcheck-py
shellcheck script.sh
Requires Python 3.9 or later; the binary is downloaded during installation and must match your platform (macOS x86_64, macOS ARM64, Linux x86_64, or Windows x86_64).
Verify before relying
- Whether the pre-built binary includes all upstream features and matches the latest release.
- Support for platforms beyond the four listed wheel distributions (e.g., Linux ARM, Alpine).
- How frequently the bundled binary is updated relative to upstream releases.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 370 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 4,864,108/month — #2,211 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: shellcheck_py-0.11.0.1-py2.py3-none-macosx_10_9_x86_64.whl; shellcheck_py-0.11.0.1-py2.py3-none-macosx_11_0_arm64.whl; shellcheck_py-0.11.0.1-py2.py3-none-manylinux1_x86_64.manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_5_x86_64.whl; shellcheck_py-0.11.0.1-py2.py3-none-win_amd64.whl
Tags
More Quality Assurance packages
Coverage.py measures which lines of Python code…
permissive · top 1,000 on PyPI
ruffRuff is a Python linter and code formatter…
permissive · top 1,000 on PyPI
pexpectPexpect spawns and controls interactive console…
permissive · top 1,000 on PyPI
blackBlack reformats Python source code to a…
permissive · top 1,000 on PyPI
pytest-xdistpytest-xdist distributes pytest tests across…
permissive · top 1,000 on PyPI
cfn-lintValidates AWS CloudFormation templates in YAML…
permissive · top 1,000 on PyPI
hadolint-coatlProvides a pip-installable hadolint binary…
permissive · top 15,000 on PyPI
shfmt-pyProvides a Python-installable wrapper that…
permissive · top 15,000 on PyPI
actionlint-pyactionlint-py provides a pip-installable…
permissive · top 15,000 on PyPI
sphinxcontrib-shellcheckA Sphinx extension that automatically lints…
permissive · top 15,000 on PyPI
flake8-typing-importsA flake8 plugin that detects unguarded typing…
permissive · top 15,000 on PyPI
oslexProvides a unified API for shell argument…
permissive · top 15,000 on PyPI
clang-formatPackages the clang-format code formatter as a…
permissive · top 5,000 on PyPI
cmakelintcmakelint parses CMake files and reports style…
permissive · top 15,000 on PyPI
pre-commit-hooksProvides a collection of reusable pre-commit…
permissive · top 5,000 on PyPI
just-binDistributes the `just` command-line task runner…
permissive · top 15,000 on PyPI