Go Recipe is a modern Terminal User Interface (TUI) application for managing and executing shell commands. It allows you to organize commands into categories, add new commands, and execute them either in foreground or background mode.
- Organize commands with categories and tags
- Filter commands by category or text search
- Execute commands and view output
- Background execution mode
- Add, edit, and delete commands
- Persistent configuration
- Go 1.18 or higher
go install github.com/Tomlord1122/go-recipe/cmd/go-recipe@latest# Clone the repository
git clone https://github.com/Tomlord1122/go-recipe.git
cd go-recipe
# Build the application
make buildRun the application:
cd build
./go-recipe↑/↓ork/j: Navigate up and down the command listEnter: Execute the selected commandn: Add a new commande: Edit the selected commandd: Delete the selected commandf: Filter commands by namec: Cycle through categoriesh: Show/hide help screenb: Toggle background execution modeq/Esc: Quit the application
The application follows the Model-View-Update (MVU) architecture pattern:
- Model: Core data structures and state management
- View: UI rendering based on current state
- Update: State transitions and event handling
- Bubble Tea: TUI framework
- Lip Gloss: Terminal styling
- Cobra: CLI framework
The application stores your commands in JSON format at:
~/.go-recipe/commands.json
- WorkingDirMode:
current(default) |home|absolute - WorkingDirPath: used when mode is
absolute; supports~,$HOME,${cwd} - UseShell: when true, the command runs via your shell (e.g.,
bash -lc), so pipes/quotes work - Interactive: when true, interactive commands (e.g.,
htop,ssh) will open attached (on macOS a new Terminal window)
- If background mode is enabled (toggle with
b), output is written to logs under:
~/.go-recipe/logs/
Cutting a new release is automated via GitHub Actions and GoReleaser.
- Ensure tests are green:
make test - Choose a new semver tag, e.g.
v1.2.3. - Tag and push:
git checkout master git pull git tag -a v1.2.3 -m "Release v1.2.3" git push origin v1.2.3 - The CI workflow (triggered by tags
v*.*.*) runs GoReleaser and publishes cross-platform binaries and checksums on the GitHub Releases page.
-
Via
go install:go install github.com/Tomlord1122/go-recipe/cmd/go-recipe@v1.2.0
-
Or download a prebuilt binary from the Releases page, extract it, and run:
./go-recipe version
Each release includes checksums.txt. To verify:
shasum -a 256 -c checksums.txtMIT License