{"id":48802939,"url":"https://github.com/drew-chase/mush","last_synced_at":"2026-04-14T04:00:51.523Z","repository":{"id":350971519,"uuid":"1201747051","full_name":"Drew-Chase/mush","owner":"Drew-Chase","description":"A fully cross-platform shell interpreter and drop-in replacement for PowerShell, BASH, and ZSH","archived":false,"fork":false,"pushed_at":"2026-04-13T02:53:03.000Z","size":905,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-04-13T03:27:07.785Z","etag":null,"topics":["command-line-utilities","cross-platform","shell","terminal","tui"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Drew-Chase.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-05T05:14:53.000Z","updated_at":"2026-04-13T02:53:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Drew-Chase/mush","commit_stats":null,"previous_names":["drew-chase/mush"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Drew-Chase/mush","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drew-Chase%2Fmush","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drew-Chase%2Fmush/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drew-Chase%2Fmush/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drew-Chase%2Fmush/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Drew-Chase","download_url":"https://codeload.github.com/Drew-Chase/mush/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Drew-Chase%2Fmush/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31781292,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line-utilities","cross-platform","shell","terminal","tui"],"created_at":"2026-04-14T04:00:25.349Z","updated_at":"2026-04-14T04:00:51.475Z","avatar_url":"https://github.com/Drew-Chase.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mush - Multi-Unified Shell\n\nA fully cross-platform shell interpreter with a modern TUI, 78 bundled Unix utilities, and smart autocomplete — built in Rust.\n\nMush is a drop-in replacement for PowerShell, Bash, and Zsh that works identically on Windows, macOS, and Linux. It ships its own coreutils so you get a consistent Unix-like experience everywhere, even on a fresh Windows install.\n\n## Features\n\n- **TUI-first design** — live-streaming command output, inline autocomplete, mouse support, and clipboard integration powered by [Ratatui](https://ratatui.rs)\n- **Cross-platform** — native binaries for Windows (x64), macOS (ARM64/x64), and Linux (x64)\n- **78 bundled utilities** — `ls`, `grep`, `find`, `sed`, `awk`, `cat`, `cp`, `mv`, `rm`, `diff`, `sort`, `tree`, `ps`, and many more — no system coreutils required\n- **Proper parser** — two-phase lexer + AST supporting pipes, chains (`\u0026\u0026`, `||`), redirects, background jobs, and subshells\n- **Variable expansion** — `$VAR`, `${VAR:-default}`, `${VAR:=value}`, `${VAR:+alt}`, `${VAR:?err}`, `$?`, `$(cmd)`, `\u003c(cmd)`\n- **Glob patterns** — `*`, `?`, `[abc]` with filesystem expansion\n- **I/O redirection** — `\u003e`, `\u003e\u003e`, `\u003c`, `2\u003e`, `2\u003e\u003e`, `2\u003e\u00261`, `\u003c\u003c\u003c`, `\u003c\u003c`\n- **Smart autocomplete** — parses `--help` output from any command and caches suggestions in SQLite\n- **SQLite-backed history** — persistent, searchable, deduplicated command history\n- **30 builtin commands** — `cd`, `pushd`/`popd`, `export`, `alias`, `source`, `test`, `printf`, `read`, and more\n- **TypeScript scripting** — extend mush with TypeScript/JavaScript scripts via Bun\n- **TOML configuration** — customizable layout, aliases, and startup behavior\n\n## Installation\n\n### From GitHub Releases\n\nDownload the latest release for your platform from [GitHub Releases](https://github.com/Drew-Chase/mush/releases):\n\n| Platform | Download |\n|----------|----------|\n| Windows (x64) | NSIS installer (`.exe`) or portable (`.zip`) |\n| macOS (ARM64) | `.tar.gz` archive |\n| macOS (x64) | `.tar.gz` archive |\n| Linux (x64) | `.tar.gz` archive |\n\n### Building from Source\n\nRequires [Rust](https://rustup.rs/) (edition 2024).\n\n```sh\ngit clone https://github.com/Drew-Chase/mush.git\ncd mush\ncargo build --release\n```\n\nBinaries are output to `target/release/`. The main shell binary is `mush`, and each bundled utility is a separate binary.\n\n## Shell Features\n\n### Pipelines and Chains\n\n```sh\nls -la | grep \".rs\" | sort -k5 -n\ncargo build \u0026\u0026 cargo test || echo \"failed\"\nlong-running-task \u0026\n```\n\n### Variable Expansion\n\n```sh\necho $HOME\necho ${USER:-unknown}\necho \"Files: $(ls | wc -l)\"\ndiff \u003c(sort file1.txt) \u003c(sort file2.txt)\n```\n\n### I/O Redirection\n\n```sh\necho \"hello\" \u003e output.txt\ncat file.txt \u003e\u003e log.txt\ncommand 2\u003e/dev/null\ncommand \u003e out.txt 2\u003e\u00261\ngrep pattern \u003c\u003c\u003c \"search this string\"\n```\n\n### Glob Patterns\n\n```sh\nls *.rs\ncp src/**/*.toml backup/\nrm temp/??_*.log\n```\n\n## Builtin Commands\n\n| Category | Commands |\n|----------|----------|\n| **Navigation** | `cd`, `pwd`, `pushd`, `popd`, `dirs` |\n| **Environment** | `export`, `unset`, `env`, `printenv`, `set` |\n| **Aliases** | `alias`, `unalias` |\n| **I/O** | `echo`, `printf`, `read` |\n| **History** | `history`, `source` (`.`), `scripts` |\n| **Control** | `exit`, `true`, `false`, `test` (`[`) |\n| **Info** | `type`, `which`, `expr`, `umask` |\n| **Jobs** | `jobs`, `fg`, `bg`, `wait` |\n| **Terminal** | `clear` (`cls`) |\n\n## Bundled Utilities\n\nAll 78 utilities are standalone Rust binaries that work on every supported platform.\n\n\u003cdetails\u003e\n\u003csummary\u003eFull list (click to expand)\u003c/summary\u003e\n\n| Category | Utilities |\n|----------|-----------|\n| **Text Processing** | `awk`, `column`, `comm`, `cut`, `expand`, `fmt`, `fold`, `grep`, `join`, `paste`, `rev`, `sed`, `sort`, `tr`, `unexpand`, `uniq` |\n| **File Viewing** | `cat`, `head`, `less`, `more`, `strings`, `tail`, `wc`, `xxd` |\n| **File Comparison** | `diff`, `patch` |\n| **File Operations** | `cp`, `find`, `install`, `ln`, `mkdir`, `mktemp`, `mv`, `rm`, `stat`, `file`, `tee`, `touch`, `tree` |\n| **File Attributes** | `basename`, `chmod`, `chgrp`, `chown`, `dirname`, `readlink`, `realpath` |\n| **Hashing \u0026 Encoding** | `base64`, `md5sum`, `sha256sum` |\n| **Process Management** | `kill`, `nohup`, `pgrep`, `pkill`, `ps`, `timeout` |\n| **System Info** | `arch`, `date`, `df`, `du`, `free`, `hostname`, `id`, `nproc`, `uname`, `uptime`, `whoami` |\n| **Utility** | `bc`, `echo`, `ls`, `reset`, `seq`, `shuf`, `sleep`, `su`, `sudo`, `tput`, `xargs`, `xxd`, `yes` |\n\n\u003c/details\u003e\n\n## Configuration\n\nMush stores its configuration in TOML format at:\n\n- **Linux/macOS:** `~/.config/mush/config.toml`\n- **Windows:** `%APPDATA%\\mush\\config.toml`\n- **Override:** set `MUSH_APPDATA` environment variable\n\n```toml\n[application]\ndefault_cwd = \"~\"\ntheme = \"dark.joker\"\ninteractive_commands = [\"less\", \"nano\", \"vim\"]\n\n[alias]\nll = \"ls -la\"\nla = \"ls -A\"\ngs = \"git status\"\n```\n\n## Keyboard Shortcuts\n\n| Shortcut | Action |\n|----------|--------|\n| `Up` / `Down` | Navigate command history |\n| `Tab` | Accept autocomplete suggestion |\n| `Ctrl+C` | Copy selected text |\n| `Ctrl+V` | Paste from clipboard |\n| `Ctrl+A` | Select all |\n| `Ctrl+Arrow` | Word navigation |\n| `Ctrl+Backspace` | Delete word |\n| `Ctrl+O` | Open current directory in file explorer |\n\n## Project Structure\n\n```\nmush/\n├── mush/          # Main shell interpreter (TUI, parser, builtins, pipeline executor)\n├── crates/        # 78 bundled utility crates\n│   ├── ls/\n│   ├── grep/\n│   ├── find/\n│   └── ...\n├── Cargo.toml     # Workspace configuration\n└── ROADMAP.md     # Development roadmap to 1.0.0\n```\n\n## Current Status\n\n**Version 0.1.0** — Mush is an interactive prototype. It works well as a daily-driver command runner but does not yet support control flow (`if`/`for`/`while`/`case`), function definitions, or script file execution. See the [ROADMAP](ROADMAP.md) for the path to 1.0.0.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrew-chase%2Fmush","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrew-chase%2Fmush","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrew-chase%2Fmush/lists"}