One-in-All

Why Building CLIs Is One of the Best Practices in Vibe Coding


If you've spent any time building tools for your own workflow, you've probably discovered it: there's something deeply satisfying about crafting a good command-line interface tool that fits exactly into how you work.

Looking at three recent CLI projects we've built โ€” Cubox CLI, Flomo CLI, and Get็ฌ”่ฎฐ CLI โ€” the pattern is clear: making CLIs is vibe coding at its finest.

What Is Vibe Coding Anyway?

Vibe coding isn't about following the latest framework hype or building complex SaaS products with 10 layers of abstraction. It's about:

And CLIs check all these boxes better than almost any other kind of development.

CLIs Force You to Stay Small and Focused

Let's look at the numbers from our three projects:

Total: under 800 lines of code for three production-ready tools.

This is the beauty of CLI development for vibe coding: you can't easily bloat it. A CLI should do one thing and do it well. The Unix philosophy wasn't invented yesterday โ€” it's just as relevant today for personal tools as it was 50 years ago.

CLIs Fit Naturally Into Your Workflow

How do you use these tools? Exactly how you'd expect: Save a bookmark to Cubox: bash cubox https://example.com -title "Example" -tags "blog, example"

Send a quick thought to Flomo: bash echo "Just had an interesting idea #blog" | flomo

Save a new note to Get็ฌ”่ฎฐ from stdin:bash cat draft.txt | getnote save --content -

They work with pipes. They understand stdin/stdout. They accept configuration via environment variables. They live on your PATH. In other words โ€” they behave like a native tool.

That's the vibe coding promise: your tools should adapt to you, not the other way around.

No Frontend = No Distraction

When you build a CLI, you don't need to think about:

All that energy goes straight into solving the actual problem. You think about: "What do I need this tool to do?" not "How do I arrange buttons on this page?"

This focus is incredibly freeing. You can build a useful tool in an afternoon, not a week.

The Dependency Dilemma Solved Itself

One of my favorite things about these three projects: Flomo and Get็ฌ”่ฎฐ use zero third-party dependencies. Cubox depends on one small RSS parsing library.

Why? Because when you're building a CLI, you often don't need much. Python's urllib and argparse are already in the standard library. Go's encoding/json, net/http, and flag package do everything you need.

Less dependencies means:

Your personal tool shouldn't require 500MB of node_modules (though there's nothing wrong with Node โ€” sometimes you need it). When you can stay lightweight, why not?

Documentation Is Part of the Product

One thing that surprised me going through these projects is how good the READMEs are. Each one has:

When you build a CLI, the README is the user interface. There's no GUI to guide people โ€” so you have to be clear about how to use it. This discipline is good for you as a developer, and it's good for anyone who wants to use your tool (including future you).

Vibe Coding Is Personal

The thing these three projects have in common is that they were all built to scratch a personal itch. Each integrates with a note-taking or bookmark service that the developer was already using in their daily workflow.

You probably already have a set of services and tools you love. Why not build small CLIs that glue them together in exactly the way you want? That's vibe coding: making your tools work for your brain, not the other way around.

Start Small, Finish Fast

Here's the thing: you don't need to build the next git or docker. You can build a 100-line CLI that solves one tiny problem in your daily workflow. That 100-line tool will save you 30 seconds every single day. That's two and a half hours a year. That's a good return on an afternoon's work.

And that's just the time savings. The vibe return is bigger: there's something deeply satisfying about having a tool that was made exactly for how you work.

Ready to Vibe Code a CLI?

If you've never built your own CLI tool before, here's my advice:

  1. Find one small friction point in your current workflow
  2. Pick the language you already know โ€” Python, Go, Rust, JavaScript, whatever
  3. Keep it under 500 lines (seriously, that's plenty)
  4. Use what's already in the standard library if you can
  5. Publish it with a good README
  6. Install it on your system and use it every day

That's it. That's vibe coding. That's how you build tools that actually fit your life.

Looking at Cubox, Flomo, and Get็ฌ”่ฎฐ โ€” three small, perfectly formed tools โ€” I'm convinced: CLIs are where vibe coding feels most at home.


What's the next CLI you're going to build to improve your workflow?

Happy vibe coding. Build small tools that fit your vibe.


// The author maintains several CLI tools for personal workflow automation. All three projects mentioned in this article are available on GitHub.

#cli #development #tools #vibe-coding #workflow