Built on 4 hours of sleep. A CLI tool that actually ships.
This wasn’t a weekend project. It came out of five months of sleeping four hours a night — JEE prep in the mornings, CS50 in the hours everyone else was asleep. This was the final assignment. The one where the scope was completely open, and that open scope was the hardest part.
The context
CS50 was the first real programming experience — the thing I’d wanted since childhood, finally structured. It added petrol to a flame that was already there. The JEE grind was supposed to be the priority. This was the escape. Completing it under those conditions proved something specific: pressure doesn’t kill output, it just makes the hours count more.
What it does
A command-line file organizer. Point it at a directory, pass flags, and it sorts your files by type — moving them into categorized folders based on a config file you define. No hardcoded extensions. No assumptions about your workflow.
Safety by design
File systems are unpredictable. Moving files into directories where names already exist can silently overwrite data. The conflict resolution strategy here preserves the existing file first — renaming it with a .bk extension — before proceeding with the operation.
CS50’s final assignment has no specified scope. The student can build anything. That freedom sounds great until you’re staring at it at midnight after a full day of exam prep, trying to pick something that is genuinely good — not just passable.
The decision to build a CLI tool came from a growing obsession with the command line — how much raw productivity lives in well-designed tools, how things like ripgrep, fzf, and ag actually work. Building this made that concrete — not just using the tools, but understanding what the kernel is doing when you read a file, traverse a directory, or rename a path.
What this proved
That you can ship something real under pressure. That the CLI is underrated — a carefully designed workflow compounds. That understanding what the kernel does when a tool runs changes how you think about writing tools.
The post-CS50 normal felt boring because the bar had moved. That’s the point.
What’s next
Publishing this as an actual usable CLI tool — packaged, documented, installable. It’s functional enough to be useful to more than just the grader.
