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

# Attach to Exec Session

> Attach to an existing exec session via WebSocket.



## AsyncAPI

````yaml sprites/api/asyncapi.json execBySessionId
id: execBySessionId
title: Attach to Exec Session
description: Attach to an existing exec session via WebSocket.
servers:
  - id: production
    protocol: wss
    host: api.sprites.dev
    bindings: []
    variables: []
address: /v1/sprites/{name}/exec/{session_id}
parameters:
  - id: name
    jsonSchema:
      type: string
      description: Sprite name within the organization.
    description: Sprite name within the organization.
    type: string
    required: true
    deprecated: false
  - id: session_id
    jsonSchema:
      type: string
      description: Exec session identifier.
    description: Exec session identifier.
    type: string
    required: true
    deprecated: false
bindings: []
operations:
  - &ref_1
    id: execBySessionIdReceive
    title: 'Attach to Exec Session: messages from client'
    description: Messages the Sprites API receives from the client.
    type: receive
    messages:
      - &ref_3
        id: ResizeMessage
        contentType: application/json
        payload:
          - name: ResizeMessage
            type: object
            properties:
              - name: type
                type: string
                description: resize
                required: true
              - name: cols
                type: integer
                description: New column count
                required: true
              - name: rows
                type: integer
                description: New row count
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: resize
              x-parser-schema-id: <anonymous-schema-2>
            cols:
              type: integer
              minimum: 0
              maximum: 65535
              description: New column count
              x-parser-schema-id: <anonymous-schema-3>
            rows:
              type: integer
              minimum: 0
              maximum: 65535
              description: New row count
              x-parser-schema-id: <anonymous-schema-4>
          required:
            - type
            - cols
            - rows
          examples:
            - cols: 180
              rows: 50
              type: resize
          x-parser-schema-id: ResizeMessage
        title: Resize message
        example: |-
          {
            "cols": 180,
            "rows": 50,
            "type": "resize"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: ResizeMessage
    bindings: []
    extensions: &ref_0
      - id: x-parser-unique-object-id
        value: execBySessionId
  - &ref_2
    id: execBySessionIdSend
    title: 'Attach to Exec Session: messages to client'
    description: Messages the Sprites API sends to the client.
    type: send
    messages:
      - &ref_4
        id: SessionInfoMessage
        contentType: application/json
        payload:
          - name: SessionInfoMessage
            type: object
            properties:
              - name: type
                type: string
                description: session_info
                required: true
              - name: session_id
                type: string
                description: Session ID
                required: true
              - name: command
                type: string
                description: Command being executed
                required: true
              - name: created
                type: integer
                description: Unix timestamp of session creation
                required: true
              - name: cols
                type: integer
                description: Terminal columns (TTY mode only)
                required: true
              - name: rows
                type: integer
                description: Terminal rows (TTY mode only)
                required: true
              - name: is_owner
                type: boolean
                description: Whether this attachment owns the session
                required: true
              - name: tty
                type: boolean
                description: Whether session is in TTY mode
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: session_info
              x-parser-schema-id: <anonymous-schema-5>
            session_id:
              type: string
              description: Session ID
              x-parser-schema-id: <anonymous-schema-6>
            command:
              type: string
              description: Command being executed
              x-parser-schema-id: <anonymous-schema-7>
            created:
              type: integer
              format: int64
              description: Unix timestamp of session creation
              x-parser-schema-id: <anonymous-schema-8>
            cols:
              type: integer
              minimum: 0
              maximum: 65535
              description: Terminal columns (TTY mode only)
              x-parser-schema-id: <anonymous-schema-9>
            rows:
              type: integer
              minimum: 0
              maximum: 65535
              description: Terminal rows (TTY mode only)
              x-parser-schema-id: <anonymous-schema-10>
            is_owner:
              type: boolean
              description: Whether this attachment owns the session
              x-parser-schema-id: <anonymous-schema-11>
            tty:
              type: boolean
              description: Whether session is in TTY mode
              x-parser-schema-id: <anonymous-schema-12>
          required:
            - type
            - session_id
            - command
            - created
            - cols
            - rows
            - is_owner
            - tty
          examples:
            - cols: 120
              command: bash
              created: 1767609000
              is_owner: true
              rows: 40
              session_id: '1847'
              tty: true
              type: session_info
          x-parser-schema-id: SessionInfoMessage
        title: Session info message
        example: |-
          {
            "cols": 120,
            "command": "bash",
            "created": 1767609000,
            "is_owner": true,
            "rows": 40,
            "session_id": "1847",
            "tty": true,
            "type": "session_info"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: SessionInfoMessage
      - &ref_5
        id: ExitMessage
        contentType: application/json
        payload:
          - name: ExitMessage
            type: object
            properties:
              - name: type
                type: string
                description: exit
                required: true
              - name: exit_code
                type: integer
                description: Process exit code
                required: true
        headers: []
        jsonPayloadSchema:
          type: object
          properties:
            type:
              type: string
              const: exit
              x-parser-schema-id: <anonymous-schema-13>
            exit_code:
              type: integer
              description: Process exit code
              x-parser-schema-id: <anonymous-schema-14>
          required:
            - type
            - exit_code
          examples:
            - exit_code: 0
              type: exit
          x-parser-schema-id: ExitMessage
        title: Exit message
        example: |-
          {
            "exit_code": 0,
            "type": "exit"
          }
        bindings: []
        extensions:
          - id: x-parser-unique-object-id
            value: ExitMessage
    bindings: []
    extensions: *ref_0
sendOperations:
  - *ref_1
receiveOperations:
  - *ref_2
sendMessages:
  - *ref_3
receiveMessages:
  - *ref_4
  - *ref_5
extensions:
  - id: x-parser-unique-object-id
    value: execBySessionId
securitySchemes:
  - id: bearerAuth
    name: bearerAuth
    type: http
    description: >-
      Sprites API token in the form `<org>/<id>/<secret>`, sent as
      `Authorization: Bearer <token>` on the upgrade request.
    scheme: bearer
    extensions: []

````