furnizsh

four ways, no clone

install

The whole payload is about 50 KB. Nothing needs a repo left on disk.

install

# anywhere — POSIX sh, so it runs before you know anything about the machine.

# macOS · Linux — Installs the command; setting up your shell stays an explicit second step.

# anywhere with Node — Node is only the delivery mechanism — nothing runs on install.

# Windows — The native Windows channel — real cmdlets, not a folder of loose files.

Run it with --dry-run first. It prints every single action it would take and changes nothing — including the one line it would append to your .zshrc. Read that before you trust it.

pick what you want

Everything optional sits behind a flag. A plain furnizsh install stays minimal.

FlagDefaultWhat it does
--theme <name>neonneon · catppuccin · gruvbox · tokyonight
--tools <set>corecore · extended · all — see below
--dry-runoffprint every action, change nothing
--yesoffdon't prompt — for non-interactive installs
--no-fontoffskip the JetBrains Mono Nerd Font
--no-tmuxoffskip the tmux config
--no-extrasoffskip the network-dependent commands
--no-claudeoffskip the optional Claude Code extras
--no-chshoffdon't change your login shell
Tool setInstalls
corestarship · fzf · zoxide · eza · bat · fd · git-delta · lazygit
extendedcore, plus ripgrep · tmux · jq · direnv · tldr · btop
allextended, plus atuin · yq · httpie · dust · procs · gh

PowerShell takes the same options in its own spelling: -Theme, -Tools, -DryRun, -Yes, -NoFont, -NoExtras, -NoTerminal.

platforms

PlatformTerminalShellCommandsScripts
macOSGhosttyzsh + Oh My Zsh24install.sh · uninstall.sh · doctor.sh
LinuxGhosttyzsh + Oh My Zsh24install.sh · uninstall.sh · doctor.sh
Windows + WSL2Ghosttyzsh + Oh My Zsh24install.sh · uninstall.sh · doctor.sh
Windows nativeWindows TerminalPowerShell + PSReadLine24install.ps1 · uninstall.ps1 · doctor.ps1

Ghostty has no native Windows build — it ships macOS and Linux only. On Windows you get either the full thing through WSL2, or the same tool stack and all 24 commands in PowerShell with Windows Terminal and a matching colour scheme. Both routes are written up.

Windows is untested. CI runs the whole install, verify, re-run and uninstall cycle on Ubuntu, Fedora and Arch, and lints the PowerShell with PSScriptAnalyzer — but nothing executes those scripts on an actual Windows machine yet. Treat the native route as unverified until that changes.

questions

Does this work with fish shell?

No. furnizsh targets zsh on macOS and Linux, and PowerShell on Windows. The mascot is a deep-sea anglerfish, not an endorsement of the Friendly Interactive Shell. Most of the config is Oh My Zsh plugins and zsh functions, which have no fish equivalent.

Will it break my existing .zshrc?

No. It appends one marker-guarded source line and writes the actual config to ~/.config/furnizsh/. Your PATH exports, work tooling and aliases are never read, moved or rewritten. Everything it does replace is backed up to ~/.furnizsh-backup/<timestamp>/ first, and furnizsh uninstall restores it — verified byte-for-byte in CI.

I already have my own dotfiles. Can I take just the bits I want?

Yes, and that's a reasonable way to use it. SETUP.md is the manual version of everything the installer does, step by step, so you can lift the Ghostty config, the Starship preset or just the helper functions.

Why is it called furnizsh?

It's "furnish" with zsh spliced into the middle — you pronounce it the same. To furnish is to fit out a space so it's worth living in, which is what the tool does to a bare shell.

Do I have to use Ghostty?

No. The shell config, tools, prompt and all 24 commands work in any terminal — you just lose the specific theme. Alacritty, Kitty, WezTerm and even Terminal.app all work; set the font to JetBrainsMono Nerd Font Mono and pick a dark theme.

Why are the icons all boxes?

The Nerd Font isn't active. Check it installed, then set your terminal's font to JetBrainsMono Nerd Font Mono exactly — plain "JetBrains Mono" is a different, icon-free font. fzdoctor checks this for you.

Something's broken. Where do I start?

Run fzdoctor. It checks every tool, config file, plugin and font and prints the exact fix command for anything missing. Include its output if you open an issue.

Is it safe to run twice?

Yes — it's idempotent. It compares against what's already installed and only changes what actually drifted. Rerunning is also how you apply an update.