---
title: "Switch a live session between its TUI and Chat controllers"
method: POST
path: "/api/v1/sessions/{sessionId}/interface-transition"
tags: ["sessions"]
---

# Switch a live session between its TUI and Chat controllers

`POST /api/v1/sessions/{sessionId}/interface-transition`

## Path parameters

- `sessionId` string, required — Session identifier, e.g. project-1.

## Request body

- StartSessionInterfaceTransitionRequest
  - `policy` 'drain' | 'interrupt', required
  - `targetMode` 'chat' | 'tui', required

## Response `202`

Accepted

- StartSessionInterfaceTransitionResponse
  - `ok` boolean, required
  - `sessionId` string, required
  - `transition` SessionInterfaceTransition, required
    - `completedAt` string, date-time, nullable
    - `createdAt` string, date-time, required
    - `errorCode` string
    - `errorDetail` string
    - `id` string, required
    - `phase` 'requested' | 'preflighting' | 'draining' | 'source_stopping' | 'source_stopped' | 'target_starting' | 'activating' | 'completed' | 'failed' | 'cancelled' | 'recovery_required', required
    - `policy` 'drain' | 'interrupt', required
    - `sessionId` string, required
    - `sourceMode` 'chat' | 'tui', required
    - `targetMode` 'chat' | 'tui', required
    - `updatedAt` string, date-time, required

## Other responses

- `400` — Bad Request
- `404` — Not Found
- `409` — Conflict
- `500` — Internal Server Error
- `501` — Not Implemented

---

[API](https://skmtc.net/composiohq/apis/agent-orchestrator-http-daemon.md) · [All operations](https://skmtc.net/composiohq/apis/agent-orchestrator-http-daemon/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/composiohq/agent-orchestrator-http-daemon/versions/0754881ee8f4/schema)
