Skip to main content

Properties

The agent’s cognition.ai/* capability flags (agentCapabilities._meta).
JsonRpcConnection
required
The agent’s initialize response (capabilities, auth methods).
undefined | AgentRequestHandler
required
Type: AgentRequestHandlerAnswer agent → client requests the SDK does not handle itself (anything but session/request_permission). Without a handler — or when the handler returns undefined — built-in defaults apply (diagnostics report none) and other methods are declined with method not found.
undefined | (notification: CognitionExtensionNotification) => void
required
Type: CognitionExtensionNotificationObserve connection-scoped _cognition.ai/* notifications — those without a sessionId (or one that matches no tracked session), e.g. mcp/serversChanged and plugins/changed. Session-scoped notifications go to the owning session’s onExtension instead.
Which session/prompt content blocks the agent accepts, and the cloud size limits.
number
required
The ACP protocol version the agent settled on (1 or 2).

Methods

[asyncDispose]()

await using devin = … closes the client at scope exit, once the connection has shut down.

Returns

Promise<void>

assertNotOpen()

Throw unless no session with this id is open on this client.

Parameters

string
required

attach()

Resume an existing session and get just the live session, e.g. to observe it with session.events() or continue it with session.run().

Parameters

string
required

Returns

LocalSession

close()

Shut down the connection and the CLI process. In-flight prompts reject.

connect()

Attach to an already-running ACP agent over arbitrary streams. Exposed for tests and custom transports; most callers want start.

Parameters

RpcStreams
required
null | ChildProcess
Promise<never>

Returns

LocalDevin

createSession()

Create a new local session (one agent conversation rooted at cwd).

Parameters

Returns

LocalSession

deleteSession()

Delete a persisted session and its history.

Parameters

string
required

Returns

Promise<void>

extNotify()

Send a connection-scoped _cognition.ai/* notification (no response).

Parameters

M
required
CognitionRequestParams<M>
required
Send a connection-scoped _cognition.ai/* notification (no response).

Parameters

string
required
unknown

extRequest()

Send a connection-scoped _cognition.ai/* request. Typed when the method is in the generated registry (CognitionAgentResponseMap); any other _cognition.ai/* method is accepted untyped. For session-scoped methods prefer AcpSession.extRequest, which fills in the session id.

Parameters

M
required
CognitionRequestParams<M>
required

Returns

CognitionRequestResult
Send a connection-scoped _cognition.ai/* request. Typed when the method is in the generated registry (CognitionAgentResponseMap); any other _cognition.ai/* method is accepted untyped. For session-scoped methods prefer AcpSession.extRequest, which fills in the session id.

Parameters

string
required
unknown

Returns

Promise<T>

handshake()

Offer the selected version. V2 offers include v1 initialization fields so v1-only agents can still negotiate v1.

Parameters

JsonRpcConnection
required

Returns

InitializeResult

launchSession()

Create a session and submit its first turn. Resolves on turn.accepted, not the turn’s outcome. Cancel explicitly with session.cancel(). Startup errors after creation preserve sessionId; never retry blindly.

Parameters

required
LaunchSessionOptions<LocalSessionOptions, T> & { turn: RunOptions<T> & { output…
required

Returns

LaunchedSessionLocalSession
Create a session and submit its first turn. Resolves on turn.accepted, not the turn’s outcome. Cancel explicitly with session.cancel(). Startup errors after creation preserve sessionId; never retry blindly.

Parameters

required
LaunchSessionOptions<LocalSessionOptions, unknown> & { turn: Omit<RunOptions<un…

Returns

LaunchedSessionLocalSession
Create a session and submit its first turn. Resolves on turn.accepted, not the turn’s outcome. Cancel explicitly with session.cancel(). Startup errors after creation preserve sessionId; never retry blindly.

Parameters

required
LaunchSessionOptions<LocalSessionOptions, T>
required

Returns

LaunchedSessionLocalSession

listSessions()

List persisted sessions, most recently updated first.

Parameters

Returns

SessionInfo

listSubagents()

List the subagents running for sessions rooted at cwd (defaults to the client-level cwd).

Parameters

string

Returns

SubagentsListResponse

loadSession()

Resume a persisted session (sessions survive CLI restarts). The session keeps its persisted model — the client-level model default applies only to createSession; use session.setModel to switch.

Parameters

string
required

Returns

LoadedLocalSession

mcpServers()

Parameters

Returns

McpServer

openSession()

Bring a freshly constructed session live: wire its permission handler, route notifications to it, and run the agent request that establishes it (session/new follow-ups such as choosing the model or organization). A failing request releases the session and surfaces as a SessionStartupError carrying the allocated id.

Parameters

required
() => Promise<unknown>

Returns

LocalSession

releaseSession()

Detach a session: active turns reject, observers end, and the handle cannot send requests.

Parameters

string
required

resumeSession()

Resume an existing session: like openSession, but the agent replays history as session/update notifications before load settles; those are captured and returned instead of being delivered live. Refuses a session that is already open on this client, since loading it again would steal its notification routing.

Parameters

required
() => Promise<unknown>
required

Returns

LoadedSessionLocalSession

spawn()

Spawn the CLI at cliPath as devin acp with exactly env, and perform the ACP initialize handshake. Unlike start this neither requires an API key nor redirects the CLI’s state directories, for hosts whose CLI is already authenticated (e.g. a sandbox).

Parameters

string
required
Omit<LocalDevinOptions, "apiKey" | "stateDir">
ProcessEnv

Returns

LocalDevin

start()

Spawn devin acp and perform the ACP initialize handshake.

Parameters

Returns

LocalDevin

supports()

Whether the agent advertised a cognition.ai/* capability, e.g. devin.supports("cognition.ai/sessionRename") before calling session.rename().

Parameters

string
required

Returns

boolean

track()

Register a session so its notifications are routed to it.

Parameters

required

untrack()

Stop routing notifications to a session (e.g. after deleting it).

Parameters

string
required