A couple of months back I was looking for a fun quick project and also was having space issues on my Mac.
So github copilot and I wrote a little disk usage exploration tool in rust with very few dependencies.
It's called "syz" and I pronounce it "size" since it's all about exploring disk usage and figuring out what to trim.
Someone I respect started using it and reached out saying he liked it so I figured I'd dust it off and share it here!
After `cargo install syz`, use the `syz` command to enter the interactive cli starting at the current directory. Then use arrow keys to navigate directories and compare their recursive sizes.
Nice and minimal. How does scanning speed compare to dust or ncdu on large trees? The "hide largest item to compare smaller ones" interaction is clever, haven't seen that in other du tools.
If you want feature ideas, here are some I vibe-coded into my ncdu fork:
d — send the selected item to trash
D — delete the selected item directly (was d upstream)
e — open the selected item with $EDITOR
f — open the selected item with open(1)
y — copy the selected item's path to the clipboard
i — item info panel now shows a file(1) description in the Type row
I — open a scrollable mediainfo pager for the selected file
I'd argue against adding most of these. While a delete/trash function makes sense for a tool aimed at freeing up disk space, adding features like opening files with $EDITOR, open(1), or mediainfo crosses the line into file manager territory (like ranger or yazi). It feels like it goes against the "tiny" and minimal core philosophy of the tool. Do one thing well!
I think “do one thing well” depends on how you define the “thing”.
For something interactive, the “thing” can be the whole workflow, not just one step of it — similar to how a browser isn’t just fetching HTML, but making the web usable.
A couple of months back I was looking for a fun quick project and also was having space issues on my Mac.
So github copilot and I wrote a little disk usage exploration tool in rust with very few dependencies.
It's called "syz" and I pronounce it "size" since it's all about exploring disk usage and figuring out what to trim.
Someone I respect started using it and reached out saying he liked it so I figured I'd dust it off and share it here!
After `cargo install syz`, use the `syz` command to enter the interactive cli starting at the current directory. Then use arrow keys to navigate directories and compare their recursive sizes.
Nice and minimal. How does scanning speed compare to dust or ncdu on large trees? The "hide largest item to compare smaller ones" interaction is clever, haven't seen that in other du tools.
Thank you!
Good question. I haven't done any work yet to make this fast so it might not be too quick...
If you want feature ideas, here are some I vibe-coded into my ncdu fork:
I hadn't even thought about these -- inspecting and deleting from the TUI makes a lot of sense.
I'd argue against adding most of these. While a delete/trash function makes sense for a tool aimed at freeing up disk space, adding features like opening files with $EDITOR, open(1), or mediainfo crosses the line into file manager territory (like ranger or yazi). It feels like it goes against the "tiny" and minimal core philosophy of the tool. Do one thing well!
I think “do one thing well” depends on how you define the “thing”. For something interactive, the “thing” can be the whole workflow, not just one step of it — similar to how a browser isn’t just fetching HTML, but making the web usable.
[dead]