Skip to content

seetree

Zig · CLI · TUI maintained

Terminal tree viewer written in Zig. Tails Claude Code's JSONL session logs and lights up files as they get read, written, edited, or deleted. ~200K binary, on Homebrew and npm.

~200K binary · Homebrew + npm

[why]

I usually have at least four or five Claude Code sessions going at once. I tell Claude what I want, it goes off and reads files, edits them, writes to them, but I can never tell exactly which files got touched without reading through all the thinking and bash calls. My IDE shows the same modified dot for every tracked or untracked file, so the file edited a second ago looks identical to the file edited two weeks ago. So I built a live tree viewer that lights up as Claude works.

Wrote it in Zig because a CLI that sits in a side pane all day has to start fast and stay small. Hand-rolled the JSONL scanner from scratch and swapped std.process.spawn and std.Io.Dir for direct POSIX so the binary fits at or around 200K. Default polls ~/.claude/projects/*.jsonl every 2 seconds, with an optional FileChanged hook that drops the poll to 30 seconds and refreshes on every event instead.

[related]