A Golang based implementation of genmax. This is a code/file generation tool that feeds data into templates. This can be used for scaffolding projects.
Package Managers (Recommended):
Homebrew (macOS/Linux):
# Install
brew install razpinator/tap/gmx
# Uninstall
brew uninstall gmxScoop (Windows):
# Install
scoop bucket add razpinator https://github.com/razpinator/scoop-bucket
scoop install gmx
# Uninstall
scoop uninstall gmxAPT (Ubuntu/Debian):
# Download and install .deb package from releases
curl -LO https://github.com/razpinator/gmx/releases/latest/download/gmx_linux_amd64.deb
sudo dpkg -i gmx_linux_amd64.deb
# Uninstall
sudo apt remove gmxRPM (RHEL/CentOS/Fedora):
# Download and install .rpm package from releases
curl -LO https://github.com/razpinator/gmx/releases/latest/download/gmx_linux_amd64.rpm
sudo rpm -i gmx_linux_amd64.rpm
# Uninstall
sudo rpm -e gmxAUR (Arch Linux):
# Using yay or your preferred AUR helper
yay -S gmx
# Uninstall
yay -R gmxQuick Install Scripts:
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/razpinator/gmx/main/install.sh | bashWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/razpinator/gmx/main/install.ps1 | iexGo-based Installer:
For users who prefer a native Go installer:
# Download and run the Go installer
go install github.com/razpinator/gmx/installer@latest
gmx-installerOr build from source:
git clone https://github.com/razpinator/gmx.git
cd gmx/installer
go build -o gmx-installer .
./gmx-installerManual Installation:
If you have Golang installed using below command.
go install github.com/razpinator/gmx@latestNote: After manual installation, you may need to add $(go env GOPATH)/bin to your PATH.
Alternatively, you can visit the Releases page for platform specific files.
Package Managers (Easiest):
# Homebrew
brew uninstall gmx
# Scoop (Windows)
scoop uninstall gmx
# APT (Ubuntu/Debian)
sudo apt remove gmx
# RPM (RHEL/CentOS/Fedora)
sudo rpm -e gmx
# AUR (Arch Linux)
yay -R gmxQuick Uninstall Scripts:
Linux/macOS:
curl -fsSL https://raw.githubusercontent.com/razpinator/gmx/main/uninstall.sh | bashWindows (PowerShell):
iwr -useb https://raw.githubusercontent.com/razpinator/gmx/main/uninstall.ps1 | iexGo-based Uninstaller:
If you have the Go installer available:
# Using the installer binary
installer uninstall
# Or install and run the uninstaller
go install github.com/razpinator/gmx/installer@latest
$(go env GOPATH)/bin/installer uninstallManual Uninstallation:
-
Remove the binary:
# If installed via go install rm $(go env GOPATH)/bin/gmx # If installed to custom location rm /path/to/gmx
-
Clean Go module cache:
go clean -modcache github.com/razpinator/gmx
-
Remove PATH configuration (if added by installer):
- Linux/macOS: Remove the export line from
~/.bashrc,~/.zshrc, or your shell config - Windows: Remove the Go bin directory from your system PATH
- Linux/macOS: Remove the export line from
What gets removed:
- ✅ GMX binary from installation directory
- ✅ Go module cache entries
- ✅ PATH configuration added by installer scripts
- ✅ Automatic backup of shell config files
| Command | Description |
|---|---|
| gmx init | Create a new project. |
| gmx run <workflow-name> | Run a workflow and generate your files. |
The following methods are supported in the template:
| Description | Usage |
|---|---|
| Pluralize | {{ "dog" | pluralize }} |
| Kebab Case | {{ "Hello World" | kebabcase }} |
| Camel case | {{ "Hello World" | camelcase }} |
| Snake case | {{ "Hello World" | snakecase }} |
| Pascale case | {{ "hello world" | pascalecase }} |
| UUID Generation | {{ "" | uuid }} |
| Generate secret in 16 bit - hexadecimal | {{ "" | secret }} |
| Generate secret in 64 bit - hexadecimal | {{ "" | secret_complex }} |
| Read value from env file | {{ "MY_CONFIG_KEY" | config: ".env" }} |
| Join strings to make a file path. | {{ "home" | joinpath: ["documents", "file.txt"] }} |
| Convert first character to lower case. | {{ "Hello World" | lowerfirst }} |