Skip to content

kelp/vibeutils

Repository files navigation

vibeutils

Memory-safe Unix utilities written in Zig, inspired by GNU coreutils and OpenBSD.

MIT LicensedLinuxmacOSBSD

What's Different

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 --help with syntax-highlighted flags
  • Smart terminal detection (NO_COLOR, 256-color, truecolor)
  • Graceful degradation to plain text in pipes and dumb terminals

Project Status

Pre-1.0: 47 utilities implemented with comprehensive test coverage. Expect breaking changes as we refine the design.

Implemented Utilities

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

Installation

Homebrew (macOS/Linux)

brew install kelp/tap/vibeutils

Commands 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"

Nix

# Try it out
nix shell github:kelp/vibeutils

# Build locally
nix build github:kelp/vibeutils

For faster installs with prebuilt binaries, use the Cachix binary cache:

cachix use vibeutils
nix shell github:kelp/vibeutils

Nix installs use original names (no prefix) since Nix environments are isolated.

Build from source

Requirements: Zig 0.15.2 or later

git clone https://github.com/kelp/vibeutils.git
cd vibeutils
zig build -Doptimize=ReleaseSafe

Find binaries in zig-out/bin/.

Development

make build          # Build all utilities
make test           # Run unit tests
make it             # Run integration tests
make coverage       # Coverage report
make fmt            # Format code
make help           # All targets

# Single utility
make build UTIL=grep
make test UTIL=grep
make run UTIL=grep ARGS="-r TODO src/"

Testing

  • Unit tests embedded in each source file
  • Integration tests in tests/utilities/
  • Privileged tests via fakeroot
  • Target: 90%+ coverage

License

MIT License - see LICENSE file.

About

Modern Unix coreutils in Zig — git-aware ls, colored output, Nerd Font icons, memory-safe

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages