Skip to content


Repository files navigation


ci codeql

ShellCheck - A shell script static analysis tool.

Downloads the most recent version of koalaman's ShellCheck.


Warning: Node.js version >= 18.4.0 || >= 16.17.0 is required

npm install --save-dev shellcheck


Note: On first execution shellcheck it's automatically downloaded

Note: It's recommended to execute shellcheck using npx

Note: Proxy support via HTTP_PROXY, HTTPS_PROXY and NO_PROXY environment variables

Note: By default, all GitHub requests are anonymous. If you encounter error 403 | rate limit exceeded (e.g., in CI), set the environment variable GITHUB_TOKEN to use your own personal access token

Execute shellcheck directly from your npm scripts:

  "scripts": {
    "lint": "npx shellcheck path/to/"


Note: More functions, utilities, and constants are available

import { shellcheck, download, config } from 'shellcheck';

 * Spawn ShellCheck.
 * Download ShellCheck if not found or invalid.
await shellcheck({
  args: ['path/to/', 'path/to/another/']
  // Options...
  .then((result) => {
    // Check error
    if (result.error) throw result.error;

    // Print stdout
    if (result.stdout) console.log(result.stdout.toString('utf8'));
    // Print stderr
    if (result.stderr) console.error(result.stderr.toString('utf8'));

    // Exit code
    if (result?.status !== 0) throw new Error(`Exit code: ${result?.status}`);
  .catch((err) => {
    console.error(`Error: ${err}`);
    throw err;

 * Download ShellCheck.
await download({
  destination: `path/to/destination/shellcheck`
  // destination: `path/to/destination/${config.bin}` // Platform-dependent name (add .exe on Windows)
  // Options...


Note: Platform and Architecture follow Node.js naming convention

Platform Architecture
linux x64
linux arm64
darwin x64
darwin arm64
win32 x64


I would love to see your contribution ❤️

See CONTRIBUTING guidelines.


This project is licensed under the MIT License.
See LICENSE file for details.