Skip to content

claude-code-driver / ClaudeSession

Class: ClaudeSession ​

Defined in: api/claude-session.ts:99

Implements ​

  • AsyncDisposable

Properties ​

PropertyModifierTypeDescriptionDefined in
[asyncDispose]public() => Promise<void>-api/claude-session.ts:105
cwdreadonlystring-api/claude-session.ts:101
debugreadonlyobject-api/claude-session.ts:104
debug.tracePath?readonlystring-api/claude-session.ts:104
debug.captureScreenpublic() => Promise<string>-api/claude-session.ts:104
debug.viewCommandpublic() => string-api/claude-session.ts:104
exitedreadonlyPromise<SessionExitInfo>Always resolves (D-31).api/claude-session.ts:103
keyreadonlySessionKey-api/claude-session.ts:100

Accessors ​

claudeSessionId ​

Get Signature ​

ts
get claudeSessionId(): string;

Defined in: api/claude-session.ts:205

Returns ​

string


state ​

Get Signature ​

ts
get state(): SessionSnapshot;

Defined in: api/claude-session.ts:209

Returns ​

SessionSnapshot


status ​

Get Signature ​

ts
get status(): AgentStatus;

Defined in: api/claude-session.ts:213

Returns ​

AgentStatus

Methods ​

answerQuestion() ​

ts
answerQuestion(key, answers): Promise<void>;

Defined in: api/claude-session.ts:270

Parameters ​

ParameterType
keyPermissionKey
answersReadonly<Record<string, string>>

Returns ​

Promise<void>


approvePlan() ​

ts
approvePlan(key, o): Promise<void>;

Defined in: api/claude-session.ts:274

Parameters ​

ParameterType
keyPermissionKey
o{ approve: boolean; feedback?: string; mode?: "default" | "acceptEdits"; }
o.approveboolean
o.feedback?string
o.mode?"default" | "acceptEdits"

Returns ​

Promise<void>


close() ​

ts
close(opts?): Promise<SessionExitInfo>;

Defined in: api/claude-session.ts:484

Idempotent; a kill while a graceful close is still running escalates it.

Parameters ​

ParameterType
opts?{ graceMs?: number; mode?: "graceful" | "kill"; waitForBackgroundMs?: number; }
opts.graceMs?number
opts.mode?"graceful" | "kill"
opts.waitForBackgroundMs?number

Returns ​

Promise<SessionExitInfo>


command() ​

ts
command(
   name, 
   args?, 
   opts?
): Promise<{
  output?: string;
}>;

Defined in: api/claude-session.ts:251

Parameters ​

ParameterType
namestring
args?string
opts?{ unsafe?: boolean; }
opts.unsafe?boolean

Returns ​

Promise<{ output?: string; }>


events() ​

ts
events(opts?): AsyncIterableIterator<SessionEvent>;

Defined in: api/claude-session.ts:340

Parameters ​

ParameterType
opts?{ fromSeq?: number; highWaterMark?: number; types?: readonly ( | "channel" | "security" | "exited" | "text" | "turnStarted" | "compaction" | "warning" | "ready" | "suspended" | "usageLimited" | "authRequired" | "status" | "claudeSessionChanged" | "turnQueued" | "externalTurn" | "textRetracted" | "message" | "toolStarted" | "toolEnded" | "permissionRequested" | "permissionResolved" | "inputRequested" | "subagentStarted" | "subagentEnded" | "modelCall" | "turnEnded" | "authRestored" | "gap" | "resumed")[]; }
opts.fromSeq?number
opts.highWaterMark?number
opts.types?readonly ( | "channel" | "security" | "exited" | "text" | "turnStarted" | "compaction" | "warning" | "ready" | "suspended" | "usageLimited" | "authRequired" | "status" | "claudeSessionChanged" | "turnQueued" | "externalTurn" | "textRetracted" | "message" | "toolStarted" | "toolEnded" | "permissionRequested" | "permissionResolved" | "inputRequested" | "subagentStarted" | "subagentEnded" | "modelCall" | "turnEnded" | "authRestored" | "gap" | "resumed")[]

Returns ​

AsyncIterableIterator<SessionEvent>


interrupt() ​

ts
interrupt(): Promise<{
  turnKey?: TurnKey;
}>;

Defined in: api/claude-session.ts:261

Returns ​

Promise<{ turnKey?: TurnKey; }>


on() ​

ts
on<T>(type, l): Unsubscribe;

Defined in: api/claude-session.ts:327

Type Parameters ​

Type Parameter
T extends | "channel" | "security" | "exited" | "text" | "turnStarted" | "compaction" | "warning" | "ready" | "suspended" | "usageLimited" | "authRequired" | "status" | "claudeSessionChanged" | "turnQueued" | "externalTurn" | "textRetracted" | "message" | "toolStarted" | "toolEnded" | "permissionRequested" | "permissionResolved" | "inputRequested" | "subagentStarted" | "subagentEnded" | "modelCall" | "turnEnded" | "authRestored" | "gap" | "resumed"

