top | item 46060508

Gemini CLI tips and tricks for agentic coding

403 points| ayoisaiah | 3 months ago |github.com

145 comments

order

preommr|3 months ago

I am not doing any of this.

It becomes obsolete in literally weeks, and it also doesn't work 80% of the time. Like why write a mcp server for custom tasks when I don't know if the llm is going to reliably call it.

My rule for AI has been steadfast for months (years?) now. I write (myself, not AI because then I spend more time guiding the AI instead of thinking about the problem) documentation for myself (templates, checklist, etc.). I give ai a chance to one-shot it in seconds, if it can't, I am either review my documentation or I just do it manually.

AdieuToLogic|3 months ago

A perspective which has helped me is viewing LLM-based offerings strictly as statistical document generators, whose usefulness is entirely dependent upon their training data set plus model evolution, and whose usage is best modeled as a form of constraint programming[0] lacking a formal (repeatable) grammar. As such, and when considering the subjectivity of natural languages in general, the best I hope for when using them are quick iterations consisting of refining constraint sentence fragments.

Here is a simple example which took 4 iterations using Gemini to get a result requiring no manual changes:

  # Role
  You are an expert Unix shell programmer who comments their code and organizes their code using shell programming best practices.

  Create a bash shell script which reads from standard input text in Markdown format and prints all embedded hyperlink URL's.

  The script requirements are:

    - MUST exclude all inline code elements
    - MUST exclude all fenced code blocks
    - MUST print all hyperlink URL's
    - MUST NOT print hyperlink label
    - MUST NOT use Perl compatible regular expressions
    - MUST NOT use double quotes within comments
    - MUST NOT use single quotes within comments
EDIT:

For reference, a hand-written script satisfying the above (excluding comments for brevity) could look like:

  #!/usr/bin/env bash

  perl -ne 'print unless /^```/ ... /^```/' |
      sed -e 's/`[^`]*`//g' |
      egrep -o '\[.+?\]\(.+?\)' |
      sed -e 's/^.*(//' -e 's/)$//'
0 - https://en.wikipedia.org/wiki/Constraint_programming

russdill|3 months ago

The ability of newer agents to develop plans that been be reviewed and most importantly do a build test modify cycle has really helped. You can task an agent with some junior programmer task and then go off and do something else.

Ozzie_osman|3 months ago

An alternative is to view the AI agent as a new developer on your team. If existing guidance + one-shot doesn't work, revisit the documentation and guidance (ie dotMD file), see what's missing, improve it, and try again. Like telling a new engineer "actually, here is how we do this thing". The engineer learns and next time gets it right.

I don't do MCPs much because of effort and security risks. But I find the loop above really effective. The alternative (one-shot or ignore) would be like hiring someone, then if they get it wrong, telling them "I'll do it myself" (or firing them)... But to each his own (and yes, AI are not human).

hsaliak|3 months ago

I agree. Software development is on an ascent to a new plateau. We have not reached that yet. Any skill that is built up now is at best built on a slope.

alwillis|3 months ago

> It becomes obsolete in literally weeks, and it also doesn't work 80% of the time.

You can tell Gemini or Claude it has to use your MCP tool of choice; you can also tell it not to use other tools if it's confused.

Lots of MCPs come with dozens of functions that can be called; you can disable the ones you don't need. Saves on tokens and the agent is less likely to get confused due to a crowded context window.

You can also write a script for the agent that calls the MCP if you needed to. If the functionality you need is available via the cli, you can use that instead of writing an MCP.

verdverm|3 months ago

I think both are helpful

1. starting fresh, because of context poisoning / long-term attention issues

2. lots of tools makes the job easier, if you give them a tool discovery tool, (based on Anthropics recent post)

We don't have reliable ways to evaluate all the prompts and related tweaking. I'm working towards this with my agentic setup. Added time travel for sessions based on Dagger yesterday, with forking, cloning, registry probably toda

3vidence|3 months ago

This is literally it.

High upside (if the AI manages to complete the task it is a time save), relatively low downside (not getting stuck in these AI feedback loops that are ultimately a time waste).

Seems odd to me that people spend so much time promoting some of the least productive aspects of AI tooling.

