Claude Code 2.1.261 landed on September 4, the third release in three days. After the diff panel and the cache fix in 2.1.260, this one is about context: who’s using it, who’s wasting it, and how much of it a single command is allowed to return.
/skill-doctor
The new /skill-doctor command lists which loaded skills go unused in a session and what they cost you in context anyway. If you’ve collected a dozen skills over the months, you know how this goes: every skill ships a description, every description lands in the prompt, and you end up paying on every request for instructions that never fire. Now there’s a list to prune from. I have a few candidates where I already suspect the answer.
More output in context
Two new settings, bashOutputMaxChars and taskOutputMaxChars, control how much output from shell commands and background tasks Claude sees inline before the rest gets saved to a file. The ceiling is 128,000 characters. Until now, long logs or test output meant Claude had to go read the file, which costs time and another tool call. If you work with big test suites, you’ll like this. If you’re trying to save context, leave the default alone.
Related: --append-subagent-system-prompt-file reads the subagent system prompt from a file when it’s too large for the command line. And /context now counts tokens locally when the token-counting API is unavailable, instead of firing off extra small-model requests.
The typing bug
This is the fix a lot of people felt without being able to name it: when typing fast or holding a key, characters would occasionally land out of order or vanish. Fixed. Also fixed: you couldn’t delete the character right before an inline [Image #N] chip. And word editing in the prompt now follows Bash conventions: Ctrl+W deletes back to whitespace, Alt+F and Alt+D stop at word end, punctuation separates words. The keybindingFlavor setting no longer does anything.
Security and auto mode
Two changes stand out. Auto mode now treats a link that packs content into a public diagram renderer’s URL as an upload to that site. Those are no longer auto-approved unless you asked for it. If you followed Johann Rehberger’s prompt injection case in August, you’ll recognize the pattern: leaking data through innocent-looking URLs. The second fix: the dangerous-rm prompt now also catches rm -rf on positional parameters and inside double-quoted sh -c scripts.
For teams
/status and claude doctor show an “Organization policy” line explaining why your organization’s policy couldn’t be loaded, for instance because a proxy isn’t passing the endpoint through. Machines with forceLoginMethod: "gateway" in managed settings now get prompted for /login instead of quietly reusing a leftover API key or claude.ai login. The /model picker shows the model’s name instead of the raw Bedrock, Vertex, or LLM gateway ID.
Then there’s a long run of Remote Control fixes: stale permission modes when a phone attaches, spinners stuck after stopping a turn, a /teleport import that got appended to the wrong session on mobile. And for VS Code: a form to add and remove MCP servers right in the IDE, a fold button on permission prompts so you can read the conversation behind them, and a flat model picker with every model in one list.
My take: /skill-doctor is the feature I’m trying today. The rest is maintenance, but the typing bug and the Bash output cap are exactly the kind of maintenance you notice every day.
Sources: Claude Code Releases: v2.1.261, Claude Code Changelog