shellcheck-gpt
Instantly fix shell scripts with the power of ShellCheck and LLMs.
Example

Access screencast directly here
See example directory to see script contents before and after.
Getting started
Prerequisites
- ShellCheck should be installed and in your $PATH.
- A valid OpenAI API key
Installation
Homebrew
brew install kkyr/tap/shellcheck-gpt
Pre-built binaries
Download the latest release and add the executable to your $PATH.
go install github.com/kkyr/shellcheck-gpt
Usage
Add your OpenAI API key to the environment:
export OPENAI_API_KEY=replace-with-your-api-key
Run shellcheck-gpt against a script:
shellcheck-gpt script.sh
This will:
- Run shellcheck against
script.sh
- Feed the contents of the script and the output of shellcheck into an OpenAI LLM and ask it to make corrections
- Write the LLM's output to stdout
If you'd like to instead write the output back into the script, use the -w flag:
shellcheck-gpt -w script.sh
[!WARNING]
The entire content of your script is sent in cleartext to OpenAI.
Configuration
By default, shellcheck-gpt uses the gpt-3.5-turbo model. You can modify this to another model using the -m flag:
shellcheck-gpt -m gpt-4-turbo script.sh
See available options and models using the --help flag:
shellcheck-gpt --help
Contributing
Contributions are welcome!
Some potential improvements:
- Use
shellcheck -f diff -p1 to apply fixes that can be automatically applied before calling into LLM.
- Support more LLMs
- Add verbose flag to print LLM input/output