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

# Interface AgentProviderDescriptor

```typescript
interface AgentProviderDescriptor {
    available: boolean;
    defaultEffort?: string;
    defaultModel?: string;
    id: "claude" | "codex" | "opencode" | "pi" | "cursor" | "ispo";
    models: readonly AgentProviderModel[];
    name: string;
    selectable: boolean;
    supports: {
        drivenSession: boolean;
        hostMcp: boolean;
        observedTerminal: boolean;
    };
    unavailableReason?: { code: string; message: string; remedy?: string };
}
```

Types: [available](#available), [defaultEffort](#defaulteffort), [defaultModel](#defaultmodel), [id](#id), [models](#models), [AgentProviderModel](core.AgentProviderModel.md), [name](#name), [selectable](#selectable), [supports](#supports), [unavailableReason](#unavailablereason)

##### Index

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

[available](#available) [defaultEffort?](#defaulteffort) [defaultModel?](#defaultmodel) [id](#id) [models](#models) [name](#name) [selectable](#selectable) [supports](#supports) [unavailableReason?](#unavailablereason)

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

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

```typescript
available: boolean
```

### <a id="defaulteffort"></a>`Optional`defaultEffort

```typescript
defaultEffort?: string
```

### <a id="defaultmodel"></a>`Optional`defaultModel

```typescript
defaultModel?: string
```

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

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

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

```typescript
models: readonly AgentProviderModel[]
```

Types: [AgentProviderModel](core.AgentProviderModel.md)

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

```typescript
name: string
```

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

```typescript
selectable: boolean
```

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

```typescript
supports: {
    drivenSession: boolean;
    hostMcp: boolean;
    observedTerminal: boolean;
}
```

### <a id="unavailablereason"></a>`Optional`unavailableReason

```typescript
unavailableReason?: { code: string; message: string; remedy?: string }
```
