HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelf♧ 0
← Back to top all-time
jarun
nnn
C2017–2026
jarun / nnn

nnn

n³ The unorthodox terminal file manager

41Distinct people
107Mentions
1Explicit recommenders
22.1KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

n³ The unorthodox terminal file manager

GitHub

Where it is used

No documented product use was verified in the last source check.

What people are saying

I use nnn[0], a C tui file manager, and from the makefiles, you mostly need readline pcre ncurses pthread and POSIX (and some unix thingies) Which is why I love C projects,…

skydhash used a recommendation phrase. One indexed comment matches. This is a phrase match, not a verdict.

No classified warning is attached to this page. Read the discussions before treating silence as approval.

Also in these discussions

Mentioned in the same Hacker News threads. That is not proof they are substitutes.

This week on Hacker News

Nov 8–Nov 15 UTC · Direct repository links and separately labeled related project stories. Indexed through 11/15/2026, 5:05:26 PM UTC.

No direct repository links were found in the indexed HN discussions over the past seven days. Older discussions are available below.

Mentions over time

HN mentions by year107 dated mentions

Observed mentions: 2017-04-13 15:34:40 UTC to 2026-08-20 22:23:23 UTC.

01020302017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 19 mentions; 10 submissions, 9 comments20172018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 18 mentions; 8 submissions, 10 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 20 mentions; 10 submissions, 10 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 27 mentions; 9 submissions, 18 comments2021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 5 mentions; 0 submissions, 5 comments20212022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 10 mentions; 2 submissions, 8 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments2025-01-01 00:00:00 UTC to 2026-01-01 00:00:00 UTC (exclusive): 1 mentions; 0 submissions, 1 comments2026-01-01 00:00:00 UTC to 2027-01-01 00:00:00 UTC (exclusive): 2 mentions; 0 submissions, 2 comments. Incomplete calendar period.2026*

* An incomplete calendar period is marked with an outlined bar. Its count is not directly comparable with a full period.

Counts come from the repository’s dated source evidence. Index cutoff: 2026-11-02 08:16:59 UTC.

View mention counts and date ranges
UTC ranges include their start and exclude their end. Select a period to filter the source evidence.
PeriodStart (UTC)End (exclusive, UTC)MentionsSubmissionsComments
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC19109
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC18810
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC201010
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC27918
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC505
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC1028
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC303
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC202
20252025-01-01 00:00:00 UTC2026-01-01 00:00:00 UTC101
2026 (partial)2026-01-01 00:00:00 UTC2027-01-01 00:00:00 UTC202

From the project README

An excerpt from the repository, fetched Nov 12, 2026.

