Skip to main content
Murex.Rocks

Murex.Rocks

An intuitive, typed and content aware shell for the 2020s and beyond.

Getting Started 💡Rosetta Stone 🪨Built-ins 📔

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

📦 Easy to Install

Install Murex from your favorite package manager

brew install murex

More options are available in the INSTALL document

🛟 Getting Started

Take your your first steps with Murex by following our Language Tutorial