siliconc0w|3 months ago

I've found that if it can't get it right within a few shot iteration - it's generally better to switch to writing with auto-complete which is still quite quick compared to the days of old.

terrywang|3 months ago

Gemini CLI at this stage isn't good at complex coding tasks (vs. Claude Code, Codex, Cursor CLI, Qoder CLI, etc.). Mostly because of the simple ReAct loop, compounded by relatively weak tool calling capability of the Gemini 2.5 Pro model.

> I haven't tried complex coding tasks using Gemini 3.0 Pro Preview yet. I reckon it won't be materially different.

Gemini CLI is open source and being actively developed, which is cool (/extensions, /model switching, etc.). I think it has the potential to become a lot better and even close to top players.

The correct way of using Gemini CLI is: ABUSE IT! With 1M Context Window (soon to be 2M) and generous daily (free) quota are huge advantages. It's a pity that people don't use it enough (ABUSE it!). I use it as a TUI / CLI tool to orchestrate tasks and workflows.

> Fun fact: I found Gemini CLI pretty good at judging/critiquing code generated by other tools LoL

Recently I even hook it up with homebrew via MCP (other Linux package managers as well?), and a local LLM powered Knowledge/Context Manager (Nowledge Mem), you can get really creative abusing Gemini CLI, unleash the Gemini power.

I've also seen people use Gemini CLI in SubAgents for MCP Processing (it did work and avoided polluting the main context), can't help laughing when I first read this -> https://x.com/goon_nguyen/status/1987720058504982561

conception|3 months ago

Gemini CLI is a wild beast. The stories of it just going bonkers and refactoring everything it reads on its own are not rare. My own experience was something like, "Edit no code. Only give me suggestions. blah blah blah" first thing it does is edit a file without any other output. It's completely unreliable.

Pro 3 is -very- smart but it's tool use/following directions isn't great.

wowamit|3 months ago

> I haven't tried complex coding tasks using Gemini 3.0 Pro Preview yet. I reckon it won't be materially different.

In my limited testing, I found that Gemini 3 Pro struggles with even simple coding tasks. Sure, I haven't tested complex scenarios yet and have only done so via Antigravity. But it is very difficult to do that with the limited quota it provides. Impressions here - https://dev.amitgawande.com/2025/antigravity-problem

egeozcan|3 months ago

The trick with Gemini is to uploading the whole (or the relevant part of the) codebase (depending on the size) as an xml (using repomix et al) then telling it to output whole files.

With a good prompt and soem trial and error in system instructions, as long as you agree to play the agent yourself, it's unmatched.

CLI? Never had any success. Claude Code leaves it in dust.

cjbarber|3 months ago

Notable re author: “Addy Osmani is an Irish Software Engineer and leader currently working on the Google Chrome web browser and Gemini with Google DeepMind. A developer for 25+ years, he has worked at Google for over thirteen years, focused on making the web low-friction for users and web developers. He is passionate about AI-assisted engineering and developer tools. He previously worked on Fortune 500 sites. Addy is the author of a number of books including Learning JavaScript Design Patterns, Leading Effective Engineering Teams, Stoic Mind and Image Optimization.“

chrisweekly|3 months ago

In the web performance community, he's earned a well-deserved, stellar reputation.

lupire|3 months ago

He's published 11 books in the past 5 years?

Is he using AI assisted writing, too?

novoreorx|3 months ago

I really wish there were a de facto state-of-the-art coding agent that is LLM-agnostic, so that LLM providers wouldn't bother reinventing their own wheels like Codex and Gemini-CLI. They should be pluggable providers, not independent programs. In this way, the CLI would focus on refining the agentic logic and would grow faster than ever before.

Currently Claude Code is the best, but I don't think Anthropic would pivot it into what I described. Maybe we still need to wait for the next groundbreaking open-source coding agent to come out.

TeMPOraL|3 months ago

There is Aider (aider.chat), and it has been there for couple years now. Great tool.

Alas, you don't install Claude Code or Gemini CLI for the actual CLI tool. You install it because the only way agentic coding makes sense is through subscription billing at the vendor - SOTA models burns through tokens too fast for pay-per-use API billing to make sense here; we're talking literally a day of basic use costing more than a monthly subscription to the Max plan at $200 or so.

