Ever since I started building apps with AI, I’ve been coming across so many unfamiliar words.
One of them is “CLI.”
I think I first heard it when I started using Claude Code.
I was told, “It’s better to use the CLI version,” so I opened Terminal on my Mac and started working there.
After that, every time I tried another AI development tool, the word CLI would pop up again.
It came up when I used Antigravity, too, and I also work with Codex from the terminal.
Then, this time, I was told that the app I’d built myself had a finished “CLI version.”
Wait, CLI again? Haha.
I’d heard it so many times, but I still didn’t really understand what a CLI actually was.
So I finally decided to look into it!
What Is a CLI, Anyway?
CLI stands for Command Line Interface.
Put simply, it’s a way to control a computer by typing instructions.
Think about the apps you normally use. They have buttons like “Save,” “Search,” and “Run,” right?
Click a button, and the computer carries out that action.
With a CLI, you type an instruction instead.
For example, the event management tool I built for Hackoo uses this command:
node tools/event-agent/cli.mjs discover
That’s an instruction to run the process for finding new events.
Instead of pressing a button, I’m telling it what to do with text.
Oh, that makes sense! A CLI isn’t some special AI technology. It’s just one way to interact with a computer!
So, What Is a GUI?
Another term that often comes up alongside CLI is “GUI.”
This stands for Graphical User Interface.
Instead of typing commands, you interact with buttons, menus, icons, and other things on a screen.
Many of the apps we use on our phones and Macs work this way.
For example, take the same task of finding events:
- With a CLI, you type a command.
- With a GUI, you click a “Find events” button.
That’s the difference.
Both are doing the same job.
What changes is how we tell the computer what to do.
By the way, that doesn’t mean a CLI is automatically more powerful, or that a GUI has fewer features because it’s more beginner-friendly.
What you can do depends on how each tool is built.
Isn’t the Terminal the Same Thing as a CLI?
I was mixing these up, too.
There’s an app on the Mac called Terminal.
You know, that dark-looking window where you type things to get the computer to do something.
But it turns out that a terminal and a CLI don’t mean the same thing.
A terminal is the window or app where you type and run commands.
A CLI is the interface or tool that accepts those text commands.
For example, if you launch Claude Code from a terminal and ask AI to help you develop something, the terminal is the place where you interact with it, and Claude Code’s CLI is the tool you use there.
Once I understood that distinction, things felt a little clearer.
Why Are CLIs So Common in AI Development?
This is something I’ve gradually started to understand as I’ve been building my own apps.
One advantage of a CLI is that you can run a program’s features without building a visual interface from scratch.
Say you want to build something that finds event information.
If you start with a GUI, you also need to think about buttons, screens, and how to display the results.
With a CLI, though, you can start by building the actual process of finding events and running it with a command.
You don’t have to get the look and feel sorted out from the beginning.
CLIs are also handy for repeating the same process or combining it with other programs.
So that’s why they’re often used in development and automation.
Still, just because something has a CLI doesn’t mean it uses AI.
A CLI is simply a way to interact with a tool.
Plenty of CLI tools don’t use AI, and you can also use AI through a GUI.
Then My Own App Became a CLI Version, Too!
Actually, what got me thinking about CLIs this time was working on my blog, Hackoo.
On Hackoo, I share information about AI hackathons in Japan.
I want to keep listing events, but finding them myself, checking dates and eligibility, and adding them each time takes quite a bit of work.
So I decided to build “Hackoo Event Agent,” a tool that automatically finds events, checks for duplicates, and organizes candidates for listing.
I also added a feature that generates Japanese and English event data after a human approves the content.
And what I ended up with was a CLI version!
To start with, I would use it by typing commands in the terminal.
But in the long run, I want it to have a graphical interface.
Because if I’m going to use it every week or so, clicking buttons would be more convenient for me.
Remembering all those commands is a lot, too. Haha.
Still, by not building a GUI first, I was able to focus on the features I really needed, like collecting events and checking for duplicates.
Build the core functionality with a CLI first, then add a GUI when you need one.
I learned that this is another way to approach development.
Can You Use a CLI If You’re Not an Engineer?
Based on my own experience, I’d say yes.
I’m not an engineer, and my programming knowledge is still pretty limited.
Even so, I use AI tools like Claude Code and Codex to build apps and work on my blog.
Of course, that doesn’t mean I understand every command.
But I can ask AI, “What does this command do?” or “Is it okay to run this?” as I go.
That said, a command isn’t automatically safe just because AI gave it to you.
Some commands delete files, change their contents, or send data outside your computer.
So instead of running something without knowing what it means, it’s important to check what it will change.
Being able to use a CLI and being able to use it safely and confidently are two different things, I think.
Part of Being a Beginner
Since I started developing things with AI, I keep running into things I don’t understand.
CLI, GUI, API, Git, deployment…
Words I once thought had nothing to do with me now come up all the time.
And the interesting thing is, I often only understand what a word means after I’ve actually used the thing it describes.
That’s exactly what happened with CLI.
I’d used it so many times, but I couldn’t properly explain it.
Then even the tool I’d built became a CLI version, and I finally wanted to understand what that meant.
As I gain more experience, maybe I’ll be able to talk about things in more depth, like when to use a CLI or a GUI and how they relate to automation.
But for now, I want to appreciate these beginner moments of wondering, “What even is this?”
Because one day, CLI might feel like a completely ordinary word to me.
Coming across things you don’t understand is part of the fun of stepping into a new world.
That’s how this encounter with CLI left me feeling.