Skip to content

almeidx/versi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

720 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Versi

Versi is a native desktop app for managing Node.js versions.

It currently supports multiple backends (fnm, nvm, asdf, and volta) through a backend-agnostic architecture, so backend-specific behavior is isolated from the GUI and platform layers.

Versi screenshot

Features

  • Manage installed Node.js versions with install, uninstall, set-default, and use actions
  • Backend selection and detection during onboarding (fnm, nvm, asdf, and volta)
  • Bulk operations: update majors, remove EOL versions, keep only latest per major
  • Shell integration setup and verification
  • Environment-aware management (native + WSL on Windows)
  • Search, filtering, and grouped version lists
  • Light/dark theme support with system preference integration
  • System tray support with quick actions
  • In-app update checks and platform-specific self-update flow

Installation

Download Pre-built Binaries

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

macOS Installation

  1. Download the appropriate .zip file for your Mac.
  2. Extract the archive.
  3. Run the install script (recommended):
    ./install.sh
    This removes quarantine attributes and moves Versi.app to your Applications folder.

Manual install:

  • Drag Versi.app to /Applications.
  • If macOS blocks first launch:
    xattr -cr "/Applications/Versi.app"
    Or right-click the app and choose "Open".

Windows Installation

  1. Download versi-windows-x64.msi.
  2. Run the installer.
  3. Launch Versi from the Start Menu.

Linux Installation

  1. Download the appropriate .zip file.
  2. Extract:
    unzip versi-linux-x64.zip
  3. Move the binary to your PATH:
    sudo mv versi /usr/local/bin/
  4. Optional desktop entry:
    mv dev.almeidx.versi.desktop ~/.local/share/applications/

Build from Source

Prerequisites

  • Rust stable toolchain with Rust 2024 edition support
  • Linux only: GTK/AppIndicator dev libraries
    sudo apt-get install -y libgtk-3-dev libayatana-appindicator3-dev

You do not need fnm/nvm/asdf/volta installed to build. At runtime, Versi will detect configured backends and guide setup via onboarding.

Build Steps

git clone https://github.com/almeidx/versi.git
cd versi
cargo build -p versi --release

Binary output:

  • target/release/versi

Usage

  1. First launch: select a backend and complete setup if needed.
  2. Main view: browse installed versions grouped by major.
  3. Install: use the install flow to fetch available versions.
  4. Set default / use: set shell default or activate a version.
  5. Uninstall: remove versions with confirmation for destructive actions.
  6. Bulk actions: update majors or clean old/EOL versions.
  7. Settings: theme, shell integration, launch options, logging.

Development

# Run app
cargo run -p versi

# Build/check
cargo build --workspace
cargo check --workspace

# Tests
cargo test --workspace

# Format
cargo fmt --all
cargo fmt --all -- --check

# Lint (local strict mode used in CI)
cargo clippy --workspace --all-targets --all-features -- -D warnings

For contributor and agent-facing details, see AGENTS.md.

Runtime Requirements

  • At least one backend available (fnm, nvm, asdf, or volta) for version management
  • Shell integration configured for full command-line behavior

Contributing

  1. Fork and branch.
  2. Implement changes with tests.
  3. Run formatting, tests, and clippy.
  4. Open a PR.

License

GNU General Public License v3.0. See LICENSE.

Acknowledgments

About

A native GUI application for managing Node.js versions

Topics

Resources

License

Stars

Watchers

Forks

Contributors