/toolctl

controls your tools

Primary LanguageGoMIT LicenseMIT

toolctl

A drawing of a cute gopher holding a wrench

GitHub Workflow Status (main branch) Go Report Card GitHub release (latest) GitHub

toolctl helps you manage your tools on Linux and macOS.

Installation

Automatic

curl -fsSL https://raw.githubusercontent.com/toolctl/install/main/install | sh

Manual

You can download the latest version of toolctl and run it from any directory you like.

Getting Started

Get information about tools

Info about all installed and supported tools

❯ toolctl info
[k9s      ] ✨ k9s v0.25.8: Kubernetes CLI to manage your clusters in style
[k9s      ] ✅ k9s v0.25.8 is installed at /home/adent/.local/bin/k9s
[kubectl  ] ✨ kubectl v1.23.0: The Kubernetes command-line tool
[kubectl  ] 🔄 kubectl v1.21.2 is installed at /home/adent/.local/bin/kubectl

Info about a specific tool

❯ toolctl info gh
✨ gh v2.4.0: GitHub's official command line tool
🏠 https://cli.github.com/
❌ Not installed

Install tools

Install the latest version of a tool

❯ toolctl install k9s
👷 Installing v0.25.8 ...
🎉 Successfully installed

Install a specific version of a tool

❯ toolctl install terraform@0.11.15
👷 Installing v0.11.15 ...
🎉 Successfully installed

Upgrade tools

❯ toolctl upgrade
[gh     ] ✅ Already up to date (v2.34.0)
[toolctl] ✅ Already up to date (v0.4.11)
[yq     ] 👷 Upgrading from v4.13.4 to v4.13.5 ...
[yq     ] 👷 Removing v4.13.4 ...
[yq     ] 👷 Installing v4.13.5 ...
[yq     ] 🎉 Successfully installed

Supported Tools

Currently, toolctl supports the following tools:

  • age: A simple, modern and secure encryption tool
  • age-keygen: A simple, modern and secure encryption tool
  • air: Live reload for Go apps
  • chezmoi: Manage your dotfiles across multiple diverse machines, securely
  • cloudflared: Cloudflare Tunnel client
  • dive: A tool for exploring each layer in a docker image
  • dockerfilegraph: Visualize your multi-stage Dockerfiles
  • eksctl: The official CLI for Amazon EKS
  • gdu: Fast disk usage analyzer with console interface written in Go
  • gh: GitHub's official command line tool
  • godolint: Dockerfile linter, written in Golang 🐳
  • golangci-lint: Fast linters runner for Go
  • goreleaser: Deliver Go binaries as fast and easily as possible
  • gping: Ping, but with a graph
  • helm: The Kubernetes package manager
  • hugo: The world's fastest framework for building websites
  • k9s: Kubernetes CLI to manage your clusters in style
  • kind: Kubernetes in Docker - local clusters for testing Kubernetes
  • kompose: Convert Compose to Kubernetes
  • kops: Production grade K8s installation, upgrades, and management
  • kubectl: The Kubernetes command-line tool
  • kubectx: Faster way to switch between Kubernetes contexts
  • kubefwd: Bulk port forwarding Kubernetes services for local development
  • kubens: Faster way to switch between Kubernetes namespaces
  • kuberlr: Simple management of multiple kubectl versions
  • kustomize: Template-free customization of Kubernetes configuration
  • minikube: Run Kubernetes locally
  • pulumi: Developer-first infrastructure as code
  • skaffold: Easy and repeatable Kubernetes development
  • sops: Simple and flexible tool for managing secrets
  • stern: Multi pod and container log tailing for Kubernetes
  • task: A task runner / simpler Make alternative written in Go
  • terraform: Infrastructure as code software tool
  • tkn: A CLI for interacting with Tekton
  • toolctl: The tool to control your tools
  • yq: Portable command-line YAML processor

Our goal is to support as many tools as possible, so expect this list to grow significantly over time.

In general, toolctl currently supports any tool that:

✔ consists of a single executable file
✔ runs on Linux and/or macOS
✔ includes a command or flag to print its semantic version
✔ provides its source code and precompiled binaries online under a free and open source license

If you know a tool that fits all of these criteria, please open an issue and let us know!

Credits

The toolctl logo was created with gopherize.me. Artwork by Ashley McNamara based on original artwork by Renee French.

License

MIT