Gemini CLI Kinda Sucks (I Compared It With Claude Code)

Ray Amjad www.youtube.com

Brief Summary

This video compares Google's Gemini CLI with Cloud Code for developing a real-world production application, specifically enhancing the Tensor AI news app. The comparison focuses on ease of use, performance, and cost-effectiveness in implementing features like swipe navigation and audio generation. The initial free tier of Gemini CLI seems promising but hits roadblocks due to rate limiting, leading to an upgrade. Despite a larger context window, Gemini CLI requires more guidance and produces less satisfactory results compared to Cloud Code in this specific example.

  • Gemini CLI is initially free but performance degrades with rate limiting.
  • Cloud Code provides better solutions with less guidance in the tested scenario.
  • Gemini CLI has issues with local image uploads and prompt interpretation.

Intro

The video introduces Google's Gemini CLI as a competitor to Cloud Code, aiming to compare their performance in a real-world production application. Gemini CLI offers a free tier with usage limits, which already makes it cheaper than Cloud Code. The video references an example where Gemini CLI outperformed Cloud Code in a stock tracker app, especially as the project grew in complexity. The presenter suggests that Cloud Code might be using Gemini 2.5 Pro, which has a smaller context window compared to Claude.

Getting Started

To begin using Gemini CLI, the presenter outlines the initial steps, including running a command, selecting a color scheme, and signing in with a Google account. The presenter notes that Cloud Code uses Bootstrap CSS for full-stack Next.js projects, which is considered less modern than Tailwind CSS. The presenter suggests explicitly specifying Tailwind CSS when creating new projects with Cloud Code.

Real World Example

The presenter uses Tensor AI, an application for AI news, as a real-world example. The goal is to add swiping functionality for navigating between news articles and replace 11 Labs with Miniax speech02 Turbo for audio generation to reduce costs. Both Gemini CLI and Cloud Code will be used to implement these features, and their performance will be compared.

The Prompt

The presenter duplicated the Tensor AI folder, creating separate folders for Gemini CLI and Cloud Code to run on the same files. The presenter shares the prompt used for both platforms and expresses the intention to compare their speed and quality of implementation.

Progress of Both

Gemini CLI quickly completes an initial change while Cloud Code is still navigating the directory. Gemini CLI switches from Gemini 2.5 Pro to Gemini 2.5 Flash due to rate limiting. Meanwhile, Cloud Code continues to navigate the codebase.

Claude Code’s Result

Cloud Code finishes its task, while Gemini CLI appears stuck after switching to the Flash model. The presenter tests Cloud Code's solution on an iOS emulator but encounters an issue with the pan gesture handler. The presenter provides Cloud Code with a screenshot of the error to fix. After the update, the swiping functionality works well, with a tracker indicating the current article. The presenter then tests the audio generation feature.

Review of Claude's Result

Cloud Code successfully implements the swiping feature with a minor correction. However, the initial audio generation fails due to an incorrect version specification in the replicate configuration. After fixing the version, the audio generation works perfectly. Overall, Cloud Code performs well but requires some debugging. Gemini CLI remains stuck after switching to the Flash model.

Gemini CLI’s Progress

After killing the Gemini CLI process, it's noted that it used a significant number of input tokens but few output tokens. The presenter compares this to Cloud Code's token usage, which appears more efficient. The presenter attempts to rerun Gemini CLI, trying to avoid the switch to the Flash model.

Upgrading Gemini CLI's Plan

Gemini CLI encounters the same issue, getting stuck after switching to the Flash model. The presenter decides to upgrade to the standard tier, which requires using Gemini code assist agent mode. Despite claims of high usage limits, the presenter finds it necessary to upgrade due to the free tier's limitations. The presenter successfully signs up for a free trial of the paid subscription.

Gemini CLI’s Progress (again)

After upgrading, the presenter reruns Gemini CLI with the same instructions. The process is faster, possibly due to caching. However, the resulting code contains a syntax error. The presenter attempts to provide a screenshot of the error to Gemini CLI, but it fails to recognize the local file. The presenter copies the failing code and pastes it into Gemini CLI for correction. The corrected code introduces new issues, including adding unnecessary code and misunderstanding the instructions. The presenter reverts changes and tries again, encountering the same issue as Cloud Code with the missing roots view. After fixing this, the swiping functionality works but is laggier and has direction issues compared to Cloud Code's implementation. The presenter then checks the audio generation.

