HackerReposA FIELD GUIDE TO OPEN SOURCE
ProSponsor the shelfā™§ 0
← Back to top all-time
dylanaraps
neofetch
Shell2016–2024
dylanaraps / neofetch Ā· Archived

neofetch

šŸ–¼ļø A command-line system information tool written in bash 3.2+

18Distinct people
23Mentions
1Explicit recommenders
23.6KGitHub stars
REPOSITORY AT A GLANCE

What to know before exploring

What it is

šŸ–¼ļø A command-line system information tool written in bash 3.2+

GitHub

Where it is used

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

What people are saying

I have played around with netdata just yesterday on my home server. Great tool, but the defaults are overkill for my needs. After spending an hour trying to simplify (=disable…

mtmsr 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

No other repository is repeatedly linked in the same discussions.

This week on Hacker News

Nov 7–Nov 14 UTC Ā· Direct repository links and separately labeled related project stories. Indexed through 11/14/2026, 1:49:46 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 year23 dated mentions

Observed mentions: 2016-04-04 14:28:07 UTC to 2024-07-04 13:27:54 UTC.

0123452016-01-01 00:00:00 UTC to 2017-01-01 00:00:00 UTC (exclusive): 3 mentions; 3 submissions, 0 comments20162017-01-01 00:00:00 UTC to 2018-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2018-01-01 00:00:00 UTC to 2019-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2019-01-01 00:00:00 UTC to 2020-01-01 00:00:00 UTC (exclusive): 3 mentions; 1 submissions, 2 comments2020-01-01 00:00:00 UTC to 2021-01-01 00:00:00 UTC (exclusive): 1 mentions; 1 submissions, 0 comments20202021-01-01 00:00:00 UTC to 2022-01-01 00:00:00 UTC (exclusive): 5 mentions; 1 submissions, 4 comments2022-01-01 00:00:00 UTC to 2023-01-01 00:00:00 UTC (exclusive): 3 mentions; 0 submissions, 3 comments2023-01-01 00:00:00 UTC to 2024-01-01 00:00:00 UTC (exclusive): 0 mentions; 0 submissions, 0 comments2024-01-01 00:00:00 UTC to 2025-01-01 00:00:00 UTC (exclusive): 4 mentions; 2 submissions, 2 comments2024

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
20162016-01-01 00:00:00 UTC2017-01-01 00:00:00 UTC330
20172017-01-01 00:00:00 UTC2018-01-01 00:00:00 UTC000
20182018-01-01 00:00:00 UTC2019-01-01 00:00:00 UTC422
20192019-01-01 00:00:00 UTC2020-01-01 00:00:00 UTC312
20202020-01-01 00:00:00 UTC2021-01-01 00:00:00 UTC110
20212021-01-01 00:00:00 UTC2022-01-01 00:00:00 UTC514
20222022-01-01 00:00:00 UTC2023-01-01 00:00:00 UTC303
20232023-01-01 00:00:00 UTC2024-01-01 00:00:00 UTC000
20242024-01-01 00:00:00 UTC2025-01-01 00:00:00 UTC422

What Hacker News says

23 sources
I'm not an expert, but I use UNIX/Linux at work and only Windows at home (I have a dormant Arch Linux install that I haven't touched in a couple of years), and hopefully you think I'm qualified to respond. I feel Bash is a 'glue language' in every sense of the word, and is optimised for interactive command-line usage because of its terseness. Being remotely productive on Bash presupposes the presence of an entire UNIX subsystem and coreutils (which is why Git Bash for Windows drags along an entire `/usr/bin` directory with all the coreutils in it). You can't really do much in it without the coreutils. I find that Bash parseability and ease-of-understanding rapidly deteriorates in scripts of increasing complexity. After about a hundred lines of code I reach for other languages. I personally dislike its unintuitive syntax, global scope, an
Read the rest
d weak, dynamic typing. The terseness that lends itself to powerful interactive command-line usage means script readability plummets. Of course, that might just mean I'm inexperienced with respect to Bash and need more practice, but I find this a fairly common opinion amongst colleagues and friends. In my opinion, Bash scripts are write-only. It is a wonder that something like neofetch[1]—which is an eleven thousand-line monstrosity—lasted this long (if I recall correctly the author stopped maintaining it because—amongst other reasons—it had just become too complicated). I find that people understand PowerShell better when they realise it is closer to Python than any interactive UNIX shell. By default, PowerShell is more verbose than Bash; for instance, the PowerShell equivalent of the two-character all-lowercase `ls` is the thirteen-character mixed-case `Get-ChildItem`. Arguments are by default also long and verbose, with things like `-FollowSymlink`. PowerShell is generally meant to be used in executable scripts, just like how most Python isn't executed in the interactive REPL, but by running scripts. Consequently, I find this verbosity lends itself to improved readability in scripts, at the expense of some interactive productivity. That being said, common PowerShell commands have UNIX-like aliases[2] (at one point the cause of much gnashing of teeth here and at /r/programming because PowerShell aliased `curl` to `Invoke-WebRequest`[3]) to improve interactive productivity. PowerShell also supports truncating parameter names; for instance, `Get-ChildItem -Recurse -Force` can be abbreviated to `gci -r -fo`, which looks remarkably like a UNIX command now. Even so, the PowerShell ISE and the PowerShell VS Code extension both suggest that programmers use the full unabbreviated commands and arguments in `.ps1` scripts[4]. PowerShell is also dynamically typed, though semi-static typing can be opted in to[5]. That said there is some controversy about arrays decaying to scalars when they have size 1 [6]. It is easy to set up both function and script parameters with as much power and expressiveness as `argparse` for Python, but natively without involving any additional modules[7]. The real power (pun not entirely unintended) of PowerShell comes when you realise it is just another front-end to the incredibly massive .NET ecosystem. Where Bash requires a full UNIX subsystem and a collection of hundreds of additional binaries to be productive, PowerShell employs pre-compiled cmdlets[8] written in .NET (usually C#) to augment the basic language. Most 'commands' in PowerShell are cmdlets, including `Get-ChildItem`. You can write your own 'back-end' in C#, F#, C++/CLI, VB, or any other .NET language, compile it, and expose a PowerShell interface for end-users. Pretty much like how people write fast but complex code in C/C++, compile it, and expose a Python interface (Numpy, Pandas, PyTorch, etc come to mind). You can additionally directly call .NET methods in PowerShell[9]. This also means that everything in PowerShell is an object. The output of `Get-ChildItem` is a list, not a string. Likewise for `Get-Process` (UNIX equivalent: `top`). These lists may be formatted[10], filtered, parsed, modified, dumped to JSON, and otherwise manipulated like any other list data type in most other languages. PowerShell also lends itself to the side-effect-free/functional/monadic map-reduce paradigm very well, with pipelines[11]. In my opinion, it is not merely 'better than CMD'; it blows CMD out of the water. A little less so for Bash, because Bash is augmented by the UNIX core-utils. As should now be evident, in my view the real competition to PowerShell is Python. [1]: https://github.com/dylanaraps/neofetch/blob/master/neofetch [2]: https://learn.microsoft.com/en-us/powershell/scripting/learn... [3]: https://news.ycombinator.com/item?id=12319670 [4]: https://learn.microsoft.com/en-gb/powershell/utility-modules... [5]: https://stackoverflow.com/a/115815/1654223 [5]: https://superuser.com/a/414666/1132163 [7]: https://learn.microsoft.com/en-gb/powershell/module/microsof... [8]: https://learn.microsoft.com/en-gb/powershell/scripting/power... [9]: https://devblogs.microsoft.com/scripting/learn-how-to-use-ne... [10]: https://learn.microsoft.com/en-us/powershell/module/microsof... [11]: https://learn.microsoft.com/en-gb/powershell/module/microsof...
In Jeffrey Snover and the Making of PowerShell
I like to use cowsay for this - in non-work settings. neofetch > motd is also nice. https://github.com/dylanaraps/neofetch 'c. <hostname redacted> ,xNMM. ---------------------------------- .OMMMMo OS: macOS Catalina 10.15.7 19H1519 x86_64 OMMM0, Host: MacBookPro13,3 .;loddo:' loolloddol;. Kernel: 19.6.0 cKMMMMMMMMMMNWMMMMMMMMMM0: Uptime: 5 days, 19 hours, 2 mins .KMMMMMMMMMMMMMMMMMMMMMMMWd. Packages: 38 (brew), 620 (nix-user) XMMMMMMMMMMMMMMMMMMMMMMMX. Shell: zsh 5.7.1 ;MMMMMMMMMMMMMMMMMMMMMMMM: Resolution: 3440x1440 :MMMMMMMMMMMMMMMMMMMMMMMM: DE: Aqua .MMMMMMMMMMMMMMMMMMMMMMMMX. WM: Quartz Compositor kMMMMMMMMMMMMMMMMMMMMMMMMWd. WM Theme: O
Read the rest
range (Light) .XMMMMMMMMMMMMMMMMMMMMMMMMMMk Terminal: iTerm2 .XMMMMMMMMMMMMMMMMMMMMMMMMK. Terminal Font: Iosevka-Fixed-Slab-Medium 16 kMMMMMMMMMMMMMMMMMMMMMMd CPU: Intel i7-6700HQ (8) @ 2.60GHz ;KMMMMMMMWXXWMMMMMMMk. GPU: Intel HD Graphics 530, AMD Radeon Pro 450 .cooc,. .,coo:. Memory: 10974MiB / 16384MiB
In figlet – a program for making large letters out of ordinary text
For a pretty good example of a readable/fun program written in bash, the KISS package manager stands out: https://github.com/kisslinux/kiss/blob/master/kiss Neofetch is also written in bash: https://github.com/dylanaraps/neofetch/blob/master/neofetch For my own work, I once wrote a functional file system based irc client in ~50 lines of bash: https://github.com/retrohacker/irc-sh/blob/master/main.sh To learn bash: * https://tldp.org/LDP/abs/html/ * https://github.com/dylanaraps/pure-bash-bible
In My thoughts on writing a Minecraft server from scratch in Bash
mtmsrĀ·Apr 21, 2021Recommendation phrase
I have played around with netdata just yesterday on my home server. Great tool, but the defaults are overkill for my needs. After spending an hour trying to simplify (=disable most of the "collectors") using the documentation, I finally gave up. Settled on neofetch [1] instead: pure bash, wrote my own custom inputs including color coding for incident reporting in less time than it took me to strip down netdata. Highly recommended if you want to spend your time on other things than (setting up) server monitoring. [1] https://github.com/dylanaraps/neofetch
In Netdata: Open-source real-time monitoring platform
syncthing, sublime text and marktext would be my favourites, but you can get them on every other platform so I don't really think of them as Linux apps some of my fav linux only apps would lutris for managing your steam and gog library from a single gui neofetch is a nice way to get a fancy readout of your system specs https://github.com/dylanaraps/neofetch also just reading about ansible the last few days and i can see that becoming an instant fav for quickly setting up my computers. if I can get my head around it that is
In Ask HN: What are your favorite Linux applications?

Showing the 15 most recent of 23 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.