@anthropic-ai/claude-agent-sdk 0.2.64 → 0.2.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/sdk.d.ts CHANGED
@@ -101,14 +101,6 @@ export declare type BaseHookInput = {
101
101
  transcript_path: string;
102
102
  cwd: string;
103
103
  permission_mode?: string;
104
- /**
105
- * Subagent identifier. Present only when the hook fires from within a subagent (e.g., a tool called by an AgentTool worker). Absent for the main thread, even in --agent sessions. Use this field (not agent_type) to distinguish subagent calls from main-thread calls.
106
- */
107
- agent_id?: string;
108
- /**
109
- * Agent type name (e.g., "general-purpose", "code-reviewer"). Present when the hook fires from within a subagent (alongside agent_id), or on the main thread of a session started with --agent (without agent_id).
110
- */
111
- agent_type?: string;
112
104
  };
113
105
 
114
106
  export declare type BaseOutputFormat = {
@@ -199,7 +191,6 @@ declare namespace coreTypes {
199
191
  HookEvent,
200
192
  HookInput,
201
193
  HookJSONOutput,
202
- InstructionsLoadedHookInput,
203
194
  JsonSchemaOutputFormat,
204
195
  McpClaudeAIProxyServerConfig,
205
196
  McpHttpServerConfig,
@@ -394,7 +385,7 @@ export declare type GetSessionMessagesOptions = {
394
385
  offset?: number;
395
386
  };
396
387
 
397
- export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "UserPromptSubmit", "SessionStart", "SessionEnd", "Stop", "SubagentStart", "SubagentStop", "PreCompact", "PermissionRequest", "Setup", "TeammateIdle", "TaskCompleted", "Elicitation", "ElicitationResult", "ConfigChange", "WorktreeCreate", "WorktreeRemove", "InstructionsLoaded"];
388
+ export declare const HOOK_EVENTS: readonly ["PreToolUse", "PostToolUse", "PostToolUseFailure", "Notification", "UserPromptSubmit", "SessionStart", "SessionEnd", "Stop", "SubagentStart", "SubagentStop", "PreCompact", "PermissionRequest", "Setup", "TeammateIdle", "TaskCompleted", "Elicitation", "ElicitationResult", "ConfigChange", "WorktreeCreate", "WorktreeRemove"];
398
389
 
399
390
  /**
400
391
  * Hook callback function for responding to events during execution.
@@ -413,9 +404,9 @@ export declare interface HookCallbackMatcher {
413
404
  timeout?: number;
414
405
  }
415
406
 
416
- export declare type HookEvent = 'PreToolUse' | 'PostToolUse' | 'PostToolUseFailure' | 'Notification' | 'UserPromptSubmit' | 'SessionStart' | 'SessionEnd' | 'Stop' | 'SubagentStart' | 'SubagentStop' | 'PreCompact' | 'PermissionRequest' | 'Setup' | 'TeammateIdle' | 'TaskCompleted' | 'Elicitation' | 'ElicitationResult' | 'ConfigChange' | 'WorktreeCreate' | 'WorktreeRemove' | 'InstructionsLoaded';
407
+ export declare type HookEvent = 'PreToolUse' | 'PostToolUse' | 'PostToolUseFailure' | 'Notification' | 'UserPromptSubmit' | 'SessionStart' | 'SessionEnd' | 'Stop' | 'SubagentStart' | 'SubagentStop' | 'PreCompact' | 'PermissionRequest' | 'Setup' | 'TeammateIdle' | 'TaskCompleted' | 'Elicitation' | 'ElicitationResult' | 'ConfigChange' | 'WorktreeCreate' | 'WorktreeRemove';
417
408
 
418
- export declare type HookInput = PreToolUseHookInput | PostToolUseHookInput | PostToolUseFailureHookInput | NotificationHookInput | UserPromptSubmitHookInput | SessionStartHookInput | SessionEndHookInput | StopHookInput | SubagentStartHookInput | SubagentStopHookInput | PreCompactHookInput | PermissionRequestHookInput | SetupHookInput | TeammateIdleHookInput | TaskCompletedHookInput | ElicitationHookInput | ElicitationResultHookInput | ConfigChangeHookInput | InstructionsLoadedHookInput | WorktreeCreateHookInput | WorktreeRemoveHookInput;
409
+ export declare type HookInput = PreToolUseHookInput | PostToolUseHookInput | PostToolUseFailureHookInput | NotificationHookInput | UserPromptSubmitHookInput | SessionStartHookInput | SessionEndHookInput | StopHookInput | SubagentStartHookInput | SubagentStopHookInput | PreCompactHookInput | PermissionRequestHookInput | SetupHookInput | TeammateIdleHookInput | TaskCompletedHookInput | ElicitationHookInput | ElicitationResultHookInput | ConfigChangeHookInput | WorktreeCreateHookInput | WorktreeRemoveHookInput;
419
410
 
420
411
  export declare type HookJSONOutput = AsyncHookJSONOutput | SyncHookJSONOutput;
421
412
 
@@ -425,16 +416,6 @@ export declare type InferShape<T extends AnyZodRawShape> = {
425
416
  } ? O : never;
426
417
  } & {};
427
418
 
428
- export declare type InstructionsLoadedHookInput = BaseHookInput & {
429
- hook_event_name: 'InstructionsLoaded';
430
- file_path: string;
431
- memory_type: 'User' | 'Project' | 'Local' | 'Managed';
432
- load_reason: 'session_start' | 'nested_traversal' | 'path_glob_match' | 'include';
433
- globs?: string[];
434
- trigger_file_path?: string;
435
- parent_file_path?: string;
436
- };
437
-
438
419
  export declare type JsonSchemaOutputFormat = {
439
420
  type: 'json_schema';
440
421
  schema: Record<string, unknown>;
@@ -464,17 +445,12 @@ export declare function listSessions(_options?: ListSessionsOptions): Promise<SD
464
445
  export declare type ListSessionsOptions = {
465
446
  /**
466
447
  * Directory to list sessions for. When provided, returns sessions for
467
- * this project directory (and optionally its git worktrees). When omitted,
468
- * returns sessions across all projects.
448
+ * this project directory (and its git worktrees). When omitted, returns
449
+ * sessions across all projects.
469
450
  */
470
451
  dir?: string;
471
452
  /** Maximum number of sessions to return. */
472
453
  limit?: number;
473
- /**
474
- * When `dir` is provided and the directory is inside a git repository,
475
- * include sessions from all git worktree paths. Defaults to `true`.
476
- */
477
- includeWorktrees?: boolean;
478
454
  };
