The Gemini CLI turns me into an unstoppable coding beast
Or at least, difficult to stop.
Please forgive the clickbait title. I do think you’ll enjoy this video.
I especially think that you’ll enjoy the concurrent gemini cli workflow which I demo at the 8:00 mark.
Check out the video on YouTube
Course Update: MCP
I added an MCP section to my AI Engineer Roadmap course.
https://zazencodes.com/courses/ai-engineer-roadmap/ai-engineering-concepts/mcp
It’s hands-on and will quickly get you up to speed with MCP from a developer perspective.
Let me know what you think by replying to this email!
Topics from this week’s video
Gemini CLI in Dev Workflow
Installation
Install from GitHub with global setup command
Authenticate via Google account (1,000 requests/day)
Initial setup
Choose CLI theme (e.g., Dracula)
Integrate Gemini in development using
tmux
Use shell mode with
!
for commands likels
,tree
, etc.
Project example: Random Number MCP Server
Demonstration of features like
random_int
,random_shuffle
,random_float
,roll a D20
Issue:
weights
argument being passed as string instead of list
Fixing the Weights Bug
Error: weights passed as string causing input validation failure
Task: Convert string input to list
Attach server file for Gemini context
Gemini tries using
ast.literal_eval
(deemed unsafe)User feedback: prefer
json.loads
for parsingImplement error handling with
raise
if JSON fails
Context isolation
Keep separate Gemini instances per task to avoid context bleed
Parallel Tasks with Gemini
Task 1: Fix weight input parsing
Task 2:
Add local dev setup instructions to
README
Include
uv
, Claude Desktop usage
Task 3:
Add new random sampling tool (without replacement)
Use
random.sample
from Python standard libNote: tool added but not imported into server
User directs Gemini to "source tool up in server"
Run shell tests with
uv
, update test suiteValidate successful test pass
Testing and Deployment
Install local dev version into Claude Code
Confirm new functionality:
random_sample
tool appears in toolsetweights
string now parses without errorNew meditation schedule generated using
random_sample
Randomized times and days of the week provided
Reflections and Meta Commentary
Gemini CLI quality downgrade: Pro → Flash mode
Analogy to handing task from senior dev to junior dev
Importance of isolating Gemini tasks
Resistance amplifies negative emotions. Acceptance diffuses them. It's like quicksand: The more you fight, the deeper you sink.
Hosun Chung