🐭

viscacha

Check your toolchain versions match what the project expects. Node, Python, Rust, Go — one command, one table, zero guessing.

cargo install viscacha

One command. Full picture.

Run viscacha in any project directory. It finds version files, checks your installed tools, and tells you what matches and what doesn't.

~/my-project

$ viscacha --fix


Tool Required Installed Source Status

─────────────────────────────────────────────────────────

node 20 20.11.0 .nvmrc ✓

python 3.11 3.11.4 .python-version ✓

rust 1.76.0 1.80.0 rust-toolchain.toml ✗

go 1.22.0 1.22.0 go.mod ✓

node >=18 20.11.0 package.json ✓

npm >=9 10.2.4 package.json ✓


5 passing, 1 failing


Suggested fixes:

rust: rustup toolchain install 1.76.0 && rustup override set 1.76.0

Features

Everything you need to keep your toolchain in sync.

🔍

Multi-Ecosystem

Node.js, Python, Rust, Go, and npm. Reads 8 different version file formats in one scan.

🔧

Fix Suggestions

The --fix flag prints the exact commands to resolve every mismatch.

🤖

CI-Ready

Quiet mode returns exit codes only. Drop it into GitHub Actions and catch mismatches before builds fail.

Fast & Portable

Written in Rust. Single binary, no runtime. Scans and checks in milliseconds.

Supported Files

File Ecosystem What it reads
.nvmrcNode.jsNode version
.node-versionNode.jsNode version
.tool-versionsasdf / misenodejs, python, rust, golang
rust-toolchain.tomlRust[toolchain] channel
rust-toolchainRustPlain version string
.python-versionPythonPython version
go.modGogo directive
package.jsonNode.js / npmengines.node, engines.npm

Install

$ cargo install viscacha

$ git clone https://github.com/iamkorun/viscacha.git

$ cd viscacha

$ cargo install --path .

Pre-built binaries for Linux, macOS, and Windows are available on the

GitHub Releases page