ssivark|3 months ago

Opencode (from SST; not the thing that got rebranded as Crush) seems to be just that. I've had a very good experience with it for the last couple of days; having previously used gemini-cli quite a bit. Opencode also has/hosts a couple of "free" models options right now, which are quite decent IMO.

https://github.com/sst/opencode

There are many many similar alternatives, so here's a random sampling: Crush, Aider, Amp Code, Emacs with gptel/acp-shell, Editor Code Assistant (which aims for an editor-agnostic backend that plugs into different editors)

Finally... there is quite a lot of scope for co-designing the affordances / primitives supported by the coding agent and the LLM backing it (especially in LLM post-training). So factorizing these two into completely independent pieces currently seems unlikely to give the most powerful capabilities.

daigoba66|3 months ago

> I really wish there were a de facto state-of-the-art coding agent that is LLM-agnostic

Cursor?

It’s really quite good.

Ironically it has its own LLM now, https://cursor.com/blog/composer, so it’s sort of going the other way.

cesarvarela|3 months ago

I think Claude Code is the best because it is not agnostic.

theptip|3 months ago

It’s not gonna happen any time soon. The model is fine-tuned on traces generated by the scaffolding (eg dependent on what tool calls are available), and the scaffolding is co-developed with the strengths/weaknesses of the specific model.

syspec|3 months ago

There are actually a lot of those! One of the best things about using them is that you can swap models around at will.

I love to switch models and ask them what they thought of the previous models answer

therealmarv|3 months ago

Model agnostic tools I would say:

Roo Code or maybe Kilo (which is a fork of Roo)

blutoot|3 months ago

IMHO, one understated downside in today's AI/Agentic/Vibe-coding options is that ALL of them are evolving a bit too fast before any of these types of "best practices" can become a habit with a critical mass of developers, rendering many such tips obsolete very quickly (as another person rightfully pointed out).

Sure, software in general will keep evolving rapidly but the methods and tools to build software need to be relatively more stable. E.g. many languages and frameworks come and go, but how we break down a problem, how we discover and understand codebases, etc. have more or less remained steady (I think).

I see this a paradox and have no idea what the state of equalibrium will look like.

kachapopopow|3 months ago

ymmv, but I think all of this is too much and you generally don't need to think about how to use an AI properly since screaming at it usually works just as well as very fine tuned instructions.

you don't need claude code, gemini-cli or codex I've been doing it raw as a (recent) lazyvim user with a proprietary agent with 3 tools: git, ask and ripgrep and currently gemini 3 is by far the best for me even without all these tricks.

gemini 3 has a very high token density and a significantly larger context than any model that is actually usable, every 'agent' I start shoves 5 things into the context:

- most basic instructions such as: generate git format diff only when editing files and use the git tool to merge it (simplified, it's more structured and deeper than this)

- tree command that respects git ignore

- $(ask "summarize $(git diff)")

- $(ask "compact the readme $(cat README.MD"))

- (ripgrep tools, mcp details, etc)

when the context is too bloated I just tell it to write important new details to README.MD and then start a new agent

https://github.com/kagisearch/ask

xyzzy_plugh|3 months ago

I'm doing something very similar but even simpler and Gemini 3 is absolutely crushing it. I tried to do this with other models in the past, but it never really felt productive.

I don't even generate diffs, just full files (though I try and keep them small) and my success rate is probably close to 80% one-shotting very complex coding tasks that would take me days.

lvl155|3 months ago

Gemini CLI sucks. Just use Opencode if you have to use Gemini. They need to rebuild the CLI just as OAI did with Codex.

agentdrek|3 months ago

YMMV I guess but it's my goto tool; fast and reliable results at least for my use cases

oblio|3 months ago

> To use OpenCode, you’ll need:

> A modern terminal emulator like:

> WezTerm, cross-platform

> Alacritty, cross-platform

> Ghostty, Linux and macOS

> Kitty, Linux and macOS

What's wrong with any terminal? Are those performance gains that important when handling a TUI? :-(

Edit:

