30 open-source projects similar to schniz/fnm, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Schniz Fnm alternative.
n is a command line version manager and binary manager for the Node.js runtime environment. It functions as a runtime environment switcher, allowing for the installation and management of multiple Node.js versions to maintain compatibility across different projects. The tool orchestrates the downloading and caching of Node.js binaries from official or custom distribution mirrors. It enables switching between installed versions via a command line interface or interactive menu, providing the ability to execute scripts using specific versions from a local cache without performing a full system i
Volta is a cross-platform toolchain orchestrator and JavaScript toolchain manager. It functions as a version manager for Node.js and related package managers, allowing for the installation and coordination of multiple runtimes across a system. The project operates as a project-based version switcher, automatically detecting and switching to the required tool versions based on the current directory. This ensures environment consistency across different developer machines by resolving versions through project configuration.
This project is a command-line tool designed for managing multiple runtime versions on a local machine. It functions as a shell-based environment manager that enables users to install, switch between, and maintain different versions of a runtime to support project-specific requirements or diverse shell sessions. By dynamically updating system paths and environment variables, it provides a consistent interface for runtime version control across various Unix-like operating systems. The tool distinguishes itself through its portable, POSIX-compliant shell implementation, which ensures reliable e
nvm is a Node.js version manager implemented as a POSIX bash script. It serves as a shell environment manager and runtime orchestrator for installing, switching, and managing multiple versions of the Node.js runtime on POSIX systems. The tool allows for the automation of runtime switching by reading configuration files in project directories to select the required version. It supports the management of long-term support releases and the migration of global packages between different installed versions of the runtime. The project covers broader capabilities including runtime management throug
SDKMAN is a command-line utility for installing, tracking, and managing multiple versions of software development kits on Unix systems. It functions as a software installer and environment manager that automates the downloading and configuration of development tools for Linux and macOS. The tool enables the installation of parallel SDK versions on a single system and provides the capability to toggle between them to change the active environment for a shell session. It specifically facilitates the setup of Java development environments, including the management of various Java Development Kit
Prezto is a Zsh configuration framework and shell environment manager designed to organize environment variables, aliases, and startup scripts through a modular file structure. It functions as a plugin collection and prompt theme engine, utilizing Zsh-native scripting to manage shell behavior across different platforms. The framework distinguishes itself through a modular-based configuration and submodule-driven extensions, allowing users to load discrete functional modules and update core components via Git. It features a dedicated prompt engine that integrates repository metadata and system
Pixi is a conda environment manager that creates reproducible, lock-file-backed environments with cross-platform support and multi-language dependency resolution. It combines package management from both conda-forge and PyPI simultaneously, coordinating their dependency graphs to prevent conflicts, while pinning every transitive dependency to exact versions in a cross-platform lock file for bit-for-bit identical environments across machines. The project distinguishes itself by also functioning as a cross-platform task runner that executes user-defined commands and multi-step pipelines inside
This project provides a functional package manager and a reproducible build system designed to ensure identical build inputs always produce the same outputs. It serves as the foundation for a declarative Linux distribution where the entire system state is defined in a configuration file, enabling predictable deployments and full-system rollbacks. The system uses a deterministic functional language and a lazy-evaluation expression engine to manage software dependencies and isolate build environments. It distinguishes itself through a content-addressable store that allows multiple versions of s
xxh is a framework for orchestrating and managing portable shell environments across remote hosts. It enables users to synchronize local shell configurations, aliases, and custom tools to remote servers over secure shell connections, ensuring a consistent command-line experience without requiring root access or system-wide installations on the target machines. The project distinguishes itself through a modular, plugin-based architecture that allows for the dynamic injection of tools and scripts during session initialization. It provides capabilities for bundling shell dependencies into standa
Vfox is a command-line utility designed to manage multiple programming language runtimes and development tools on a single machine. It provides a unified interface for installing, switching, and configuring software versions across different operating systems, ensuring consistent development environments. The project distinguishes itself through a modular, plugin-based architecture that allows for the integration of diverse language runtimes and utilities beyond built-in defaults. It utilizes a combination of shim-based execution, symlink management, and dynamic shell-hook environment injecti
DevOps-Bash-tools is a collection of shell scripts and aliases designed to automate cloud infrastructure, container orchestration, and CI/CD pipelines. It provides a comprehensive toolset for managing operational workflows through the command line. The project specializes in automating tasks across multiple platforms, including managing namespaces and secrets in Kubernetes, auditing resources in AWS and GCP, and triggering builds or managing environment variables in GitHub Actions, GitLab CI, and CircleCI. It also includes a toolkit for interacting with container registries to query manifests
x-cmd is an AI agent orchestrator, cloud infrastructure CLI, and cross-platform package manager that provides an enhanced POSIX shell toolkit. It integrates large language models directly into the terminal for chatting, code generation, and the execution of agentic workflows, while offering a framework for building interactive terminal user interface components. The project distinguishes itself by deploying containerized AI agents within isolated sandboxes, provisioning them with specialized skills and headless browser automation capabilities. It further streamlines development through a unif
rbenv is a Ruby version manager and shell shim environment manager. It allows for the installation of multiple Ruby versions on a single machine and coordinates the selection of the active version based on the current directory or shell session. The tool functions as an extensible command line framework that intercepts executable calls using shell shims. These shims route requests to the selected language version, ensuring environment isolation by storing binaries in independent directories. The system includes capabilities for language runtime administration, including the ability to downlo
Virtual environment for Node.js & integrator with virtualenv
This project is a command-line utility designed to manage multiple runtime versions on a single machine. It enables developers to install, remove, and toggle between different versions to satisfy project-specific dependency requirements, ensuring that each environment remains isolated to prevent version conflicts or path overlaps. The tool functions by storing distinct runtime versions in separate, isolated directories and utilizing symbolic links to point to the currently active version. It orchestrates these file system operations through a unified command-line interface that modifies syste
Moon is a monorepo build system and task runner designed to orchestrate complex projects with multiple packages. It functions as a dependency graph orchestrator that executes build targets in topological order and utilizes input hashing to cache results and skip redundant work. The project features a polyglot toolchain manager that automates the installation and versioning of language runtimes and CLI tools to ensure environment consistency. It also includes a plugin framework based on WebAssembly, allowing developers to extend build logic and toolchain behavior using any supported language.
cross-env is a Node.js command line utility and cross-platform shell script runner. It functions as an environment variable setter that ensures variables are handled identically across Windows, macOS, and Linux. The tool standardizes variable assignment by wrapping shell execution in a uniform interface, allowing scripts to run consistently regardless of the underlying operating system. This enables the use of a single syntax for environment configuration across diverse shell environments. The project covers capabilities for automated build tooling, Node.js environment configuration, and the
direnv is a shell environment manager and directory-based environment loader that automatically loads and unloads environment variables when switching between directories. It functions as a shell hook automation tool, injecting logic into the shell configuration to trigger environment updates based on the current project context. The project acts as a development environment isolator by localizing shell configurations, which prevents dependency conflicts and removes project-specific exports from global profile files. It includes specialized integration for Nix, allowing the loading of environ
Cheat is a command-line cheatsheet manager and terminal reference tool used for creating and viewing searchable, interactive guides. It functions as a plain-text knowledge base that organizes technical notes and command snippets through a hierarchical directory structure and metadata tags. The tool provides context-aware note management by discovering and displaying project-specific documentation based on the current working directory. It allows for the creation of a personalized collection of reference files that can be retrieved directly within a shell environment to assist with command opt
Inshellisense is a command line productivity tool and shell autocomplete engine. It provides IDE-style command suggestions and real-time completions to reduce typing errors and accelerate command entry within the terminal. The tool is designed as a cross-shell completion utility, delivering a consistent autocomplete experience regardless of the specific shell environment being used. It includes a shell alias expansion system to resolve custom shortcuts and generate accurate suggestions for user-defined commands. The system manages terminal productivity through intelligent command completion
Zim is a Zsh configuration framework and environment manager designed to optimize shell performance and productivity. It serves as a plugin manager, prompt customizer, and performance optimizer that bundles themes and modules into a cohesive system. The framework distinguishes itself by using bytecode compilation to accelerate shell startup times and improve execution speed. It employs a modular system for installing, updating, and synchronizing external shell modules and scripts from local or remote sources. The project covers a broad range of capabilities, including developer workflow auto
z is a shell navigation utility and directory history tracker designed to reduce the amount of typing required to move through deep directory structures. It functions as a command line tool for jumping to frequently and recently visited directories using a ranking algorithm. The tool utilizes a frecency-based path jump system that weights the number of visits against the time elapsed since the last access to determine priority. It identifies candidate navigation targets by applying regular expression patterns against a database of visited paths. The utility integrates with the shell completi
Starship is a cross-shell prompt engine that provides a unified, context-aware command line interface. It functions as a terminal customization tool, allowing users to modify the appearance and behavior of their shell prompts through a centralized, configuration-driven utility. The project operates as a compiled, statically linked binary that integrates directly into shell startup sequences to ensure consistent performance across different operating systems. By utilizing shell-agnostic hooks, it injects dynamically generated strings into the prompt regardless of the underlying command interpr
Devbox is a development environment orchestrator designed to create reproducible, isolated workspaces for software projects. By leveraging declarative configuration files and the Nix package manager, it ensures that project dependencies, environment variables, and tooling remain consistent across different machines and team members. It functions as a central manager for project-specific environments, providing isolated shell execution that prevents conflicts with host system software. The project distinguishes itself through its ability to bridge local development and cloud-hosted infrastruct
This project is a Maven plugin that integrates Node.js and npm build processes into the Java build lifecycle. It acts as a build orchestrator and environment manager, allowing the execution of npm scripts and frontend task runners during a Java project's build process. The plugin manages the downloading and extraction of specific Node.js and npm binaries into local project directories. This ensures consistent, cross-platform build environments by resolving binaries based on the host operating system and CPU architecture without modifying the global system state. It provides orchestration for
setup-node is a GitHub Action that downloads, installs, and configures a specified Node.js runtime in continuous integration workflows. It resolves version specifiers from semantic version ranges or aliases like "lts/*" against a remote manifest, selects the correct binary for the runner’s operating system and architecture, and can reuse previously installed versions from GitHub’s hosted tool cache. The action accelerates repeat workflow runs by caching global package dependencies using a lock file as the cache key, restoring them automatically on subsequent runs. It manages version resolutio
Cash is a JavaScript implementation of Unix shell utilities and command-line interfaces. It provides a collection of standard system-level text processing and file manipulation tools written in ES6 that run without native compilation or external dependencies. The project allows for the programmatic execution of shell operations using function calls and tagged templates. It implements a system for chaining multiple commands together to filter and transform data through programmatic pipelines, mimicking standard shell pipe behavior. These capabilities enable the execution of Unix-style command
Weasel is a Chinese input method frontend and configurable engine designed to convert keystrokes into Chinese characters. It serves as a cross-platform text entry tool that manages character lookup and prediction layouts through a customizable framework. The system allows users to define original typing rules and layouts to personalize the text entry experience. It supports the design of custom schemes and the modification of character prediction and lookup behaviors via configuration files. The tool provides capabilities for multilingual keyboard configuration and the ability to toggle betw