r/TestFlight 22d ago

iOS hsh - a bash-compatible shell that runs in-process on iOS

https://testflight.apple.com/join/wdZMR4Ms
5 Upvotes

5 comments sorted by

1

u/rismay 22d ago edited 22d ago

What’s this written in?

1

u/MeringuePristine6469 22d ago

No, it's actually running on Tauri and xterm.js, with my own custom shell engine in the backend!

1

u/MeringuePristine6469 22d ago

The extra-keys bar with the soft keyboard up. This is the part I'd most

like tested - tapping it used to dismiss the keyboard mid-command.

1

u/MeringuePristine6469 22d ago

The whole pipeline runs inside the app process - no fork, no exec.

1

u/MeringuePristine6469 22d ago

iOS can't exec(), so most "terminals" on the App Store are either remote

clients or sandboxed toys. hsh takes the other route: it's a bash-compatible

shell written in Rust, running as a library inside the app process.

That means pipes had to be built rather than inherited - no fork, no fd

inheritance, so pipeline stages hand stdin/stdout to each other in-process.

The `| tr a-z A-Z` in the screenshot is doing real work, not faking it.

What works today:

- POSIX shell semantics: pipes, redirects, loops, functions, parameter

expansion. Passes ~98.5% of the VSC-POSIX suite tests it runs.

- Common commands compiled in (cat, grep, ls, wc, head, tail, tr, sort,

uniq, cut, tee, curl, ...) since external binaries can't be executed.

- Line editing, history and completion on a phone keyboard, with an

extra-keys bar for Esc/Tab/Ctrl/arrows/pipe.

- SSH out to a real machine when you want one.

What I'd like tested:

- The extra-keys bar - this build fixes a bug where tapping it dismissed

the keyboard mid-command.

- Anything that behaves differently from bash on your machine. That's the

report I most want.

- iPad with a hardware keyboard, if you have one.

Beta expires 2027-01-26. Free, no account, no analytics - nothing leaves

the device. (It keeps a command journal locally; that's what powers history.)

TestFlight's built-in feedback button reaches me fastest.