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.33 v2.0.35newer

Claude Code v2.0.34

15 entries read diff v2.0.33 → v2.0.34 Markdown

Version 2.0.34 introduces experimental MCP CLI tooling for direct interaction with Model Context Protocol servers, adds a Skills API for skill management, implements passive LSP diagnostics collection, and enhances sandbox configuration with granular override controls.

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

Changesopen

MCP CLI Command Interface#

What: A new command-line interface for interacting with MCP (Model Context Protocol) servers directly from bash commands within Claude Code sessions.

How to use:

# Discover available MCP servers and tools
mcp-cli servers                        # List all connected MCP servers
mcp-cli tools [server]                 # List available tools
mcp-cli grep "weather"                 # Search tools by keyword

# Get tool schema (REQUIRED before calling any tool)
mcp-cli info slack/search_private      # View JSON schema for parameters

# Invoke MCP tools
mcp-cli call slack/search_private '{"query": "mentions", "max_results": 10}'

# Use stdin for complex JSON
mcp-cli call api/send_request - <<'EOF'
{
  "endpoint": "/data",
  "headers": {"Authorization": "Bearer token"}
}
EOF

Details:

  • Enabled via ENABLE_EXPERIMENTAL_MCP_CLI environment variable
  • Claude must call mcp-cli info before any mcp-cli call to check parameter schemas
  • Includes full Commander.js CLI with multiple subcommands
  • Automatically tracked with telemetry event tengu_mcp_cli_command_executed
  • Evidence: Command parser Re() at line 3935, handler so2() at line 493008, entry point check at line 493024 in pretty-v2.0.34.js

Skills API Client#

What: New API client for managing Claude skills through the beta API.

How to use:

// Skills are managed through the beta client
const client = new Anthropic({ apiKey: process.env.ANTHROPIC_API_KEY });

// Create a skill
await client.beta.skills.create({
  name: "my-skill",
  // ... skill configuration
}, { betas: ["skills-2025-10-02"] });

// Create a skill version
await client.beta.skills.versions.create(skillId, {
  // ... version configuration
}, { betas: ["skills-2025-10-02"] });

// List, retrieve, delete skills and versions
await client.beta.skills.list();
await client.beta.skills.retrieve(skillId);
await client.beta.skills.delete(skillId);

Details:

  • Requires skills-2025-10-02 beta header
  • Full CRUD operations for skills and skill versions
  • Accessed via client.beta.skills property
  • API endpoints: /v1/skills and /v1/skills/{id}/versions
  • Evidence: Class BFA at line 146202, class Q2A at line 146272, beta client integration at line 146346 in pretty-v2.0.34.js

Passive LSP Diagnostics Collection#

What: Automatic collection of diagnostics (errors, warnings, hints) from LSP servers and delivery as message attachments.

Details:

  • LSP servers now send textDocument/publishDiagnostics notifications automatically
  • Diagnostics are queued and attached to the next API request as lsp_diagnostics attachments
  • Includes file URI, line ranges, severity levels (Error/Warning/Info/Hint), and diagnostic messages
  • Handles multiple LSP servers with individual error tracking and retry logic
  • New saveFile method added to LSP manager for textDocument/didSave notifications
  • Evidence: Handler registration lUQ() at line 276542, diagnostic registration dUQ() at line 276467, severity mapper WR6() at line 276504, transformer FR6() at line 276518 in pretty-v2.0.34.js

Related

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

Sandbox Override Configuration#

What: New settings UI to control whether commands can fall back to running outside the sandbox when sandbox restrictions prevent execution.

How to use:

# Access via /sandbox command in interactive mode
# Choose from:
# 1. "Allow unsandboxed fallback" - Commands retry outside sandbox if blocked
# 2. "Strict sandbox mode" - All commands must run in sandbox or be excluded

Details:

  • Separate from the main sandbox enable/disable setting
  • Can be locked by policy settings from higher-priority configuration sources
  • Status displayed in /sandbox command output (e.g., "sandbox enabled, fallback allowed")
  • New API methods: areUnsandboxedCommandsAllowed(), areSandboxSettingsLockedByPolicy(), setSandboxSettings()
  • Documentation link: docs.claude.com/en/docs/claude-code/sandboxing#configure-sandboxing
  • Evidence: Component bn2() at line 465885, policy check Fs2() at line 472000 in pretty-v2.0.34.js

Enhanced Wide Character Rendering#

What: Improved handling of emoji and CJK characters in terminal output through explicit width tracking in the screen buffer.