Token Usage

The presenter checks Gemini CLI's token usage, estimating it to be around 700,000 tokens, after removing some earlier usage. The presenter notes that the token measurement might differ between Gemini CLI and Cloud Code, as the figures seem low.

Gemini CLI Commands

The presenter describes Gemini CLI commands, including the ability to edit code in an external editor like Cursor, VS Code, or Vim. Other commands include chat save to save and resume chats, chat list to view available chats, compress docs, memory show to view user preferences, and theme to change the theme. The presenter also lists available tools like text search, file writing, web search, and Google search.

My Conclusion

The presenter concludes that while Gemini CLI has a nice free tier, its performance degrades significantly when it switches to the Flash model due to usage limits. Gemini CLI requires more guidance and produces less satisfactory solutions compared to Cloud Code in the real-world example. The presenter plans to continue using Cloud Code unless Gemini CLI receives significant updates to improve its capabilities. The presenter also hopes for improvements to the billing process, which is currently confusing.

Summarize any YouTube video in seconds

Get summaries like this one for any video, in your language, with the free Summ app.

Download on the Apple Store
Get it on Google Play

Transcript

Full transcript of “Gemini CLI Kinda Sucks (I Compared It With Claude Code)”. Click a timestamp to open the video at that moment. Need another video? Use the YouTube transcript generator.

0:00 Okay, so Google's Gemini CLI released earlier today, which is basically their cloud code competitor, and I'm going to compare to Cloud Code and see which performs better when it comes to a real world production application. Basically, right now it's free to use with up to 60 model requests per minute or a,000 model requests per day, which is already much cheaper than Cloud Code, which for $20 a month is 10 to 40 prompts of Cloud Code every 5 hours. Or for $100 a month, it's 50 to 200 prompts of Cloud Code every 5 hours. And it seems that in some cases it does perform better because this person talked about making a stock tracker app with cloud code and it performed well at first until the project became too big and then they gave it to Gemini CLI and then it continued to perform better whilst cloud code struggled and got lost and I imagine that's because cloud code is using Gemini 2.5 Pro and that has a 1 million token context window compared to

0:46 Claude for its 200,000 context window. So anyways to get started you run this command and then you run gemini and then you pick a color scheme and then you will sign in with your Google account and it's pretty interesting that when you're starting a new project with cloud code and it's a full stack project using nextjs then it uses bootstrap CSS. So this is a prompt that's given to cloud code you can see in the GitHub and it uses material design principles for some reason and I think that's pretty annoying because most people nowadays are using tailwind CSS when they're using Nex.js. So yeah, I guess you want to explicitly specify to use Tailwind CSS instead of Bootstrap CSS when you're making any new projects with it. Anyways, a realable example I use is Tensor AI and this is an application that I made for staying up to date with the latest AI news. So right now you can download it from the app store and you can put in your interest and it will

1:31 only notify you about the AI news that it thinks is relevant to you. But basically what we're going to do is we're going to add a swiping left and right thing to go between the different news articles because right now I want to be able to swipe right and then go to next news article and swipe left and go back. And right now I'm using 11 Labs for the voice as well and I want to replace that with Miniax speech02 Turbo because it's cheaper. So I'm going to have Gemini CLI and Claude Code do both and see which one has a better implementation. Okay, so I duplicated the folder Tensor AI and called it Tensor AI Cloud and I'm going to have both of them run in separate folders on the same files and see which one performs better. You can pause and see the prompt and we'll see which one performs faster and better. So I'm going to press enter now for both of them and then see how they get on. So it seems whilst cloud code is still navigating the directory, gem AI or Jimmy CLI has already completed a change. So I can