Also, I don't see Gemini listed here:

https://opencode.ai/docs/providers/

Only Google Vertex AI (?): https://opencode.ai/docs/providers/#google-vertex-ai

Edit 2:

Ah, Gemini is the model and Google Vertex AI is like AWS Bedrock, it's the Google service actually serving Gemini. I wonder if Gemini can be used from OpenCode when made available through a Google Workspace subscription...

randomsofr|3 months ago

what happened with Codex? Did they rebuild it?

INTPenis|3 months ago

I've been using Gemini CLI for months now, mainly because we have a free subscription for it through work.

Tip 1, it consistently ignores my GEMINI.md file, both global and local. Even though it's always saying that "1 GEMINI.md file is being used", probably because the file exists in the right path.

Tip 12, had no idea you could do this, seems like a great tip to me.

Tip 16 was great, thanks. I've been restarting it everytime my environment changes for some reason. Or having it run direnv for me.

All the same warnings about AI apply for Gemini CLI, it hallucinates wildly.

But I have to say gemini cli gave me my first real fun experience using AI. I was a late comer to AI, but what really hooked me was when I gave it permission to freely troubleshoot a k8s PoC cluster I was setting up. Watching it autonomously fetch logs, objects, troubleshoot until it found the error was the closest thing to getting a new toy for christmas for me in many years.

So I've kept using it, but it is frustrating sometimes when AI is behaving so stupid you just /quit and do it yourself.

terrywang|3 months ago

Thanks for sharing. Gemini CLI doing live troubleshooting for a K8s cluster is surreal. I am keen to try that out, since I have just created RKE2 clusters.

jasonsb|3 months ago

All these tips and tricks just to get out-coded by some guy rawdogging Copilot in VS Code.

arresin|3 months ago

It’s inferior but copilot is even more inferior to it. I used it again recently just to see after cursor And Claude code. It’s laughably bad. Almost like they don’t care.

3578987532688|3 months ago

My tip: Move away from Google to an LLM that doesn't respond with "There was a problem getting a response" 90% of the time.

knollimar|3 months ago

Are we getting billed for these? The billing is so very not transparent.

tarruda|3 months ago

I had a terrible first impression with Gemini CLI a few months ago when it was released because of the constant 409 errors.

With Gemini 3 release I decided to give it another go, and now the error changed to: "You've reached the daily limit with this model", even though I have an API key with billing set up. It wouldn't let me even try Gemini 3 and even after switching to Gemini 2.5 it would still throw this error after a few messages.

Google might have the best LLMs, but its agentic coding experience leaves a lot to be desired.

SamDc73|3 months ago

A lot of times Gemini models will get stuck in a loop of errors in a lot of times it fails to edit/read or other simple function calling

it's really really terrible at agentic stuff

tekacs|3 months ago

Not so much with Gemini 3 Pro (which came out a few days ago)... to the point that the loop detection that they built into gemini-cli (to fight that) almost always over-detects, thinking that Gemini 3 Pro is looping when it in fact isn't. Haven't had it fail at tool calls either.

wowamit|3 months ago

I am worried that we are diverging with CLI updates across models. I wish we had converged towards a common functionality and behaviour. Instead, we need to build knowledge of model-specific nuances. The cost of choosing a model is high.

swyx|3 months ago

> $ time gemini -p "hello world"

> Loaded cached credentials. > Hello world! I am ready for your first command. > gemini -p "hello world" 2.35s user 0.81s system 33% cpu 29.454 total

seeing between 10-80 seconds for responses on hello world. 10-20s of which is for loading the god damn credentials. this thing needs a lot of work.

game_the0ry|3 months ago

I like AI a lot. I try to use to as much as I can. It feels like it is becoming an essential part of making me a more effective human, like the internet or my iphone. I do not see it as a bad thing.

But I can't help but to get "AI tutorial fatigue" from so many posts telling me about how to use AI. Most are garbage, this one is better than most. Its like how javascript developer endlessly post about the newest ui framework or js build tool. This feels a lot like that.

synergy20|3 months ago

agreed, each vendor(gemini,claude,codex...) should have an easy to follow best-practice on their homepages, better, they all agree on some agents.md style, to lessen the cognitive load on humans.

