Multi-language dependency updater with Claude-powered CHANGELOG generation and commit messages.
Supported Languages: Go, Python | Node.js (planned)
uv tool install git+https://github.com/bborbe/updateruv tool upgrade updater# Auto-detect language and update
update-deps /path/to/module
# Language-specific
update-go /path/to/go-module
update-python /path/to/python-project
update-docker /path/to/project # Dockerfile base images only, no commit
# Multiple modules or parent directory (discovers recursively)
update-deps /path/to/moduleA /path/to/moduleB
update-deps /path/to/modules
# Options
update-deps /path/to/module --verbose # Show all output
update-deps /path/to/module --model haiku # Choose Claude model (default: sonnet)
update-deps /path/to/module --require-commit-confirm # Confirm before committingGo modules:
- Update versions - golang, alpine (Dockerfile, go.mod, CI configs)
- Apply excludes/replaces - Standard go.mod exclusions for problematic versions
- Update dependencies - Iterative
go get -u - Run validation -
make precommit(tests, linters, formatting) - Analyze changes - Claude determines version bump and generates CHANGELOG entries
- Commit & tag - Git commit with Claude-generated message, git tag from CHANGELOG
Python projects (requires pyproject.toml + uv.lock):
- Update Python version -
.python-version,pyproject.toml, Dockerfile - Update dependencies -
uv sync --upgrade - Run validation -
make precommit - Analyze changes - Claude determines version bump and generates CHANGELOG entries
- Commit & tag - Git commit with Claude-generated message, git tag from CHANGELOG
If a module fails, you'll be prompted:
✗ Module lib/alert failed
→ Fix the issues and retry, or skip this module
Skip or Retry? [s/R]:
- Retry (R): Fix the issue, press R to retry from Phase 1
- Skip (s): Skip this module and continue to next
| Command | Description |
|---|---|
update-deps / update-all |
Auto-detect Go/Python and update |
update-go |
Go modules with dependencies (same as update-go-with-deps) |
update-go-only |
Go version updates only (no dependency updates) |
update-go-with-deps |
Go versions and dependencies (explicit name) |
update-python |
Python projects only (requires pyproject.toml + uv.lock) |
update-docker |
Dockerfile base images only (no commit) |
release-only |
Release unreleased CHANGELOG entries (version bump, commit, tag, push) |
- uv -
curl -LsSf https://astral.sh/uv/install.sh | sh ANTHROPIC_API_KEYenvironment variable- Git repository
- For Go modules:
CHANGELOG.mdin module/package - For Python projects:
pyproject.toml+uv.lock(legacyrequirements.txtnot supported)
- Claude-powered CHANGELOG - Analyzes changes and generates meaningful entries
- Smart version bumping - MAJOR/MINOR/PATCH for code/deps, NONE for infrastructure
- Multi-language support - Go modules and Python projects (uv-based)
- Monorepo support - Recursive discovery with smart lib/-first ordering
- Idempotent - Skips modules already up-to-date
- Version updates - golang, alpine, python (Dockerfile, go.mod, pyproject.toml, CI)
- Clean output - Quiet mode with per-module logs (
.update-logs/) - Legacy project detection - Warns about
requirements.txtprojects
BSD 2-Clause - see LICENSE.