Murex.Rocks
An intuitive, typed and content aware shell for the 2020s and beyond.
A Modern shell for the rest of us
Murex carries tons of unique features...
Content Aware
Murex has built-in support for natively manipulating various file formats such as JSON, TOML, YAML, XML, CSV, and commonlog. This allows for seamless integration and manipulation of data in these formats.
Objects and Maps
Murex provides powerful data structures like maps, hashes, lists, and dictionaries, which can be used for efficient and flexible data manipulation. These data structures enable you to organize and manipulate data in a structured and intuitive way.
Arrays manipulation
Murex comes with native built-in functions and features that allow for proper manipulation of arrays. These functions make it easy to perform operations like filtering, sorting, appending, and merging arrays, providing a seamless experience for working with array data
Scalar expression
Murex treats variables as expressions, allowing you to perform calculations and evaluations directly within the shell. This feature helps to avoid accidental bugs caused by spaces or incorrect syntax, providing a more reliable and predictable scripting experience.
Public & Private functions
Murex supports both public and private functions. Private functions have restricted scope visibility, meaning they can only be accessed within the nearest module or source file. This allows for better encapsulation and organization of code, enhancing code readability and maintainability.
Type inference
Murex employs type inference to automatically determine the data type of variables and pipelines it manages. This means that you don't always have to explicitly specify the data type, as the shell can intelligently infer it based on the context. This simplifies scripting and reduces the need for explicit type declarations.
Enhanced pipelines & redirection
Murex supports sending typed information to compatible functions via redirection and pipelines. This allows for more efficient and flexible data processing.
Type casting and formats
Murex allows you to change the meta-data about how an information should be read or displayed. This can be useful for manipulating and formatting data in a desired way.
Inline spellchecking
Murex provides inline spellchecking, which quickly identifies typing spelling errors with underlined text. This helps to catch and correct errors in real-time.
Smart Autocomplete
Murex parses man pages for command line flags and provides smart autocomplete functionality. By pressing the TAB key, you can auto-complete commands and parameters, making command line navigation faster and more efficient.
Hint text
Murex provides hint text, which gives clues to the user without any distractions. This can be useful for providing additional information or guidance to the user
Syntax highlighting
In the interactive terminal, Murex provides syntax highlighting, making it easier to read and understand code. Syntax highlighting can also be piped to the next built-in for further processing.
Syntax Completion
Murex balances and auto-closes brackets and accolades, making it easier to write and edit code. This feature helps to ensure that code is properly formatted and avoids syntax errors.
Extension Framework
Murex has an extension framework that allows you to design your own modules or enjoy prebuilt extensions such as `auto-jump` or `starfish`. This allows for customization and additional functionality.
Built-in Package Manager
Murex comes with a built-in package manager that allows you to search and manage the lifecycle of packages. This makes it easy to install and manage dependencies.
80 builtins commands
Murex provides 80 built-in commands allowing for fast execution and portability. These built-in commands cover a wide range of functionalities.
Realtime Events
Murex supports realtime events, which streamline script notifications upon elapsed time, keypress, completion, prompt, or filesystem changes. This allows for more dynamic and responsive scripts.
PNG Generation
Murex can generate barcodes and images directly from scripts. This can be useful for generating visual representations of data or for creating graphical outputs.
Multi-threaded
Murex uses separate threads for built-ins, rather than forking processes like in a traditional POSIX shell. This optimizes resource usage and improves performance.
NOT POSIX compliant!
Murex is purposely not POSIX compliant in order to be performant and allow for extended capabilities. This allows for more flexibility and advanced features.
👁🗨 Screenshots
![](/murex-docs/murex-kill-autocomplete.png)
![](/murex-docs/murex-open-foreach.png)
![](/murex-docs/murex-spellchecker.png)
📦 Easy to Install
Install Murex
from your favorite package manager
brew install murex
https://aur.archlinux.org/packages/murex
https://aur.archlinux.org/cgit/aur.git/plain/PKGBUILD?h=murex
sudo port install murex
More options are available in the INSTALL document
🛟 Getting Started
Take your your first steps with Murex
by following our Language Tutorial