Gemini vs. Claude vs. OpenAI: A Showdown of AI-Powered Coding CLIs
Gemini, Claude, and OpenAI have all released their own terminal-based CLIs to integrate with AI agents. And just as I was writing this article, another one dropped. Quinn Code is the latest in coding assistants that are appearing. I have a few questions I want to answer in this article, such as what's the point of working in a terminal? Do these terminal CLIs have AI models that perform better than the regular Claude or Gemini models? I've only just gotten used to the idea of having an AI chat constantly in my coding editor, and I don't know if I'm ready to close down my editor and work directly in the terminal. But according to Reddit, I've got no choice but to be ready. So I'm going to take a look at Gemini CLI, Claude Code, and OpenAI's Codex CLI.
Gemini CLI
Let's start with Gemini. Gemini CLI is open source and available to download on GitHub for both Windows and macOS. You can run it simply with npx
or install it globally with npm
.
# Run with npx
npx gemini-cli
# Or install globally
npm install -g gemini-cli
And if you're wondering why you should try it, it's because it comes with a free tier, which means that you get access to Gemini 2.5 Pro, the biggest model, with up to 60 requests per minute and 1,000 requests per day, all for free.
It's just finished installing, so I'm going to run it by calling gemini
in my terminal. Here I'm going to set the theme, log into my Google account, and now I'm ready to start.
First up, I want to see how good Gemini CLI is at editing some of my websites and adding some animations on the hero sections. I have this website on Wix Studio, and the websites on here are using a special programming language called Velo, which I'm not familiar with quite yet. I could normally code right down here in the coding terminal, but instead, I'm going to connect this website up to GitHub so I can run it up in VS Code and edit it myself.
In VS Code, I've opened up the terminal called Gemini, and I've requested it to add some animation to the homepage. Just like an AI chat, it goes through and starts making these changes. But unlike an AI chat, you can run up multiple versions of Gemini that can run all in parallel in the background completing different tasks. It's just finished making those changes and I've pushed them out to production. Now, if I preview the website, it has this animation fade in after one second.
Another cool thing about Gemini is that it's already able to connect to MCP servers. So, I'm going to connect it to the Wix MCP server using this JSON file here. I relaunched Gemini, it authenticated my MCP servers, and now it's got access to make changes on my behalf.
But we're just getting started. On Twitter, I've seen people run multiple Geminis all concurrently, which is insane. And since it has a huge context window, let's see how far we can push the limits. I'm going to ask Gemini to create an entire financial calculator for me to help me do budgeting from scratch. It created a high-level plan for the project, built it on top of Next.js, and here it is. I'll admit that I've seen better one-shots on other platforms, but this isn't playing into the strength of using a CLI. Now that the project is running, we can start using that huge context window as well as multiple instances of CLIs to start performing multiple feature installations all at the same time.
Gemini CLI does offer a few other things such as being able to search the web and create diagrams, but be aware that you might run out of credit before you know it.
Claude Code
Now, I want to take a look at Claude Code, the original CLI before they were cool. While Gemini has grown in popularity very quickly, Claude Code has sustained continuous growth due to its performance being reliable and consistent.
I'll start by installing Claude Code. Just like with Gemini CLI, we need to install it in the terminal as a global package that we can use. Then you'll need some billing details; you'll need to connect it to the Anthropic API or your paid Claude account.
Getting started with Claude Code feels a lot more structured. Its first recommendation is to create a README
file by running /initialize
. This goes through the project, using some of your tokens in order to get a better understanding of it and create a basic context that allows it to understand what the project as a whole looks like. It's so well written that it would be useful even to another engineer if they were just jumping on this project for the first time.
Now, let's see how Claude Code goes at building a financial app similar to what Gemini did. I've got Cursor open and it's got Claude Code integrated. I'll test out a similar prompt to what I had earlier, which is to build a budgeting app from scratch to see how it compares to Gemini CLI.
Since I've used it for a couple of weeks now, I've noticed that Claude Code does something different than most of the other ways that you normally use an AI, especially when you're just using it in chat. You see, it uses a lot of tokens, especially when it's trying to figure out exactly what to do. And that isn't necessarily a bad thing because if you have a look at how it completes tasks with a plan and then carries them out and tests them properly, you'll realize why it performs so well.
This budgeting app just finished and it's now running. Let's test it out and see what it looks like. Visually, it looks a lot better than the Gemini CLI version. It has more features like adding expenses depending on the week, month, or year, as well as how much money I would save each month based on the budget I create.
There is one drawback when using things like Claude Code or even Gemini: the fact that there is no version control. One thing that I do like about using chat in Cursor or in VS Code is the fact that I have revisions as well as history, and this lets me see exactly what's changed and approve or reject it. However, if I'm using something like Claude Code to do the same sorts of changes, visually I'm not going to see the same sort of version tracking. Though, I have figured out a way around this. I'm using git
a lot more to commit any changes that are made. And this way, I can also use it to track when changes do appear from the AI and see exactly what's changed or discard those changes if I don't like them. Hopefully, these coding CLIs will have something better for version tracking in the future, but this works for now.
Claude instances can also run simultaneously. There are a few ways to do this. The first is to simply open up multiple terminals where you can create or request different types of features to be set up. Or simply ask it to, since Claude actually knows how to run sub-agents in parallel. You just have to bake it into the system prompt. Though be aware, because it can use up a lot of tokens if you're running a lot of requests at the same time.
OpenAI Codex CLI
The final contender for an AI-based CLI is the one from OpenAI called Codex CLI. It's also available on GitHub and you can install it in your terminal, but they also have a web version that lets you interact directly with your own GitHub repo to make changes in parallel in a much more user-friendly way.
I want to try out the web version first before I open up the terminal. It connects up to my GitHub and I'm going to open up the same project I had earlier, which is that Wix Studio site I was trying to configure. It creates three initial tasks which is to explain the codebase, check if there are any bugs, and then also go through to see if there are any issues that can be fixed. Once I confirm, these are now all running in parallel in the background with their own agents performing the task that they're meant to. I can expand these out and it can show me what's happening, which is a container is starting up. I can view the log of what's happening inside of that container, and here it's giving me snapshots of the terminal as it's going through and completing that task.
For the first task, it gives me a summary of the project. Here it is on the left, which tells me that it's a Wix Studio site, as well as what that codebase looks like. In terms of the other tasks, things like locating and fixing bugs, I can click through and see what it's found. Here, it's identified a better way to run this command for hiding and showing that top menu we created earlier. I have the option to create a pull request here at the top right, view it, and then push it to my repo.
That's pretty cool for a web version, but we're looking at CLI. So let's have a look at how the Codex version works on my own terminal. Here I've just installed it. Then I'll need to log into my OpenAI account and connect my organization. Once done, I can load up Codex by simply calling codex
in my terminal. Here it requests that I make sure I run it inside of a project I'm currently working on.
I'm running it inside of a brand new project and I'm going to ask it to create that financial app with a budget that I can track my finances and see how it performs compared to Claude and Gemini. It runs in the background and takes about as much time as Gemini CLI as well as Claude Code. But unfortunately, unlike those two, it doesn't install Next.js. This means I have to open up a new tab in my terminal, actually install and run up the project to test what it looks like. And here it is. Visually, it doesn't look as good as the Gemini or Claude's version, but in terms of the functionality, it still works the same. Though, it doesn't have some of the great features that Claude Code had, such as weekly, monthly, and yearly tracking for expenses.
My final thoughts are that Claude Code is the best. So if there's one you're going to pick, definitely try that one.