This repository centralizes the small but important scripts that tend to accumulate across projects: version management, packaging and release helpers, asset processing utilities, and ecosystem specific developer tooling.
Toolbox Envy is the conceptual companion to the Reusable Workflows repository. Where reusable workflows provide high-level CI structure, Toolbox Envy houses the concrete, reusable scripts those workflows rely on to keep procedural logic out of CI definitions.
It exists to provide a shared, automation toolbox that:
- Keeps individual project repositories clean
- Eliminates duplicated logic across codebases
- Works identically in local environments and CI
- Prefers simple, composable shell implementations
- Remains easy to audit, maintain, and grow over time
toolbox-envy/
├── bin/
│ ├── common/ # generic scripts usable anywhere
│ ├── flutter/ # Flutter-specific tooling
│ ├── media/ # image and media processing utilities
│ └── rust/ # Rust-specific tooling
└── docs/ # usage notes where needed
Each ecosystem directory is designed to be added to your PATH independently so projects only pull in the tools they actually need.
Toolbox Envy is designed around conventional script interfaces so the same operations behave consistently across ecosystems. For example, a CI workflow does not need to know how a project stores or updates its version, only that the operation behaves predictably:
$ get-project-version
0.8.0
$ get-project-version | bump-semver --minor | set-project-version
$ get-project-version
0.9.0
$ get-project-version | bump-changelog-versionThe workflow defines when versioning occurs. Toolbox Envy defines how those versioning operations work across different languages and project types.
Add the Toolbox Envy directories you want via direnv, mise, or similar:
direnv
PATH_add ../toolbox-envy/bin/common
PATH_add ../toolbox-envy/bin/flutter
PATH_add ../toolbox-envy/bin/mediamise
[env]
_.path = [
"../toolbox-envy/bin/common",
"../toolbox-envy/bin/flutter",
"../toolbox-envy/bin/media",
]Expose Toolbox Envy tools directly in workflows using the built-in action:
- name: Add Toolbox Envy to PATH
uses: EarthmanMuons/toolbox-envy/.github/actions/add-to-path@v1
with:
include_bins: |
common
flutter
mediaSee docs/github-action.md for full details.
Because every good shop has that one perfectly organized toolbox you wish was yours.
Toolbox Envy is released under the Zero Clause BSD License (SPDX: 0BSD).
Copyright © 2026 Aaron Bull Schaefer and contributors
