Launchr is a versatile CLI action runner that executes tasks defined in local or embeded yaml files across multiple runtimes:
- Short-lived container (docker or kubernetes)
- Shell (host)
- Golang (as plugin)
It supports:
- Arguments and options
- Automatic action discovery
- Automatic path-based naming of local actions
- Seamless extensibility via a plugin system
Actions are defined in action.yaml files:
- either on local filesystem: Useful for project-specific actions
- or embeded as plugin: Useful for common and shared actions
You can find action examples here and in the documentation.
Launchr has a plugin system that allows to extend its functionality. See core plugins, official plugins and documentation.
Build launchr from source locally. Build dependencies:
go >=1.24, see installation guidemake
Build the launchr tool:
make
bin/launchr --helpThe documentation for launchr usage can be found in docs.
If you face any issues with launchr:
- Open an issue in the repo.
- Share the app version with
launchr --version
Build dependencies:
go >=1.24, see installation guidemake
Global installation
Install launchr globally:
make install
launchr --versionThe tool will be installed in $GOPATH/bin which is usually ~/go/bin.
If GOPATH env variable is not available, make sure you have it in ~/.bashrc or ~/.zhrc:
export GOPATH=`go env GOPATH`
export PATH=$PATH:$GOPATH/binLocal installation
The tool can be built and run locally:
make
bin/launchr --versionThe launchr can be built with a make to bin directory:
makeIt is also supported to make a build to use with dlv for debug:
make DEBUG=1Useful make commands:
- Fetch dependencies -
make deps - Test the code -
make test - Lint the code -
make lint
- Create a new Github release from UI
- Github Action will compile new binaries using goreleaser and attach them to release