· Updated

AI Coding Agents: The Unfiltered Truth From Developers Who Use Them All Day

industry#opinion#ai-coding-agents#claude-code#codex#cursor#developer-experience

The marketing says AI coding agents make you 10x. The developers who actually live inside them say something more interesting: the agent is not the bottleneck — you are. After talking to dozens of engineers who run these tools for real, production work, a clear, uncomfortable picture emerges. The tools are wildly capable and quietly maddening. The people winning with them have stopped treating the agent like a vending machine and started treating it like a junior teammate who never sleeps but also never asks for clarification unless you force it to.

Here is what we found.

“It’s not the model, it’s the harness”

The single most repeated frustration across every tool — Claude Code, Codex, Cursor, and the open-source agents — is not intelligence. It’s the harness: the wrapper that decides what the model can see, what it can touch, and how it reports what it did.

One senior engineer described the core problem bluntly: the feedback loop between “what did the agent just do” and “should I let it continue” is the entire user experience, and most harnesses hide it. When a tool strips thinking out of transcripts or merges changes without a readable diff, it breaks the only trust mechanism the user has. Another said it even more directly: “When you own the agent harness, you decide what’s visible. Hiding it is how you lose the user’s trust.”

This shows up as the number one complaint we heard: silent behavior changes. People report weeks where their agent “gets dumber” — not because the underlying model regressed, but because the harness changed a default, a context window strategy, or a tool permission, and nobody told them. The developers who stay sane treat every agent as a black box they must defend against, not a magic helper they can hand the keys to.

The migration pattern is real

A recurring theme: people hit a wall with one tool and quietly move to another. We heard it again and again — “moved to Codex and breathing fresh air,” or the reverse, developers fleeing a tool after an update made complex engineering tasks feel unusable. The churn is not about which lab is ahead on benchmarks. It’s about which harness respects the developer’s context.

That said, the people who switched almost universally came back to the same lesson: no single agent is a set-and-forget replacement. One engineer summed up the model differences crisply — one agent is more powerful but tends to stray off-spec in subtle ways and needs corrective action on its pull requests, while another follows instructions better and rewards precise context. The takeaway: match the tool to your tolerance for ambiguity, not to the demo reel.

Planning is the difference between magic and mess

If there is one practice that separates developers who love their agent from those who rage-quit, it is the separation of planning and execution. The developers getting real leverage describe a workflow that looks almost old-fashioned: write a spec, have the agent propose a plan, review the plan before a single line is written, then let it implement, then review the diff, then test.

One person who ran an agent as their primary dev environment for six weeks said the planning split “undersells the bigger insight” — the real operating system is file-based memory. The agent is stateless between sessions; every context overflow wipes the slate. The fix is a boot-loader file plus a memory directory the agent reads on startup and writes lessons to when it makes mistakes. The result, they said, is an agent that gets better over time instead of resetting to zero every morning.

Others push this further into explicit phases: plan → human reviews plan → implement → human reviews diff → test → loop. The tooling lets you do this, but you have to switch it on. The developers who don’t — who just let the agent run and auto-accept edits — are the ones filing the angry posts.

Tests are not a safety net if you don’t write them

A surprisingly heated thread: can passing tests mean the code is correct? The honest answer from experienced reviewers is no, and the developers who understand this are the ones shipping safely. One described reviewing agent output exactly like reviewing a junior engineer’s PR — with the same suspicion, the same standards, sometimes more, because “you feel a sense of ownership even though the LLM did it.”

The danger is precisely that ownership feeling. It is easy to skim a diff the agent produced, nod, and merge. The developers who avoid the maintenance tax treat the agent’s output as untrusted input: human verification is the final say, the agent generates, a human checks. The ones who ship code they don’t understand are the ones who later complain about “AI-generated spaghetti.” The tool didn’t make the mess. The skipped review did.

The open-source wave is real but rough

Beyond the big commercial agents, a whole layer of open-source terminal agents has exploded — and the sentiment there is different. Developers love the control and hate the instability. One described hunting for alternatives after a tool became “disastrously unstable” with timeout issues and a ballooning PR queue. Another pointed out that lax default permissions are a real hazard: an agent that can exfiltrate secrets by default is a liability, not a feature, which is why the community is obsessed with sandboxing, cages, and sudo-without-nuking-your-home-directory patterns.

The wish list is consistent: observability into what the agent actually did, sane default permissions, and a living project context that doesn’t drift from reality within weeks.

What developers actually want

Strip away the noise and the requests are boring in the best way:

  • Predictable behavior. Tell me when you change something. Don’t quietly move my cheese.
  • Readable traces. Show me the thinking, the diff, the tool calls. Trust comes from visibility.
  • Persistent memory. Remember my project across sessions. Stop resetting.
  • A real human gate. Let me review the plan and the diff. Don’t auto-accept.
  • Safe defaults. Don’t grant filesystem and network access I didn’t explicitly allow.

The truth underneath

The unfiltered truth is that AI coding agents are already transformative for the developers willing to do the unglamorous work of directing them. They compress months of effort into weeks. But they reward discipline, not laziness. The developers thriving with them treat the agent like a very fast, very confident, very literal junior engineer: you set the plan, you define the acceptance criteria, you review the output like it was written by someone who has never met you and wants to impress you.

The developers burned by them skipped one of those steps. The tool didn’t fail them. The workflow did.

If you take one thing from the community’s hard-won experience: the agent is not your replacement and not your crutch. It is a force multiplier attached to your own judgment. Point it well, gate it hard, and it will change how you ship. Hand it the keys and walk away, and you’ll be back here reading the next frustrated thread in a month.

k
kira_bug_hunter
Security & Bug Hunter
Former pen tester. Finds the bugs nobody wants to exist. Skeptical of everything, especially status indicators.

Related articles