Skip to main content

CLI for DevOps tools installation

Project description

DevToolPack

One command to set up your entire DevOps environment — on any machine, any OS, any shell.

CI Python 3.9+ License: Apache 2.0


The problem it solves

You join a new project. The README says "install Terraform, kubectl, AWS CLI, and Docker before you start." You spend the next hour hunting download pages, unzipping archives, figuring out why terraform isn't on your PATH, and wondering why the version you grabbed is different from what CI uses.

DevToolPack removes that friction. One CLI, one command per tool, automatic PATH wiring — and it works the same way on Windows, macOS, and Linux (including Arch-based distros like CachyOS).


How much time does it actually save?

Manual environment setup for a typical DevOps stack takes 45–90 minutes on a fresh machine:

Task Manual DevToolPack
Install Terraform ~10 min devpack install terraform
Install kubectl ~8 min devpack install kubectl
Install AWS CLI ~12 min devpack install awscli
Install Go ~10 min devpack install golang
Install Rust ~8 min devpack install rust
Configure PATH for all tools ~15 min automatic
Verify everything works ~10 min devpack doctor
Total ~73 min < 5 min

That's not just onboarding time. It's every time you provision a CI runner, spin up a dev container, or set up a new machine.


Quick start

pip install devtoolpack

Install a tool:

devpack install terraform
devpack install kubectl
devpack install golang

Check your environment:

devpack doctor

List everything available:

devpack list-tools

Supported tools

Tool Method Windows Linux macOS
Terraform Binary
AWS CLI Binary/MSI
kubectl Binary
Git Binary/pkg manager
AWS SAM CLI Binary
LocalStack pip
AWS CDK npm
Docker Installer/script
Rust rustup
Go Binary

Linux package manager support: apt, pacman (Arch/CachyOS/Manjaro), dnf, yum, zypper.

Docker on macOS requires manual installation via Docker Desktop.


Shell support

DevToolPack writes PATH entries to the right config file automatically:

Shell Config file
bash ~/.bashrc
zsh ~/.zshrc
fish ~/.config/fish/config.fish
PowerShell Microsoft.PowerShell_profile.ps1
cmd.exe Windows registry (HKCU\Environment)

Changes take effect in the current session immediately (no restart needed) and persist across new sessions.


Automate with a hook

If your team uses Kiro, you can wire DevToolPack into a postTaskExecution hook so every new environment is validated automatically after setup tasks complete:

{
  "name": "Verify DevOps environment",
  "version": "1.0.0",
  "description": "Run devpack doctor after any setup task completes",
  "when": {
    "type": "postTaskExecution"
  },
  "then": {
    "type": "runCommand",
    "command": "devpack doctor"
  }
}

Save this as .kiro/hooks/verify-env.json and devpack doctor will run automatically after each task — catching missing tools before they block anyone.


Project structure

devpack/
├── cli.py              # Typer entry point
├── commands/           # install, doctor, list-tools
├── tools/              # One file per tool (terraform.py, kubectl.py, …)
├── installer/          # Download + extraction engine
├── env/                # PATH management, shell detection
├── doctor/             # Installation validator
└── utils/              # Logger

configs/
└── tools.yaml          # Versions and download URLs per OS/arch

Tool configuration lives in configs/tools.yaml. URL resolution follows the pattern <os>_<arch>_url<os>_urlurl, so adding arm64 support for a new tool is a one-line YAML change.


Development

git clone https://github.com/Emilio-Gordillo-Esparragoza/devtool-pack.git
cd devtool-pack
pip install -e ".[dev]"

Run tests:

pytest -q

Run tests with coverage:

pytest --cov=devpack --cov-report=term-missing

Lint:

ruff check devpack tests

Add a new tool: see CONTRIBUTING.md.


License

Apache 2.0 — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

devtoolpack-0.2.0.tar.gz (15.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

devtoolpack-0.2.0-py3-none-any.whl (25.6 kB view details)

Uploaded Python 3

File details

Details for the file devtoolpack-0.2.0.tar.gz.

File metadata

  • Download URL: devtoolpack-0.2.0.tar.gz
  • Upload date:
  • Size: 15.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for devtoolpack-0.2.0.tar.gz
Algorithm Hash digest
SHA256 898c94b8a22c4f8902af8698cf8e41a86efb4f64717be49de9a33c75c4871959
MD5 49757820344750cc4c3c0c7da8156880
BLAKE2b-256 37c5b04942ca0e6a787f90a257dd1703d87af7908c7f946ba5774ee29ef94c55

See more details on using hashes here.

Provenance

The following attestation bundles were made for devtoolpack-0.2.0.tar.gz:

Publisher: python-publish.yml on Emilio-Gordillo-Esparragoza/devtool-pack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file devtoolpack-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: devtoolpack-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 25.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for devtoolpack-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0361a5ef69028567806423ebff6796d9fe2e57ab13cc55b22cd1512432201187
MD5 fbd76d4693676847912cdc881fa07a0b
BLAKE2b-256 453f52c69221b89c7fcb4aae5d88f5c98cb6018e07f2af2d76b2f491e2ab19d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for devtoolpack-0.2.0-py3-none-any.whl:

Publisher: python-publish.yml on Emilio-Gordillo-Esparragoza/devtool-pack

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page