Skip to main content

atmos toolchain update: Move a Pinned Tool Forward Safely

· 2 min read
Erik Osterman
Founder @ Cloud Posse

Pinning a CLI tool to an exact version is good practice — until it's time to move forward. Then it means opening .tool-versions by hand, going to check the tool's release page, picking a version, and editing the line yourself. Get it wrong and you're stuck rerunning install commands to find out.

The Problem

A tool declared in .tool-versions stays exactly where you pinned it, on purpose — that's what makes it reproducible. But "pinned" shouldn't mean "stuck." When a new release ships, moving a tool forward has always meant editing the file by hand: look up the tool's latest release yourself, write the new version string into .tool-versions, then reinstall and hope you copied it correctly. There was no single command that answered "what's newer, and can I have it?"

The Fix

atmos toolchain update resolves each tool's newest available version and moves the pin forward for you, then installs it. Run it with no arguments to update everything in .tool-versions, or name specific tools to update just those. Tools pinned to a PR, commit SHA, or git ref are left alone — those pins are meant to stay exact, so update skips them with an explanation instead of silently doing nothing.

How to Use It

Update everything:

$ atmos toolchain update
✓ terraform: 1.9.8 -> 1.11.4
✓ jq: up to date (1.8.2)
Updated 1 tool(s), 1 up to date

Update one tool, or preview first:

$ atmos toolchain update terraform --dry-run
terraform: 1.9.8 -> 1.11.4 (dry-run)
Would update 1 tool(s)

Tools are updated concurrently, with the same --max-concurrency control atmos toolchain install already supports.

Get Involved

Try atmos toolchain update the next time a pinned tool falls behind. If you run into a tool whose update doesn't behave the way you'd expect, please open an issue.