All posts

Fix Claude's annoying verbal tics with a simple Python hook

Huma ShaziaJuly 15, 2026 at 12:46 AM4 min read
Fix Claude's annoying verbal tics with a simple Python hook

Key Takeaways

Fix Claude's annoying verbal tics with a simple Python hook
Source: Hacker News: Best
  • Claude Code's MessageDisplay hook intercepts output before display, letting you swap phrases in real-time
  • A 15-line Python script can replace overused Claude phrases like 'load-bearing' with custom alternatives
  • The hook system offers a lightweight way to customize AI assistant behavior without fine-tuning

Developer Johanna Larsson has published a clever fix for one of Claude's most recognized quirks: its tendency to describe everything as 'load-bearing' or offer 'honest takes' in nearly every response. Her solution uses Claude Code's MessageDisplay hook to intercept the AI's output and swap these overused phrases with whatever text you prefer, in real time.

The approach is simple. A short Python script sits between Claude and your terminal, pattern-matching against a dictionary of phrases and replacing them before they reach your screen. Larsson's example swaps 'load-bearing' for 'cooked' and 'you're absolutely right' for 'I'm a complete clown.' The humor is the point, but the underlying capability is genuinely useful.

Advertisement

Why do Claude's phrases bother people?

Every major LLM has verbal fingerprints. ChatGPT leans on 'delve' and 'It's worth noting.' Claude has its own set: 'seam,' 'honest take,' 'load-bearing,' and a habit of affirming users with 'You're absolutely right' even when they're not.

These tics emerge from training. Models learn patterns from vast text corpora, and certain phrases get weighted heavily, likely because they appear in high-quality instructional content or because reinforcement learning from human feedback rewarded them. The result is an AI that sounds competent but also predictable. Experienced users can spot Claude-generated text within a few sentences.

For founders using Claude to draft technical docs, code comments, or customer communications, the sameness becomes a liability. You end up editing the same phrases out of every output.

How the MessageDisplay hook works

Claude Code, Anthropic's terminal-based coding assistant, supports a hook system that fires on specific events. MessageDisplay triggers whenever Claude sends output to your screen. By intercepting this event, you can transform the text before it renders.

Larsson's script reads the incoming delta (the chunk of text being streamed), runs regex replacements against her dictionary, and outputs modified JSON that Claude Code displays instead.

python
replacements = {
    "seam": "whatchamacallit",
    "you're absolutely right": "I'm a complete clown",
    "honest take": "spicy doodad",
    "load-bearing": "cooked"
}

The setup takes about two minutes. Save the script to ~/.claude/hooks/wordswap.sh, make it executable, and register it in ~/.claude/settings.json under the hooks block. New sessions pick up the change automatically.

Practical applications beyond jokes

Larsson frames her example as comedy, but the same technique supports serious use cases. You could enforce a house style by swapping 'utilize' for 'use' or 'leverage' for 'take advantage of.' You could replace jargon with plain language for non-technical readers. You could even auto-translate specific terms into another language for bilingual workflows.

The hook also provides a debugging surface. Want to see how often Claude reaches for certain crutch phrases? Log every match to a file and tally the results.

Advertisement

Limits of post-processing

This approach has constraints. It only works in Claude Code, not the web interface or API. Regex replacements can misfire on partial matches or break sentence flow. And you're still spending Claude's tokens generating phrases you'll throw away.

A more robust fix would involve custom system prompts that explicitly ban certain phrases. Anthropic's API lets you prepend instructions telling Claude to avoid specific vocabulary. That shifts the work upstream but costs no extra latency and catches the problem at generation time rather than display time.

Both methods complement each other. System prompts reduce the frequency of offending phrases; hooks catch whatever slips through.

ℹ️

Logicity's Take

Larsson's hack highlights a gap in AI tooling: users want fine-grained control over model voice without the overhead of fine-tuning. Anthropic and OpenAI both offer custom instructions, but neither provides an easy way to blacklist specific phrases at the platform level. For startups building on top of these models, the lesson is clear: ship customization primitives early. Your users will find surprising ways to use them, and you'll learn what they actually want faster than any roadmap would tell you.

Getting started

If you're running Claude Code and want to try this, the full script is on Larsson's blog. Fork it, swap in your own phrase dictionary, and restart your session. The hook system supports multiple scripts, so you can layer transformations or toggle them by renaming files.

For teams using Notion or ClickUp to track style guides, consider maintaining your replacement dictionary as a shared config. That way everyone's Claude sessions stay consistent with your brand voice.

ℹ️

Disclosure

Some links in this post are affiliate links — Logicity earns a commission if you sign up, at no extra cost to you. We only link products we have used or actively recommend.

Frequently Asked Questions

Does this hook work with the Claude web interface?

No. The MessageDisplay hook is specific to Claude Code, Anthropic's terminal-based tool. The web interface and direct API calls require different approaches, like custom system prompts.

Will Anthropic patch Claude to stop using these phrases?

Anthropic periodically adjusts Claude's behavior through training updates, but verbal tics are hard to eliminate entirely without affecting fluency. User-side customization remains the most reliable fix.

Can I use this to enforce a corporate style guide?

Yes. Replace the joke phrases with your actual banned words and preferred alternatives. The regex matching is case-insensitive and handles word boundaries.

Does this add latency to Claude's responses?

Minimal. The Python script processes each text chunk as it streams, adding microseconds per chunk. You won't notice the difference.

Also Read
Anthropic's Claude for Teachers: free AI for K-12, no data training

More on how Anthropic is expanding Claude's reach and customization options

ℹ️

Need Help Implementing This?

If you're building AI-powered tools and want help integrating Claude, customizing its behavior, or setting up automated workflows, reach out to us at hello@logicity.in.

Source: Hacker News: Best

Advertisement
H

Huma Shazia

Senior AI & Tech Writer

Produced with AI assistance and reviewed by the Logicity editorial team. Learn more in our Editorial Policy.