noshdocs

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?

Factorzsh + spaceshipnosh
LanguageInterpreted shell scriptsCompiled Rust binary
Plugin executionSequential shell commandsParallel async tasks
Git detectionSpawns git processesNative library (libgit2)
StartupSources .zshrc, frameworksDirect binary execution

Feature Comparison

Featurezsh + spaceshipnosh
Startup time~155ms~2ms
Bash compatiblePartialFull
Plugin formatShell scriptsTOML config
Theme formatShell scriptsTOML config
Completion formatShell scriptsTOML config
AI commandsRequires external toolsBuilt-in
Async promptsVia zsh-asyncNative (100ms soft timeout)
Language detectionShell commands per promptCached native detection
Memory usage~15-30MB~8MB
Written inC + shellRust

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.