sake is a command runner for local and remote hosts. You define servers and tasks in sake.yaml file and then run the tasks on the servers.
Interested in managing your git repositories in a similar way? Check out mani!
- Auto-completion of tasks, servers and tags
- SSH into servers or docker containers
sake ssh <server> - List servers/tasks via
sake list servers|tasks - Present task output in a compact table format
sake run <task> --output table - Open task/server in your preferred editor
sake edit task <task> - Import other
sake.yamlconfigs - Many more!
Sake is an MIT-licensed open source project with ongoing development. If you'd like to support their efforts, check out Tabify - a Chrome extension that enhances your browsing experience with powerful window and tab management, focus-improving site blocking, and numerous features to optimize your browser workflow.
sake is available on Linux and Mac.
-
Binaries are available on the release page
-
via cURL
curl -sfL https://raw.githubusercontent.com/alajmo/sake/main/install.sh | sh -
via Homebrew
brew tap alajmo/sake brew install sake
-
via MacPorts
sudo port install sake
-
via Arch
pacman -S sake
-
via pkg
pkg install sake
-
Via Go
go install github.com/alajmo/sake@latest
Auto-completion is available via sake completion bash|zsh|fish and man page via sake gen.
Requires go 1.19 or above.
- Clone the repo
- Build and run the executable
make build && ./dist/sake # To build for all target platforms run (requires goreleaser CLI) make build-all
Run the following command:
$ sake init Initialized sake in /tmp/sake - Created sake.yaml Following servers were added to sake.yaml Server | Host -----------+--------- localhost | 0.0.0.0# List all servers $ sake list servers Server | Host -----------+--------- localhost | 0.0.0.0 # List all tasks $ sake list tasks Task | Description ------+------------- ping | Pong # Run Task $ sake run ping --all TASK ping: Pong ************ 0.0.0.0 | pong # Count number of files in each server in parallel $ sake exec --all --output table --strategy=free 'find . -type f | wc -l' Server | Output -----------+-------- localhost | 1Check out the examples page for more advanced examples and the recipes page for a list of useful recipes.
- Examples
- Recipes
- Config Reference
- Command Reference
- Documentation
- Project
- Development
- Changelog
The MIT License (MIT)
Copyright (c) 2022 Samir Alajmovic
