Huck banner
jdstanhope jdstanhope

Huck

Development community

Description

A Bash compatible shell written in Rust by Claude

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

huck

A bash-compatible shell written in Rust, working toward being a drop-in replacement for everyday interactive and scripting use. huck implements most of bash's surface — expansions, control flow, functions, arrays, job control, line editing, programmable completion — and verifies it against real bash: every feature ships with a design spec, an implementation plan, a test suite, and a **byte-identical bash-diff harness** that runs the same fragments through both shells and asserts identical output.

Real-world bar: huck sources a non-trivial `~/.bashrc` (bash-completion, git prompt, nvm, mise activation) and drives interactive tab completion against the system `bash-completion` package.

Installation

**Homebrew (macOS/Linux):**

brew install jdstanhope/huck/huck

**Debian/Ubuntu (.deb):**

curl -fsSL https://raw.githubusercontent.com/jdstanhope/huck/main/scripts/install.sh | sh
# or, manually:
sudo apt install ./huck__.deb

**From source:**

cargo install --git https://github.com/jdstanhope/huck huck

Status

Actively developed, one coherent feature at a time. Current scope:

  • ~3,400 tests (unit + integration) and 160 bash-diff harnesses, all green; cargo clippy --all-targets clean.
  • Command-substitution-heavy scripts run at near-bash speed: per-$() Shell clone is O(1) via copy-on-write (Rc + make_mut); 2000× $(true) after loading nvm: ~0.7 s vs ~46 s pre-fix; nvm ls wall-clock now matches bash.
  • Sources ~/.bashrc-class startup files and the system bash-completion framework without errors.
  • Known gaps and actionable divergences are tracked as GitHub issues labelled `divergence`; deliberate, kept-by-design divergences live in `docs/bash-divergences.md` — see Known differences from bash below for the summary.

The full feature history (every iteration's spec and plan) lives