insin|3 months ago

People telling you how to/how they use LLMs has become utterly boring, doesn't matter if it's some rando posting this isn't just X, it's Y slop purely for engagement, or someone you like and respect (your Addys and your Simons) putting the effort in because they want to educate/inform.

Boring.

cookiejest|2 months ago

It's interesting to see the variety of approaches people are taking to get consistent results from LLMs for coding. The discussion around prompt engineering, agentic workflows, and even the choice of model (Gemini, Claude, etc.) highlights a common challenge: managing the complexity of different AI integrations.

One way to streamline this is to use a universal MCP server. Instead of building and maintaining separate connections for each AI service, you can use a platform like [contextgate](https://contextgate.ai/) to manage them all from a single point. This can simplify your development process, especially when you're experimenting with different models or tools to find the best fit for your coding tasks. It's a bit like having a universal remote for all your AI services.

wg0|3 months ago

Gemini 3 with CLI is relentless if you give it detailed specs and other than API errors, it just is great. I'd still rank Claude models higher but Gemini 3 is good too.

And the GPT-5 Codex has a very somber tone. Responses are very brief.

senotrusov|3 months ago

>this lets you use Gemini 2.5 Pro for free with generous usage limits

Considering that access is limited to the countries on the list [0], I wonder what motivated their choices, especially since many Balkan countries were left out.

[0]: https://developers.google.com/gemini-code-assist/resources/a...

oblio|3 months ago

For Europe it's EU + UK + EFTA plus for some reason, Armenia.

booleandilemma|3 months ago

Tips and tricks for playing slot machines

Best practices for gambling

qingcharles|3 months ago

Looking through this, I think a lot of these also apply to Google Antigravity which I assume just uses the same backend as the CLI and just UI wraps a lot of these commands (e.g. checkpointing).

timonoko|3 months ago

Gemini-CLI on Termux does not work anymore. Gemini itself found a way to fix the problem, but I did not totally grok what it was going to do. It insisted my Termux was old and rotten.

Rebelgecko|3 months ago

Make sure you've turned off the "alternate buffer" setting

agentifysh|3 months ago

agentic coding seems like its not the top priority but more at capturing the search engine users which is understandable.

still i had high hopes for gemini 3.0 but was let down by the benchmarks i can barely use it in cli however in ai studio its been pretty valuable but not without quirks and bugs

lately it seems like all the agentic coders like claude, codex are starting to converge and differentiated only by latency and overall cli UX and usage.

i would like to use gemini cli more even grok if it was possible to use it like codex

chewz|3 months ago

The problem is that Gemini CLI simply doesn’t work. Beside simplest of tasks like creating new release it is useless as coding assistant. Doesn’t have a plan mode, jumps right into coding and then gets stuck in the middle of spaghetti code.

Gemini models are actually pretty capable but Gemini CLI tooling makes them dumb and useless. Google is simply months behind Anthropic and OpenAI in this space!

ossa-ma|3 months ago

Kinda useful, especially tip 15 and tip 26.

There needs to be a lot more focus on the observability and showing users what is happening underneath the hood (especially wrt costs and context management for non-power users).

A useful feature Cursor has that Antigravity doesn't is the context wheel that increases as you reach the context window limit (but don't get me started on the blackbox that is Cursor pricing).

DevShorya|3 months ago

The contrast between manual scripting and LLM-assisted workflows is interesting. Both seem to fail when the constraints aren’t clear enough. When they are clear, the LLM becomes surprisingly reliable.

rgthomas|3 months ago

Nice breakdown. Curious if you’ve explored arbitration layers or safety-bounded execution paths when chaining multiple agentic calls?

I’m noticing more workflows stressing the need for lightweight governance signals between agents.

albert_e|3 months ago

A lot it seems to mirror syntax of Claude Code

Integration with Google Docs/Spreadsheets/Drive seems interesting but it seems to be via MCP so nothing exclusive/native to Gemini CLI I presume?

vidarh|3 months ago

There seems to be an awful many "could" and "might" in that part. Given how awfully limited the Gemini integration inside Google Docs is, it's an area that's just made me feel Google is executing really slowly on this.

