Hi - I work on this. Uptake is a steep curve right now, spare a thought for the TPUs today.
Appreciate all the takes so far, the team is reading this thread for feedback. Feel free to pile on with bugs or feature requests we'll all be reading.
Thank you for your work on this. I spent the afternoon yesterday trying to convert an algorithm written in ruby (which I do not know) to vanilla JavaScript. It was a comedy of failing nonsense as I tried to get gpt-4.1 to help, and it just led me down pointless rabbit holes. I installed Gemini CLI out of curiosity, pointed it at the Ruby project, and it did the conversion from a single request, total time from "think I'll try this" to it working was 5 minutes. Impressed.
FWIW the fair comparison for Gemini 2.5 Pro would be o4-mini. That being said I’ve also found that Gemini is way better at getting it right on the first or second try and responding to corrections.
There is one feature in Claude Code which is often overlooked and I haven't seen it in any of the other agentic tools: There is a tool called "sub-agent", which creates a fresh context windows in which the model can independently work on a clearly defined sub-task. This effectively turns Claude Code from a single-agent model to a hierarchical multi-agent model (I am not sure if the hierarchy goes to depths >2).
I wonder if it is a concious decision not to include this (I imagine it opens a lot of possibilities of going crazy, but it also seems to be the source of a great amount of Claud Code's power). I would very much like to play with this if it appears in gemini-cli
Next step would be the possibility to define custom prompts, toolsets and contexts for specific re-occuring tasks, and these appearing as tools to the main agent. Example for such a thing: create_new_page. The prompt could describe the steps one needs to create the page. Then the main agent could simply delegate this as a well-defined task, without cluttering its own context with the operational details.
Possibly. One could think about hooking this in as a tool or simple shell command. But then there is no management when multiple tools modify the codebase simultaneously.
But it is still worth a try and may be possible with some prompting and duct tape.
Thanks for building this! The tool shows a lot of promise. Coming from Claude Code, the core functionality
feels solid - just needs some permission refinements to match enterprise use cases. This is based upon quickly skimming the current code.
High ROI feature requests:
• Pattern-based permissions - Bash(git:) to allow git but not rm, Write(logs/.txt) for path scoping
• Allow/deny precedence rules - explicit deny should override general allow (security principle)
• Config file hierarchy - system → user → project precedence for policy enforcement
Medium ROI improvements:
• Command argument filtering - whitelist git commit but not git --exec-path=/bin/sh
• Multiple config formats - support both simple arrays and structured permission objects
• Runtime permission diagnostics - gemini permissions list to debug what's actually enabled
• Environment variable injection - top-level env config for OTEL endpoints, API keys, etc.
The permission engine is really the key piece - once you can express "allow X but not Y within X", it unlocks
most advanced use cases. Keep up the great work!
On the one hand, yes this has obviously high immediate value; on the other hand, I can't help but feel like you are giving access to multiple tools that can be used for arbitrary code execution anyway (i.e. running tests, installing dependencies, or running any linter that has a plugin system...), so blacklisting `git --exec-path=/bin/sh` for example is... Misguided? You would have a better time containing the agent in an environment without internet access?
It’s not misguided. The goal isn’t prefect security, the goal is mitigating risk and collaborating with cross functional security, compliance, platform, operations, etc… teams.
Use Jules, also by Google if you need what you describe.
One thing I'd really like to see in coding agents is this: As an architect, I want to formally define module boundaries in my software, in order to have AI agents adhere to and profit from my modular architecture.
Even with 1M context, for large projects, it makes sense to define boundaries These will typically be present in some form, but they are not available precisely to the coding agent. Imagine there was a simple YAML format where I could specify modules and where they can be found in the source tree, and the APIs of other modules it interacts with. Then it would be trivial to turn this into a context that would very often fit into 1M tokens. When an agent decides something needs to be done in the context of a specific module, it could then create a new context window containing exactly that module, effetively turning a large codebase into a small codebase, for which Gemini is extraordinarily effective.
So, as a member of an organization who pays for google workspace with gemini, I get the message `GOOGLE_CLOUD_PROJECT environment variable not found. Add that to your .env and try again, no reload needed!`
At the very least, we need better documentation on how to get that environment variable, as we are not on GCP and this is not immediately obvious how to do so. At the worst, it means that your users paying for gemini don't have access to this where your general google users do.
I believe Workspace users have to pay a separate subscription to use the Gemini CLI, the so-called “Gemini for Google Cloud”, which starts at an additional 19 dollars per month [^1]. If that’s really the case, it’s very disappointing to me. I expected access to Gemini CLI to be included in the normal Workspace subscription.
> First google forced me to start paying for my email domain.
Do you mean that they stopped offering the legacy free tier and you had to upgrade to a paid plan? If that's the case, they reverted their decision and it was possible to go back to the free tier. I don't know if it is still possible, as this was 3 years ago, but here's a thread outlining how to do it. https://www.reddit.com/r/gsuitelegacymigration/comments/urky...
I can imagine. Y'all didn't start simple like some of your competitors; 'intrapraneurial' efforts in existing contexts like yours come with well-documented struggles. Good work!
Thanks for your clarification. I've been able to set up Gemini CLI with my Workspace account.
Just a heads-up: your docs about authentication on Github say to place a GOOGLE_CLOUD_PROJECT_ID as an environment variable. However, what the Gemini CLI is actually looking for, from what I can tell, is a GOOGLE_CLOUD_PROJECT environment variable with the name of a project (rather than its ID). You might want to fix that discrepancy between code and docs, because it might confuse other users as well.
I don’t know what constraints made you all require a project ID or name to use the Gemini CLI with Workspace accounts. However, it would be far easier if this requirement were eliminated.
sorry, I was wrong about free tier - I've edited above. this is WIP.
noted on documentation, there's a PR in flight on this. also found some confusion around gmail users who are part of the developer program hitting issues.
> free tier for Workspace isn't yet supported. sorry. you need to set the project and pay.
Well, I've just set up Gemini CLI with a Workspace account project in the free tier, and it works apparently for free. Can you explain whether billing for that has simply not been configured yet, or where exactly billing details can be found?
> noted on documentation, there's a PR in flight on this. also found some confusion around gmail users who are part of the developer program hitting issues.
How about a binary - either you subscribe to Gemini or you don't. Rate limits or gates for higher tier models/capabilities, that you can upgrade to unlock. Think Small/Medium/Large. Anything more complicated than this is immensely annoying to both consumers and enterprise customers. For power users/nonconformists, include a pay as you go option using credits or cost per action that has access to all capabilities out of the box.
Having played with the gemini-cli here for 30 minutes, so I have no idea but best guess: I believe that if you auth with a Workspace account it routes all the requests through the GCP Vertex API, which is why it needs a GOOGLE_CLOUD_PROJECT env set, and that also means usage-based billing. I don't think it will leverage any subscriptions the workspace account might have (are there still gemini subscriptions for workspace? I have no idea. I thought they just raised everyone's bill and bundled it in by default. What's Gemini Code Assist Standard or Enterprise? I have no idea).
It probably is more powerful though. I know the $30 copilot M365 from microsoft is way better than what they offer to consumers for free. I don't have a google account so I didn't check that.
While I get my organization's IT department involved, I do wonder why this is built in a way that requires more work for people already paying google money than a free user.
I'd echo that having to get the IT section involved to create a google cloud project is not great UX when I have access to NotebookLM Pro and Gemini for Workplace already.
Also this doco says GOOGLE_CLOUD_PROJECT_ID but the actual tool wants GOOGLE_CLOUD_PROJECT
Is it really that confusing? Gemini is the equivalent of ChatGPT; AI Studio is for advanced users that want to control e.g. temperature; Vertex AI is the GCP integrated API; Notebook LLM is basically personal RAG; and Jules is a developer agent.
Vertex AI also has an AI studio. All of these products also have rag like abilities. You can add documents to Gemini and ask it questions. When would an end user switch to notebooks to do this?
And not that there isn’t a level of knowledge you can gain to answer these questions, it’s just not clear.
The gemini doc for -p says "Prompt. Appended to input on stdin (if any)."
So it doesn't follow the doc.
gemini "Say hello"
Fails as it doesn't take any arguments.
For comparison, claude lets you pass the prompt as a positional argument, but it does append it to the prompt and then gives you a running session. That's what I'd want for my use-case.
I tried to get Gemini CLI to update itself using the MCP settings for Claude. It went off the rails. I then fed it the link you provided and it correctly updates it's settings file. You might mention the settings.json file in the README.
Thanks so much for this! I’d really appreciate a more consumer oriented subscription offering, similar to Claude Max, that combines Gemini CLI (with IP compliance) and the Gemini app (extra points for API access too!).
- Here [1] it says "Project settings override user settings." How does gemini determine if we're in a project? Does it look for a `.gemini` folder in the current working directory as well as every parent directory up to the root? Would Gemini be able to read the contents of a subfolder of the CWD if the subfolder contains a different `.gemini` folder?
- I don't see documentation for the `selectedAuthType` field in the documentation for settings.json. Mine says `oauth-personal`. I could've sworn I signed in with my Google Workspace account. Does `oauth-personal` apply to Workspace accounts?
And a feature request: it would be nice to add a restriction in the settings.json file forcing anybody who uses gemini in that project to sign in to a Workspace account in a specific org (or use a specific project, I guess).
Right now authentication doesn't work if you're working on a remote machine and try to authenticate with Google, FYI. You need an alternate auth flow that gives the user a link and lets them paste a key in (this is how Claude Code does it).
I have been evaluating other tools like Amp (from Sourcegraph) and when trying Gemini Cli on VsCode I found some things to improve:
- On a new chat I have to re-approve things like executing "go mod tidy", "git", write files... I need to create a new chat for each feature, (maybe an option to clear the current chat on VsCode would work)
- I have found some problems with adding some new endpoint on an example Go REST server I was trying it on, it just deleted existing endpoints on the file. Same with tests, it deleted existing tests when asking to add a test. For comparison I didn't find these problems when evaluating Amp (uses Claude 4)
Overall it works well and hope you continue with polishing it, good job!!
Using the Gemini CLI the first thing I tried to do was "Create GEMINI.md files to customize your interactions with Gemini." The command ran for about a minute before receiving a too many requests error.
Super weird! I've been using it the last week, and never hit the quota limit for free users. We're having some capacity issues right now, but that should not affect the quota. Would love it if you can try tomorrow or so again!
It's happening to me with API Key usage. I assume there are no Terms of Use protections on our data unless we access Gemini CLI in a paid manner?
[API Error: {"error":{"message":"{\n \"error\": {\n \"code\": 429,\n \"message\": \"Resource has been exhausted (e.g. check quota).\",\n
\"status\": \"RESOURCE_EXHAUSTED\"\n }\n}\n","code":429,"status":"Too Many Requests"}}]
Please wait and try again later. To increase your limits, request a quota increase through AI Studio, or switch to another /auth method
However, in the Google cloud console I don't see any of the quotas going above their default limits.
Yeah this exact thing is happening to me also. Minutes of runtime and only errors. I guess I’ll try again later? I have billing up and I’m Tier 1. Wouldn’t expect to hit limits like this on the first prompt.
I'm a Gemini Pro subscriber and I would love to be able to use my web-based chat resource limits with, or in addition to, what is offered here. I have plenty of scripts that are essentially "Weave together a complex prompt I can send to Gemini Flash to instantly get the answer I'm looking for and xclip it to my clipboard", and this would finally let me close the last step in that scripts.
The thing that had me close it and go back to Claude Code immediately was how often Gemini CLI failed to make file changes. This doesn’t instill confidence at all, with it retrying edits multiple times - who knows what it ends up editing, then.
CC has this issue too, but way less often, and second shot almost always works.
Pointed it at a project directory and asked it to find and fix an intentionally placed bug without referencing any filenames. It seemed to struggle finding any file or constructing a context about the project unless specifically asked. FWIW, Claude Code tries to build an 'understanding' of the codebase when given the same prompt. For example, it struggled when I asked to "fix the modal logic" but nothing was specifically called a modal.
Is the recommendation to specifically ask "analyze the codebase" here?
Could Gemini CLI be used for PR reviews? For example, would you expect that asking Gemini to compare two git commit hashes and analyze the code changes for potential bugs/conciseness/adhesion to the idiomatic project style, etc. to work well?
Edit: I tried it. The setup was a breeze. I fed the CLI two git commit IDs and some light prompting on what to look for. It gave a reasonable response. I'll try on a real PR shortly.
I'm just a hobbyist, but I keep getting the error "The code change produced by Gemini cannot be automatically applied. You can manually apply the change or ask Gemini to try again". I assume this is because the service is being slammed?
Edit: I should mention that I'm accessing this through Gemini Code Assist, so this may be something out of your wheelhouse.
Is LiteLLM integration on the roadmap? I get that part of the motivation to build this is to funnel usage to Google models, but it would be nice to be able to go through OpenRouter and/or use local models too. Open source is nice, but open model configuration would be nicer :)
Hello, thanks for the work for finally having an analog to Claude Code.
A natural question to ask is, if in the near future, can Google One "Google AI Pro" subscribers have higher limits than what is offered for free users?
Overall it looks and feels good. I gave it a problem, like, what was it... to update website pages to use single layout, it wasn't trivial but it wasn't that hard. It burned through 7M tokens and like 20-25mins didn't accomplished it. I stopped it because I didn't want to waste more resources.
I think with better prompting on my end, as I have good experience with Gemini, this will be awesome. You probably could tweak a lot on your end as well, don't let it get stuck in cycles.
Hi. It is unclear from the README whether the free limits apply also when there's an API key found in the environment - not explicitly set for this tool - and there is no login requirement.
Is there a reason all workspace accounts need a project ID? We pay for gemini pro for our workspace accounts but we don't use GCP or have a project ID otherwise.
The reason is that billing is separate, via the paid tier of the API. Just a few minutes ago, I was able to test Gemini CLI using a Workspace account after setting up a project in the free tier of the API. However, that seems to have been a bug on their end, because I now get 403 errors (Forbidden) with that configuration. The remaining options are either to set up billing for the API or use a non-Workspace Google account.
Please, for the love of God, stop your models always answering with essays or littering code with tutorial style comments. Almost every task devolves into "now get rid of the comments". It seems impossible to prevent this.
And thinking is stupid. "Show me how to generate a random number in python"... 15s later you get an answer.
Take some time to understand how the technology works, and how you can configure it yourself when it comes to thinking budget. None of these problems sound familiar to me as a frequent user of LLMs.
No. We're not talking a few useful comments, but verbosity where typically the number of comments exceeds the actual code written. It must think we're all stupid or it's documenting a tutorial. Telling it not to has no effect.
Maybe you hit a specific use case where the LLM part turns into its roots?
I had a somehos similar problem with Claude 3.7, where I had a class named "Workflow" and it got nuts, producing code/comments I didn't ask for, all related to some "workflow" that it tried to replicate and not my code, it was strange.
We started using Gemini CLI to build itself after about week two. If I had to guess, I'd say better than 80% of the code was written with Gemini CLI. Honestly, once we started using the CLI, we started experimenting a lot more and building waaaaay faster.
Is there a way to instantly, quickly prompt it in the terminal, without loading the full UI? Just to get a short response without filling the terminal page.
like to just get a short response - for simple things like "what's a nm and grep command to find this symbol in these 3 folders". I use gemini alot for this type of thing already
Both allow you to switch between models, send short prompts from a CLI, optionally attach some context. I prefer mods because it's an easier install and I never need to worry about Python envs and other insanity.
If you uv install llm
Then grab my shelllm scripts github.com/irthomasthomas/shelllm and source them in your terminal then you can use premade prompt functions like shelp "what's a nm and grep command to find this symbol in these 3 folders" -m gemini-pro
There's also wrappers that place the command directly in your terminal prompt if you run shelp-c
Hey the interface on YouTube loads super slowly for me. The change appeared a few months ago. I'm not talking about the video streams, but the ajax loading of the UI. Whether it's opening a new youtube tab or navigating between videos within youtube, it takes forever. Chrome/Safari -> same deal, 30 seconds delays is what I observe. My macbook pro is 10 years old, the problem doesn't appear on more recent hardware, but still youtube shouldn't be the slowest website to load on my machine. I can load spotify.com just fine in about 5 seconds.
Appreciate all the takes so far, the team is reading this thread for feedback. Feel free to pile on with bugs or feature requests we'll all be reading.