2:17 press allow once. This looks pretty good. And we can also modify it with an external editor which I'll show you later. But let's press allow always for now so we don't have to keep allowing everything. So, one of the annoying things seems to be that it says rate limiting detected automatically switching from Gemini 2.5 Pro to Gemini 2.5 Flash for a faster response. Meanwhile, Cloud Code is still like navigating the whole code base. So, it's interesting to see what this will come up with. So, it seems that Cloud Code is actually finished with everything even though it wasn't going as fast at the beginning. And it seems that Gemini here is kind of stuck because it switched from Pro to Flash for a faster response and now it's just like going around in circles probably. So, we'll give it another like 5 10 minutes to see if it actually does anything. Otherwise, it means it's actually stuck. So, I'm going to go

3:02 inside the expo folder and run npm run start and then actually open it up on the iOS emulator and see if it achieves uh what I set out to achieve. So, I have the application open and Gemini is still going around in circles. So, we'll see if Claude's solution actually worked over here. So, if I open up an article, it says that pan gesture handler must be descent. So, actually what I'm going to do is I'm going to copy this and then drag the screenshot back into cloud and then tell it to fix it. So, we'll fix this and we'll see if it performs better this time. And now I made the update. So, we can try again one more time and open up the application simulator again. And now if we try this, swipe this way. Swipe this way. And it seems to work pretty well. Like we can swipe left and right and switch between the articles over here. And it added a nice little like button or tracker over here so we

3:49 know where we actually are. So, I'd say that Cloud Code did a pretty good job implementing this feature overall. and we're going to check the implementation for the audio feature instead. So, I'm going to test the audio generation quickly by pressing invoke over here, invoke function, and we'll see if it succeeds. So, unfortunately, it seems that cloud code did not implement the replicate thing properly because it says invalid version or not permitted. Uh, so I guess this is a simple fix because we just specify the version over here. So, if you just remove this part over here, then we have the correct version number and we can press save and then we can try one more time by pressing rerun. And yeah, it seems it successfully generated the audio this time. So, it's going to upload that to Mox and then uh yeah, let's listen to how it actually is. So, if you press listen, welcome to the Tensor AI daily digest. This setup helps developers rapidly iterate. And yeah,

4:36 basically sounds perfect. Like this is the solution that I was looking for. So, overall, I think Claude Code did a pretty good job, but it did have some mishaps like the version name and adding it a string and ignoring the fact that it's meant to be wrapped in a gesture root handler. And it seems that Gemini CLI is still going around in circles ever since it switched to the flash model, unfortunately. So, I'm going to have to pause it or kill it over here. And then uh try it one more time. So, it's interesting that after killing it, it used about 500,000 input tokens and only 4,000 output tokens. And uh if we compare that to Cloud Code, then Cloud Code actually did use it used 2,000 input tokens and 3,000 output tokens, but I think it like cashes pretty heavily here or something. Um but yeah, this is like pretty cheap for the

5:21 solution that it made. Whereas Gemini, uh let's try one more time so we can avoid the pro mode. So I'm going to put in the same command that we had earlier and see how long it takes. So, it seems I got stuck in the same problem we had earlier where I switched from the pro tier flash model for faster response, but now it's having issues. So, now what we're going to do is we're actually going to upgrade to the standard tier. So, apparently to upgrade you need to use Gemini code assist agent mode. And uh the pricing is $19 a month per user when you pay upfront for an entire year or for no annual commitment, it's $23 a month. So, even though they say Gemini CLI has the highest usage limit in the market today, like if the usage limit gets stuck for the free tier, then you're going to have to upgrade anyway. And then it's just a case of which one is cheaper uh to do.

6:08 So, I'm actually going to upgrade to the Gemini code assist standard over here. So, fortunately, it says first 50 users are free for the first month and then $22.88 after that. So, if you press complete purchase, we don't have to pay anything for this month right now. Continue. Okay. Okay, so that was a bit of a hassle to get set up on the paid subscription. But these documentation or this documentation about authentication setup does help. So I'm going to do the same instructions again and then see how it performs instead of switching back to the flash model. And it seems like it was much faster now because it probably already had it in the cache as well or something. Um but yeah anyway we can try the solution by going and switching the application exiting out of here and then go to a folder that was made for uh Gemini instead and then pressing I and seeing it on the emulator again. So if you go on the emulator uh we'll see how

