# jarun/nnn

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jarun-nnn).**

21,283 stars · 795 forks · C · bsd-2-clause

## Links

- GitHub: https://github.com/jarun/nnn
- awesome-repositories: https://awesome-repositories.com/repository/jarun-nnn.md

## Topics

`android` `batch-rename` `c` `cli` `command-line` `developer-tools` `disk-usage` `file-manager` `file-preview` `file-search` `filesystem` `launcher` `multi-platform` `ncurses` `productivity` `raspberry-pi` `terminal` `tui` `vim` `wsl`

## Description

This project is a keyboard-driven terminal file manager designed for efficient navigation and manipulation of local and remote filesystems. It functions as both a standalone console file explorer and a versatile file picker, allowing users to select paths and pass them to external shell commands or system utilities for automated workflows.

The application distinguishes itself through a highly modular architecture that supports compile-time feature flagging and static binary compilation, ensuring a minimal memory footprint and portability across environments. Users can extend its core functionality through a plugin system and customize the interface with specific color schemes, file icons, and remappable keyboard shortcuts. It also maintains multi-context workspaces and persistent session states, enabling users to manage concurrent directory views and resume work seamlessly.

Beyond basic navigation, the tool provides a comprehensive suite of file management capabilities, including batch processing, regex-based searching, and archive mounting. It integrates with the host operating system through clipboard support and file association management, while offering real-time feedback for long-running file operations.

The software is distributed as a C-based utility that can be compiled with custom resource optimizations to suit specific system requirements.

## Tags

### Business & Productivity Software

