• Rust 98.5%
  • Shell 1.5%
Find a file
Kovács Bálint Hunor 922ffa382d
feat: license update
2025-11-18 18:22:12 +02:00
src feat: enhanced terminal and shell support with improved detection and fallback mechanisms 2025-09-18 23:11:59 +03:00
.gitignore Initial commit 2025-06-04 16:29:34 +03:00
Cargo.lock release: v1.0.5 2025-09-18 23:12:51 +03:00
Cargo.toml release: v1.0.5 2025-09-18 23:12:51 +03:00
demo.png chore: image fixes 2025-06-15 20:16:24 +03:00
install.sh release: v1.0.5 2025-09-18 23:12:51 +03:00
LICENSE feat: license update 2025-11-18 18:22:12 +02:00
README.md feat: enhanced terminal and shell support with improved detection and fallback mechanisms 2025-09-18 23:11:59 +03:00

nodash

demo.png

nodash is a modern terminal-based project launcher and manager for nvm node projects — fast, minimal, and built with Rust.

Easily manage and open your most-used dev projects with a slick TUI interface.


Features

  • Launch projects with a single keypress, auto-loading Node.js version managers (nvm/fnm).
  • Project Management: Add current directories, store and retrieve projects efficiently.
  • Node.js Version Display: Shows the Node.js version specified in .nvmrc files.
  • Intelligent Sorting: Projects are automatically sorted by their "last opened" date, with the most recent at the top.
  • Quick Search: Filter projects instantly by name or path.
  • Clean TUI: A modern, minimalist text-user interface designed for clarity and theme compatibility.
  • Self-Updating: Keep nodash up-to-date directly from GitHub releases.
  • Minimal footprint: Built with Rust for speed, efficiency, and portability.

Supported Terminals & Shells

🖥️ Terminal Support

When launching a project, nodash opens a new terminal window. Terminal detection and fallback order:

Preferred terminals:

Fallbacks (in order):

  1. xterm
  2. gnome-terminal
  3. konsole

Note:

  • The terminal must be available in your PATH.
  • Termux and other mobile environments are not supported.
  • For Kitty, WezTerm, Ghostty, and fallback terminals, nodash suppresses startup messages for a clean TUI launch.

🐚 Shell Support

nodash works seamlessly with the following shells:

  • Bash (and other POSIX shells)
  • Zsh
  • Fish

When opening a project, nodash will:

  • Automatically activate the Node.js version specified in your .nvmrc file.
  • Use NVM if available, or fall back to FNM if not.

📥 Installation

General GNU/Linux

To install the latest version:

curl -sSL https://raw.githubusercontent.com/MemerGamer/nodash/main/install.sh | bash

Requires curl and sudo to move the binary to /usr/local/bin.

Arch Linux

yay nodash-bin

🚀 Usage

nodash

This command opens the interactive TUI dashboard.

🛠 Commands

You can also use nodash with direct commands:

nodash help

Display all available commands and interactive controls.

nodash add

Adds the current working directory as a new project in your nodash list. It will attempt to detect the Node.js version from a .nvmrc file if present.

nodash update

Check for updates and self-update the binary to the latest version.

Interactive Controls (within the TUI)

  • ↑/↓: Navigate through the project list
  • Enter: Open the selected project in a new terminal, automatically applying NVM/FNM version.
  • A: Add a new project (prompts for name and path)
  • /: Enter search mode to filter projects by name or path
  • Esc: Exit search mode and clear the search query
  • Q: Quit the application

🔧 Building from Source

To build a release binary manually:

cargo build --release

This will generate the binary at:

target/release/nodash

You can move it to a directory in your PATH for easy access:

cp target/release/nodash /usr/local/bin/

🛡 License

MIT License © 2025 MemerGamer


🙌 Contributing

PRs and feedback welcome! Feel free to open an issue or submit a pull request.