Source Intelligence

DisclaimerUnofficial, and not affiliated with Anthropic. Nearly all of this is read straight out of what ships: npm bundles, captured prompts, published docs. Anthropic's own notes go in verbatim, marked as theirs. The rest is my reading, and every entry carries the strings behind it. If one looks wrong, vote it down and say why.

All releases Home olderv2.0.19 v2.0.21newer

Claude Code v2.0.20

21 entries read diff v2.0.19 → v2.0.20 Markdown

Version 2.0.20 brings significant improvements to plugin management, hook execution visibility, and CLI automation capabilities. The most notable additions include new CLI commands for managing plugins (install, uninstall, enable, disable), full implementation of the Skill tool for executing skills directly from conversations, and enhanced real-time feedback during hook execution with detailed progress tracking.

Find
Pick an entry · j / k steps through
11 entries

Changesopen

Plugin Management CLI Commands#

What: Four new commands for managing plugins directly from the command line

How to use:

# Install a plugin from a marketplace
claude plugin install <plugin-name>
claude plugin install <plugin-name>@<marketplace>

# Uninstall a plugin
claude plugin uninstall <plugin-name>

# Enable a previously disabled plugin
claude plugin enable <plugin-name>

# Disable an installed plugin
claude plugin disable <plugin-name>

Details:

  • Commands support aliases: installi, uninstallremove
  • Installation automatically searches configured marketplaces
  • Telemetry tracks CLI plugin operations separately from UI operations
  • Evidence: zSQ() at line 465305, CSQ() at line 465337, USQ() at line 465355, $SQ() at line 465370

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Skill Tool (Full Implementation)#

What: Complete implementation of the Skill tool, enabling Claude to execute skills and commands directly during conversations (previously existed only as a stub)

How to use: Skills are invoked automatically by Claude when appropriate, or you can configure permission rules:

# In .claude/settings.local.json
{
  "permissions": {
    "allow": {
      "Skill": ["pdf", "xlsx", "custom-skill:*"]
    }
  }
}

Details:

  • Supports both mode commands (high-priority) and regular skills
  • Includes intelligent token budgeting (15,000 character default via SLASH_COMMAND_TOOL_CHAR_BUDGET)
  • Permission system with wildcard patterns (e.g., skill-name:*)
  • Skills are categorized by source: project, user, plugin, or managed
  • Mode commands receive priority and full token allocation
  • Evidence: Mo1 initialization at line 429046, W$Q() prompt generator at line 428983, nw variable at line 428903

Hook Execution Progress Display#

What: Real-time visual feedback showing hook execution progress during tool operations

How to use: Progress appears automatically when hooks are running:

Running PreToolUse hooks… (3/5 done)
  · pre-validate: npm run lint
  · security-check: ./scripts/check-secrets.sh
  · backup: git stash

Details:

  • Shows hook event name (e.g., "PreToolUse", "PostToolUse")
  • Displays progress counter when multiple hooks run
  • Verbose mode shows individual hook names and commands being executed
  • Progress UI disappears when all hooks complete
  • Evidence: mi1() at line 366839, LR5() at line 366871, CoB() at line 455699, UoB() at line 455708, n48() at line 384434

Context Usage Markdown Export#

What: Export detailed context usage statistics as markdown tables for non-interactive sessions

How to use:

# Run context command in non-interactive mode
claude --output text context

# Output includes markdown tables:
# - Categories (with tokens and percentages)
# - MCP Tools
# - Custom Agents
# - Memory Files
# - SlashCommand Tool statistics

Details:

  • Token counts formatted for readability (e.g., "1.5k" instead of "1500")
  • Includes model information and total usage percentage
  • Shows free space and autocompact buffer separately
  • Agent sources identified (Built-in, Project, User, Local, Flag, Policy, Plugin)
  • Evidence: Ma6() at line 301494, rk() token formatter at line 301491

Project-Level MCP Server Configuration#

What: Refactored project MCP server configuration loading into a dedicated function with enhanced scope handling

How to use: Create .mcp.json in your project root:

{
  "mcpServers": {
    "project-server": {
      "command": "node",
      "args": ["./server.js"]
    }
  }
}

Details:

  • Dedicated function for loading project MCP configuration
  • Proper error collection and reporting
  • Supports environment variable expansion
  • Explicitly scoped as "project" configuration
  • Evidence: dR0() at line 280421

Configurable Autocompact Threshold#

What: Override the default autocompact threshold using an environment variable

How to use:

# Set autocompact to trigger at 75% of context capacity
export CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=75
claude

# Or inline
CLAUDE_AUTOCOMPACT_PCT_OVERRIDE=90 claude

Details:

  • Accepts percentage values from 1-100
  • Falls back to default if invalid value provided
  • Provides more control over memory management
  • Useful for balancing context usage vs. compaction frequency
  • Evidence: Gn6() at line 296137

GitHub Action Entrypoint Detection#

What: Automatic detection when Claude Code runs as a GitHub Action

How to use: Set the environment variable in your GitHub workflow:

- name: Run Claude Code
  env:
    CLAUDE_CODE_ACTION: true
  run: claude -p "Review this PR"

Details:

  • Accepts flexible values: "1", "true", "yes", "on" (case-insensitive)
  • Sets entrypoint to "claude-code-github-action" for proper telemetry
  • Enables GitHub Action-specific behavior and logging
  • Evidence: yT8() at line 469210, jA() validation at line 3336

Enhanced Bash Security Checks#

What: Improved detection of backtick command substitution with escape-aware parsing

Details:

  • Dedicated CV6() function properly handles escaped characters
  • Backtick checks now execute before other pattern matching
  • More accurate detection prevents false positives from escaped backticks
  • Evidence: CV6() at line 205030, RV6() at line 205296

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Terminal Output Performance#

What: Optimized terminal rendering with synchronized updates

Details:

  • Reduced function complexity in d50() at line 71278 (previously U50())
  • Removed separate stderr handling for improved performance
  • Simplified output buffering logic
  • All output now uses synchronized update sequences

Autocompact Function Signature#

What: Simplified autocompact summary function parameters

Details:

  • Added hasAppendSystemPrompt parameter to pi0() at line 434307 (previously Ei0())
  • Better context awareness during compaction operations
  • More precise token counting for system prompts

Permission Checking Function#

What: Enhanced tool permission checking with additional context parameter

Details:

  • Updated _M() permission checker at line 458051 (previously wM())
  • Added fourth parameter for improved context handling
  • More robust permission decision-making
1 entry

Internal Changesopen

#

  • Removed stub Skill tool implementation (ld0 at v2.0.19:410872)
  • Removed deprecated hook progress renderer (aO5 at v2.0.19:366835, sO5 at v2.0.19:366851)
  • Removed unused clear terminal function (ji2 at v2.0.19:208933)
  • Removed empty placeholder functions (RLQ, LRQ, eOQ)
  • Added PassThrough stream import for improved stream handling
  • Added execSync and spawn imports for child process management
  • Refactored Skills loading with enabled state check (function tw8() at line 450050)
  • Added helper functions for plugin name parsing and matching (HSQ() at line 465275, ms0() at line 465282, us0() at line 465264)
  • Added error handler Ue1() at line 465298 for plugin CLI operations
  • Multiple variable initializations refactored for improved lazy loading

Related

Other releases about the same thing. Found by shared names or similar wording; neither means one caused the other.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.0.20. Text is unmodified from the upstream changelog. Everything else on this page came out of the bundle instead, which is why the two lists don't match.

  • Added support for Claude Skills
System prompt

The system prompt was not captured for this release, so this page cannot say whether it moved.