go-run is a simple bash script that monitors for file change and reloads automatically.
While live-reload tools in the code editor work great for rendering plain html+css, Go projects utilizing templates require tedious manual reloading. go-run automates this.
- accepts arbitrary arguments and passes them through
- lists detected file changes
- stops upon program termination or signal interrupt
- preserves exit codes in all scenarios
Copy the file and give it permission to run:
curl -o go-run https://raw.githubusercontent.com/grackleclub/go-run/refs/heads/main/go-runMake the script executable:
chmod +x go-runMake the script globally executable (optional):
sudo mv go-run /usr/local/binVerify installation:
go-run versionTip
go-run can be scoped to the project, and optimally kept in a bin directory, consolidated with other tools, so that it may be run as bin/go-run. Use the optional step of moving the script to /usr/local/bin to make go-run directly executable from anywhere.
Demo the project using the example module:

😎 Open a pull request!