- [Terminal File Managers](https://awesome-repositories.com/f/business-productivity-software/terminal-file-managers.md) — Provides a keyboard-driven terminal interface for efficient navigation and management of local and remote filesystems.
- [Selection Buffers](https://awesome-repositories.com/f/business-productivity-software/terminal-file-managers/selection-buffers.md) — Collects files from multiple directories into a shared buffer for simultaneous batch processing. ([source](https://github.com/jarun/nnn/wiki/Concepts))

### Development Tools & Productivity

- [File Explorers](https://awesome-repositories.com/f/development-tools-productivity/file-explorers.md) — Provides a lightweight console-based file explorer for managing local and remote filesystems.
- [File Selection Pickers](https://awesome-repositories.com/f/development-tools-productivity/command-line-interfaces/command-line-applications/file-selection-pickers.md) — Functions as a versatile file picker that passes selected paths to external shell commands.
- [File System Navigators](https://awesome-repositories.com/f/development-tools-productivity/file-system-navigators.md) — Provides keyboard-driven navigation across local and remote filesystems with multi-context support. ([source](https://github.com/jarun/nnn/wiki/From-noice-to-nnn))
- [File Processing Utilities](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/file-processing-utilities.md) — Performs repetitive operations like renaming, moving, or copying multiple files simultaneously through a streamlined terminal-based interface.
- [Command Line Utilities](https://awesome-repositories.com/f/development-tools-productivity/terminal-shell-cli/terminal-cli-enhancements/shell-terminal-utilities/general-enhancements-tooling/terminal-productivity/command-line-utilities.md) — Selects files and passes their paths to external scripts or system utilities to automate complex data processing tasks.
- [Workspace Session Managers](https://awesome-repositories.com/f/development-tools-productivity/workspace-session-managers.md) — Persists workspace states and settings to disk to allow seamless resumption of work. ([source](https://github.com/jarun/nnn/wiki/Concepts))
- [Bulk File Renamers](https://awesome-repositories.com/f/development-tools-productivity/developer-utilities-libraries/workflow-productivity-enhancers/developer-productivity-utilities/file-management-utilities/bulk-file-renamers.md) — Provides batch renaming capabilities by allowing users to edit file lists in a text editor. ([source](https://github.com/jarun/nnn/wiki/Troubleshooting))
- [Directory Navigation Shortcuts](https://awesome-repositories.com/f/development-tools-productivity/directory-navigation-shortcuts.md) — Saves directory locations as bookmarks for rapid navigation to frequently used folders. ([source](https://github.com/jarun/nnn/wiki/Basic-use-cases))
- [File Search Utilities](https://awesome-repositories.com/f/development-tools-productivity/file-search-utilities.md) — Enables instant, regex-based searching within directories to quickly locate files. ([source](https://github.com/jarun/nnn/wiki))
- [Archive Management](https://awesome-repositories.com/f/development-tools-productivity/archive-management.md) — Mounts archive files as directories to allow direct manipulation of their contents. ([source](https://github.com/jarun/nnn/wiki/Power-toys))
- [Integrated File Editing](https://awesome-repositories.com/f/development-tools-productivity/terminal-file-editors/integrated-file-editing.md) — Opens files in preferred terminal or graphical applications for direct editing. ([source](https://github.com/jarun/nnn/wiki/Power-toys))

### DevOps & Infrastructure

- [Remote File System Mounts](https://awesome-repositories.com/f/devops-infrastructure/remote-file-system-mounts.md) — Mounts and interacts with remote storage locations as if they were local directories to manage files across network connections. ([source](https://github.com/jarun/nnn/wiki))
- [External Command Executors](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/external-command-executors.md) — Enables users to trigger external shell commands or scripts directly from the file manager interface. ([source](https://github.com/jarun/nnn/wiki/Power-toys))
- [Static Compilation Toolchains](https://awesome-repositories.com/f/devops-infrastructure/cicd-pipeline-automation/core-build-engines/build-toolchains/static-compilation-toolchains.md) — Compiles the application with all dependencies included to ensure portability across different environments without requiring external shared libraries. ([source](https://github.com/jarun/nnn/wiki/Developer-guides))

### Operating Systems & Systems Programming

- [File System Operations](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-system-operations.md) — Supports standard file system operations like creation, deletion, and modification directly from the terminal. ([source](https://github.com/jarun/nnn/wiki/Basic-use-cases))
- [File Previewers](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/file-system-management/file-systems/file-previewers.md) — Displays file content or metadata previews in a secondary window during navigation. ([source](https://github.com/jarun/nnn/wiki/Live-previews))
- [Keyboard Shortcut Mappings](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-interface-systems/terminal-emulation/configuration-workflow-tools/keyboard-shortcut-mappings.md) — Allows users to remap input commands to preferred keys and provides validation tools to detect potential key binding collisions. ([source](https://github.com/jarun/nnn/wiki/Advanced-use-cases))
- [Terminal Workflow Customizations](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-management/terminal-workflow-customizations.md) — Tailors the visual appearance and keyboard shortcuts of a command-line environment to match specific user preferences and workflows.
- [Process and Task Orchestration](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-administration-utilities/system-utilities/process-and-task-orchestration.md) — Spawns external shell processes to handle file operations and user-defined scripts via standard input and output streams.
- [Terminal Color Schemes](https://awesome-repositories.com/f/operating-systems-systems-programming/terminal-command-line-environments/terminal-customization-tools/terminal-customization/terminal-color-schemes.md) — Enables users to define custom color mappings for different file types and attributes to improve visual distinction. ([source](https://github.com/jarun/nnn/wiki/Themes))

### User Interface & Experience

- [Terminal-Based Pickers](https://awesome-repositories.com/f/user-interface-experience/file-pickers/terminal-based-pickers.md) — Functions as a versatile file picker that selects paths and outputs them to other programs or standard output. ([source](https://github.com/jarun/nnn/wiki/Basic-use-cases))
- [Terminal Rendering Engines](https://awesome-repositories.com/f/user-interface-experience/terminal-rendering-engines.md) — Uses low-level character cell manipulation to draw the interface directly within a terminal emulator window.
- [Interface Appearance Customization](https://awesome-repositories.com/f/user-interface-experience/terminal-user-interfaces/visual-styling-presentation/interface-appearance-customization.md) — Provides options to customize the interface with color schemes, file-specific indicators, and status bar information to reflect file states. ([source](https://github.com/jarun/nnn/wiki/Usage))

### System Administration & Monitoring

- [Multi-Pane Terminal Managers](https://awesome-repositories.com/f/system-administration-monitoring/multi-pane-terminal-managers.md) — Maintains multiple independent directory views in separate tabs or panes for concurrent work. ([source](https://github.com/jarun/nnn/wiki))

### Data & Databases

- [Filesystem Abstractions](https://awesome-repositories.com/f/data-databases/filesystem-abstractions.md) — Maps local and remote storage paths into a unified interface to perform standard operations regardless of the underlying mount.

### Software Engineering & Architecture

- [Context-Aware State Engines](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/state-logic-and-utilities/context-aware-state-engines.md) — Maintains independent directory navigation stacks and selection buffers to allow concurrent operations across multiple workspaces.
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures.md) — Loads external scripts dynamically at runtime to perform specialized tasks by passing file paths through environment variables.
- [Compile-Time Feature Flags](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/abstraction-domain-modeling/compile-time-architectural-patterns/compile-time-feature-flags.md) — Uses preprocessor directives to include or exclude specific functionality during the build process for binary optimization.
