surface
A Claude Code settings key, read out of the shipped bundle. No mined inventory carries it: everything below comes from what this site has written about it.
Upgrade links now include tracking parameters so each entry point is attributable.
Not Anthropic's. This is the line from the earliest changelog entry here that named it, v2.1.219.
In the changelogs
36Releases whose published page names surface.
-
v2.1.292
Plugins can add their own suggestions under the prompt box
A new
prompt.autocompleteplugin hook lets plugins add completion rows under the prompt, including for desktop, mobile and VS Code composersfound in this entry's text
-
v2.1.281
Plugin browser: marketplace filter and matching on the "also listed in" marketplaces
The plugin list can now be filtered by marketplace, including the extra marketplaces a plugin is also listed in
found in this entry's text
-
v2.1.281
Plugin Discover screen: marketplace filter, pre-filled search, and blocked-marketplace handling
The Discover plugins screen can open pre-filled with a search or marketplace, filter by marketplace, and handles blocked marketplaces
found in this entry's text
-
v2.1.281
Plugin install UI: new error messages and telemetry 'surface'
The plugin install screen now shows messages for the new install failures, and its success message can mention copies in other projects
found in this entry's text
-
v2.1.281
Plugin install: new replace/switch options and directory-related failure reasons
Plugin install gains unfinished options for replacing an installed copy and four new failure reasons, all reported as a generic failure
found in this entry's text
-
v2.1.277
Promo banner telemetry gains an entry_point dimension
Promo banner clicks and opens now record which entry point triggered them
found in this entry's text
-
v2.1.277
Fleet command bar and fleet reply composer now strip invisible/injected characters before dispatch
Fleet's command bar and reply composer now strip invisible characters and block sending if any are found
found in this entry's text
-
v2.1.277
Plugin UI test API
$.ui.pressnow supports non-terminal surfacesPlugin test helper
$.ui.presscan now press buttons on non-terminal surfacesfound in this entry's text
-
v2.1.277
Plugin component events generalized beyond terminal via a new 'surface' field
Plugin UI component events can now report a surface other than 'terminal'
found in this entry's text, named in this entry
-
v2.1.269
hooks.json
surfacefield removed in favor of inline Client module referenceshooks.json drops its surface field; plugins now name their display module directly on each Client element
found in this entry's text
-
v2.1.269
Plugin loader: hook-module "surface" tagging removed; new parameter threaded through
Plugin hook loading drops an internal "surface" tag while gaining a new unused parameter
found in this entry's text
-
v2.1.269
New plugin hook event: session.surfaces (plural)
A new plugin hook event, session.surfaces (plural), joins the existing session.surface
found in this entry's text
-
v2.1.269
Permission-allow decisions now record which UI surface granted them, and host-dialog allows are pushed to the session
Permission-allow decisions now record which UI surface granted them
found in this entry's text
-
v2.1.269
Plugin hooks-module loading drops an inline surface-path traversal check here; multi-module surface loading added elsewhere
Plugin hooks-module loading no longer validates a separate 'surface' path there; surface loading elsewhere now supports multiple modules
found in this entry's text
-
v2.1.269
Tool-decision telemetry now records which UI surface produced an accept
Tool-decision telemetry now records which UI surface an accepted tool call came from
found in this entry's text
-
v2.1.269
session.surfaces added alongside session.surface
New session.surfaces control endpoint lists all attached drawing surfaces, alongside the existing single-surface one
found in this entry's text
-
v2.1.269
New telemetry/event identifiers added
Several new internal event and telemetry names have been registered
found in this entry's text
-
v2.1.269
logDecision gains a 'surface' field for config-based tool approvals
Logged permission decisions now include a 'surface' field for config-based tool approvals
found in this entry's text
-
v2.1.269
Plugin/hook control-protocol gains session.surfaces and config.list capabilities
Plugin and hook SDK gains session.surfaces and config.list capabilities
found in this entry's text
-
v2.1.269
Decision-log 'accept via config' events now carry a 'surface' field
Auto-accepted tool-permission log entries now record a surface field
found in this entry's text
-
v2.1.268
Remote-session org-policy denials now emit telemetry
Blocked remote-session actions from org policy now emit a tengu_org_policy_denied telemetry event
found in this entry's text
-
v2.1.268
Frontmatter-shadow telemetry no longer conflates surface and detail
Frontmatter-shadow telemetry now logs surface and detail as separate values instead of one value duplicated into both
found in this entry's text
-
v2.1.268
New virtual plugin "surface" bundling/runtime scheme
A new "surface" virtual-module system lets plugin desktop UI code import from special surface:/// and claude: URIs
found in this entry's text
-
v2.1.268
Feedback survey followup payload now whitelists included transcript/session fields
Feedback survey followups now send only a fixed, named list of fields instead of a free-form object
found in this entry's text
-
v2.1.267
Hooks plugin API gains a 'to' messaging primitive, 'surface' concept, and table resolution
Hooks/plugin runtime gains a 'to' messaging function, a 'surface' concept, and table-resolution requests
found in this entry's text, named in this entry
-
v2.1.267
New plugin "surface" UI system for terminal-rendered plugin components ("Clients")
Plugins can now draw their own interactive UI elements ('Clients') directly in the terminal
found in this entry's text, named in this entry
-
v2.1.267
hooks.json can now declare a
surfacemodulehooks.json can now declare a separate 'surface' module for drawing a hook module's UI elements
found in this entry's text, named in this entry
-
v2.1.267
Plugin hook system gains matcher/argument-shape validation and size-limited ui.message data
Plugin hooks now get validation errors for malformed matchers, disallowed edits, and oversized ui.message data
found in this entry's text
-
v2.1.259
New
Svgrender element type for engine/dialog UI treesDialog and engine UI trees can include an Svg element, and the validator now reports when an element isn't allowed on a surface.
found in this entry's text
-
v2.1.247
Device-flow docs describe the surface parameter Claude Code sends
OAuth docs now note that Claude Code sends a surface parameter and its own user agent.
found in this entry's text
-
v2.1.239
Spend and rate limit notices say when the limit resets
Rate and spend limit notices now name the limit and when it resets.
found in this entry's text
-
v2.1.223
Programmatic submission of a queued feedback draft
Scripts can now submit a queued feedback draft by id without opening the review dialog.
found in this entry's text
-
v2.1.221
Daemon-boot gesture telemetry gets more fields
Reconnect telemetry now records more detail about how your session came back up.
found in this entry's text
-
v2.1.221
Background attach telemetry gets cold-start and surface dimensions
Background attach events now record cold starts, surface and first frame details.
found in this entry's text
-
v2.1.219
Upgrade links now carry a per-surface UTM campaign
Upgrade links now include tracking parameters so each entry point is attributable.
found in this entry's text
-
v2.1.120
Feedback Submission Now Tracks Surface Origin
found in this entry's text
First cited
0No release's published evidence quotes this name. The ledger indexes the Evidence lines of every changelog on this site, so this says nobody here has ever quoted it; it says nothing about how old the name is.
Presence across releases
0The miner has never read a build containing this name. It is here because a changelog entry of ours names it, which is evidence that it existed and not evidence of which releases carried it. The inventory starts at v2.1.138 and everything older than that was never mined.
Read out of the published npm bundle release by release, and out of Anthropic's own documentation as this site captured it. Nothing on this page is a description anybody here wrote about what the settings key does. All settings keys.