Murex – an Intuitive and Content Aware Shell for a Modern Command Line
Posted4 months agoActive4 months ago
murex.rocksTechstoryHigh profile
calmmixed
Debate
60/100
Shell ScriptingCommand Line ToolsAlternative Shells
Key topics
Shell Scripting
Command Line Tools
Alternative Shells
Murex is a new shell that claims to be intuitive and content-aware, sparking discussion about its features, compatibility, and potential adoption.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
49m
Peak period
19
6-8h
Avg / period
4.4
Comment distribution62 data points
Loading chart...
Based on 62 loaded comments
Key moments
- 01Story posted
Sep 17, 2025 at 2:32 AM EDT
4 months ago
Step 01 - 02First comment
Sep 17, 2025 at 3:21 AM EDT
49m after posting
Step 02 - 03Peak activity
19 comments in 6-8h
Hottest window of the conversation
Step 03 - 04Latest activity
Sep 18, 2025 at 12:31 PM EDT
4 months ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
ID: 45272480Type: storyLast synced: 11/20/2025, 2:38:27 PM
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.
Meanwhile, I have 22.3k SLOC of Emacs Lisp config, and Emacs starts up (granted, after lowering bytecode to native code AOT) in ~4 seconds. To me, that suggests there's something really wrong with ZSH in terms of performance - unfortunately, it's better in almost every other way compared to BASH, so I learned to live with that. Still, at least in my setup, ZSH indeed is slow, even on modern hardware. I wonder if it would even run on a 486...
Also, if something seems limited by "just parsing", you can usually speed that up a lot with `zcompile`. I do that with a `.zcompdump.zwc` and a `digraphs.zsh.zwc`.
EDIT: I noticed myself that really large HISTSIZE (in the 100s of thousands, and with such limit realized) combined with de-duplication seems to be a bad combination. I just lowered my HISTSIZE with a when-too-big spool-off for longer term history/cold storage.
...right, I totally forgot that. Yeah, my history file is 4.5MB, and $HISTSIZE is 1M. I even wrote a Scala app[1] some time ago to collect hist files from all my machines (I used many more than the current 2, at some point), merging and deduping them once a day. Adding to that, it's 13 years old at this point, and probably has quite a few KB of mis-pasted text files in it, so I guess it makes sense it's this large. It also makes sense that processing it takes a while, especially with deduping enabled.
I'll check, but if that's the reason, then I'd be reluctant to do anything with it. Having fzf search through all my command lines dating back to 2012 is very valuable. I'll see how that would work with spooling.
Thanks for the profiling tip, I'll check it out! As mentioned, I'm not thinking of jumping ship, so I'm willing to do some digging to make the situation better :)
[1] https://github.com/piotrklibert/zsh-merge-hist
EDIT: yeah, history is the reason:
I don't even recall if it's necessary or was just the simple algorithm. So, you might actually be able to get Zsh fixed if there is some quadratic thing that can be turned linear with a hash table. The Zsh mailing list is quite accommodating in my experience.
https://learn.microsoft.com/en-us/powershell/scripting/insta...
It was actually first created before Powershell was available outside of Windows. But some of the design philosophies are fundamentally different to Powershell too. For example Murex is designed to work well with POSIX (bar the shell syntax itself), whereas Powershell reimplements most of the stack, including coreutils.
The nushell homepage, by comparison, immediately conveys the benefits of that project.
NB story spoilers. <https://wiki.warframe.com/w/Murex>
[1] https://www.nushell.sh/
However, I have trouble understanding some design decision, such as inventing redundant keywords. And I've spotted bugs in boths (e.g. ls --literal fails in nu, and the completion proposes it twice in Murex).
My GNU `ls` has `--literal`, but to do that in nu, you have to do `^ls --literal`, to use the external command instead of the nu builtin.
You can see the nu `ls` options with `help ls`, or `ls --help`. `--literal` is completely useless for nu's `ls` anyway. `nu`'s ls gives a table, where the `name` column is the filenames. There's no need for any quoting, because it's already structured output.
Murex author here: The design was originally based around explicitness. Though that's not to say that the design works everywhere. So I'm definitely interested to understand where you think improvements can be made. Please do leave some feedback in Github.
(wamerican 2017.08.24-1 from Ubuntu 18.04)
So if a shell is not bash syntax compatible, then it really has to offer some astonishingly useful features to offset my having to translate and map the scripts I need to run for it.
Murex does not interpret "$(cmd args)". So unfortunately, I cannot use it. I know it's not fair, and I know that is promoting a lock-in of what shells can do, but I need to get shit done I'm afraid.
What you're saying applies to all core non established technologies: languages, operating systems, file formats, protocols, plugin ecosystems. If you're in a situation where that's non negotiable then obviously you're not the target audience here.
Did you know you can install PowerShell on Linux too?
https://github.com/nushell/nushell/issues/13601
https://github.com/nushell/nushell/issues/16379
https://www.cisa.gov/known-exploited-vulnerabilities-catalog...
You forgot the .git when you tried first, and you don’t have starship installed on your system or on your path.
Murex were the shells whose excretions were used to make the Tyrian purple of the Mediterranean. Tyrian referring to Tyre, one of the major Phoenician city-states.
It was so iconic that the "Punic Wars" are called that because Punic = Phoenicia = "Purple People".
Carthage was the Phoenician colony that outlasted the home country.
https://en.wikipedia.org/wiki/Tyrian_purple
The Phoenicians were a semitic people like the Jews, and they gave the world its first alphabet which was adopted by both the Hebrews and the Greeks. The Greeks added vowels, and the Romans adopted that alphabet and it became roughly the one we use today.
If you go to the Wiki page (https://en.m.wikipedia.org/wiki/Phoenician_alphabet) and scroll down to the Table of Letters header, you can see how the letters evolved from Egyptian hieroglyphs to the letters we use today. It’s particularly interesting to me that our letter “B” (which the greeks called “beta” and which forms the tail end of “alphabet”) was originally a house, and the semitic languages called it “bēt” which was their word for house, which you can still see today in Biblical place names like Bethel (house of God—“El” was a very old name for God).
It's interesting how, unlike Sumerian cuneiform or Egyptian hieroglyphs that were complex systems that came from dedicated scribes of the court, Phoenicia's alphabet was the kind of pragmatic system you can imagine a more mercantile society developing.
It's wild that it turned into the scripts: Latin, Greek, Arabic, Cyrillic, Hebrew, and beyond.
Also interesting is Chinese script, which was saved from this by Stalin telling Mao that China should keep its unique writing, which Russia of course was already doing. Mao did do the simplification, but he turned away from his previous plan to standardize the latin script for Chinese.
err "some message"
becomes normal?
For me, it would have to offer sexual favors or something to be worth it. I don't see anything that good otherwise.