Skip to content

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

  1. Update manifests first: package.json, Chart.yaml, *.tf files
  2. Use native commands when they update manifests: pre-commit autoupdate updates .pre-commit-config.yaml
  3. Don't use commands that only update lockfiles: npm update only touches package-lock.json
  4. 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:

  • Installation


    Install uptool via Go, pre-built binaries, or package managers

  • Quick Start


    Get up and running in 5 minutes with a sample project

  • User Guide


    Deep dive into configuration, environments, and advanced usage

  • GitHub Action


    Automate dependency updates in your CI/CD pipelines


Community & Support


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