Skip to content

Claude Code v2.1.234 Changelog

What changed in Claude Code CLI v2.1.234, released 2026-08-17 — explained in plain English.

TLDR
  • New GitLab merge-request badge and clearer auto-generated session titles.
  • Big security fix blocking a Windows path trick that could leak your login credentials.

Want a heads-up when Claude Code updates?

We email you the moment a new Claude Code version drops — plus plain-English release notes like these. No spam.

Choose update emails Claude Code · Vibe Mastermind Updates
Choose which update emails you want

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

This release is mostly about polish and safety. If you use Claude Code with GitLab, host sessions per-project, or control Claude from your phone via claude.ai, several rough edges just got smoothed out. The standout is a security hardening fix that closes a sneaky way attackers could trick Claude into reading files that hand over your Windows credentials.

What's new

  • Optional project directory name: Hosts that give each session its own config folder can now set a short, friendly name for that folder using CLAUDE_CODE_PROJECT_DIR_NAME (an "environment variable" is just a setting your computer passes to a program).
  • Clear-selection keybinding: You can now assign a key to clear highlighted text inside the app, including in the agents view.
  • GitLab merge-request badge: If your repo connects to GitLab and you're signed in with the glab command-line tool, the footer and status line show your merge request number (!N) and whether it's a draft, pending, or green/ready.
  • Auto-continue after usage limit: When your claude.ai usage limit resets, Claude Code can now resume your session on its own. You can turn this off in /config under "Continue automatically at usage limit."
  • Email privacy: Claude is now instructed to use your account email only to identify you, and not to send it to unrelated services unless you ask.

Improvements

  • Your prompts now render markdown: Code blocks, inline code, and lists in your own messages now look like they do in Claude's replies.
  • Clearer error messages: The "API returned an empty or malformed response" error now explains what came back (content type, body kind, size, request ID) and why the streaming request failed.
  • Better session titles: Auto-generated titles are now short and specific (e.g., "Login button bug") instead of restating your whole request.
  • Lower token cost for the claude-api skill: Loading this built-in skill dropped from ~200k+ tokens to ~25k by only pulling in reference docs when needed. Tokens are the chunks of text Claude reads/writes, so this saves a lot of context room.
  • Open dialogs mid-turn: /permissions, /add-dir, /autocompact, /theme, /help, /config, and /advisor can now be opened while Claude is working. Permission rule changes apply to the rest of the current turn.
  • /goal cleanup: If a turn dies on an unrecoverable error (revoked auth, exhausted credits, context overflow), /goal now clears itself with a notice instead of staying armed. If background tasks keep a goal waiting 30+ minutes, Claude checks in rather than waiting forever (set CLAUDE_CODE_GOAL_CHECKIN_MINUTES=0 to opt out).
  • setup-token stricter: claude setup-token now rejects unexpected extra arguments instead of silently ignoring them.
  • Esc no longer clears mouse selections in fullscreen: It interrupts or dismisses as usual, and your highlighted text stays highlighted.
  • Less clutter: Removed the redundant "Allowed by auto mode classifier" line under Agent tool calls, and dimmed the elapsed-time counter so it stops competing with the bold counts.
  • Teammate model simplified: The "Default teammate model" setting is gone from /config; agent-team teammates now use the leader's model unless the spawn names one.
  • Background notifications consistency: Notifications delivered between turns now use <system-reminder> tags, matching how they're delivered mid-turn.
  • Mantle startup tweak: Skips the admin-pin availability probe at startup when a main-loop model is already picked.
  • Windows startup fix: No longer stalls on repeated rename retries when ~/.claude.json is read-only.

