The Problem Is the Wrapper, Not the Model - Claude Code Deviates, Argues, and Takes Shortcuts Because the TUI Allows It

Resolved 💬 11 comments Opened Dec 16, 2025 by sudoxreboot Closed Mar 11, 2026

Stop Tuning the Model. Fix the Interface.

Developers are reading issues like:

  • "claude code doesn't follow instructions"
  • "claude code goes rogue"
  • "claude code uses sed when told not to"

and thinking: "how do we tune the model?"

WRONG QUESTION.

The model is fine. The wrapper/TUI is broken.

---

Which Interface Are You Even Fixing?

"Claude Code" is multiple interfaces:

  • CLI (claude in terminal)
  • desktop app
  • web interface (claude.ai/code)
  • VS Code extension
  • JetBrains extension

They all behave differently. When someone reports a bug, which TUI are you debugging? If you're patching the desktop app for CLI issues, that explains a lot.

---

What the Wrapper Allows (and Shouldn't)

1. Deviation from Explicit Instructions

CLAUDE.md says "do not use sed"
Claude Code uses sed anyway
Because the wrapper treats instructions as suggestions, not rules

2. Arguing Instead of Executing

user: "search for the backup file"
claude code: runs filtered find, misses file
user: "stop filtering, just ls"
claude code: argues, runs more filtered searches
user: "MANUALLY. LS. ONE DIRECTORY AT A TIME."
claude code: finally finds the file that was always there

The file existed. Claude Code's "smart" search filtered it out.
Claude Code ARGUED about whether it existed.
While the user was looking at it.

3. Shortcuts That Break Things

A machine doesn't get tired.
A machine doesn't need to save keystrokes.
A machine has no reason to take shortcuts.

But Claude Code:

  • filters when told to search
  • optimizes when told to execute
  • "helps" when told to just do the thing

Shortcuts from a machine open the door for failures.
ls before find. cat before grep. Simple before clever.

4. No Instruction Persistence

Context compacts. Claude Code forgets everything.
user: "you just did this before compaction"
claude code: "i don't think that's possible"

The wrapper doesn't persist critical instructions across context resets.

---

The Fix Is in the Wrapper, Not the Model

  1. CLAUDE.md as Hard Rules, Not Suggestions
  • "do not use sed" = blocked, not discouraged
  • enforced at the wrapper level
  1. Coding Mode vs Assistant Mode
  • coding: exact execution, no interpretation
  • assistant: helpful, creative
  • let users toggle
  1. Execute First, Suggest Second
  • do what user said
  • THEN offer alternatives
  • don't argue about feasibility
  1. Instruction Persistence Across Compaction
  • critical instructions survive context reset
  • user shouldn't have to repeat themselves
  1. Simple Over Clever
  • no shortcuts unless asked
  • if user says ls, run ls
  • machine has no excuse for laziness

---

Which Interface Is This About?

CLI (claude in terminal) primarily.
But the wrapper layer is probably shared.
That's where the bugs live.
That's what nobody seems to be looking at.

---

$200/month Max subscriber.
Today I recovered 119,667 database matches by forcing Claude Code to ls one directory at a time after it insisted the data didn't exist because its "smart" searches filtered it out.

I spend more time fighting the tool than using it.
The model is capable.
The wrapper sabotages it.

Fix the wrapper.

View original on GitHub ↗

This issue has 11 comments on GitHub. Read the full discussion on GitHub ↗