Gemini CLI Tips and Advanced Tricks (Or: How to Avoid Family on Thanksgiving)
It is Thanksgiving week in the US. For many, this means turkey, football, and quality time with loved ones. For me, it means finding a quiet corner to “check on something urgent” so I can tweak my terminal configuration for three hours.
If you’re also looking for a sophisticated way to procrastinate (or just want to make your AI tools work better), let’s talk about the Gemini CLI.
I work with customers every day, and hack on my own projects most evenings. Like any good developer tool, the real power of the Gemini CLI lies in its customization. A lot of these tweaks live in settings.json. It’s growing fast, it’s amazingly configurable, and—best of all—it’s open source. When I find an issue or want something to work differently, I can actually participate in improving it.
Speaking of customization, even the best agents need structure. I wrote recently about how all agents still need reinforcing loops to truly shine, and configuration is the first step in that loop.
Here are a few advanced tips and tricks to get the most out of Gemini CLI while you’re stuck (or happily?) at the kid’s table this holiday season.
The “Witty Sayings” Situation
If you’ve used the Gemini CLI, you’ve seen the loading messages. They’re cute. They’re witty. They say things like “Convincing the AI to behave…” or “Reticulating splines…”
But after the 400th time, “cute” can start to feel a lot like “slow.”
I wasn’t the only one who felt this way. Issue #47 on GitHub captured the sentiment perfectly: sometimes you just want the tool to work without the sass.
The good news? You can now change them.
If you want to feel like a cyberpunk hacker, you can override the defaults in your config:
"ui": {
"customWittyPhrases": [
"Hacking the mainframe...",
"Bypassing firewalls...",
"Downloading more RAM..."
]
}
Or, if you are a purist (or just impatient), you can kill them entirely for a cleaner, faster-feeling experience:
"ui": {
"accessibility": {
"disableLoadingPhrases": true
}
}
Configuration Deep Dive
Beyond just silencing the robot jokes, there are a few ui settings that I consider essential for a “Pro” workflow. You can find the full documentation here, but these are the ones I actually use.
1. hideTips: true
By default, the CLI gives you helpful hints. I appreciate the thought, but I know how to exit vim, and I know how to use the CLI. Reclaiming those few lines of screen real estate makes the interface feel much more professional.
2. showCitations: true
LLMs hallucinate. It’s a fact of life, like gravity or the fact that the turkey will be dry on Thursday. Turning this on forces the model to show its work. If it claims a fact, I want to see the link. Note - these are citations from internal files, primarily.
3. showModelInfoInChat: true
I switch models a lot. Sometimes I need the speed of Flash, sometimes the reasoning of Pro. Enabling this puts the model name right in the chat history, so I don’t have to scroll up or guess which “brain” gave me that code snippet.

4. showLineNumbers: false
Controversial opinion: I turn these off. When I copy-paste code blocks out of the terminal and into VS Code, line numbers just get in the way. The syntax highlighting is usually enough for me to read it, and the copy-paste experience is smoother without them.
5. showStatusInTitle: true
This one is subtle but great. It pipes the current status of the CLI into your terminal window title. If you, like me, have 40 terminal tabs open, knowing which one is “Thinking…” and which one is “Idle” at a glance is a lifesaver.
6. Custom System Prompts
One of the most powerful features is defining how the agent behaves from the start. You can define custom system prompts to create specialized personas. I covered this in detail in my post on Gemini CLI Custom System Prompts, but the short version is: don’t settle for the default personality. I’m even developing a CLI Extention to make this easier. Feel free to test it out.
Scratching My Own Itch (Open Source FTW)
The beautiful thing about the Gemini CLI isn’t just that it’s configurable—it’s that it’s open source.
I ran into a few edge cases recently where the tool didn’t quite do what I wanted. Instead of complaining on Twitter, I opened a PR. Full disclosure, I’ve been off Twitter for years.
I’ve got a couple of them in the pipeline right now:
-
PR #13706: Custom ASCII Art Logos. This adds a
ui.customLogoVariantsFilesetting so you can load your own logo variants via a TOML file. I even built a helper extension to generate the files for you. It’s an easy way to have a little fun, brand your business, or even help tell terminals apart at a glance. It’s also pretty sweet to see your own name when you start Gemini CLI.
-
PR #13684: Local Subagent Management. This implements a new
/agentscommand (withnew,list, anddesc) to create and manage local subagents directly from the CLI. This is the same sort of technology that Claude Code uses for its subagents. There are several key advantages to having these available. Full disclosure - I didn’t do the vast majority of this work. An engineer in Google did the heavy lifting. This PR adds the ability to create user-defined agents and have them called by your main agent.
Summary
If you haven’t dug into your settings.json yet, take ten minutes this week to do it. A well-oiled tool makes the work disappear, leaving you more time to explain to your family what exactly a “Developer Relations Engineer” actually does.
If you haven’t given the Gemini CLI a try, now is a great time. Especially with the release of Gemini 3, the capabilities in the terminal are wild. It’s open source, it’s fast, and with these configs, it’s surprisingly polished.
Happy Thanksgiving.