Skip to content

It Finally Feels Like a Real Tool

Chronicles entry — originally published externally and preserved here as a historical milestone.

Context

  • Project: crushr
  • Series: Chronicles
  • Status: Historical snapshot
  • Original venue: LinkedIn

It Finally Feels Like a Real Tool

March 24, 2026

A week ago, crushr was an experiment.

Today, it feels like a tool I would actually trust.


If you’ve been following along, the last few entries were about building a compression format with a structured workflow, discovering that metadata—not payload—is the real failure point, and turning recoverability into something measurable.

That got the system to a place where it worked.

But working is not the same as being usable.


The part I underestimated

The last few days weren’t about compression.

They were about the CLI.

Not in a “make it look nice” sense, but in a more fundamental way:

Can someone run this tool and immediately understand what just happened?

Before this pass, the output was technically correct.

It was also inconsistent, occasionally misleading, and required interpretation.

  • progress could appear stuck even when work had completed
  • commands didn’t share a consistent structure
  • recovery results mixed different truths into a single status
  • internal terminology leaked into user-facing output

It worked.

But it didn’t inspire confidence.


What changed

This phase was about turning the CLI into a product surface.

That meant enforcing a few rules:

  • every command shares the same structure
  • every phase is explicit
  • progress reflects actual work, not estimates
  • recovery is separated into clear trust classes
  • color is semantic, not decorative
  • final output is stable and scannable

Example: pack

Article content

The important part isn’t the formatting.

It’s that the output answers, without ambiguity:

  • what phase the tool is in
  • whether it’s still making progress
  • when per-file work has actually completed
  • what it’s doing during finalization
  • and what the result means

Example: info

Article content

Previously, this was almost empty.

Now it provides a basic inspection surface:

  • archive structure indicators
  • compression method and parameters
  • key characteristics of the container

Still compact, but no longer opaque.


What this actually represents

This is where the project changed categories.

Before:

  • interesting system
  • measurable behavior
  • evolving design

Now:

  • understandable
  • consistent
  • predictable

That last one matters.

Because predictability is what creates trust.


The unexpected lesson

The hardest part wasn’t building the format.

It was removing ambiguity from the interface.

A system can be technically correct and still feel unreliable if:

  • it hides transitions
  • it collapses multiple truths into one label
  • or it forces the user to interpret what happened

Fixing that required more discipline than any of the format work.


Where this leaves things

At this point, I’m comfortable calling the current state:

v0.3.x — product surface

Not done. But real.

The system now:

  • behaves deterministically
  • communicates clearly
  • and no longer feels like an experiment when you run it

What comes next (v0.4.0)

Right now, an archive is still a black box until you extract it.

The next phase changes that.

v0.4.0 will focus on introspection:

  • listing archive contents without extraction
  • exposing file and directory structure
  • enabling partial visibility under damage
  • laying groundwork for showing where data lives inside the container

Not visualization for its own sake.

Inspection that answers:

“What’s in here, and how much of it can I trust?”


Closing thought

The first phase proved the system could work.

This phase proved it could be used.

That turned out to be the harder problem.