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.1.112 v2.1.114newer

Claude Code v2.1.113

35 entries read diff v2.1.112 → v2.1.113 Markdown

Version 2.1.113 introduces deep linking support with base64url-encoded CLI parameters, a new event-driven trigger system for GitHub and Slack integrations, a structured where clause predicate language for filtering, and a daemon backend option for background agents. The release also ships as a Linux-only build with all platform detection hardcoded, disabling Windows and macOS code paths, and removes large bundled libraries (undici, ws, Fetch/URL polyfills, YAML parser) in favor of native Node.js modules.

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

Changesopen

Deep Linking with Base64url Parameters#

What

New CLI flags for launching Claude Code via deep links with shell-safe, base64url-encoded parameters. This enables external applications (such as IDE extensions or web UIs) to open Claude Code with a prefilled prompt and working directory without worrying about shell escaping.

Usage
claude --prefill-b64 <base64url-encoded-prompt> --deep-link-cwd-b64 <base64url-encoded-cwd>
claude --deep-link-repo=<repo> --deep-link-origin=<origin> --deep-link-last-fetch=<timestamp>
Details
  • --prefill-b64: Base64url-encoded text to prefill into the prompt
  • --deep-link-cwd-b64: Base64url-encoded working directory path
  • --deep-link-repo: Repository identifier for the deep link
  • --deep-link-origin: Origin identifier for deep-link launches
  • --deep-link-last-fetch: Timestamp of last fetch for deep-link context
  • Includes extensive validation: rejects Unicode bidirectional control characters, UNC/network paths, and paths with un-quotable characters (single quotes, backslashes, exclamation marks, dollar signs, newlines)
  • Error messages guide users to reinstall to a safe path if their Claude binary path contains shell metacharacters
Evidence

Deep link argument construction (search for "--deep-link-cwd-b64" and "--prefill-b64")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Event-Driven Trigger System for GitHub and Slack#

What

New structured trigger types for scheduling agent workflows based on external events from GitHub pull requests and Slack messages, replacing the older string-based format.

