Analysis updated 2026-05-18
Run scripts on macOS that need FreeBSD sh's predictable, non-interpreting echo behavior.
Test how a script behaves differently under zsh versus a Bourne-lineage shell.
Build fsh from source using Xcode Command Line Tools and Homebrew.
Use fsh as a portable reference shell for cross-system script development.
| dotike/fsh | dreamfekk/andriod-autouedump-gui | opensourcerer-dev/ps5debug-ng | |
|---|---|---|---|
| Stars | 33 | 35 | 31 |
| Language | C | C | C |
| Setup difficulty | moderate | hard | hard |
| Complexity | 2/5 | 5/5 | 5/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
No package installer yet, building from source with Xcode Command Line Tools is required.
This project ports FreeBSD's sh shell to macOS, giving Mac users access to a Bourne-lineage shell that behaves differently from the zsh shell Apple ships by default. The main reason someone would reach for it is a specific difference in how the two shells handle the echo command. On macOS, zsh's built-in echo interprets escape characters like \n (newline) and \t (tab) automatically. That means typing echo "hello\nworld" in zsh actually prints two lines. FreeBSD sh does not do this. Its echo prints exactly what you give it, and escape interpretation only happens if you explicitly ask for it with a flag. This matters for scripts that need to produce consistent, predictable output across different systems and shells. The project takes the shell source from a February 2023 snapshot of the FreeBSD codebase and adds a small compatibility layer to make it compile on macOS. It links against libedit, a library that provides line editing, command history, and tab completion in the terminal. The resulting binary is called fsh and installs to ~/bin by default. Building it requires Xcode Command Line Tools and Homebrew, which are standard tools for developers on Mac. The README includes a short demonstration showing the difference in echo behavior between fsh and zsh side by side. The license is BSD-2-Clause, the same permissive license FreeBSD itself uses. The README is short and focused. It covers the motivation, build steps, a quick test, and the source origin. There is no package installer available yet (the Homebrew tap section is commented out in the source), so building from source is the only install path at the moment.
A port of FreeBSD's sh shell to macOS, useful for scripts that need predictable echo behavior that zsh does not provide.
Mainly C. The stack also includes C, libedit, macOS.
Use freely for any purpose, including commercial use, as long as you keep the copyright notice and do not use the author's name to promote derived products.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.