Fixes

  • Auto mode in long sessions: After a conversation was compacted (summarized to save space), auto mode kept re-checking and wrongly denying network access to sandboxed commands. Fixed.
  • Permission answers dropped: Session-scoped permission answers (including denies) were being lost when you answered background subagent tool permission prompts. Fixed.
  • Crash on malformed API responses: Fixed a crash when a non-streaming fallback response (often via third-party gateways) had a thinking block missing its thinking field or a text block missing its text field.
  • Slow markdown rendering: Fixed markdown becoming extremely slow for some messages with unusual Unicode (international text/symbol) sequences.
  • SendMessage to long/emoji-heavy session names: Fixed SendMessage rejecting a recipient copied from ListAgents when the session name hit the 200-character cap or used lots of emoji.
  • Git remote host misread: Fixed repository detection misreading the host of git remotes with unusual userinfo (the user@ part of a URL), which produced wrong links and repo-specific behavior.
  • MCP diagnostics leaking secrets: MCP (Model Context Protocol) scope-conflict warnings now show the configured ${VAR} form instead of resolved secrets, and connection-failure details show only the server origin.
  • strictKnownMarketplaces allowlist bug: Fixed allowlists accepting SCP-style git marketplace sources whose host differed from the one git would actually connect to.
  • Modal text losing characters: Fixed text like the /login OAuth URL losing characters when copied in fullscreen.
  • Markdown horizontal rule spacing: Fixed a --- rule running into the line after it.
  • Shell command rows splitting: Fixed consecutive shell commands splitting into multiple "Ran 1 shell command" rows when todo/task updates were interleaved.
  • Dialogs dismissed by finishing commands: Fixed dialogs like /permissions opened while a ! shell command was running being dismissed when the command finished.
  • Queued ! command sent as plain text: Fixed a queued ! shell command being sent to the model as plain text after pressing up-arrow to edit the queued input.
  • Queued message glitches: Fixed queued messages reappearing in prompt history while still queued; Esc while selecting a queued message no longer interrupts the turn; ! mode no longer sticks after a mid-turn submit.
  • Fullscreen renderer prompt losing settings: Fixed accepting the "Try the new fullscreen renderer?" prompt restarting the session without its permission mode, tool allow/deny rules, model, or effort flags.
  • /tui dropping tool rules: Fixed /tui dropping --allowed-tools/--disallowed-tools rules on restart; it now declines to switch and explains why when restrictions can't carry over.
  • Trust prompt missing repo-scope warning: Fixed trust prompts omitting the repository-wide scope warning when the directory was seen before the repo existed there.
  • IDE diff tab closing mid-prompt: Fixed a case where closing an IDE diff tab during a permission re-prompt answered the new prompt with the previous input.
  • Remote Control file uploads: Fixed files sent during Remote Control sessions (hosted by Claude Code Desktop or VS Code) not uploading, so they now open on phone and web instead of showing an empty card.
  • Stale-token reminder leak: After /login while CLAUDE_CODE_OAUTH_TOKEN is set, the stale-token reminder no longer leaks into Claude's auto-resumed turn; it now appears only to you.
  • Permission preview relay scoping: Previews now relay only to channel servers admitted by the inbound trust gate, and a server's explicit permission-capability opt-out is honored.
  • Credential masking overcorrection: Fixed masking on relayed permission previews hiding commands, paths, or destinations from the approver; oversized private-key blocks now redact under full-strength redaction.
  • API token masking edge case: Fixed provider API tokens that mask on permission previews not masking when directly followed by shell delimiters.
  • Claude Desktop cross-session drops: Fixed inter-session messages being silently dropped by the recipient when cross-session messaging read as disabled, which left the sender "thinking" for many minutes.
  • Remote Control account switch: Signing in to a different claude.ai account/org now stops the running session within seconds and says why, instead of a misleading HTTP 404 hours later.
  • Remote Control state sync: Sessions started from Claude Code Desktop or VS Code now keep phones and claude.ai/code updated on permission mode (and model) as they change.
  • Remote Control effort sync: Effort picks made on phone or claude.ai/code now apply to terminal- and Desktop/VS Code-hosted sessions, and the session publishes its effort level.
  • Session list too long: SendMessage and ListAgents now tell you when your account's session list was too long to check completely, instead of treating unseen sessions as absent.
  • Expired credential guidance: An expired Anthropic profile credential now points you to /login when a claude.ai login would take precedence.

Breaking changes

No breaking changes in this release.

How to upgrade

Update to Claude Code v2.1.234 by running:

claude update

This is our plain-language summary. Read the complete, official notes on the Claude Code official changelog ↗.

Vibe Mastermind in 00d 00h 00m 00s
Call LIVE — Join Now