← Claude Code Hub
✦ Tip #173 Aug 22, 2026

Claude Code in Concise mode: it finally stops rambling

You tell Claude Code to be concise and the novel comes back anyway. Since v2.1.237 there is a built-in style that doesn't ask: it writes it where nothing competes with it.

Comparison of the Concise output style in Claude Code: on Default the result is buried under the preamble and followed by a closing recap; on Concise the result opens the answer, and below, what is never trimmed (errors, failing tests, security warnings and destructive confirmations)

TL;DR Turn on the Concise style in /config → Output style and start a new session, because the style is only read at startup. What goes away is the preamble ("Let me look at the files") and the closing recap of what it just did. What does not go away, by the style's own explicit rule, is error reports, failing test output, security warnings, and confirmations before anything destructive. You need v2.1.237 or later.

You ask for it in the prompt. You write it into your CLAUDE.md. "Be concise", "no closing summary", "get to the point". Three turns later the novel is back: the paragraph announcing what it is about to do, the recap of everything you just watched happen on screen, the bulleted list where one sentence would have done. Since v2.1.237 there is another route, and it is not asking more nicely.

Why asking doesn't work the same way

An output style is not one more instruction in the conversation: it modifies Claude Code's system prompt, the base block of instructions loaded before you type anything. Your CLAUDE.md, by contrast, arrives as a user message placed after that block, competing for attention with everything else you have told it along the way.

And Concise carries a tie-breaker that most homegrown instructions don't have: where its rules conflict with other communication or formatting guidance in the system prompt, its rules win.

The six rules you turn on

The style hands Claude six instructions. They are not in the documentation, which gives the style a single paragraph: they come from the client binary itself. They are worth reading, because they spell out exactly what you stop seeing and what you don't:

  1. Lead with the result. The first sentence answers "what happened" or "what's the answer". No preamble, and no closing recap of what it already said.
  2. Cut narration, keep substance. It won't restate your request, the plan, or each step it took. It reports outcomes, decisions, and anything you have to act on.
  3. Short by default. Simple questions get one to three sentences of plain prose. Headers, tables, and bullet lists show up only when they carry real structure, never as decoration.
  4. State things plainly. Hedging boilerplate is skipped. A caveat gets mentioned only when it changes what you should do next.
  5. Full detail on request. When you ask for an explanation, you get the whole thing. Being concise never means withholding information you asked for.
  6. Never trade correctness for brevity. Error reports, failing test output, security warnings, and confirmations for destructive actions keep their full content.

That sixth one is why you can leave it on without flinching. The brevity eats the narration, not the bad news.

The difference on screen

Same file, same question, run with claude -p in two identical folders. The only difference is one line in settings.local.json. This is the output as it came out, trimmed where the [...] says so.

On Default:

`slug.js` exports a single function, `slugify(s)`, which lowercases the
string and replaces spaces with hyphens. That's the entire
implementation.

Bugs / gaps:

1. **No special-character stripping** — punctuation, accents, and
   symbols pass through untouched. `slugify("Café & Bar!")` →
   `"café-&-bar!"`, not a valid slug.
2. **No accent/diacritic normalization** — `á`, `é`, `ñ`, etc. stay
   as-is instead of becoming `a`, `e`, `n`.
[...] four more, one paragraph each, then a full code block with the
rewrite before it asks "Want me to apply a fix, or was this just a read?"

On Concise:

`slugify(s)` lowercases the string and replaces spaces with hyphens.

Bugs/gaps:
- Doesn't strip accents/diacritics (e.g. "Café" → "café", not "cafe").
- Doesn't remove other special characters (`!`, `?`, `/`, `#`, etc.) —
  they pass through unchanged, producing invalid slugs.
- Doesn't collapse multiple consecutive spaces/hyphens (`"a   b"` →
  `"a---b"`).
- Doesn't trim leading/trailing spaces before converting, so `" hi "` →
  `"-hi-"`.
- No handling of non-string input (throws if `s` is `undefined`/`null`).

For a real slugify you'd typically normalize unicode (NFD + strip
diacritics), strip non-alphanumeric chars, collapse repeated separators,
and trim leading/trailing hyphens.

The same bugs, found with the same rigor. What collapsed is the scaffolding: the decorative bold, the paragraph per bullet, and the full rewrite unrolled before anybody asked for it.

How to turn it on

1. Pick it in /config

/configOutput styleConcise. Claude Code saves your choice to the project's .claude/settings.local.json, which is your local setting and isn't committed.

2. Start a new session

The output style is part of the system prompt, and the system prompt is read at session start. Change it mid-conversation and nothing happens until the next /clear or your next session. Plenty of people stop there and conclude the style is broken.

3. If you want it everywhere

Set it by hand in your global config, ~/.claude/settings.json:

{ "outputStyle": "Concise" }

And if you want a whole team to inherit it on a given repo, the same line goes in .claude/settings.json, which is committed.

When to go back to Default

Concise cuts output tokens, so on top of reading better it costs you less. But it is the opposite of a tutor: if you are landing in a codebase you don't know and want the reasoning explained as it works, the style you want is Explanatory, not this one. And if you build your own style instead of using a built-in one, careful: a custom output style deletes the engineering instructions unless one frontmatter line stops it.

If you have used Grok or Composer, you know the register we're talking about. I enjoy it quite a lot.

Reference

Aspect Detail
Real name The Concise output style (plenty of people call it "Concise mode")
Turn on /config → Output style → Concise
Where it's saved The project's .claude/settings.local.json
Global or team-wide outputStyle in ~/.claude/settings.json or .claude/settings.json
When it applies At session start; after changing it, /clear or a new session
What it never trims Errors, failing tests, security warnings, destructive confirmations
Scope Main conversation only; subagents run their own system prompt

Official docs: Output styles

Requirements

  • Claude Code v2.1.237 or later
Workshop for teams

Multiply your team's output without sacrificing quality: a 6 to 8 hour AI First workshop, online, on the Claude platform.

See the workshop
Free guide

The 51 essentials, as a PDF.

One page per tip. Five chapters. What I actually use daily in production — no theory, no fluff.

  • I. Getting started 10 tips
  • II. Awareness 3 tips
  • III. Mastery 22 tips
  • IV. Autonomy 10 tips
  • V. Comparison 6 tips
Are you a professional Web developer?

You'll receive the guide by email · You join the Gravitas newsletter · Unsubscribe anytime

of 51
#

Wmedia · 51 Tips
Free guide · 51 tips · 5 chapters

The 51 essentials, as a PDF.

Are you a professional Web developer? · Unsubscribe anytime