Welcome to uptool¶
Universal, Manifest-First Dependency Updater
uptool combines the ecosystem breadth of Topgrade, the precision of Dependabot, and the flexibility of Renovate — but with a manifest-first philosophy that works across ANY project toolchain defined in configuration files.
Why uptool?¶
Modern projects use dozens of tools across multiple ecosystems. uptool helps you manage:
- Language dependencies: npm packages
- Infrastructure tools: Terraform modules, Helm charts
- Development tools: pre-commit hooks, tflint plugins
- Runtime version managers: asdf (
.tool-versions), mise (mise.toml)
Each ecosystem has its own update mechanism. Keeping them all current is tedious and error-prone.
uptool provides a unified interface to scan, plan, and update dependencies across all your manifest files.
Manifest-First Philosophy¶
Unlike traditional dependency updaters that focus on lockfiles, uptool updates manifest files directly (package.json, Chart.yaml, *.tf files, etc.), preserving your intent while keeping dependencies current.
The Approach¶
- Update manifests first:
package.json,Chart.yaml,*.tffiles - Use native commands when they update manifests:
pre-commit autoupdateupdates.pre-commit-config.yaml✅ - Don't use commands that only update lockfiles:
npm updateonly touchespackage-lock.json❌ - Then optionally run native lockfile updates:
npm install,terraform init, etc.
This ensures your declared dependencies stay current, not just resolved versions.
Key Features¶
-
Multi-Ecosystem Support
npm, Helm, Terraform, tflint, pre-commit, asdf, mise — all in one tool
-
Manifest-First Updates
Updates configuration files directly, preserving formatting and comments
-
Intelligent Version Resolution
Queries upstream registries (npm, Terraform Registry, Helm repos, GitHub Releases)
-
Safe by Default
Dry-run mode, diff generation, validation before applying changes
-
Concurrent Execution
Parallel scanning and planning with worker pools for fast performance
-
GitHub Action Integration
Use as a CLI tool locally or as a GitHub Action in CI/CD pipelines
Quick Example¶
# Scan for outdated dependencies
uptool scan
# Preview available updates
uptool plan
# Apply updates with diff preview
uptool update --diff
# Filter by integration
uptool update --only npm,terraform
Supported Integrations¶
| Integration | Status | Manifest Files | Registry |
|---|---|---|---|
| npm | ✅ Stable | package.json |
npm Registry API |
| Helm | ✅ Stable | Chart.yaml |
Helm chart repositories |
| pre-commit | ✅ Stable | .pre-commit-config.yaml |
GitHub Releases |
| Terraform | ✅ Stable | *.tf |
Terraform Registry API |
| tflint | ✅ Stable | .tflint.hcl |
GitHub Releases |
| asdf | ⚠️ Experimental | .tool-versions |
GitHub Releases (per tool) |
| mise | ⚠️ Experimental | mise.toml, .mise.toml |
GitHub Releases (per tool) |
Getting Started¶
Ready to get started? Choose your path:
-
Install uptool via Go, pre-built binaries, or package managers
-
Get up and running in 5 minutes with a sample project
-
Deep dive into configuration, environments, and advanced usage
-
Automate dependency updates in your CI/CD pipelines
Community & Support¶
- GitHub: santosr2/uptool
- Issues: Report a bug
- Discussions: Ask questions
- Security: See our Security Policy
Project Status¶
Info
uptool is under active development. The current focus is on:
- ✅ Stabilizing core integrations (npm, Helm, Terraform, pre-commit, tflint)
- 🚧 Completing asdf/mise integrations (detection works, updates not yet implemented)
- 🚧 Expanding test coverage (target: >70%)
- 🚧 Adding Python ecosystem support
- 📝 Improving documentation and examples
License¶
uptool is released under the MIT License.
Made with ❤️ by the uptool contributors