A general-purpose helper CLI built with Go and Cobra.
Homebrew:
brew tap Robert27/tap
brew install eggl-cliShell completions for bash, zsh, and fish are installed automatically.
Without Homebrew: download the archive for your OS/arch from GitHub Releases, extract eggl (or eggl.exe on Windows), and put it on your PATH. Or, with Go installed:
go install github.com/Robert27/eggl-cli@latestFrom source:
make installOr build a local binary:
make build
./bin/eggl --helpeggl --help
eggl version
eggl version --short
eggl doctor
eggl doctor --verbose
eggl env init
eggl env show
eggl env toggle
eggl pf list
eggl pf longhorn
eggl cd list
eggl cd homelab
eggl completion zshSwitch kubectl context and Tailscale account together from ~/.config/eggl/config.yaml:
profiles:
alpha:
kube_context: context-a
tailscale_account: b3e1
beta:
kube_context: context-b
tailscale_account: a7f2tailscale_account can be an account id, tailnet name, or email from tailscale switch --list. toggle requires exactly two profiles.
Named kubectl port-forwards in the same config file (uses the active kubectl context):
port_forwards:
longhorn:
namespace: longhorn-system
resource: svc/longhorn-frontend
ports: ["8080:80"]ports is optional (defaults to 8080:80). Run eggl pf list or eggl pf longhorn (blocks until Ctrl+C).
Named directories in the same config file. The command prints the resolved path for use in your shell:
directories:
homelab: ~/projects/homelab
work: /Users/me/code/workcd "$(eggl cd homelab)"Optional shell wrapper:
egglcd() { cd "$(eggl cd "$1")" || return; }If you installed via Homebrew, completions are set up for you. Otherwise:
Zsh:
eggl completion zsh > "${fpath[1]}/_eggl"Bash:
eggl completion bash > /etc/bash_completion.d/eggl
# or for the current session:
source <(eggl completion bash)Fish:
eggl completion fish > ~/.config/fish/completions/eggl.fishSee CONTRIBUTING.md for development setup, project layout, and release instructions.