tags: [winuxsh, roadmap] created: 2026-07-13 status: active
Winuxsh Roadmap
Winuxsh is a Windows-native, non-isolated Bash-compatible shell for humans and agents.
winuxsh = rubash + winuxcmd + reedline + oh-my-winuxsh
Done
rubashis embedded as the shell language engine.- WinuxCmd command links provide bundled Unix-style commands through PATH.
- The REPL uses reedline for editing, history, menus, autosuggestions, syntax highlighting, vi/emacs modes, and prompt rendering.
~/.winuxshrcis the primary interactive startup file.~/.winshrcis an old fallback only when~/.winuxshrcis absent.- Plugin CLI decisions, permissions, bundle versions, tests, and advanced overrides are maintained as internal managed state, not user configuration.
- Plugin inventory, review, doctor, enable/disable, update, and rollback surfaces exist.
oh-my-winuxshis the official bundled plugin distribution.- Git completions, Git prompt status, prompt templates, and p10-style segment presets are available.
- Host contract tests cover cwd, env, stdin, stdout/stderr, script args, command-mode parsing, and exit-code propagation.
Current Direction
- Keep shell semantics in
rubash; fix parser, executor, builtins, redirects, pipelines, functions, jobs, and Bash language behavior upstream. - Keep Windows host integration in Winuxsh: cwd/env synchronization, PATH injection, installer behavior, command links, prompt rendering, and REPL UX.
- Model the plugin system after mature shell frameworks: named packs in a bundle, pack manifests, sourceable helper files, exported aliases, completions, functions, hooks, prompt segments, keybindings, and themes.
- Keep prompt layout user/theme owned. Providers such as native Git status or Starship-backed Git supply segment data; they do not replace the whole prompt unless the selected theme chooses that layout.
- Keep third-party integration on reviewed source packs and explicit process adapters until a real host API justifies another runtime.
Near-Term Work
- Normalize first-party pack manifests around exports and permissions.
- Move more alias/completion/theme assets from compiled fallback into the
bundled
oh-my-winuxshdistribution. - Split prompt responsibilities clearly:
- theme owns layout and connective text;
- prompt-core renders templates;
- Git/Starship providers supply data for
{git}and related tokens.
- Add regression tests for installed bundle startup, prompt provider selection, and missing external binaries.
- File and fix WinuxCmd command issues separately from rubash language issues.
Verification
- Fast loop:
cargo fmt --check -p winuxsh; cargo build --locked; cargo test --workspace --locked - Runtime library:
cargo test -p winuxsh-runtime --lib --locked - Host contract: run the ignored host suites with WinuxCmd command links in PATH when changing PATH, cwd, env, or command-link behavior.
- Local Bash upstream gate remains local-only and should report 86 total, 86 passed, 0 failed for the Winuxsh binary under test.
Locked Decisions
- License: GPL-3.0-or-later.
rubashfollows latestunixwin/rubashmaster.- WinuxCmd stays integrated through PATH injection and command links.
~/.winuxshrcis the normal user-authored interactive config.- Machine-managed state is not a human-authored configuration surface.
oh-my-winuxshis the official bundle, not a fork of another shell framework.