> ISPO SDK documentation. [HTML](https://ispo.ai/docs/interfaces/core.Supporting_types.AgentSpawnInput.html) · [Documentation index](https://ispo.ai/docs/llms.txt)

# Interface AgentSpawnInput

Spawn an agent terminal at a target (spec §10.22). Gated PER TARGET:

*   SELF-RUN — `projectId` is THIS project → needs only `agent.dispatch`. Use it to launch and auto-run your own worker agent (e.g. an eval runner). No privileged grant, no consent prompt.
*   ORCHESTRATION — `projectId` is another project → needs the privileged `agent.orchestrate` grant, and the first spawn into each target is confirmed by the user once. The spawned agent gets the TARGET's authority, never this project's (no authority laundering). `autoSubmit` fires the seed prompt unattended (honored for self-run and orchestration alike — §10.22). Pair the returned `terminalId` with `host.navigate({ kind: 'agents', terminalId })` to bring the user straight to the spawned terminal.

```typescript
interface AgentSpawnInput {
    agent: "claude" | "codex" | "opencode" | "pi" | "cursor" | "ispo";
    autoSubmit?: boolean;
    projectId: string;
    seedPrompt?: string;
    timeoutMs?: number;
}
```

Types: [agent](#agent), [autoSubmit](#autosubmit), [projectId](#projectid), [seedPrompt](#seedprompt), [timeoutMs](#timeoutms)

##### Index

### <a id="properties"></a>Properties

[agent](#agent) [autoSubmit?](#autosubmit) [projectId](#projectid) [seedPrompt?](#seedprompt) [timeoutMs?](#timeoutms)

## <a id="properties-1"></a>Properties

### <a id="agent"></a>agent

```typescript
agent: "claude" | "codex" | "opencode" | "pi" | "cursor" | "ispo"
```

### <a id="autosubmit"></a>`Optional`autoSubmit

```typescript
autoSubmit?: boolean
```

Fire the staged prompt automatically. Honored for both self-run and cross-target orchestration (§10.22); only the grant-less MCP agent binding stays prepare-only.

### <a id="projectid"></a>projectId

```typescript
projectId: string
```

### <a id="seedprompt"></a>`Optional`seedPrompt

```typescript
seedPrompt?: string
```

Seed prompt staged into the new terminal. 1..64KB.

### <a id="timeoutms"></a>`Optional`timeoutMs

```typescript
timeoutMs?: number
```

Client RPC budget for this INTERACTIVE call (ms). A cross-target spawn waits on the first-use consent prompt the user must answer, plus the agent boot — which exceeds the default 10s and would otherwise time out while the host completes the spawn (orphaning the agent). Pass a larger value (capped by the transport). Host-ignored; consumed by the SDK transport.