Parameters ​

ParameterType
typeT
l(e) => void

Returns ​

Unsubscribe


onAny() ​

ts
onAny(l): Unsubscribe;

Defined in: api/claude-session.ts:335

Parameters ​

ParameterType
l(e) => void

Returns ​

Unsubscribe


respondToPermission() ​

ts
respondToPermission(key, decision): Promise<void>;

Defined in: api/claude-session.ts:266

Parameters ​

ParameterType
keyPermissionKey
decisionPermissionDecision

Returns ​

Promise<void>


resume() ​

ts
resume(): Promise<void>;

Defined in: api/claude-session.ts:459

Resume a suspended session now (resolves at ready; no-op when live). Rejects with the start error and stays suspended.

Returns ​

Promise<void>


send() ​

ts
send(prompt, opts?): Turn;

Defined in: api/claude-session.ts:217

Parameters ​

ParameterType
promptstring
opts?{ signal?: AbortSignal; whenBusy?: "reject" | "wait"; }
opts.signal?AbortSignal
opts.whenBusy?"reject" | "wait"

Returns ​

Turn


setMode() ​

ts
setMode(mode): Promise<void>;

Defined in: api/claude-session.ts:284

Parameters ​

ParameterType
modePermissionMode

Returns ​

Promise<void>


suspend() ​

ts
suspend(): Promise<void>;

Defined in: api/claude-session.ts:448

Stop Claude now and keep the session (ICR 0041). The next send, command, usage or setMode resumes the same conversation. Rejects E_BUSY (details.blocker names the first blocker, e.g. permission; details.blockers lists all) when anything is in progress or waiting for an answer; a suspend never denies or drops a prompt.

Returns ​

Promise<void>


turn() ​

ts
turn(key): Turn | undefined;

Defined in: api/claude-session.ts:469

Parameters ​

ParameterType
keyTurnKey

Returns ​

Turn | undefined


turns() ​

ts
turns(): readonly TurnSnapshot[];

Defined in: api/claude-session.ts:473

Returns ​

readonly TurnSnapshot[]


usage() ​

ts
usage(opts?): Promise<UsageInfo>;

Defined in: api/claude-session.ts:292

Current subscription usage, read from Claude's /usage dialog. Costs no model call; the dialog is dismissed afterwards. Rejects E_ENVIRONMENT (details.reason: 'noMeters') when the dialog shows no usage meters.

Parameters ​

ParameterType
opts?{ signal?: AbortSignal; timeoutMs?: number; }
opts.signal?AbortSignal
opts.timeoutMs?number

Returns ​

Promise<UsageInfo>


waitFor() ​

ts
waitFor(pred, opts?): Promise<SessionSnapshot>;

Defined in: api/claude-session.ts:405

Rejects E_TIMEOUT{E_WAIT_TIMEOUT}, E_SESSION_CLOSED/… for kernel failures, the caller's own signal.reason as is when the signal aborts (a DOMException AbortError/TimeoutError, or whatever the host passed to abort(reason)), and the host predicate's own exception as is: neither is a library invariant failure (ICR 0029).

Parameters ​

ParameterType
pred(s) => boolean
opts?{ signal?: AbortSignal; timeoutMs?: number; }
opts.signal?AbortSignal
opts.timeoutMs?number

Returns ​

Promise<SessionSnapshot>


waitForIdle() ​

ts
waitForIdle(opts?): Promise<SessionSnapshot>;

Defined in: api/claude-session.ts:428

Idle with an empty library queue (a suspended session counts); rejects E_SESSION_EXITED if the session exits first.

Parameters ​

ParameterType
opts?{ signal?: AbortSignal; timeoutMs?: number; }
opts.signal?AbortSignal
opts.timeoutMs?number

Returns ​

Promise<SessionSnapshot>


waitForQuiescence() ​

ts
waitForQuiescence(opts?): Promise<SessionSnapshot>;

Defined in: api/claude-session.ts:436

Idle, nothing queued, no background agents or tasks (P-LIFE-21; a suspended session counts).

Parameters ​

ParameterType
opts?{ signal?: AbortSignal; timeoutMs?: number; }
opts.signal?AbortSignal
opts.timeoutMs?number

Returns ​

Promise<SessionSnapshot>


wakeNow() ​

ts
wakeNow(): Promise<void>;

Defined in: api/claude-session.ts:323

Returns ​

Promise<void>


closeAll() ​

ts
static closeAll(): Promise<void>;

Defined in: api/claude-session.ts:201

Closes every live session of this process (every package copy).

Returns ​

Promise<void>


start() ​

ts
static start(opts): Promise<ClaudeSession>;

Defined in: api/claude-session.ts:174

Resolves at ready; rejects ClaudeSessionError (E_CONFIG for invalid options, E_SESSION_CLOSED{aborted} on abort, startup codes otherwise).

Parameters ​

ParameterType
optsClaudeSessionOptions

Returns ​

Promise<ClaudeSession>

Released under the MIT License. Not affiliated with Anthropic.