479
455
 
480
456
  export declare type McpClaudeAIProxyServerConfig = {
@@ -1020,24 +996,6 @@ export declare type Options = {
1020
996
  * @see https://docs.anthropic.com/en/docs/claude-code/settings#sandbox-settings
1021
997
  */
1022
998
  sandbox?: SandboxSettings;
1023
- /**
1024
- * Additional settings to apply. Accepts either a path to a settings JSON file
1025
- * or a settings object. These are loaded into the "flag settings" layer,
1026
- * which has the highest priority among user-controlled settings.
1027
- *
1028
- * Equivalent to the `--settings` CLI flag.
1029
- *
1030
- * @example Inline settings object
1031
- * ```typescript
1032
- * settings: { model: 'claude-sonnet-4-6', permissions: { allow: ['Bash(*)'] } }
1033
- * ```
1034
- *
1035
- * @example Path to settings file
1036
- * ```typescript
1037
- * settings: '/path/to/settings.json'
1038
- * ```
1039
- */
1040
- settings?: string | Settings;
1041
999
  /**
1042
1000
  * Control which filesystem settings to load.
1043
1001
  * - `'user'` - Global user settings (`~/.claude/settings.json`)
@@ -1505,7 +1463,6 @@ declare const SandboxSettingsSchema: () => z.ZodObject<{
1505
1463
  }, z.core.$strip>>;
1506
1464
  ignoreViolations: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
1507
1465
  enableWeakerNestedSandbox: z.ZodOptional<z.ZodBoolean>;
1508
- enableWeakerNetworkIsolation: z.ZodOptional<z.ZodBoolean>;
1509
1466
  excludedCommands: z.ZodOptional<z.ZodArray<z.ZodString>>;
1510
1467
  ripgrep: z.ZodOptional<z.ZodObject<{
1511
1468
  command: z.ZodString;
@@ -2170,7 +2127,6 @@ export declare type SDKUserMessage = {
2170
2127
  parent_tool_use_id: string | null;
2171
2128
  isSynthetic?: boolean;
2172
2129
  tool_use_result?: unknown;
2173
- priority?: 'now' | 'next' | 'later';
2174
2130
  uuid?: UUID;
2175
2131
  session_id: string;
2176
2132
  };
@@ -2181,7 +2137,6 @@ export declare type SDKUserMessageReplay = {
2181
2137
  parent_tool_use_id: string | null;
2182
2138
  isSynthetic?: boolean;
2183
2139
  tool_use_result?: unknown;
2184
- priority?: 'now' | 'next' | 'later';
2185
2140
  uuid: UUID;
2186
2141
  session_id: string;
2187
2142
  isReplay: true;
@@ -2216,815 +2171,6 @@ export declare type SessionStartHookSpecificOutput = {
2216
2171
  additionalContext?: string;
2217
2172
  };
2218
2173
 
2219
- /**
2220
- * AUTO-GENERATED - DO NOT EDIT
2221
- *
2222
- * This file is auto-generated from the settings JSON schema.
2223
- * To modify these types, edit SettingsSchema in src/utils/settings/types.ts and run:
2224
- *
2225
- * bun scripts/generate-sdk-types.ts
2226
- */
2227
- export declare interface Settings {
2228
- /**
2229
- * JSON Schema reference for Claude Code settings
2230
- */
2231
- $schema?: 'https://json.schemastore.org/claude-code-settings.json';
2232
- /**
2233
- * Path to a script that outputs authentication values
2234
- */
2235
- apiKeyHelper?: string;
2236
- /**
2237
- * Path to a script that exports AWS credentials
2238
- */
2239
- awsCredentialExport?: string;
2240
- /**
2241
- * Path to a script that refreshes AWS authentication
2242
- */
2243
- awsAuthRefresh?: string;
2244
- /**
2245
- * Custom file suggestion configuration for \@ mentions
2246
- */
2247
- fileSuggestion?: {
2248
- type: 'command';
2249
- command: string;
2250
- };
2251
- /**
2252
- * Whether file picker should respect .gitignore files (default: true). Note: .ignore files are always respected.
2253
- */
2254
- respectGitignore?: boolean;
2255
- /**
2256
- * Number of days to retain chat transcripts (0 to disable cleanup)
2257
- */
2258
- cleanupPeriodDays?: number;
2259
- /**
2260
- * Environment variables to set for Claude Code sessions
2261
- */
2262
- env?: {
2263
- [k: string]: string;
2264
- };
2265
- /**
2266
- * Customize attribution text for commits and PRs. Each field defaults to the standard Claude Code attribution if not set.
2267
- */
2268
- attribution?: {
2269
- /**
2270
- * Attribution text for git commits, including any trailers. Empty string hides attribution.
2271
- */
2272
- commit?: string;
2273
- /**
2274
- * Attribution text for pull request descriptions. Empty string hides attribution.
2275
- */
2276
- pr?: string;
2277
- };
2278
- /**
2279
- * Deprecated: Use attribution instead. Whether to include Claude's co-authored by attribution in commits and PRs (defaults to true)
2280
- */
2281
- includeCoAuthoredBy?: boolean;
2282
- /**
2283
- * Include built-in commit and PR workflow instructions in Claude's system prompt (default: true)
2284
- */
2285
- includeGitInstructions?: boolean;
2286
- /**
2287
- * Tool usage permissions configuration
2288
- */
2289
- permissions?: {
2290
- /**
2291
- * List of permission rules for allowed operations
2292
- */
2293
- allow?: string[];
2294
- /**
2295
- * List of permission rules for denied operations
2296
- */
2297
- deny?: string[];
2298
- /**
2299
- * List of permission rules that should always prompt for confirmation
2300
- */
2301
- ask?: string[];
2302
- /**
2303
- * Default permission mode when Claude Code needs access
2304
- */
2305
- defaultMode?: 'acceptEdits' | 'bypassPermissions' | 'default' | 'dontAsk' | 'plan';
2306
- /**
2307
- * Disable the ability to bypass permission prompts
2308
- */
2309
- disableBypassPermissionsMode?: 'disable';
2310
- /**
2311
- * Additional directories to include in the permission scope
2312
- */
2313
- additionalDirectories?: string[];
2314
- [k: string]: unknown;
2315
- };
2316
- /**
2317
- * Override the default model used by Claude Code
2318
- */
2319
- model?: string;
2320
- /**
2321
- * Allowlist of models that users can select. Accepts family aliases ("opus" allows any opus version), version prefixes ("opus-4-5" allows only that version), and full model IDs. If undefined, all models are available. If empty array, only the default model is available. Typically set in managed settings by enterprise administrators.
2322
- */
2323
- availableModels?: string[];
2324
- /**
2325
- * Whether to automatically approve all MCP servers in the project
2326
- */
2327
- enableAllProjectMcpServers?: boolean;
2328
- /**
2329
- * List of approved MCP servers from .mcp.json
2330
- */
2331
- enabledMcpjsonServers?: string[];
2332
- /**
2333
- * List of rejected MCP servers from .mcp.json
2334
- */
2335
- disabledMcpjsonServers?: string[];
2336
- /**
2337
- * Enterprise allowlist of MCP servers that can be used. Applies to all scopes including enterprise servers from managed-mcp.json. If undefined, all servers are allowed. If empty array, no servers are allowed. Denylist takes precedence - if a server is on both lists, it is denied.
2338
- */
2339
- allowedMcpServers?: {
2340
- /**
2341
- * Name of the MCP server that users are allowed to configure
2342
- */
2343
- serverName?: string;
2344
- /**
2345
- * Command array [command, ...args] to match exactly for allowed stdio servers
2346
- *
2347
- * \@minItems 1
2348
- */
2349
- serverCommand?: [string, ...string[]];
2350
- /**
2351
- * URL pattern with wildcard support (e.g., "https://*.example.com/*") for allowed remote MCP servers
2352
- */
2353
- serverUrl?: string;
2354
- }[];
2355
- /**
2356
- * Enterprise denylist of MCP servers that are explicitly blocked. If a server is on the denylist, it will be blocked across all scopes including enterprise. Denylist takes precedence over allowlist - if a server is on both lists, it is denied.
2357
- */
2358
- deniedMcpServers?: {
2359
- /**
2360
- * Name of the MCP server that is explicitly blocked
2361
- */
2362
- serverName?: string;
2363
- /**
2364
- * Command array [command, ...args] to match exactly for blocked stdio servers
2365
- *
2366
- * \@minItems 1
2367
- */
2368
- serverCommand?: [string, ...string[]];
2369
- /**
2370
- * URL pattern with wildcard support (e.g., "https://*.example.com/*") for blocked remote MCP servers
2371
- */
2372
- serverUrl?: string;
2373
- }[];
2374
- /**
2375
- * Custom commands to run before/after tool executions
2376
- */
2377
- hooks?: {
2378
- [k: string]: {
2379
- /**
2380
- * String pattern to match (e.g. tool names like "Write")
2381
- */
2382
- matcher?: string;
2383
- /**
2384
- * List of hooks to execute when the matcher matches
2385
- */
2386
- hooks: ({
2387
- /**
2388
- * Bash command hook type
2389
- */
2390
- type: 'command';
2391
- /**
2392
- * Shell command to execute
2393
- */
2394
- command: string;
2395
- /**
2396
- * Timeout in seconds for this specific command
2397
- */
2398
- timeout?: number;
2399
- /**
2400
- * Custom status message to display in spinner while hook runs
2401
- */
2402
- statusMessage?: string;
2403
- /**
2404
- * If true, hook runs once and is removed after execution
2405
- */
2406
- once?: boolean;
2407
- /**
2408
- * If true, hook runs in background without blocking
2409
- */
2410
- async?: boolean;
2411
- /**
2412
- * If true, hook runs in background and wakes the model on exit code 2 (blocking error). Implies async.
2413
- */
2414
- asyncRewake?: boolean;
2415
- } | {
2416
- /**
2417
- * LLM prompt hook type
2418
- */
2419
- type: 'prompt';
2420
- /**
2421
- * Prompt to evaluate with LLM. Use $ARGUMENTS placeholder for hook input JSON.
2422
- */
2423
- prompt: string;
2424
- /**
2425
- * Timeout in seconds for this specific prompt evaluation
2426
- */
2427
- timeout?: number;
2428
- /**
2429
- * Model to use for this prompt hook (e.g., "claude-sonnet-4-6"). If not specified, uses the default small fast model.
2430
- */
2431
- model?: string;
2432
- /**
2433
- * Custom status message to display in spinner while hook runs
2434
- */
2435
- statusMessage?: string;
2436
- /**
2437
- * If true, hook runs once and is removed after execution
2438
- */
2439
- once?: boolean;
2440
- } | {
2441
- /**
2442
- * Agentic verifier hook type
2443
- */
2444
- type: 'agent';
2445
- /**
2446
- * Prompt describing what to verify (e.g. "Verify that unit tests ran and passed."). Use $ARGUMENTS placeholder for hook input JSON.
2447
- */
2448
- prompt: string;
2449
- /**
2450
- * Timeout in seconds for agent execution (default 60)
2451
- */
2452
- timeout?: number;
2453
- /**
2454
- * Model to use for this agent hook (e.g., "claude-sonnet-4-6"). If not specified, uses Haiku.
2455
- */
2456
- model?: string;
2457
- /**
2458
- * Custom status message to display in spinner while hook runs
2459
- */
2460
- statusMessage?: string;
2461
- /**
2462
- * If true, hook runs once and is removed after execution
2463
- */
2464
- once?: boolean;
2465
- } | {
2466
- /**
2467
- * HTTP hook type
2468
- */
2469
- type: 'http';
2470
- /**
2471
- * URL to POST the hook input JSON to
2472
- */
2473
- url: string;
2474
- /**
2475
- * Timeout in seconds for this specific request
2476
- */
2477
- timeout?: number;
2478
- /**
2479
- * Additional headers to include in the request. Values may reference environment variables using $VAR_NAME or ${VAR_NAME} syntax (e.g., "Authorization": "Bearer $MY_TOKEN"). Only variables listed in allowedEnvVars will be interpolated.
2480
- */
2481
- headers?: {
2482
- [k: string]: string;
2483
- };
2484
- /**
2485
- * Explicit list of environment variable names that may be interpolated in header values. Only variables listed here will be resolved; all other $VAR references are left as empty strings. Required for env var interpolation to work.
2486
- */
2487
- allowedEnvVars?: string[];
2488
- /**
2489
- * Custom status message to display in spinner while hook runs
2490
- */
2491
- statusMessage?: string;
2492
- /**
2493
- * If true, hook runs once and is removed after execution
2494
- */
2495
- once?: boolean;
2496
- })[];
2497
- }[];
2498
- };
2499
- /**
2500
- * Git worktree configuration for --worktree flag. Symlinks prevent duplicating large directories like node_modules across worktrees.
2501
- */
2502
- worktree?: {
2503
- /**
2504
- * Directories to symlink from main repository to worktrees to avoid disk bloat. Must be explicitly configured - no directories are symlinked by default. Common examples: "node_modules", ".cache", ".bin"
2505
- */
2506
- symlinkDirectories?: string[];
2507
- };
2508
- /**
2509
- * Disable all hooks and statusLine execution
2510
- */
2511
- disableAllHooks?: boolean;
2512
- /**
2513
- * When true (and set in managed settings), only hooks from managed settings run. User, project, and local hooks are ignored.
2514
- */
2515
- allowManagedHooksOnly?: boolean;
2516
- /**
2517
- * Allowlist of URL patterns that HTTP hooks may target. Supports * as a wildcard (e.g. "https://hooks.example.com/*"). When set, HTTP hooks with non-matching URLs are blocked. If undefined, all URLs are allowed. If empty array, no HTTP hooks are allowed. Arrays merge across settings sources (same semantics as allowedMcpServers).
2518
- */
2519
- allowedHttpHookUrls?: string[];
2520
- /**
2521
- * Allowlist of environment variable names HTTP hooks may interpolate into headers. When set, each hook's effective allowedEnvVars is the intersection with this list. If undefined, no restriction is applied. Arrays merge across settings sources (same semantics as allowedMcpServers).
2522
- */
2523
- httpHookAllowedEnvVars?: string[];
2524
- /**
2525
- * When true (and set in managed settings), only permission rules (allow/deny/ask) from managed settings are respected. User, project, local, and CLI argument permission rules are ignored.
2526
- */
2527
- allowManagedPermissionRulesOnly?: boolean;
2528
- /**
2529
- * When true (and set in managed settings), allowedMcpServers is only read from managed settings. deniedMcpServers still merges from all sources, so users can deny servers for themselves. Users can still add their own MCP servers, but only the admin-defined allowlist applies.
2530
- */
2531
- allowManagedMcpServersOnly?: boolean;
2532
- /**
2533
- * Custom status line display configuration
2534
- */
2535
- statusLine?: {
2536
- type: 'command';
2537
- command: string;
2538
- padding?: number;
2539
- };
2540
- /**
2541
- * Enabled plugins using plugin-id\@marketplace-id format. Example: { "formatter\@anthropic-tools": true }. Also supports extended format with version constraints.
2542
- */
2543
- enabledPlugins?: {
2544
- [k: string]: string[] | boolean | {
2545
- [k: string]: unknown;
2546
- };
2547
- };
2548
- /**
2549
- * Additional marketplaces to make available for this repository. Typically used in repository .claude/settings.json to ensure team members have required plugin sources.
2550
- */
2551
- extraKnownMarketplaces?: {
2552
- [k: string]: {
2553
- /**
2554
- * Where to fetch the marketplace from
2555
- */
2556
- source: {
2557
- source: 'url';
2558
- /**
2559
- * Direct URL to marketplace.json file
2560
- */
2561
- url: string;
2562
- /**
2563
- * Custom HTTP headers (e.g., for authentication)
2564
- */
2565
- headers?: {
2566
- [k: string]: string;
2567
- };
2568
- } | {
2569
- source: 'github';
2570
- /**
2571
- * GitHub repository in owner/repo format
2572
- */
2573
- repo: string;
2574
- /**
2575
- * Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.
2576
- */
2577
- ref?: string;
2578
- /**
2579
- * Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)
2580
- */
2581
- path?: string;
2582
- /**
2583
- * Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".claude-plugin", "plugins"]. If omitted, the full repository is cloned.
2584
- */
2585
- sparsePaths?: string[];
2586
- } | {
2587
- source: 'git';
2588
- /**
2589
- * Full git repository URL
2590
- */
2591
- url: string;
2592
- /**
2593
- * Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.
2594
- */
2595
- ref?: string;
2596
- /**
2597
- * Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)
2598
- */
2599
- path?: string;
2600
- /**
2601
- * Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".claude-plugin", "plugins"]. If omitted, the full repository is cloned.
2602
- */
2603
- sparsePaths?: string[];
2604
- } | {
2605
- source: 'npm';
2606
- /**
2607
- * NPM package containing marketplace.json
2608
- */
2609
- package: string;
2610
- } | {
2611
- source: 'file';
2612
- /**
2613
- * Local file path to marketplace.json
2614
- */
2615
- path: string;
2616
- } | {
2617
- source: 'directory';
2618
- /**
2619
- * Local directory containing .claude-plugin/marketplace.json
2620
- */
2621
- path: string;
2622
- } | {
2623
- source: 'hostPattern';
2624
- /**
2625
- * Regex pattern to match the host/domain extracted from any marketplace source type. For github sources, matches against "github.com". For git sources (SSH or HTTPS), extracts the hostname from the URL. Use in strictKnownMarketplaces to allow all marketplaces from a specific host (e.g., "^github\.mycompany\.com$").
2626
- */
2627
- hostPattern: string;
2628
- } | {
2629
- source: 'pathPattern';
2630
- /**
2631
- * Regex pattern matched against the .path field of file and directory sources. Use in strictKnownMarketplaces to allow filesystem-based marketplaces alongside hostPattern restrictions for network sources. Use ".*" to allow all filesystem paths, or a narrower pattern (e.g., "^/opt/approved/") to restrict to specific directories.
2632
- */
2633
- pathPattern: string;
2634
- };
2635
- /**
2636
- * Local cache path where marketplace manifest is stored (auto-generated if not provided)
2637
- */
2638
- installLocation?: string;
2639
- /**
2640
- * Whether to automatically update this marketplace and its installed plugins on startup
2641
- */
2642
- autoUpdate?: boolean;
2643
- };
2644
- };
2645
- /**
2646
- * Enterprise strict list of allowed marketplace sources. When set in managed settings, ONLY these exact sources can be added as marketplaces. The check happens BEFORE downloading, so blocked sources never touch the filesystem. Note: this is a policy gate only — it does NOT register marketplaces. To pre-register allowed marketplaces for users, also set extraKnownMarketplaces.
2647
- */
2648
- strictKnownMarketplaces?: ({
2649
- source: 'url';
2650
- /**
2651
- * Direct URL to marketplace.json file
2652
- */
2653
- url: string;
2654
- /**
2655
- * Custom HTTP headers (e.g., for authentication)
2656
- */
2657
- headers?: {
2658
- [k: string]: string;
2659
- };
2660
- } | {
2661
- source: 'github';
2662
- /**
2663
- * GitHub repository in owner/repo format
2664
- */
2665
- repo: string;
2666
- /**
2667
- * Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.
2668
- */
2669
- ref?: string;
2670
- /**
2671
- * Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)
2672
- */
2673
- path?: string;
2674
- /**
2675
- * Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".claude-plugin", "plugins"]. If omitted, the full repository is cloned.
2676
- */
2677
- sparsePaths?: string[];
2678
- } | {
2679
- source: 'git';
2680
- /**
2681
- * Full git repository URL
2682
- */
2683
- url: string;
2684
- /**
2685
- * Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.
2686
- */
2687
- ref?: string;
2688
- /**
2689
- * Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)
2690
- */
2691
- path?: string;
2692
- /**
2693
- * Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".claude-plugin", "plugins"]. If omitted, the full repository is cloned.
2694
- */
2695
- sparsePaths?: string[];
2696
- } | {
2697
- source: 'npm';
2698
- /**
2699
- * NPM package containing marketplace.json
2700
- */
2701
- package: string;
2702
- } | {
2703
- source: 'file';
2704
- /**
2705
- * Local file path to marketplace.json
2706
- */
2707
- path: string;
2708
- } | {
2709
- source: 'directory';
2710
- /**
2711
- * Local directory containing .claude-plugin/marketplace.json
2712
- */
2713
- path: string;
2714
- } | {
2715
- source: 'hostPattern';
2716
- /**
2717
- * Regex pattern to match the host/domain extracted from any marketplace source type. For github sources, matches against "github.com". For git sources (SSH or HTTPS), extracts the hostname from the URL. Use in strictKnownMarketplaces to allow all marketplaces from a specific host (e.g., "^github\.mycompany\.com$").
2718
- */
2719
- hostPattern: string;
2720
- } | {
2721
- source: 'pathPattern';
2722
- /**
2723
- * Regex pattern matched against the .path field of file and directory sources. Use in strictKnownMarketplaces to allow filesystem-based marketplaces alongside hostPattern restrictions for network sources. Use ".*" to allow all filesystem paths, or a narrower pattern (e.g., "^/opt/approved/") to restrict to specific directories.
2724
- */
2725
- pathPattern: string;
2726
- })[];
2727
- /**
2728
- * Enterprise blocklist of marketplace sources. When set in managed settings, these exact sources are blocked from being added as marketplaces. The check happens BEFORE downloading, so blocked sources never touch the filesystem.
2729
- */
2730
- blockedMarketplaces?: ({
2731
- source: 'url';
2732
- /**
2733
- * Direct URL to marketplace.json file
2734
- */
2735
- url: string;
2736
- /**
2737
- * Custom HTTP headers (e.g., for authentication)
2738
- */
2739
- headers?: {
2740
- [k: string]: string;
2741
- };
2742
- } | {
2743
- source: 'github';
2744
- /**
2745
- * GitHub repository in owner/repo format
2746
- */
2747
- repo: string;
2748
- /**
2749
- * Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.
2750
- */
2751
- ref?: string;
2752
- /**
2753
- * Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)
2754
- */
2755
- path?: string;
2756
- /**
2757
- * Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".claude-plugin", "plugins"]. If omitted, the full repository is cloned.
2758
- */
2759
- sparsePaths?: string[];
2760
- } | {
2761
- source: 'git';
2762
- /**
2763
- * Full git repository URL
2764
- */
2765
- url: string;
2766
- /**
2767
- * Git branch or tag to use (e.g., "main", "v1.0.0"). Defaults to repository default branch.
2768
- */
2769
- ref?: string;
2770
- /**
2771
- * Path to marketplace.json within repo (defaults to .claude-plugin/marketplace.json)
2772
- */
2773
- path?: string;
2774
- /**
2775
- * Directories to include via git sparse-checkout (cone mode). Use for monorepos where the marketplace lives in a subdirectory. Example: [".claude-plugin", "plugins"]. If omitted, the full repository is cloned.
2776
- */
2777
- sparsePaths?: string[];
2778
- } | {
2779
- source: 'npm';
2780
- /**
2781
- * NPM package containing marketplace.json
2782
- */
2783
- package: string;
2784
- } | {
2785
- source: 'file';
2786
- /**
2787
- * Local file path to marketplace.json
2788
- */
2789
- path: string;
2790
- } | {
2791
- source: 'directory';
2792
- /**
2793
- * Local directory containing .claude-plugin/marketplace.json
2794
- */
2795
- path: string;
2796
- } | {
2797
- source: 'hostPattern';
2798
- /**
2799
- * Regex pattern to match the host/domain extracted from any marketplace source type. For github sources, matches against "github.com". For git sources (SSH or HTTPS), extracts the hostname from the URL. Use in strictKnownMarketplaces to allow all marketplaces from a specific host (e.g., "^github\.mycompany\.com$").
2800
- */
2801
- hostPattern: string;
2802
- } | {
2803
- source: 'pathPattern';
2804
- /**
2805
- * Regex pattern matched against the .path field of file and directory sources. Use in strictKnownMarketplaces to allow filesystem-based marketplaces alongside hostPattern restrictions for network sources. Use ".*" to allow all filesystem paths, or a narrower pattern (e.g., "^/opt/approved/") to restrict to specific directories.
2806
- */
2807
- pathPattern: string;
2808
- })[];
2809
- /**
2810
- * Force a specific login method: "claudeai" for Claude Pro/Max, "console" for Console billing
2811
- */
2812
- forceLoginMethod?: 'claudeai' | 'console';
2813
- /**
2814
- * Organization UUID to use for OAuth login
2815
- */
2816
- forceLoginOrgUUID?: string;
2817
- /**
2818
- * Path to a script that outputs OpenTelemetry headers
2819
- */
2820
- otelHeadersHelper?: string;
2821
- /**
2822
- * Controls the output style for assistant responses
2823
- */
2824
- outputStyle?: string;
2825
- /**
2826
- * Preferred language for Claude responses (e.g., "japanese", "spanish")
2827
- */
2828
- language?: string;
2829
- /**
2830
- * Skip the WebFetch blocklist check for enterprise environments with restrictive security policies
2831
- */
2832
- skipWebFetchPreflight?: boolean;
2833
- sandbox?: {
2834
- enabled?: boolean;
2835
- autoAllowBashIfSandboxed?: boolean;
2836
- /**
2837
- * Allow commands to run outside the sandbox via the dangerouslyDisableSandbox parameter. When false, the dangerouslyDisableSandbox parameter is completely ignored and all commands must run sandboxed. Default: true.
2838
- */
2839
- allowUnsandboxedCommands?: boolean;
2840
- network?: {
2841
- allowedDomains?: string[];
2842
- /**
2843
- * When true (and set in managed settings), only allowedDomains and WebFetch(domain:...) allow rules from managed settings are respected. User, project, local, and flag settings domains are ignored. Denied domains are still respected from all sources.
2844
- */
2845
- allowManagedDomainsOnly?: boolean;
2846
- /**
2847
- * macOS only: Unix socket paths to allow. Ignored on Linux (seccomp cannot filter by path).
2848
- */
2849
- allowUnixSockets?: string[];
2850
- /**
2851
- * If true, allow all Unix sockets (disables blocking on both platforms).
2852
- */
2853
- allowAllUnixSockets?: boolean;
2854
- allowLocalBinding?: boolean;
2855
- httpProxyPort?: number;
2856
- socksProxyPort?: number;
2857
- };
2858
- filesystem?: {
2859
- /**
2860
- * Additional paths to allow writing within the sandbox. Merged with paths from Edit(...) allow permission rules.
2861
- */
2862
- allowWrite?: string[];
2863
- /**
2864
- * Additional paths to deny writing within the sandbox. Merged with paths from Edit(...) deny permission rules.
2865
- */
2866
- denyWrite?: string[];
2867
- /**
2868
- * Additional paths to deny reading within the sandbox. Merged with paths from Read(...) deny permission rules.
2869
- */
2870
- denyRead?: string[];
2871
- };
2872
- ignoreViolations?: {
2873
- [k: string]: string[];
2874
- };
2875
- enableWeakerNestedSandbox?: boolean;
2876
- /**
2877
- * macOS only: Allow access to com.apple.trustd.agent in the sandbox. Needed for Go-based CLI tools (gh, gcloud, terraform, etc.) to verify TLS certificates when using httpProxyPort with a MITM proxy and custom CA. **Reduces security** — opens a potential data exfiltration vector through the trustd service. Default: false
2878
- */
2879
- enableWeakerNetworkIsolation?: boolean;
2880
- excludedCommands?: string[];
2881
- /**
2882
- * Custom ripgrep configuration for bundled ripgrep support
2883
- */
2884
- ripgrep?: {
2885
- command: string;
2886
- args?: string[];
2887
- };
2888
- [k: string]: unknown;
2889
- };
2890
- /**
2891
- * Whether to show tips in the spinner
2892
- */
2893
- spinnerTipsEnabled?: boolean;
2894
- /**
2895
- * Customize spinner verbs. mode: "append" adds verbs to defaults, "replace" uses only your verbs.
2896
- */
2897
- spinnerVerbs?: {
2898
- mode: 'append' | 'replace';
2899
- verbs: string[];
2900
- };
2901
- /**
2902
- * Override spinner tips. tips: array of tip strings. excludeDefault: if true, only show custom tips (default: false).
2903
- */
2904
- spinnerTipsOverride?: {
2905
- excludeDefault?: boolean;
2906
- tips: string[];
2907
- };
2908
- /**
2909
- * Whether to disable syntax highlighting in diffs
2910
- */
2911
- syntaxHighlightingDisabled?: boolean;
2912
- /**
2913
- * Whether /rename updates the terminal tab title (defaults to true). Set to false to keep auto-generated topic titles.
2914
- */
2915
- terminalTitleFromRename?: boolean;
2916
- /**
2917
- * When false, thinking is disabled. When absent or true, thinking is enabled automatically for supported models.
2918
- */
2919
- alwaysThinkingEnabled?: boolean;
2920
- /**
2921
- * When true, fast mode is enabled. When absent or false, fast mode is off.
2922
- */
2923
- fastMode?: boolean;
2924
- /**
2925
- * When true, fast mode does not persist across sessions. Each session starts with fast mode off.
2926
- */
2927
- fastModePerSessionOptIn?: boolean;
2928
- /**
2929
- * When false, prompt suggestions are disabled. When absent or true, prompt suggestions are enabled.
2930
- */
2931
- promptSuggestionEnabled?: boolean;
2932
- /**
2933
- * Name of an agent (built-in or custom) to use for the main thread. Applies the agent's system prompt, tool restrictions, and model.
2934
- */
2935
- agent?: string;
2936
- /**
2937
- * Company announcements to display at startup (one will be randomly selected if multiple are provided)
2938
- */
2939
- companyAnnouncements?: string[];
2940
- /**
2941
- * Per-plugin configuration including MCP server user configs, keyed by plugin ID (plugin\@marketplace format)
2942
- */
2943
- pluginConfigs?: {
2944
- [k: string]: {
2945
- /**
2946
- * User configuration values for MCP servers keyed by server name
2947
- */
2948
- mcpServers?: {
2949
- [k: string]: {
2950
- [k: string]: string | number | boolean | string[];
2951
- };
2952
- };
2953
- };
2954
- };
2955
- /**
2956
- * Remote session configuration
2957
- */
2958
- remote?: {
2959
- /**
2960
- * Default environment ID to use for remote sessions
2961
- */
2962
- defaultEnvironmentId?: string;
2963
- };
2964
- /**
2965
- * Release channel for auto-updates (latest or stable)
2966
- */
2967
- autoUpdatesChannel?: 'latest' | 'stable';
2968
- /**
2969
- * Minimum version to stay on - prevents downgrades when switching to stable channel
2970
- */
2971
- minimumVersion?: string;
2972
- /**
2973
- * Custom directory for plan files, relative to project root. If not set, defaults to ~/.claude/plans/
2974
- */
2975
- plansDirectory?: string;
2976
- /**
2977
- * Reduce or disable animations for accessibility (spinner shimmer, flash effects, etc.)
2978
- */
2979
- prefersReducedMotion?: boolean;
2980
- /**
2981
- * Enable auto-memory for this project. When false, Claude will not read from or write to the auto-memory directory.
2982
- */
2983
- autoMemoryEnabled?: boolean;
2984
- /**
2985
- * Show thinking summaries in the transcript view (ctrl+o). Default: false.
2986
- */
2987
- showThinkingSummaries?: boolean;
2988
- /**
2989
- * Whether the user has accepted the bypass permissions mode dialog
2990
- */
2991
- skipDangerousModePermissionPrompt?: boolean;
2992
- /**
2993
- * SSH connection configurations for remote environments. Typically set in managed settings by enterprise administrators to pre-configure SSH connections for team members.
2994
- */
2995
- sshConfigs?: {
2996
- /**
2997
- * Unique identifier for this SSH config. Used to match configs across settings sources.
2998
- */
2999
- id: string;
3000
- /**
3001
- * Display name for the SSH connection
3002
- */
3003
- name: string;
3004
- /**
3005
- * SSH host in format "user\@hostname" or "hostname", or a host alias from ~/.ssh/config
3006
- */
3007
- sshHost: string;
3008
- /**
3009
- * SSH port (default: 22)
3010
- */
3011
- sshPort?: number;
3012
- /**
3013
- * Path to SSH identity file (private key)
3014
- */
3015
- sshIdentityFile?: string;
3016
- }[];
3017
- /**
3018
- * Glob patterns or absolute paths of CLAUDE.md files to exclude from loading. Patterns are matched against absolute file paths using picomatch. Only applies to User, Project, and Local memory types (Managed/policy files cannot be excluded). Examples: "/home/user/monorepo/CLAUDE.md", "** /code/CLAUDE.md", "** /some-dir/.claude/rules/**"
3019
- */
3020
- claudeMdExcludes?: string[];
3021
- /**
3022
- * Custom message to append to the plugin trust warning shown before installation. Only read from policy settings (managed-settings.json / MDM). Useful for enterprise administrators to add organization-specific context (e.g., "All plugins from our internal marketplace are vetted and approved.").
3023
- */
3024
- pluginTrustMessage?: string;
3025
- [k: string]: unknown;
3026
- }
3027
-
3028
2174
  /**
3029
2175
  * Source for loading filesystem-based settings. 'user' - Global user settings (~/.claude/settings.json). 'project' - Project settings (.claude/settings.json). 'local' - Local settings (.claude/settings.local.json).
3030
2176
  */