nosh vs zsh
How nosh compares to zsh with popular prompt frameworks
nosh vs zsh
See how nosh compares to zsh with spaceship-prompt, one of the most popular prompt frameworks.
Startup Speed
90x faster
Time to first prompt
zsh + spaceship
155ms
nosh
1.7ms
Every command you run, you save 153ms waiting for your prompt. That's instant feedback instead of a noticeable delay.
Why so fast?
| Factor | zsh + spaceship | nosh |
|---|---|---|
| Language | Interpreted shell scripts | Compiled Rust binary |
| Plugin execution | Sequential shell commands | Parallel async tasks |
| Git detection | Spawns git processes | Native library (libgit2) |
| Startup | Sources .zshrc, frameworks | Direct binary execution |
Feature Comparison
| Feature | zsh + spaceship | nosh |
|---|---|---|
| Startup time | ~155ms | ~2ms |
| Bash compatible | Partial | Full |
| Plugin format | Shell scripts | TOML config |
| Theme format | Shell scripts | TOML config |
| Completion format | Shell scripts | TOML config |
| AI commands | Requires external tools | Built-in |
| Async prompts | Via zsh-async | Native (100ms soft timeout) |
| Language detection | Shell commands per prompt | Cached native detection |
| Memory usage | ~15-30MB | ~8MB |
| Written in | C + shell | Rust |
Configuration Comparison
Theme Configuration
zsh + spaceship (shell script)
# ~/.zshrc
SPACESHIP_PROMPT_ORDER=(
dir
git
node
rust
exec_time
line_sep
char
)
SPACESHIP_CHAR_SYMBOL="❯"
SPACESHIP_DIR_COLOR="blue"nosh (TOML)
# ~/.config/nosh/themes/mytheme.toml
[prompt]
format = """
[{dir}](blue bold) [{git_branch}](purple)
[{rust_version}](red) [{node_version}](green)
[{prompt:char}](green) """
char = "❯"Plugin Creation
zsh (shell script)
# weather.plugin.zsh
spaceship_weather() {
local temp
temp=$(curl -s 'wttr.in?format=%t')
spaceship::section \
--color "cyan" \
--symbol "🌡️" \
"$temp"
}nosh (TOML)
# weather.toml
[plugin]
name = "weather"
[provides]
temp = { command = "curl -s 'wttr.in?format=%t'" }What You Keep
Switching to nosh doesn't mean starting over:
- Your scripts work — nosh is Bash-compatible, so existing scripts run unchanged
- Your muscle memory — Same commands, same shortcuts, same workflow
- Your tools — git, docker, npm, cargo — everything works the same
What You Gain
- Instant prompts — No more waiting for your prompt to render
- Simpler config — TOML instead of shell scripts
- Built-in AI — Ask questions in plain English
- Modern codebase — Rust means fewer crashes, better performance
- Package system — Install themes and plugins with
/install user/repo
Benchmark Methodology
Tests run in Docker containers (Debian Bookworm) for reproducibility:
- zsh 5.9 with spaceship-prompt (latest)
- nosh built from source
- Test environment: Git repository with Cargo.toml
- Measurement: Time from process start to prompt character appearing
- Runs: 50 iterations with 5 warmup runs
# Reproduce the benchmark
git clone https://github.com/poudels14/nosh
cd nosh
docker build -t nosh-benchmark -f benchmarks/Dockerfile .
docker run --rm nosh-benchmark
Ready to Try?
cargo install nosh
nosh
Your existing shell stays untouched. Try nosh and see the difference.