Why I'm Done Pretending AI Coding Agents Have Consistent Interfaces
Adil Sher
Author
I spent two hours last week debugging what I thought was a feature bug in Claude Code, only to realize I'd been typing /compress instead of /compact. The command works fine in Gemini CLI, that's literally its name there. By the time I figured it out, I'd already started writing a GitHub issue.
That's when I realized something that should've been obvious: we're in the wild west of AI coding agents right now, and nobody's coordinating the UX. Each tool has its own command set, its own flags, its own philosophy. And as someone actively shipping code with these tools, I'm discovering that this inconsistency isn't just annoying, it's a real productivity tax that nobody's talking about.
The Fragmentation is Real, and It's Getting Worse
I use Claude Code most days, but I also spin up Codex CLI for specific workflows, and I've been experimenting with Gemini CLI and OpenCode. What struck me reading through the command comparison isn't just that they're different, it's that they're meaningfully different in ways that break muscle memory.
Take /clear. In Claude Code, it resets your conversation but preserves project context. In Codex, /clear nukes both the chat AND your terminal screen. In Gemini CLI, it wipes context and screen, but Ctrl+L only clears the screen. These aren't minor alias differences, these are different mental models of what "clearing" means.
The same goes for /model. Claude Code switches your model and makes it the default going forward. Gemini CLI gives you a --persist flag to decide on the fly. Codex does something in between. If you're bouncing between tools in a single day (which I am), you're constantly rewiring how you think about state and persistence.
Launch Flags Are Even Worse Than Commands
Where this really bites is the command line. Resume my last session? That's -c in Claude Code and OpenCode, but codex resume --last in Codex (a subcommand, not a flag). Pick a model? --model for Claude, -m for Gemini and Codex. Start in approval mode? --permission-mode plan vs --approval-mode plan vs --agent plan.
I've found myself building shell aliases just to normalize this across my machines. That's not scaling.
My Take: This is a Coordination Problem Disguised as a UX Problem
Here's what frustrates me: none of these tools are wrong. They each made reasonable design choices given their own constraints. Claude Code's model persistence makes sense for its architecture. Gemini's flag-based approach is cleaner in some ways. But taken together, they create cognitive load that compounds.
The real issue is that there's no industry standard emerging. Compare this to, say, Docker CLI and Kubernetes CLI, they both converged on similar command structures because the ecosystem demanded it. We're not there with AI coding agents yet because the category is still forming.
If I'm being honest, I think Claude Code's approach is slightly ahead of the curve here. The commands feel more discoverable, and /help actually explains what things do. But that's not enough. We need a standard, or at least, the tooling community needs to decide whether we're building toward one.
What I'm Doing About It
I've started keeping a ~/.ai-agents-commands reference file that I source in my shell. It's basically a stripped-down cheat sheet mapped to my most common workflows:
# Normalize across agents
alias claude-resume='claude -c'
alias codex-resume='codex resume --last'
alias gemini-resume='gemini -r latest'
alias opencode-resume='opencode -c'
# Common context operations
function agent-compact() {
# Detect which agent is active and run the right command
if [[ "$ACTIVE_AGENT" == "gemini" ]]; then
gemini /compress
else
# Claude, Codex, OpenCode all use /compact
/compact
fi
}
It's a band-aid, not a solution. But it's buying me back mental cycles that I'd rather spend on actual development.
The Bigger Question
As these tools mature and more developers rely on them for daily work, the fragmentation problem is only going to get worse. We're going to see more agents, more commands, more flags. At some point, someone has to say: "Here's what a standard AI coding agent interface looks like."
I'm curious whether that comes from the vendor side (one tool winning and others converging) or from the developer side (the community building abstractions and standards). My guess? We'll end up with something in the middle, a de facto standard emerging around the most ergonomic tool, with everyone else adding compatibility layers.
Until then, I'm building my own abstractions. And I'm betting more developers will do the same.
Source: This post was inspired by "/compact or /compress? 9 Agent Commands in Claude Code, Codex, Gemini CLI and OpenCode" by Dev.to. Read the original article