A native GUI application for managing Node.js versions.
- View and manage installed Node.js versions
- Install/uninstall Node.js versions
- Set default Node.js version
- Bulk operations: update all majors, clean EOL versions, keep only latest per major
- Check for updates and install them
- Light and dark theme support (follows system preference)
- Shell configuration detection and setup
- Search and filter versions
- System tray support with quick version switching
- WSL integration on Windows (manage Node.js in WSL distros)
Download the latest release for your platform from the Releases page.
| Platform | Download |
|---|---|
| macOS (Apple Silicon) | versi-macos-arm64.zip |
| macOS (Intel) | versi-macos-x64.zip |
| Windows (x64) | versi-windows-x64.msi |
| Linux (x64) | versi-linux-x64.zip |
| Linux (ARM64) | versi-linux-arm64.zip |
-
Download the appropriate
.zipfile for your Mac -
Extract the zip file
-
Run the install script (recommended):
./install.sh
This will remove the quarantine attribute and move
Versi.appto your Applications folder.Or install manually:
- Drag
Versi.appto your Applications folder - On first launch, macOS may block the app because it's not signed. To fix this:
Or right-click the app and select "Open" to bypass Gatekeeper.
xattr -cr "/Applications/Versi.app"
- Drag
- Download
versi-windows-x64.msi - Double-click to run the installer
- The app will be available in your Start Menu
- Download the appropriate
.zipfile - Extract the archive:
unzip versi-linux-x64.zip
- Move the binary to a location in your PATH:
sudo mv versi /usr/local/bin/
- (Optional) Install the desktop entry for application launchers:
mv dev.almeidx.versi.desktop ~/.local/share/applications/
# Clone the repository
git clone https://github.com/almeidx/versi.git
cd versi
# Build in release mode
cargo build --release
# The binary will be at target/release/versi-
First Launch: If fnm is not detected, the app will guide you through installation and shell configuration.
-
Main View: Shows all installed Node.js versions grouped by major version. Click a group to expand/collapse.
-
Install: Click the "Install" button to browse and install new versions. Recommended versions are shown at the top.
-
Set Default: Click "Set Default" on any version to make it the default.
-
Uninstall: Click "Uninstall" to remove a version. A toast notification appears with an "Undo" option.
-
Updates: If a newer version is available for an installed major version, an update badge appears. Click it to install.
-
Settings: Access theme preferences and shell configuration status.
versi/
├── crates/
│ ├── versi/ # Main GUI application
│ ├── versi-core/ # fnm CLI wrapper library
│ ├── versi-shell/ # Shell detection & configuration
│ └── versi-platform/ # Platform abstractions
# Run in development mode
cargo run
# Run tests
cargo test
# Check code
cargo clippy
# Format code
cargo fmtThe application uses Iced with the Elm architecture:
- State: Immutable application state
- Message: Events that trigger state changes
- Update: Logic to handle messages and produce side effects
- View: Pure functions rendering state to UI
See AGENTS.md for detailed development documentation.
- fnm: The application requires fnm to be installed. If not found, the onboarding wizard will help you install it.
- Shell Configuration: fnm needs to be configured in your shell for full functionality.
GNU General Public License v3.0 - see LICENSE for details.
Contributions are welcome! Please read the contributing guidelines before submitting a PR.
- Fork the repository
- Create a feature branch
- Make your changes
- Run tests and linting
- Submit a pull request
