A terminal file explorer
for the vibe-code workflow
Open source · MIT · GitHub ↗

a lazygit-style terminal file explorer

A file tree that stays out of your way.

lazyexplorer is a deliberately small terminal explorer that sits in the pane beside your agent — just the tree and a preview. Nothing to configure, no panels to arrange, nothing competing for your attention — small enough to forget it's even open.

$ brew install nguyenvanduocit/tap/lazyexplorer
macOS · Linux · Windows·~13 MB static binary·opt-in telemetry ·read the source ↗
~/acme-api — lazyexplorer
// fig.1 — the whole interface: the project tree on the left, a rendered preview of whatever's selected on the right (here README.md, through glamour). Two panes, nothing else to arrange or learn.
01why it exists

Less tooling, not more.

Working with an agent already crowds the screen — its output, diffs, tool calls, your own shell. Reach for a heavyweight file manager or a second editor beside it and you're managing windows instead of doing the work.

lazyexplorer goes the other way: one small pane with the tree and a rendered preview, and nothing else to arrange or learn. Glance, see where things stand, get back to the agent. Small on purpose, so it stays out of the way instead of becoming one more thing to manage.

02what it does

01Previews that read well

Markdown is rendered through glamour — headings, lists, tables, inline code. Source is syntax-highlighted through chroma. Directories show as listings. One pane, every file type, read the way it's meant to be — without opening a thing. Long lines scroll sideways, or press w to wrap.

~/acme-api — preview

02Find & act fast

Press / to fuzzy-find any file in the tree, however deep, and jump straight to it. Press ctrl+p for the command palette — reload, copy the selected path (to paste into the agent's chat), or cd anywhere inside the jail. The two moves you reach for most, a keystroke away.

~/acme-api — find & act

03Lives in the pane beside your agent

Run it with --split and it opens a pane right next to the one you're in — tmux, zellij, WezTerm, Kitty, Ghostty, or iTerm2 — then runs there and leaves your prompt free. The file tree ends up exactly where you want it: alongside the agent, not on top of it.

$ lazyexplorer --split ← a pane to the right $ lazyexplorer --split=below ← or stacked underneath
03get it
install — Homebrew (macOS / Linux)
$ brew install nguyenvanduocit/tap/lazyexplorer
The canonical one-liner for third-party taps (same shape as hashicorp/tap/terraform, argoproj/tap/argo). Prefer a shorter form? Tap once, then install short:
$ brew tap nguyenvanduocit/tap     # one-time
$ brew install lazyexplorer        # short from now on
$ brew upgrade lazyexplorer        # later
install — Go toolchain
$ go install github.com/nguyenvanduocit/lazyexplorer@latest
Needs Go 1.26+. Builds the binary into $GOBIN.
install — pre-built binary
$ curl -sSL github.com/nguyenvanduocit/lazyexplorer/releases/latest # pick your arch
Multi-arch tarballs (darwin / linux × amd64 + arm64) and a Windows zip live on every GitHub Release, with SHA256 checksums.txt alongside.
usage
$ cd your-project
$ lazyexplorer             # explore the current directory
$ lazyexplorer ./docs      # or point it somewhere — that becomes the root
$ lazyexplorer --split     # open in a split pane beside this one
$ lazyexplorer --version   # print version and exit
Key reference
jkmove the cursor — or scroll, when the preview is focused
gGjump to top / bottom
enterlopen folder
hbkspgo up a level (stops at the root)
tabswitch focus between the list and the preview
^d^uhalf-page down / up in the preview
HL0wscroll the preview sideways · reset · toggle wrap
/fuzzy-find a file anywhere in the tree
^pcommand palette (reload, copy path, cd)
?full key help
escback — close search, palette, or help
rrename the selected entry
ddelete (with y / n confirm)
q^cquit