Read the project’s introduction
nnn - Supercharge your productivity! [Features] $~~$ [Quickstart] $~~$ [Plugins] $~~$ [Wiki] nnn (n³) is a full-featured terminal file manager. It's tiny (~150 KiB), nearly 0-config and incredibly fast. It is designed to be unobtrusive with smart workflows to match the trains of thought. nnn can analyze disk usage, batch rename, launch apps and pick files. The plugin repository has tons of plugins to extend the capabilities further e.g. live previews, (un)mount disks, find & list, file/dir diff, upload files. A patch framework hosts sizable user-submitted patches which are subjective in nature. Independent (neo)vim plugins - nnn.vim, vim-floaterm nnn wrapper and nnn.nvim (neovim exclusive). Runs on the Pi, Termux (Android), Linux, macOS, BSD, Haiku, Cygwin, WSL, across DEs or a strictly CLI env. (more use cases) Features Quality Privacy-aware (no unconfirmed user data collection) POSIX-compliant, follows Linux kernel coding style Highly optimized, static analysis integrated code Frugal Typically needs less than 3.5MB resident memory Works with 8 colors (and xterm 256 colors) Disk-IO sensitive (few disk reads and writes) No FPU usage (all integer maths, even for file size) Minimizes screen refresh with fast line redraws Tiny binary (typically around 150KB) 1-column mode for smaller terminals and form factors Hackable - compile in/out features and dependencies Portable Language-agnostic plugins Static binary available (no need to install) Minimal library deps, easy to compile No config file, minimal config with sensible defaults Plugin to backup configuration Widely available on many packagers Touch enabled, handheld-friendly shortcuts Unicode support Modes Light (default), detail Disk usage analyzer (block/apparent) File picker, (neo)vim plugin Navigation Filter with automatic dir entry on unique match Type-to-nav (turbo navigation/always filter) mode Jump to an entry with visible relative offset Contexts (aka tabs/workspaces) with custom colors Sessions, bookmarks, mark and visit a dir Remote mounts (needs sshfs, rclone) Familiar shortcuts (arrows, ~, -, @), quick look-up cd on quit (easy shell integration) Proceed to next file on file open and selection Search Instant filtering with search-as-you-type Fuzzy, regex (POSIX/PCRE2) and string (default) filters Subtree search plugin to open or edit files Sort Ordered pure numeric names by default (visit /proc) Case-insensitive version (aka natural) sort By name, access/change/mod (default) time, size, extn Reverse sort Directory-specific ordering Mimes Built-in previewer for directory and text files FIFO-based previewer plugins with extensive mime support Open with desktop opener or specify a custom opener File-specific colors (or minimal dirs in context color) Icons and Emojis support (customize and compile-in) Plugin for image, video and audio thumbnails Create, list, extract (to), mount (FUSE based) archives Option to open all text files in $EDITOR Convenience Detailed file stats and mime information Run plugins and custom commands with hotkeys FreeDesktop compliant trash utility integration Cross-dir file/all/range selection Create (with parents), rename, duplicate files and dirs Create new file or directory (tree) on startup Batch renamer for selection or dir List input stream of file paths from stdin or plugin Copy (as), move (as), delete, archive, link selection Easily copy, move paths in system clipboard to current dir Dir updates, notification on cp, mv, rm completion Copy file paths to system clipboard on select Launch apps, run commands, spawn a shell, toggle exe Access context paths/files at prompt or spawned shell Lock terminal after configurable idle timeout Capture and show output of a program in help screen Basic support for screen readers and braille displays Quickstart Beginners Install nnn, preferably using the package manager. Run the following command to generate (and optionally add to your rc file) a shell function to start with. sh -c "$(curl -Ls https://raw.githubusercontent.com/jarun/nnn/master/misc/quickstart.sh)" Use the shell function name you chose to run nnn with your preferred configuration. Power users Install nnn and the dependencies you need. Install plugins. Configure cd on quit. The desktop opener is default. Use -e to open text files in the terminal. Optionally open detached. In a CLI environment, set NNN_OPENER to nuke. Use option -c. For GUI apps, consider xopen. Sync subshell $PWD to nnn. Use -x to sync selection to clipboard, show notis on cp, mv, rm and set xterm title. Bid ls goodbye! alias l='nnn -dDe' 😎 Visit the Live previews and Troubleshooting Wiki pages. Don't memorize! Arrows, /, q suffice. Tab creates and/or cycles contexts. ? lists shortcuts. Videos nnn file manager on Termux (Android) NNN File Manager This Week in Linux 114 - TuxDigital I'M GOING TO USE THE NNN FILE BROWSER! 😮 NNN: Is This Terminal File Manager As Good As People Say? Checkmate, GUI users. | 4P Elsewhere AddictiveTips ArchWiki FOSSMint gHacks Tech News Hacker News [1] [2] It's FOSS Linux Format Issue 265; Manage files with nnn LinuxLinks [1] [2] [3] Linux Magazine; FOSSPicks Make Tech Easier Opensource.com Open Source For You PCLinuxOS Magazine Issue June 2021 Suckless Rocks Ubuntu Full Circle Magazine Issue 135; Review: nnn Using and Administering Linux: Volume 2: Zero to SysAdmin: Advanced Topics Wikipedia Developers Arun Prakash Jana (Copyright © 2016-2026) 0xACE Anna Arad KlzXS Léo Villeveygoux Luuk van Baal NRK Sijmen J. Mulder and other contributors Visit the Tracker thread for a list of features in progress and anything up for grabs. Feel free to discuss new ideas or enhancement requests.
Read the full README on GitHub

What Hacker News says