6:55 this solution if it managed to oneshot the problem more or less like how uh Claude code did. And it seems it led to a syntax error for some reason. So, I'll just take a screenshot of this, put it back into here, and say uh and then just press enter so it can look at the screenshot. And now, for some stupid reason, even though we gave it a local file screenshot, it can't see the screenshot or it can't look at the local file. So, that needs fixing. But for now, we can just copy the failing code over here and then paste it into here instead of using the screenshot. Okay. And now, if we try one more time, pressing reload, it seems that it's still having more issues. And it seems that these issues came from the fact that it just added a bunch of random code onto listen.txx page which I didn't really want. Uh so we can delete this

7:40 and or undo those changes and then see what happens now. And uh it seems it just takes us to a listening page instead. So it completely misunderstood the instructions that I wanted it to understand. So I'll just revert this block instead and then uh try one more time. And I fell into the same trap that CL code did where it didn't add the actual roots view. So I'm going to paste the error back over here. And then it will fix that. And when we try swiping back and forth, it says try to synchronously call a nonwork alert. So it seems that Gemini is struggling way more here on than Cloud Code actually did. Um, which is quite unfortunate because I hope it perform better with the larger context window. Okay, now let's try swiping this

8:27 time. And yeah, the swiping does work. It is a little bit more laggy uh than the swiping that Claude Code gave it. So, I'm not sure how the implementation is different. Um, and the direction seems to be messed up as well because for some reason it goes in the wrong direction. Now, I'll check if the audio generation works. And it seems to specify a version number over here, which I don't think I'm not sure where I got this version number from. I don't think that will work, but we will see like uh if this actually works by rerunning the function. And yeah, just as I expected, it did not work because it gave a 42:2 error. And that's because it should be making requests more like this instead. So, we can just copy this example and then go back to Gemini and uh then paste this example and and use this to fix your audio generation. And

9:14 it seems it did a better job over here. And it looks like this code will actually work. So, we'll go back to ingest and then we will press rerun over here. And we'll see if it generates the audio this time. And yeah, it seems to have generated the audio properly this time. So I can actually access the audio and welcome to the 10 subscription rather than the creators. Yeah, basically it sounds pretty good. Like uh it seems that Gemini CLI needed more guidance when it came to implementing something that was online or replicate in this case. So maybe it's something to do with the training data or like the fact that it doesn't think to use Google to actually double check or something. But yeah, let's see how much use it actually used. So, we can type slash and then type in stats. And yeah, the total token usage minus something that I did earlier today is probably about 700,000. And I think they're actually measuring the token somewhat differently between

10:00 these two because these figures seem pretty low over here. But yeah, something else cool about Gemini is when you want to actually edit the code that I wrote. You can write in editor and then choose a default editor. And I chose cursor. So by default, it will automatically open up in cursor instead. And the other options you have available are like z vs code when surf and vim. A few other settings is that you can press chat and then you can write uh save. So you can say like save as whatever and then you can resume the chat by using the same chat ID and you can do chat list to see what chats you have available. So if you do close the terminal then you can resume the session quite quickly. Some of the other options it has available is compress docs MCP. So you can set up some MPC servers. You can do memory. I wonder what that is about. Memory uh show. And I guess this is a memory

10:48 has from the current session or like the user's memory. So the user prefers Tailwind over Bootstrap for example. The other options is besides MP MCP stats theme. You can change a theme as well to any of these themes like GitHub doc and and then it also has tools. So you can see which tool calls are available in Jimny CLI. Uh so it can search text, it can like write to files, it can do web search and Google search and so forth. But unfortunately it seems to be having issues with uploading local images that you took a screenshot of. And I hope that gets fixed in a future update. And hopefully the prompt gets improved or something because it added a bunch of random code that was not needed. So basically I think my overall conclusion is that whilst the gem does have a nice free usage tier, when you start hitting the usage t and it switches down to flash model, then it really struggles to accomplish anything and it gets stuck and probably the performance isn't as good and gem needed more guidance like

11:34 documentation that I found online and also added some random files and just didn't add as good of a solution as cloud code did in this real world example. So I think going forwards I'll still be sticking to cloud code unless a gem CLI makes a significant update that massively improves its capability. And I hope they just improve the billing as well because a billing situation is pretty confusing of how to sign up for billing and then get it connected to Gemini CLI.

Share

More video summaries