Memory-safe Unix utilities written in Zig, inspired by GNU coreutils and OpenBSD.
MIT Licensed • Linux • macOS • BSD
vibeutils covers the 80% of GNU coreutils you actually use, with modern terminal enhancements that activate automatically.
ls gains the most:
--icons— Nerd Font file type icons--git— inline git status per file--time-style=relative— "2 hours ago" instead of timestamps (default in long format)
Across all utilities:
- Colored
--helpwith syntax-highlighted flags - Smart terminal detection (NO_COLOR, 256-color, truecolor)
- Graceful degradation to plain text in pipes and dumb terminals
Pre-1.0 (v0.8.0): 47 utilities with 100% POSIX flag coverage (288 MUST + 220 SHOULD). Expect breaking changes as we refine the design.
File Operations
cat cp dd ln mkdir mktemp mv rm rmdir
touch
File Information
df du find ls readlink realpath stat
Text Processing
cut grep head nl sort tac tail tee tr
uniq wc
Path & Names
basename dirname pwd
User & Permissions
chmod chown id whoami
System & Process
date env free seq sleep timeout
Output & Control
echo false printf test true yes
brew install kelp/tap/vibeutilsCommands install with a v prefix (vls, vcp, vmv) to avoid
conflicts with system utilities. To use without prefix:
export PATH="$(brew --prefix)/opt/vibeutils/libexec/vibebin:$PATH"# Try it out
nix shell github:kelp/vibeutils
# Build locally
nix build github:kelp/vibeutilsPrebuilt binaries are available via Cachix. Without this, Nix builds from source (requires Zig):
cachix use vibeutilsAdd vibeutils as a flake input. Do not use
inputs.nixpkgs.follows — that changes the derivation
hash and forces a build from source instead of pulling
prebuilt binaries from Cachix.
# flake.nix
inputs.vibeutils.url = "github:kelp/vibeutils";# home.nix
home.packages = [ inputs.vibeutils.packages.${pkgs.system}.default ];The vibeutils flake lock is updated weekly via CI, so its nixpkgs stays current.
Nix installs use original names (no prefix) since Nix environments are isolated.
Requirements: Zig 0.15.2 or later
git clone https://github.com/kelp/vibeutils.git
cd vibeutils
zig build -Doptimize=ReleaseSafeFind binaries in zig-out/bin/.
just build # Build all utilities
just test # Run unit tests
just it # Run integration tests
just coverage # Coverage report
just fmt # Format code
just # List all recipes
# Single utility
just build-util grep
just test-util grep
just run grep -- -r TODO src/- Unit tests embedded in each source file
- Integration tests in
tests/utilities/ - Privileged tests via fakeroot
- Target: 90%+ coverage
MIT License - see LICENSE file.