cavisne|3 months ago

I think this guide is mostly AI slop. The Google docs section is full of "they might have support for this" "you could do this", "maybe they will add this MCP". How is that a guide?

farnsworth|3 months ago

Am I stupid? I run /corgi, nothing happens and I don't see a corgi. I have the latest version of the gemini CLI. Or is it just killedbygoogle.com

lupire|3 months ago

How many of these 30 tips can replaced by Tip 8: tell Gemini to read the tips and update its own prompt?

xbryanx|3 months ago

It would/will be interesting to see this modified to include Antigravity alongside Gemini CLI.

MarkMarine|3 months ago

I love the model, hate the tool. I’ve taken complex stuff and given it to Gemini 3 and been impressed, but Anthropic has the killer app with Claude Code. The interplay of sonnet (a decent model) and the tools and workflow they’ve got with Claude code around it supercharge the outcome. I tried Gemini cli for about 5 seconds and was so frustrated, it’s so stupid at navigation in the codebase it takes 10x as long to do anything or I have to guide it there. I have to supervise it rather than doing something important while Claude works in the background

moondowner|3 months ago

Is there a similar guide/document for Claude Code?

rockyj|3 months ago

Its simple, just follow these 30 tips and tricks :D

lupire|3 months ago

Antigravity obsoleted Gemini CLI, right?

rncode|3 months ago

we've gone from 'RTFM' to 'here's 30 tips to babysit your AI assistant' and somehow this is considered progress

snickmy|3 months ago

Addy delivers!

voodooEntity|3 months ago

I really tried to get gemini to work properly in Agent mode. Tho it way to often wen't crazy, started rewriting files empty, commenting like "here you could implement the requested function" and many more stuff including running into permanent printing loops of stuff like "I've done that. What's next on the debugger? Okay, I've done that. What's next on the with? Okay, I've done that. What's next on the delete? Okay, I've done that. What's next on the in? Okay, I've done that. What's next on the instanceof? Okay, I've done that. What's next on the typeof? Okay, I've done that. What's next on the void? Okay, I've done that. What's next on the true? Okay, I've done that. What's next on the false? Okay, I've done that. What's next on the null? Okay, I've done that. What's next on the undefined? Okay, I've done that..." which went on for like 1hour (yes i waited to see how long it takes for them to cut it).

Its just really good yet.

I recently tried IntelliJs Junie and i have to say it works rather well.

I mean at the end of the day all of them need a human in the loop and the result is just as good as your prompt, tho with Junie i at least most of the time got something of a result, while with gemini 50% would have been a good rate.

Finally: Still dont see agentic coding for production stages - its just not there yet in terms of quality. For research and fun? Why not.

haxton|3 months ago

Why is this AI generated slop so highly upvoted?

ericol|3 months ago

Even thought the doc _might_ be AI generated, that repo is Addy Osmani's.

Of Addy Osmani fame.

I seriously doubt he went to Gemini and told it "Give me a list of 30 identifiable issues when agentic coding, and tips to solve them".

bigcloud1299|3 months ago

I have never had a luck with using Gemini. I had a pretty good app create with CODEX. Due to the hype I thought let me give Gemini a try. I asked it find all way to improve security and architecture / design. sure enough it gave a me a list of components etc that didn’t match best patterns and practices. So I let it refactor the code.

It Fucked up the entire repot. It hard coded tenant ids and used ids, it completely destroyed my UI. Broke my entire grpahql integration. Set me back 2 weeks of work.

I do admit the browse version of Gemini chat does much better job at providing architecture and design guidance time to time.

sampullman|3 months ago

Do you use AI agents on repos without version control?

bird0861|3 months ago

I can't emphasize this enough, it doesn't matter how good a model is or what CLI I'm using, use git and chroot (at the least, container is easier though).

Always make the agent write a plan first and save it to something like plan.md, and tell it to update the list of finished tasks in status.md as it finishes each task from plan.md and to let you review the change before proceeding to next task.

ayewo|3 months ago

> Set me back 2 weeks of work.

How did this happen?

Did you let the agent loose without first creating its own git worktree?