naftiko: 1.0.0-alpha2 info: label: Runloop Pty (devbox) description: Runloop pty capability covering one Runloop business surface. 2 operations. tags: - Runloop - Pty - AI Agents - Sandboxes created: '2026-05-25' modified: '2026-05-25' binds: - namespace: env keys: RUNLOOP_API_KEY: RUNLOOP_API_KEY capability: consumes: - type: http namespace: devbox-pty baseUri: https://api.runloop.ai description: Runloop pty business capability. Self-contained, no shared references. resources: - name: pty-session-name path: /pty/{session_name} operations: - name: connectDevboxPtySession method: GET description: Create or reconnect to a PTY session. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: session_name in: path type: string description: The client-chosen PTY session name. Must be 1..=256 ASCII letters, digits, '-' and '_'. Reusing the same name reconnects to the same logical PTY session when it is still available. required: true - name: cols in: query type: integer description: Optional initial terminal width in character cells (1..=1000). Defaults to 80 when omitted. Applied only if both cols and rows are provided; otherwise ignored. required: false - name: rows in: query type: integer description: Optional initial terminal height in character cells (1..=1000). Defaults to 24 when omitted. Applied only if both cols and rows are provided; otherwise ignored. required: false - name: pty-session-name-control path: /pty/{session_name}/control operations: - name: controlDevboxPtySession method: POST description: Send a control command to a PTY session. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: session_name in: path type: string description: The client-chosen PTY session name. Must be 1..=256 ASCII letters, digits, '-' and '_'. required: true - name: body in: body type: object description: Request body (JSON). required: false authentication: type: bearer value: '{{env.RUNLOOP_API_KEY}}' placement: header exposes: - type: rest namespace: devbox-pty-rest port: 8080 description: REST adapter for Runloop pty. One Spectral-compliant resource per consumed operation. resources: - path: /pty/{session_name} name: pty-session-name description: REST surface for pty-session-name. operations: - method: GET name: connectDevboxPtySession description: Create or reconnect to a PTY session. call: devbox-pty.connectDevboxPtySession with: session_name: rest.params.session_name cols: rest.params.cols rows: rest.params.rows outputParameters: - type: object mapping: $. - path: /pty/{session_name}/control name: pty-session-name-control description: REST surface for pty-session-name-control. operations: - method: POST name: controlDevboxPtySession description: Send a control command to a PTY session. call: devbox-pty.controlDevboxPtySession with: session_name: rest.params.session_name body: rest.body outputParameters: - type: object mapping: $. - type: mcp namespace: devbox-pty-mcp port: 9090 transport: http description: MCP adapter for Runloop pty. One tool per consumed operation. tools: - name: runloop-devbox-pty-connectDevboxPtySession description: Create or reconnect to a PTY session. hints: readOnly: true destructive: false idempotent: true call: devbox-pty.connectDevboxPtySession with: session_name: tools.session_name cols: tools.cols rows: tools.rows outputParameters: - type: object mapping: $. - name: runloop-devbox-pty-controlDevboxPtySession description: Send a control command to a PTY session. hints: readOnly: false destructive: false idempotent: false call: devbox-pty.controlDevboxPtySession with: session_name: tools.session_name body: tools.body outputParameters: - type: object mapping: $.