cross-platform · rust · open source

Directory listings
that don’t suck

f00 is a next-generation ls rewrite: fast, portable, and built for modern terminals — with an escape hatch to GNU-compatible mode when you need it.

$ curl -fsSL https://f00.sh/install.sh | bash
Get started View source
listing · -la · color tree · json · icons git · recursive · --gnu

Built for daily use

Core listing, TUI, archives, and ship-track DX (completions, man, icons when) are shipped. Remaining work is labeled honestly — we don’t sell vaporware as stable.

shipped

Speed first

Rust core, lean I/O, and formatting that stays snappy on large trees.

shipped

Portable

Linux, macOS, Windows, and BSD targets with consistent behavior where it counts.

shipped

Full coreutils ls

Quoting, --zero, -v, hyperlinks, dired, time-styles, LS_COLORS — plus strict --gnu.

shipped

Modern UX

Colors, human sizes, recursive listing, and sensible defaults out of the box.

shipped

Git status

See dirty, staged, and ignored paths inline while browsing a repository.

shipped

Icons

--icons=auto|always|never — on in TTY by default, off under --gnu.

shipped

JSON & tree

Machine-readable JSON for scripts; tree view for humans exploring structure.

shipped

TOML config

XDG-friendly config.toml for colors, icons, git, and defaults.

shipped

TUI browser

Interactive directory browser: f00 --browse with filter, marks, and open.

shipped

Archives

List inside zip/tar (and friends) without extracting to disk.

shipped

Completions & man

--generate-completions and --generate-man for packaging and shell setup.

Install in one line

Detects OS/arch, downloads the latest GitHub release, verifies checksums when present, and installs to ~/.local/bin (or INSTALL_DIR).

Quick install

curl -fsSL https://f00.sh/install.sh | bash

Pin a version or choose a directory:

curl -fsSL https://f00.sh/install.sh | F00_VERSION=v0.3.0 bash
curl -fsSL https://f00.sh/install.sh | INSTALL_DIR=$HOME/bin bash

Optional ls symlink (off by default):

curl -fsSL https://f00.sh/install.sh | F00_INSTALL_LS=1 bash

From source

git clone https://github.com/theesfeld/f00.git
cd f00
cargo build --release
./target/release/f00 -la

Prefer crates.io when published: cargo install f00

Full docs live in the README. Installer script: f00.sh/install.sh.

Everyday commands

Same spirit as ls, fewer papercuts.

long listing + human sizes
$ f00 -lah
drwxr-xr-x  glenda  4.2K  Jul 15  .git/
-rw-r--r--  glenda  1.8K  Jul 15  README.md
-rwxr-xr-x  glenda   12K  Jul 15  install.sh
tree
$ f00 --tree
.
├── crates/
│   ├── f00-cli/
│   └── f00-core/
└── site/
json (tooling)
$ f00 --json | head -c 120
{"entries":[{"name":"README.md","type":"file",…
gnu-compatible mode
$ f00 --gnu -la /tmp
# flag & column shape closer to coreutils ls

How f00 compares

Not a pure clone of GNU ls, eza, or lsd — modern defaults plus a GNU escape hatch.

GNU ls eza lsd f00
Language C Rust Rust Rust
Icons / git yes yes yes
Tree / JSON tree tree tree + JSON
GNU mode flag native partial partial --gnu
Windows via ports yes yes first-class
curl | bash f00.sh

Roadmap

Tracking is on GitHub Issues — this is a summary only.

  1. 01
    MVP solidify (shipped) v0.3: completions, man, parallel list, --profile, golden tests
  2. 02
    Release pipeline (shipped) multi-arch binaries, checksums, installer, GitHub Pages site
  3. 03
    Ship + trust + speed (v0.3) shell completions, man page, icons auto/always/never, feature CI matrix
  4. 04
    v0.3 polish (in progress) theme knobs, release train hardening, FreeBSD CI smoke
  5. 05
    Plugins (planned) plugin host ABI for extensions (#27)

Docs & community

Source of truth is the repository. Contributions welcome under dual MIT / Apache-2.0.