Details:

  • Cell objects now include explicit width property (0 for normal, 1 for wide, 2/3 for placeholder)
  • Automatic insertion of placeholder cells when writing wide characters
  • Renderer skips placeholder cells to prevent double-rendering artifacts
  • Width-aware cursor movement (advances 2 positions for wide characters)
  • Fixes rendering bugs where placeholder cells were processed incorrectly
  • Evidence: Enhanced cell type pf9 at line 67236, width-aware write function $P0() at line 67208, placeholder skipping logic at lines 67852-67853 in pretty-v2.0.34.js

Dual Telemetry System#

What: Telemetry events now log to both Statsig and Segment (when enabled by feature gate).

Details:

  • New feature gate tengu_log_segment_events controls Segment logging
  • Synchronous logging via ZA() function, async via uw() function
  • Separate formatters for each system: sc2() for Statsig (flattened strings), rc2() for Segment (structured objects)
  • Parallel execution when both systems enabled for optimal performance
  • Shared context builder t01() gathers environment, model, and session data
  • Gate value cached to avoid repeated lookups
  • Evidence: Dual logger ZA() at line 477386, async logger uw() at line 477389, context builder t01() at line 451726, gate checker Lr2() at line 477375 in pretty-v2.0.34.js

Refactored Rendering Engine#

What: Terminal rendering code reorganized for better maintainability and to support ink2 mode.

Details:

  • Split render() into render_v1() and render_v2() methods
  • Cleaner separation between legacy and new rendering paths
  • Improved parameter passing (prevFrame explicitly passed instead of using instance state)
  • Better handling of non-TTY output modes
  • Evidence: Class RG1 with split rendering methods at line 67663 in pretty-v2.0.34.js

Process Metrics Collection#

What: Enhanced telemetry with optional process-level metrics.

Details:

  • New processMetrics field in telemetry context
  • Included in both Statsig and Segment events when available
  • Retrieved via Lt5() function
  • Adds visibility into resource usage patterns
  • Evidence: Process metrics in t01() at line 451726, formatter handling in sc2() at line 451751 and rc2() at line 451762 in pretty-v2.0.34.js

MCP Bash Permission Handling#

What: Improved permission checking for MCP tools invoked via bash commands.

Details:

  • New command parser Re() detects mcp-cli call syntax in bash commands
  • Permission check function Bg8() validates MCP tool access before execution
  • Prevents bash command splitting from bypassing MCP permissions
  • Returns appropriate deny/ask/allow behavior with suggestions
  • Evidence: Parser Re() at line 3935, permission check Bg8() at line 212208 in pretty-v2.0.34.js

Environment Context Refactoring#

What: Telemetry environment context gathering extracted into reusable function.

Details:

  • New Nt5() async function collects platform, runtime, and environment data
  • Includes: platform, arch, Node version, terminal type, package managers, runtimes, deployment environment, CI detection, WSL version
  • Shared between Statsig and Segment telemetry
  • Eliminates code duplication from previous inline implementation
  • Evidence: Function Nt5() at line 451680 in pretty-v2.0.34.js

Session ID Handling#

What: Session ID now uses environment variable when available for better tracking across processes.

Details:

  • New SQI() function checks CLAUDE_CODE_SESSION_ID environment variable
  • Falls back to generated session ID if not set
  • Enables correlation of events across related processes
  • Evidence: Function SQI() at line 483098 in pretty-v2.0.34.js

Related

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

Branch Tracking Analytics#

What: New telemetry event to track forked conversation branches in chat history.

Details:

  • Event tengu_session_forked_branches_fetched tracks branch statistics
  • Metrics: total sessions, sessions with branches, max branches per session, average branches
  • Only fires when at least one session has multiple branches (max > 1)
  • Helps understand user exploration patterns
  • Evidence: Function f1I() at line 474125 in pretty-v2.0.34.js

Telemetry Architecture Refactoring#

  • Old j1() function replaced with ZA() (sync) and uw() (async)
  • Old Rs2() Statsig logger replaced with f00()
  • Old Os2() Segment logger renamed to sA0() with updated helpers
  • Context gathering, formatting, and logging now properly separated
  • Feature gate system for conditional Segment logging

LSP Manager Enhancement#

  • Added saveFile method to LSP manager for textDocument/didSave notifications
  • Improved server initialization with automatic startup on first LSP manager initialization
  • Better error handling and logging throughout diagnostic flow

Related

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

Version Bump#

  • Updated from v2.0.33 to v2.0.34
  • Evidence: Version string at line 451680 in pretty-v2.0.34.js

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.34. 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.

  • VSCode Extension: Added setting to configure the initial permission mode for new conversations
  • Improved file path suggestion performance with native Rust-based fuzzy finder
  • Fixed infinite token refresh loop that caused MCP servers with OAuth (e.g., Slack) to hang during connection
  • Fixed memory crash when reading or writing large files (especially base64-encoded images)
System prompt

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