Skip to main content

ShellCheck

The ShellCheck module finds shell scripts in your workspace and checks them with ShellCheck, catching quoting, portability, and safety issues in CI and Dagger Cloud. Reach for it when scripts are part of the project and should be treated like code, not as untested glue — deployment scripts, local dev scripts, or CI helpers all benefit.

Official module: dagger/shellcheck

Add it to your workspace

dagger install github.com/dagger/shellcheck

Run the check

dagger check                  # run every check in the workspace
dagger check shellcheck:check # run ShellCheck on discovered shell scripts

check finds every .sh file in the workspace and runs ShellCheck on each one, so a script must use the .sh extension to be discovered. Use scripts to see exactly which files the module found.

Configure it

List the current settings and their values with dagger settings shellcheck. The exclude setting is list-valued, so set it in dagger.toml under [modules.shellcheck.settings]:

  • exclude (default: none): a list of script paths to skip. Use it for vendored or generated scripts the repo does not own.
[modules.shellcheck.settings]
exclude = ["vendor/", "third_party/"]

Keep the exclude list narrow so new scripts are checked automatically.

Working with other modules

This module is small and high value. It is a good default check for repos that contain deployment scripts, local dev scripts, or CI helper scripts.