Claude Code 2.1.153
**`skipLfs` option for git/github sources + improved `claude agents` autocomplete**: These two features combine UX (smarter command dispatch) with infrastructure (faster cloning) to make agent project setup faster and more discoverable.
New primitives
skipLfsflag/optionSkip Git LFS downloads during clone and update for github/git plugin marketplace sources
Status line COLUMNS/LINES env varscapabilityStatus line commands receive terminal width and height so scripts can size output accordingly
claude agents autocompletecapabilityAutocomplete in dispatch input now suggests native slash commands and bundled skills alongside project skills
claude agents PR column formatcapabilityPR column shows `PR #N` for single PR or `N PRs` for multiple
/model selection persistencecapabilityModel selection now saves as default for new sessions; `s` key switches model for current session only
Workflow recipes
Agents running status-line dashboards can now adapt layout and content density to terminal dimensions, and model selection stays stable across agent respawns, enabling rich but responsive CLI monitoring.
A background monitoring agent spawns a status line that queries COLUMNS and LINES to render a responsive dashboard (wide layout for 120+ columns, narrow for 80). The agent persists to the preferred model with /model, so each respawn maintains consistent inference behavior. Teams can push compact dashboards to narrow terminals and expand to full details on wider displays without needing separate scripts.
New agents onboarding large LFS-heavy projects can now skip expensive LFS pulls, receive better skill/command hints, and report PR status more clearly in the dispatch UI.
A project's onboarding agent uses skipLfs to clone quickly without pulling binary artifacts, then leverages improved autocomplete in dispatch to guide new agents toward the right bundled skills (e.g., /code-review, /verify). The PR column shows PR #42 or 3 PRs at a glance, helping agents context-switch between related work faster. This reduces first-run latency and discovery friction.
Agentic relevance
The new autocomplete in `claude agents` dispatch and model persistence make background agent workflows faster by reducing friction when spawning agents with explicit skill suggestions. The `COLUMNS`/`LINES` env vars enable status-line scripts to adapt terminal output dynamically — useful for tightly-scoped monitoring agents and dashboard-like CLI workflows.
Hardening & fixes (31)
- One-time notice when npm global install can't auto-update; `/doctor` lists fixes
- `/doctor` now shows result of last update attempt
- Combined separate "needs authentication" notifications for MCP servers and connectors into single message
- macOS: background agents appear as "Claude Code" in Privacy & Security and keep permission grants across upgrades
- Fixed stateful MCP servers without optional GET SSE stream reconnect-looping on `tools/list` (regression in v2.1.147)
- Fixed custom API gateway receiving user's Anthropic OAuth credential instead of gateway's own token
- Fixed subagent (Agent tool) frontmatter MCP servers ignoring `--strict-mcp-config`, `--bare`, remote mode, enterprise managed MCP config, and managed-settings MCP server allow/deny policies
- `--strict-mcp-config` no longer strips inline `mcpServers` from explicitly-passed agent definitions; blocked subagent MCP servers surface visible warning
- Fixed Windows PowerShell installer false "Installation complete!" message when installation actually failed
- Fixed `claude update` installing latest version instead of configured release channel's version for npm installations
- Fixed excessive memory usage (multiple GB) when resuming session by transcript file path on machines with many stored sessions
- Fixed `claude agents` and `claude --bg` running on stale daemon started before binary-takeover support
- Fixed CLI hang when stdin closed without EOF in stream-json mode
- Fixed malformed `file://` links in responses not being clickable in terminal
- Fixed `claude --help` rendering unwrapped on terminals narrower than 92 columns
- Fixed MCP tool progress notifications not rendering in collapsed tool view
- Fixed `Agent` tool with `subagent_type: 'claude'` running in undocumented temporary worktree, discarding outputs written to gitignored paths
- Fixed `/bg` while Claude responding dropping response instead of continuing in background session
- Fixed `/btw` keyboard shortcuts becoming unresponsive in background sessions during task
- Fixed background sessions writing temp files to `$CLAUDE_JOB_DIR` triggering permission prompt
- Fixed recovering background agent with deleted working directory showing truncated stack trace
- Fixed `EnterWorktree` not available immediately in background sessions (required `ToolSearch` first)
- Fixed `cmd+k` in iTerm2/Terminal.app not repainting attached background sessions
- Fixed IME candidate window appearing at bottom instead of next to caret in attached background sessions on Windows
- Fixed background-color bleed when attaching from 256-color-only terminals after file diffs
- Fixed `/copy` and copy-on-select failing silently for system clipboard when in background session inside tmux
- Fixed `claude agents` with Remote Control enabled leaving zombie session entries on Code tab after exit
- Fixed `/rename` in background sessions not updating session banner immediately
- Fixed Windows update rollback: restores original executable by copy with recovery instructions
- [VSCode] Fixed Claude Code processes not shutting down cleanly on Windows, causing false "unclean exit" reports and orphaned MCP servers
- Fixed `modelPicker:setAsDefault` keybinding renamed to `modelPicker:thisSessionOnly`; `d` action replaced by `s`
Raw changelog
## 2.1.153 - Added `skipLfs` option to `github`/`git` plugin marketplace sources to skip Git LFS downloads during clone and update - Claude Code now shows a one-time notice when your npm global install can't auto-update; `/doctor` lists the fixes - Status line commands now receive `COLUMNS` and `LINES` environment variables so scripts can size output to the terminal width - `claude agents`: autocomplete in the dispatch input now suggests native slash commands and bundled skills, not just project skills - `claude agents`: PR column now shows `PR #N` for a single PR or `N PRs` for multiple - `claude doctor` now shows the result of your last update attempt - Combined the separate "needs authentication" startup notifications for MCP servers and connectors into a single message - macOS: background agents now appear as "Claude Code" in Privacy & Security and keep their permission grants across upgrades - Fixed stateful MCP servers without the optional GET SSE stream reconnect-looping on `tools/list` (regression in v2.1.147) - Fixed a regression where a custom API gateway could receive the user's Anthropic OAuth credential instead of the gateway's own token - Fixed subagent (Agent tool) frontmatter MCP servers ignoring `--strict-mcp-config`, `--bare`, remote mode, enterprise managed MCP config, and managed-settings MCP server allow/deny policies - `--strict-mcp-config` no longer strips inline `mcpServers` from explicitly-passed agent definitions (`--agents` / SDK `agents`), and blocked subagent MCP servers now surface a visible warning - Fixed the Windows PowerShell installer reporting "Installation complete!" when installation actually failed - Fixed `claude update` installing the latest version instead of the configured release channel's version for npm installations - Fixed excessive memory usage (multiple GB) when resuming a session by transcript file path on machines with many stored sessions - Fixed `claude agents` and `claude --bg` running on a stale daemon started before binary-takeover support, even after upgrading - Fixed a hang where the CLI could fail to exit when stdin was closed without EOF in stream-json mode, leaving a stale session marker behind - Fixed malformed `file://` links in Claude's responses not being clickable in the terminal - Fixed `claude --help` rendering unwrapped output on terminals narrower than 92 columns - Fixed MCP tool progress notifications not rendering in the collapsed tool view - Fixed `Agent` tool with `subagent_type: 'claude'` running in an undocumented temporary worktree, which could silently discard outputs written to gitignored paths - `/bg` while Claude is responding now continues the response in the background session instead of dropping it - Fixed `/btw` keyboard shortcuts becoming unresponsive in background sessions while a task is running - Fixed background sessions writing temp files to `$CLAUDE_JOB_DIR` triggering a "sensitive file" permission prompt - Fixed recovering a background agent whose working directory was deleted showing a truncated stack trace instead of a clear error message - Fixed `EnterWorktree` not being available immediately in background sessions (previously required `ToolSearch` first) - Fixed `cmd+k` in iTerm2/Terminal.app not repainting attached background sessions - Fixed the IME candidate window appearing at the bottom of the screen instead of next to the input caret in attached background sessions on Windows - Fixed background-color bleed when attaching to a background agent from 256-color-only terminals after the agent had rendered file diffs - Fixed `/copy` and copy-on-select silently failing to update the system clipboard when attached to a background session inside tmux - Fixed opening `claude agents` with Remote Control enabled leaving zombie session entries on the Code tab after exiting - Fixed `/rename` in background sessions not updating the session banner immediately - Fixed Windows update rollback: if a Windows update fails, Claude Code now restores the original executable by copy and tells you how to recover - [VSCode] Fixed Claude Code processes not shutting down cleanly when VS Code closed on Windows, causing false "unclean exit" reports and orphaned MCP servers - `/model` now saves your selection as the default for new sessions (matching the IDE). Press `s` in the picker to switch models for the current session only. - If you customized the `modelPicker:setAsDefault` keybinding, rename it to `modelPicker:thisSessionOnly` in keybindings.json (the `d` action was replaced by `s`)