> ## Documentation Index
> Fetch the complete documentation index at: https://klyx.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Terminal

Extensions can create, manage, and interact with terminal sessions.

## TerminalManager

```kotlin theme={null}
private val terminalManager: TerminalManager by plugin()
```

The `TerminalManager` exposes three subsystems:

| Property         | Type                     | Description                                              |
| ---------------- | ------------------------ | -------------------------------------------------------- |
| `sessionManager` | `TerminalSessionManager` | Create and manage sessions                               |
| `sessionBinder`  | `TerminalSessionBinder`  | Bind/unbind the terminal service (for internal use only) |

## TerminalSessionManager

### Managing sessions

```kotlin theme={null}
// Get all sessions
val sessions: List<TerminalSessionEntry> = sessionManager.sessions.value

// Get current session
val current: TerminalSessionEntry? = sessionManager.currentSession.value
val currentId: Uuid? = sessionManager.currentSessionId.value

// Create a new session
val session = sessionManager.newSession(client = terminalClient)

// Create or get an existing session
val session = sessionManager.getOrCreateSession(id, client)

// Switch to a specific session
sessionManager.switchTo(sessionId)

// Terminate sessions
sessionManager.terminate(sessionId)
sessionManager.terminateCurrentSession()
sessionManager.terminateAll()
```

### TerminalSessionEntry

```kotlin theme={null}
data class TerminalSessionEntry(
    val id: Uuid,
    val session: TerminalSession
)
```

## Terminal paths

```kotlin theme={null}
Paths.rootFs       // dataDir/rootfs — the root filesystem
Paths.home         // filesDir/home — user home directory
Paths.projects     // home/projects — projects directory
Paths.versionFile  // rootFs/.bootstrap-version
```
