MCPcopy
hub / github.com/claude-code-best/claude-code / runHeadless

Function runHeadless

src/cli/print.ts:458–998  ·  view source on GitHub ↗
(
  inputPrompt: string | AsyncIterable<string>,
  getAppState: () => AppState,
  setAppState: (f: (prev: AppState) => AppState) => void,
  commands: Command[],
  tools: Tools,
  sdkMcpConfigs: Record<string, McpSdkServerConfig>,
  agents: AgentDefinition[],
  options: {
    continue: boolean | undefined
    resume: string | boolean | undefined
    resumeSessionAt: string | undefined
    verbose: boolean | undefined
    outputFormat: string | undefined
    jsonSchema: Record<string, unknown> | undefined
    permissionPromptToolName: string | undefined
    allowedTools: string[] | undefined
    thinkingConfig: ThinkingConfig | undefined
    maxTurns: number | undefined
    maxBudgetUsd: number | undefined
    taskBudget: { total: number } | undefined
    systemPrompt: string | undefined
    appendSystemPrompt: string | undefined
    userSpecifiedModel: string | undefined
    fallbackModel: string | undefined
    teleport: string | true | null | undefined
    sdkUrl: string | undefined
    replayUserMessages: boolean | undefined
    includePartialMessages: boolean | undefined
    forkSession: boolean | undefined
    rewindFiles: string | undefined
    enableAuthStatus: boolean | undefined
    agent: string | undefined
    workload: string | undefined
    setupTrigger?: 'init' | 'maintenance' | undefined
    sessionStartHooksPromise?: ReturnType<typeof processSessionStartHooks>
    setSDKStatus?: (status: SDKStatus) => void
  },
)

Source from the content-addressed store, hash-verified

456}
457
458export async function runHeadless(
459 inputPrompt: string | AsyncIterable<string>,
460 getAppState: () => AppState,
461 setAppState: (f: (prev: AppState) => AppState) => void,
462 commands: Command[],
463 tools: Tools,
464 sdkMcpConfigs: Record<string, McpSdkServerConfig>,
465 agents: AgentDefinition[],
466 options: {
467 continue: boolean | undefined
468 resume: string | boolean | undefined
469 resumeSessionAt: string | undefined
470 verbose: boolean | undefined
471 outputFormat: string | undefined
472 jsonSchema: Record<string, unknown> | undefined
473 permissionPromptToolName: string | undefined
474 allowedTools: string[] | undefined
475 thinkingConfig: ThinkingConfig | undefined
476 maxTurns: number | undefined
477 maxBudgetUsd: number | undefined
478 taskBudget: { total: number } | undefined
479 systemPrompt: string | undefined
480 appendSystemPrompt: string | undefined
481 userSpecifiedModel: string | undefined
482 fallbackModel: string | undefined
483 teleport: string | true | null | undefined
484 sdkUrl: string | undefined
485 replayUserMessages: boolean | undefined
486 includePartialMessages: boolean | undefined
487 forkSession: boolean | undefined
488 rewindFiles: string | undefined
489 enableAuthStatus: boolean | undefined
490 agent: string | undefined
491 workload: string | undefined
492 setupTrigger?: 'init' | 'maintenance' | undefined
493 sessionStartHooksPromise?: ReturnType<typeof processSessionStartHooks>
494 setSDKStatus?: (status: SDKStatus) => void
495 },
496): Promise<void> {
497 if (
498 process.env.USER_TYPE === 'ant' &&
499 isEnvTruthy(process.env.CLAUDE_CODE_EXIT_AFTER_FIRST_RENDER)
500 ) {
501 process.stderr.write(
502 `\nStartup time: ${Math.round(process.uptime() * 1000)}ms\n`,
503 )
504 // eslint-disable-next-line custom-rules/no-process-exit
505 process.exit(0)
506 }
507
508 // Fire user settings download now so it overlaps with the MCP/tool setup
509 // below. Managed settings already started in main.tsx preAction; this gives
510 // user settings a similar head start. The cached promise is joined in
511 // installPluginsAndApplyMcpInBackground before plugin install reads
512 // enabledPlugins.
513 if (
514 feature('DOWNLOAD_USER_SETTINGS') &&
515 (isEnvTruthy(process.env.CLAUDE_CODE_REMOTE) || getIsRemoteMode())

Callers 1

runFunction · 0.85

Calls 15

getIsRemoteModeFunction · 0.85
downloadUserSettingsFunction · 0.85
applySettingsChangeFunction · 0.85
isFastModeEnabledFunction · 0.85
isQualifiedForGroveFunction · 0.85
gracefulShutdownSyncFunction · 0.85
getStructuredIOFunction · 0.85
registerHookEventHandlerFunction · 0.85

Tested by

no test coverage detected