Details
  • github.pull_request.opened — triggers when a PR is opened (replaces deprecated github:pull-request-opened)
  • github.pull_request.merged — triggers when a PR is merged (replaces deprecated github:pull-request-merged)
  • slack.message — triggers on Slack messages, with channel filtering via the where clause
  • Deprecated formats produce helpful migration messages: e.g., '; use 'on: github.pull_request.opened'
  • Trigger definitions use the new on: entry format and support structured event objects like {event: slack.message, channel: #channel}
  • Includes comprehensive validation with error messages for invalid triggers, cron expressions, and event formats
Evidence

Trigger definitions (search for "github.pull_request.merged" and "slack.message")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Where Clause Predicate Language#

What

A new structured filtering syntax for specifying conditions on event triggers and data queries, supporting a rich set of comparison operators.

Details
  • Operators: is, is_not (single values), one_of, none_of (list values), starts_with, contains, matches
  • Provides clear error messages for malformed predicates:
  • where: empty list for "field" — when a list operator receives an empty array
  • where: unknown op "op" — for unrecognized operators
  • where: "field" takes a single value; use one_of/none_of for a list — for type mismatches
  • where: must be a map of field→predicate, or a list of single-field maps — for structural errors
  • Scalars and objects cannot be mixed: where: "field" mixes scalars and objects; use {one_of: [...]} or an op object
Evidence

Predicate operator definitions (search for "one_of" and "none_of")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Daemon Backend for Background Agents#

What

A new backend configuration option that lets background agents run via a daemon process instead of tmux.

Usage

Configure in settings:

{
  "backend": "daemon"
}
Details
  • Two supported values: "tmux" (default) and "daemon"
  • When set to "daemon", background agent sessions use a detached daemon process instead of creating tmux panes
  • Tmux remains the default; the daemon option provides an alternative for environments where tmux is not available or not desired
  • Related: new autoAddRemoteControlDaemonWorker setting for automatically configuring daemon workers
Evidence

Backend schema definition (search for backend: E.enum(["tmux", "daemon"]))

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Custom Session Titles via SDK Protocol#

What

The SDK initialize protocol now accepts a title parameter, allowing programmatic callers to set a custom session title at launch.

Details
  • When provided, the session uses the custom title and skips automatic title generation
  • Has no effect on the persisted title when resuming an existing session
  • Also adds a customTitle field to the session schema for user-set titles via /rename
  • The /rename command description now mentions that the title appears in the "prompt box, /resume picker, and terminal title" (previously only "/resume and terminal title")
Evidence

SDK protocol schema (search for "Custom session title. When provided")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

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

Network Denied Domains Configuration#

What

Expanded network security with a new deniedDomains field that blocks specific domains even if they match allowedDomains rules.

Details
  • Accepts an array of domain strings with wildcard support (same syntax as allowedDomains)
  • Merged from all settings sources regardless of allowManagedDomainsOnly — meaning organization policies can always enforce domain blocking
  • Takes priority over allowedDomains: a domain matched by both lists is blocked
  • Logs denials with the specific domain and port for debugging
Evidence

Schema definition (search for "Domains that are always blocked, even if matched by allowedDomains")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

In-App Feedback Submission#

What

Users can now submit feedback directly from the CLI, with clear success and error messaging.

Details
  • New success message: "Feedback sent"
  • Error messages provide actionable guidance:
  • "Couldn't send feedback: not signed in. Run /login, then retry."
  • "Couldn't send feedback. If it keeps failing, you can file at [URL]"
  • UI includes "Press any key to close" prompt after submission
Evidence

Feedback messaging (search for "Feedback sent" and "Couldn't send feedback")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Update Safety Guards#

What

New validation prevents /update when it could cause problems.

Details
  • "Cannot /update while background tasks are running — wait for them to finish, then try again." — prevents mid-task updates that could disrupt running agents
  • "Cannot /update — session transcript is in a different project directory than the child would resolve. Exit the worktree or restart manually." — prevents update failures in worktree contexts
Evidence

Update guard messages (search for "Cannot /update while background tasks")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Team Onboarding Guide Generator#

What

A new system for generating personalized team onboarding guides based on usage analytics.

Details
  • Generates a "Welcome to [Team Name]" document with:
  • Work type breakdown (build features, fix bugs, refactor, etc.) with ASCII bar charts
  • Top skills and commands with usage frequency
  • Top MCP servers with call counts
  • Setup checklist for new team members
  • Powered by an LLM prompt that analyzes session descriptors and derives work-type percentages
  • Complements the existing Insights dashboard feature
Evidence

Onboarding template (search for "# Welcome to [Team Name]")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Agent Stall Detection#

The stream watchdog now detects when agents make no progress for an extended period and surfaces an actionable error: "Agent stalled: no progress for Ns (stream watchdog did not recover)". Previously, stalled agents could hang silently.

Evidence

Stall detection (search for "Agent stalled: no progress for")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Unclean Session Recovery#

A new message "Prior session exited uncleanly" notifies users when resuming a session that didn't terminate gracefully, helping them understand potential context gaps.

Evidence

Recovery notification (search for "Prior session exited uncleanly")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Improved Effort Level Messaging#

The effort level notification changed from "Effort level set to auto" to "Effort level set to max", providing clearer feedback when effort is maximized. The "ultrathink" keyword now triggers a system prompt explaining that deeper reasoning is being applied.

Evidence

Effort messaging (search for "Effort level set to max")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

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

Enhanced /loop Tick Prompts#

The autonomous loop tick prompts were significantly rewritten to provide clearer numbered steps and better explain dynamic pacing behavior. The prompt header changed from "# Autonomous loop tick" to "# /loop tick", and scheduled task prompts now include explicit step-by-step instructions.

Evidence

Loop prompt changes (search for "/loop tick")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

CJK Punctuation Support in Mentions#

The @-mention detection regex now recognizes CJK punctuation marks (。、?!) as valid word boundaries, improving mention detection in Chinese, Japanese, and Korean text. Previously, typing @file。 wouldn't trigger autocomplete, but now it does.

Evidence

CJK regex patterns (search for "\u3002\u3001\uFF1F\uFF01")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

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

ANSI Color Output on Windows#

Removed a Windows platform check that was blocking ANSI color output, enabling colored terminal output regardless of detected platform.

Evidence

Color enablement (search for K6K in the annotations — removed if (process.platform === "win32") return !1)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Improved Plugin Configuration Error Messages#

Plugin option validation now provides more actionable guidance: Plugin option "..." isn't set. Open /plugin manage to configure it, or check that the plugin's userConfig schema declares "...". This helps users quickly fix misconfigured plugins.

Evidence

Plugin error message (search for "isn't set. Open /plugin manage to configure it")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Permission Denial Context in Don't-Ask Mode#

When a tool permission is denied in "don't ask" mode, the denial message now explicitly explains: "Permission to use [tool] has been denied because Claude Code is running in don't ask mode." This provides clearer context for why an action was blocked.

Evidence

Denial messaging (search for "denied because C" in the annotations for PL7)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Improved Bash Tool Instructions#

The Bash tool help text now explicitly instructs the model to never prepend cd <current-directory> before commands, reducing unnecessary directory changes in generated commands.

Evidence

Bash tool help (search for "never prepend")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

CLI Terminology Update#

"Exit the REPL" has been renamed to "Exit the CLI" throughout the interface, reflecting the product's evolution from a simple read-eval-print loop to a full CLI application.

Evidence

Terminology change (search for "Exit the CLI")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Related

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

Sandbox Override Permission Support#

The permission decision system now supports a sandboxOverride reason type, allowing sandbox-level permission overrides to be distinguished from regular permission grants in the UI and telemetry.

Evidence

Sandbox override (search for "sandboxOverride")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Concurrent Session Detection#

New session lifecycle management detects concurrent CLI sessions across multiple process types (interactive, background, loop) and validates via Zod schema, helping prevent resource conflicts.

Evidence

Session detection (search for xZ$ in annotations)

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Improved API Error Formatting#

API errors that contain JSON-formatted messages are now detected and parsed for better display, rather than showing raw JSON strings to users.

Evidence

JSON error parsing (search for JMH in annotations — if (H.message.includes('{"')))

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Telemetry Request ID Tracking#

New clientRequestId and requestId fields are now tracked in telemetry payloads, enabling better request correlation for debugging and support.

Evidence

Request ID fields (search for "clientRequestId")

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

1 entry

Bug Fixesopen

#

  • Fixed ANSI escape sequence handling to include the CSI alternate sequence (\x9B), resolving potential display issues in some terminals (search for "uwK" in annotations)
  • Fixed string truncation returning incorrect length by changing the return to use the length parameter variable instead of a different variable (search for VK in annotations — return z + "…" → return K + "\u2026")
  • Fixed DEL character (\x7F) handling in interactive text input — previously the DEL character was treated as empty string, now it's correctly recognized as a delete action (search for "c4$" in annotations)
  • Fixed backspace key handling to recognize the \x7F (DEL) character code alongside \b (search for "c4$"O === '' || O === '\b' → A === '\x7F' || A === '\b')
  • Fixed Ctrl+U (delete to line start) to use proper deleteToLineStart() method instead of dispatching a raw text replacement (search for "qI" in annotations)
  • Improved Unicode normalization throughout the CLI — hundreds of literal Unicode characters (middle dots, em dashes, ellipses, arrows, box-drawing characters) are now consistently represented as escape sequences, preventing rendering issues in terminals that handle raw Unicode differently
7 entries

In Developmentopen

#

Features with infrastructure added but not yet enabled. These are shipped "dark" and may become available in future versions.

Related

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

Message Timestamps [In Development]#

Feature flag
tengu_silk_hinge Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.113: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.113. It isn't a statement about your account. What a flag value here can and cannot tell you

What

Shows a timestamp above each assistant message, giving users a clear timeline of the conversation.

Status

Feature-flagged — gated by tengu_silk_hinge (disabled by default)

Details
  • New showMessageTimestamps setting (boolean, global scope)
  • Description: "Show a timestamp above each assistant message"
  • Setting is hidden from the settings UI when the feature flag is off
  • Full implementation exists: the timestamp rendering, state management, and cache key integration are all in place
  • When enabled, timestamps appear above assistant messages in the chat transcript
Evidence

Feature flag disabled (search for C$("tengu_silk_hinge", !1))

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

tengu_amber_lynx [In Development]#

Feature flag
tengu_amber_lynx Off in both readings

The flag server returned off for the account this site reads and for the anonymous baseline. A reading of off cannot rule out a rollout these two readings sit outside of.

This account: off · anonymous baseline: off · compiled default in v2.1.113: no gate table built for this version

These values were read against a different version of Claude Code, so treat them as the nearest reading available instead of one taken on this release.

Read once, for one account on one subscription tier, against v2.1.113. It isn't a statement about your account. What a flag value here can and cannot tell you

What

Purpose unknown — the feature flag is defined but its associated functionality is not clearly documented in user-facing strings.

Status

Feature-flagged — gated by tengu_amber_lynx (disabled by default)

Details
  • Used in a component related to git/terminal state rendering
  • Single reference: Z = C$("tengu_amber_lynx", !1)
  • No user-facing strings or tips associated with this flag
Evidence

Feature flag disabled (search for C$("tengu_amber_lynx", !1))

Strings lifted out of the shipped bundle, so the claim above can be checked against them.

Linux-Only Build#

This version is built as a Linux-only binary. All process.platform detection has been replaced with hardcoded "linux" values (via switch ("linux") replacing switch (process.platform)). The Windows and macOS code paths remain in the bundle as dead code but are unreachable. Specific impacts:

  • Computer use is restricted: "createCliExecutor called on linux. Computer control is macOS-only."
  • Windows PowerShell process introspection has been removed
  • macOS-specific clipboard image handling has been removed
  • Platform-specific update URLs will only return Linux paths
  • Voice mode's Windows-specific check has been removed (the feature itself still requires the native audio module)
  • The native installer reports "Unsupported architecture: x64" because architecture detection is also hardcoded

This is a build-time artifact of the npm package targeting Linux. macOS and Windows users should use the native installer for their platform rather than the npm package.

Massive Internal Refactoring: Native Node.js Modules#

The most significant internal change in this release is a wholesale migration from bundled polyfills and custom wrappers to native Node.js built-in modules:

  • Removed bundled libraries: WebSocket (ws client/server), undici HTTP client, Fetch API polyfill, URL/URLSearchParams polyfill, YAML parser, FormData implementation, Bidirectional Text Algorithm, HTTP/1.1 and HTTP/2 protocol handlers
  • Replaced with: Direct require() calls to Node.js built-ins (fs, fs/promises, path, crypto, os, url, http, http2, stream, child_process, net, events, buffer, util, vm, module)
  • Custom file system wrappers removed: The 40+ method kv5 filesystem abstraction layer was removed in favor of direct fs and fs/promises calls throughout the codebase
  • Over 100 scattered module imports were consolidated into centralized initialization blocks
  • Custom UUID generation replaced with crypto.randomUUID() across dozens of call sites
  • Custom path utilities replaced with path.join(), path.resolve(), path.basename(), etc.

This results in a smaller bundle size and better alignment with the Node.js runtime.

AWS Bedrock SDK Integration#

A complete AWS SDK v3 integration for Bedrock Runtime has been added, including:

  • Bedrock Runtime client with full middleware stack
  • AWS Signature Version 4 (SigV4) request signing
  • OAuth2 credential provider for AWS login flows
  • ECS/EKS container credentials support
  • Assume Role with MFA support
  • 30+ Bedrock API command definitions (guardrails, inference profiles, model management)
  • AWS STS client for credential operations
  • EventStream marshalling for real-time bidirectional communication

This replaces the previous Bedrock integration approach with a more complete, standards-compliant AWS SDK implementation.

Embedded Documentation Refresh#

SDK documentation embedded in the CLI has been refreshed with updated guides for:

  • Python (Files API, Streaming, Tool Use, Managed Agents, Core API)
  • TypeScript (Messages, Batches, Files, Prompt Caching, Tool Use)
  • Ruby (Installation, Client initialization, Messages)
  • C# (Client initialization, Messages)
  • Model migration guide for upgrading to newer Claude models
  • Verification guides for CLI and server/API changes

Several older documentation blocks were removed and replaced with updated versions reflecting current API patterns.

Verbatim
Official · Anthropic

Anthropic’s official release notes

Published verbatim by Anthropic for v2.1.113. 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.

  • Changed the CLI to spawn a native Claude Code binary (via a per-platform optional dependency) instead of bundled JavaScript
  • Added sandbox.network.deniedDomains setting to block specific domains even when a broader allowedDomains wildcard would otherwise permit them
  • Fullscreen mode: Shift+↑/↓ now scrolls the viewport when extending a selection past the visible edge
  • Ctrl+A and Ctrl+E now move to the start/end of the current logical line in multiline input, matching readline behavior
  • Windows: Ctrl+Backspace now deletes the previous word
  • Long URLs in responses and bash output stay clickable when they wrap across lines (in terminals with OSC 8 hyperlinks)
  • Improved /loop: pressing Esc now cancels pending wakeups, and wakeups display as "Claude resuming /loop wakeup" for clarity
  • /extra-usage now works from Remote Control (mobile/web) clients
  • Remote Control clients can now query @-file autocomplete suggestions
  • Improved /ultrareview: faster launch with parallelized checks, diffstat in the launch dialog, and animated launching state
  • Subagents that stall mid-stream now fail with a clear error after 10 minutes instead of hanging silently
  • Bash tool: multi-line commands whose first line is a comment now show the full command in the transcript, closing a UI-spoofing vector
  • Running cd <current-directory> && git … no longer triggers a permission prompt when the cd is a no-op
  • Security: on macOS, /private/{etc,var,tmp,home} paths are now treated as dangerous removal targets under Bash(rm:*) allow rules
  • Security: Bash deny rules now match commands wrapped in env/sudo/watch/ionice/setsid and similar exec wrappers
  • Security: Bash(find:*) allow rules no longer auto-approve find -exec/-delete
  • Fixed MCP concurrent-call timeout handling where a message for one tool call could silently disarm another call's watchdog
  • Fixed Cmd-backspace / Ctrl+U to once again delete from the cursor to the start of the line
  • Fixed markdown tables breaking when a cell contains an inline code span with a pipe character
  • Fixed session recap auto-firing while composing unsent text in the prompt
  • Fixed /copy "Full response" not aligning markdown table columns for pasting into GitHub, Notion, or Slack
  • Fixed messages typed while viewing a running subagent being hidden from its transcript and misattributed to the parent AI
  • Fixed Bash dangerouslyDisableSandbox running commands outside the sandbox without a permission prompt
  • Fixed /effort auto confirmation — now says "Effort level set to max" to match the status bar label
  • Fixed the "copied N chars" toast overcounting emoji and other multi-code-unit characters
  • Fixed /insights crashing with EBUSY on Windows
  • Fixed exit confirmation dialog mislabeling one-shot scheduled tasks as recurring — now shows a countdown
  • Fixed slash/@ completion menu not sitting flush against the prompt border in fullscreen mode
  • Fixed CLAUDE_CODE_EXTRA_BODY output_config.effort causing 400 errors on subagent calls to models that don't support effort and on Vertex AI
  • Fixed prompt cursor disappearing when NO_COLOR is set
  • Fixed ToolSearch ranking so pasted MCP tool names surface the actual tool instead of description-matching siblings
  • Fixed compacting a resumed long-context session failing with "Extra usage is required for long context requests"
  • Fixed plugin install succeeding when a dependency version conflicts with an already-installed plugin — now reports range-conflict
  • Fixed "Refine with Ultraplan" not showing the remote session URL in the transcript
  • Fixed SDK image content blocks that fail to process crashing the session — now degrade to a text placeholder
  • Fixed Remote Control sessions not streaming subagent transcripts
  • Fixed Remote Control sessions not being archived when Claude Code exits
  • Fixed thinking.type.enabled is not supported 400 error when using Opus 4.7 via a Bedrock Application Inference Profile ARN
System prompt

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