18 sources
First of all: when using a mouse 'a click would open a directory or a file just the same'. A mouse/trackpad has pretty much one button (or equivalent) dedicated to interaction, so it is expected to overload some functions on it. Besides, "navigation" with the mouse is a different thing: you don't need to "move" the selection so opening is a clear voluntary decision, decoupled from navigation. But focusing back on keyboard operation... It is true that many text based file managers do this 'open file on right navigation move'. In my opinion that doesn't make it right: I personally consider a bad thing that can lead to startling, unnecessary and potentially sensitive application launches; a separation between movement (hjkl, arrows) and opening (obvious choice here, <Return>) is a sensible design. Another point of view: the unwanted file-ope
Read the rest
n-by-mistake situations are a form of involuntary file previews. As nnn's own 'design considerations' state [0], previews are to be avoided: "previewing ... is a wastage", potential "slow/faulty ... access makes the experience very painful" and "Users should see only what they explicitly want to see". Lastly, there is an important aspect that mitigates the problem for 'most file managers': customization. Here's a quick glance at the players in this text-fm arena: - ranger and vifm, the larger managers: a cursory look in their help/configs hints that they can be heavily customized - out of the box ranger displays a preview of the selected file; that acts a big visual hint that you don't need to 'navigate' further; however I agree that default previews are bad - ranger and vifm remember the position along the path, so you don't get shunted moving back down - noice has about the same behavior as nnn (nnn was forked from it), but at least it has a standard suckless style config.h header allowing customization by recompiling - speaking of suckless style, a last resort solution is to do just that with nnn, making your own fork: its header largely keeps the structure of the original And here are examples that work more along the lines I prefer: - rover has the best behavior IMO: it can be similarly configured using environment variables, but by default it uses hjkl simply for navigation and NOTHING ELSE; it has separate, dedicated keys for open, preview or other things - midnight commander has the same separation: arrows (actually just up/down) strictly for navigation (in local dir ONLY, no less); explicit directory navigation and opening with <Return>; there is no implicit 'file open' [0] https://github.com/jarun/nnn/wiki/nnn-design-considerations
In Nnn – a terminal file manager for programmers
I agree. Would be very nice if this was an option at least (that could be turned on by configuration). On the design considerations [1] they state: > Previewing large files on selection is a wastage of processing power and time. A slow/faulty disk or over the network access makes the experience very painful. You only need the first lines of the file, not the whole file, so this argument is not valid. > It's also a risk to privacy and confidentiality. Users should see only what they explicitly want to see. Not valid if preview is off by default. A hotkey could toggle preview mode. Yes, you can open each file in a pager. Exit the pager, go to the next file and repeat. That is slow and painful. Being able to browse a code repository with file preview is the main reason I will probably not use this and stick with ranger. It's a deal breaker f
Read the rest
or me. I really like that it's fast (I've tried using ranger on the USB Armory – it was very slow), and if preview was added as an option I would seriously reconsider. [1]: https://github.com/jarun/nnn/wiki/nnn-design-considerations
In Nnn – a terminal file manager for programmers
CLI utilities from jarun for daily use: File manager: https://github.com/jarun/nnn Google search: https://github.com/jarun/googler DuckDuckGo search: https://github.com/jarun/ddgr Bookmark manager: https://github.com/jarun/Buku Multicore resize & rotate: https://github.com/jarun/imgp Calculator: https://github.com/jarun/bcal Date diff and timers: https://github.com/jarun/pdd Kernel keylogger: https://github.com/jarun/keysniffer The developer (https://github.com/jarun) writes cmdline utilities only. His tools are highly optimized for performance and integrates seamlessly with the DE. Most of them are available on popular distros and Homebrew.
In Ask HN: Best Command-Line Applications?
# Features - Modes - basic, detail, disk usage analyzer (du) - Navigation - Familiar, easy shortcuts (arrows, `~`, `-`, `&`) - *Navigate-as-you-type* mode with dir auto-select for the maverick - Handy bookmarks, start at bookmark, pin and visit directory - chdir prompt with tab completion (interprets cd ..... too!) - Roll-over at edges, page through entries - Show directories in custom color (default: enabled in blue) - Sorting - Directories always listed on top - Sort by file name, modification time, size - Numeric order (1, 2, ... 10, 11, ...) for numeric names - Search - Superfast directory content filtering with *search-as-you-type* - Desktop search (gnome-search-tool, catfish) integration - Mimes - Open with desktop opener (default) or specify a custom app - Create, list
Read the rest
and extract archives (needs atool) - Optionally open text files in EDITOR (fallback vi) - Customizable bash script [nlay](https://github.com/jarun/nnn/wiki/all-about-nlay) to handle actions - Information - Detailed stat-like file information - Media information (needs mediainfo or exiftool, if specified) - Convenience - Create, rename files and directories - Batch rename/move/delete current directory entries in vidir (from moreutils) - Spawn SHELL (fallback sh) in the current directory - Run custom scripts in the current directory - Copy absolute file paths with/without X (*easy* shell integration) - Change directory at exit (*easy* shell integration) - Open any file in EDITOR (fallback vi) or PAGER (fallback less) - Open current directory in a custom GUI file manager - Terminal screensaver/locker (default vlock, customizable) integration - Unicode support - Highly optimized code, minimal resource usage
In Show HN: nnn – the missing terminal file manager for X

Showing the 15 most recent of 18 sources. Enable JavaScript to search and browse every indexed mention.

MAKE YOURSELF AT HOME

A few shortcuts

/
Search the collection
?
Open this guide
Esc
Close dialogs and navigation

Your saved repositories and interests stay in this browser.