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

# Interface ConnectionHandle

```typescript
interface ConnectionHandle {
    disconnect: () => void;
    hostDevBuild: boolean | null;
    theme: ThemeName | null;
}
```

Types: [disconnect](#disconnect), [hostDevBuild](#hostdevbuild), [theme](#theme), [ThemeName](../types/core.ThemeName.md)

##### Index

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

[disconnect](#disconnect) [hostDevBuild](#hostdevbuild) [theme](#theme)

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

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

```typescript
disconnect: () => void
```

Stop listening for host messages. The already-applied `.dark` class and the `data-ispo-theme` attribute stay in place — clearing them would cause a flash of mismatched theme, and the project is presumably unmounting anyway.

### <a id="hostdevbuild"></a>`Readonly`hostDevBuild

```typescript
hostDevBuild: boolean | null
```

True when the HOST is an unpackaged dev build, false when packaged, null before a theme frame carried the flag (or under an older host). This is the host build flavor — NOT this project's §3.18 effective bundle mode — so it is stable for the host's whole lifetime. Use it to gate developer-only surfaces (e.g. the Design app's shadcn registry tab).

### <a id="theme"></a>`Readonly`theme

```typescript
theme: ThemeName | null
```

Types: [ThemeName](../types/core.ThemeName.md)

Most recent theme received, or null before first message.
