Skip to content
HTTP Command API
WebSocket Streaming
Shared Sessions
Browser Terminal
4 Shells
Display Integration
22 API Endpoints
Live Session State
HTTP Command API
WebSocket Streaming
Shared Sessions
Browser Terminal
4 Shells
Display Integration
22 API Endpoints
Live Session State
HTTP Command API
WebSocket Streaming
Shared Sessions
Browser Terminal
4 Shells
Display Integration
22 API Endpoints
Live Session State
HTTP Command API
WebSocket Streaming
Shared Sessions
Browser Terminal
4 Shells
Display Integration
22 API Endpoints
Live Session State
home / kit / terminal
TerminalKit Service

Terminal

A Linux shell exposed as an HTTPS endpoint. Run commands via API, open it in any browser, stream over WebSocket, or SSH in directly.

Quickstart

# Run a command

$ curl -X POST \

https://abc123-def456-terminal-1.node-us-1.containers.hoody.com/api/v1/terminal/execute \

-H "Authorization: Bearer $TOKEN" \

-d '{"command":"echo Hello from Hoody!"}'

> { "command_id": "42", "status": "running" }

 

# Read the result

$ curl \

https://abc123-def456-terminal-1.node-us-1.containers.hoody.com/api/v1/terminal/result/42 \

-H "Authorization: Bearer $TOKEN"

> { "status": "completed", "output": "Hello from Hoody!", "exit_code": 0 }

 

# Or open the URL in any browser

https://abc123-def456-terminal-1.node-us-1.containers.hoody.com

home / kit / terminal / url
URL Structure

The URL is the interface

Every terminal has one predictable address. Read it left to right and you know exactly which service, instance, and container you're talking to.

terminal service URL
https://abc123-def456-terminal-1.node-us-1.containers.hoody.com
abc123

Project

Your project ID.

def456

Container

The container ID.

terminal

Service

Which Kit service — terminal, files, display…

1

Instance

Run many: terminal-1, terminal-2, terminal-3.

node-us-1

Server

The node your container runs on.

The URL is the interface. No ports, no config, no network setup.

home / kit / terminal / api
HTTP API

Every command is an API call

Execution is async. Fire a command, get an ID back, then read the result — or stream it live over WebSocket.

1Run it
POST /api/v1/terminal/execute
-d '{"command": "npm test"}'
{
"command_id": "42",
"status": "running"
}

POST a command. You get a command_id and status: running straight away.

2Read the result
GET /api/v1/terminal/result/42
{
"command_id": "42",
"status": "completed",
"output": "24 passed, 0 failed",
"exit_code": 0
}

Poll the result endpoint for the combined output and the exit code.

3Or stream live
WS /api/v1/terminal/ws?terminal_id=1
> build started…
> compiling 42 modules
> 24 passed, 0 failed

Open a WebSocket for real-time terminal frames as they happen.

home / kit / terminal / capabilities
Capabilities

Everything built in

Zero configuration. Terminal ships ready the moment your container starts.

Web Terminal

A full terminal in the browser

Open the URL on any device — phone, tablet, laptop. Configure the web UI entirely through query parameters: shell, font size, read-only mode, title, and side panels.

?shell=zsh?fontSize=16?readonly=true?title=Prod?panel=/docs

Shell Selection

bash, zsh, fish, sh — pick one with the shell parameter.

Automation API

Send key presses, paste text, and wait for the screen to settle — drive interactive programs over HTTP.

Terminal Screenshots

Render the buffer to PNG, JPEG, or GIF for docs and visual checks.

Live Session State

Working directory, shell, and history are kept while the session is alive and survive reconnections.

SSH to Any Server

Open a session as a remote SSH connection — host, user, and key as parameters.

home / kit / terminal / endpoints
HTTP API

22 endpoints, full control

Four groups — command execution, session management, streaming & automation, and system monitoring. Every endpoint returns structured JSON with bearer-token auth.

Command Execution

5 endpoints

curl -X POST .../terminal/execute -d '{"command":"npm test"}'

POST
/api/v1/terminal/executeRun a command, returns a command_id
GET
/api/v1/terminal/result/{command_id}Get result + exit code
POST
/api/v1/terminal/execute/{command_id}/abortAbort a running command
POST
/api/v1/terminal/writeWrite raw input to the PTY
GET
/api/v1/terminal/history/{terminal_id}Session command history

Session Management

6 endpoints

curl .../terminal/sessions → [{ "terminal_id": "1", "shell": "bash" }]

GET
/api/v1/terminal/sessionsList active sessions
POST
/api/v1/terminal/createCreate a session
DELETE
/api/v1/terminal/{terminal_id}End a session
GET
/api/v1/terminal/rawRaw output buffer (text/html)
GET
/api/v1/terminal/screenshotRender buffer to PNG/JPEG/GIF
GET
/api/v1/terminal/openapi.jsonOpenAPI 3.0 spec

Streaming & Automation

4 endpoints

WS .../terminal/ws — real-time terminal frames

WS
/api/v1/terminal/wsReal-time bidirectional I/O
POST
/api/v1/terminal/pressSend key presses (ctrl+c, enter)
POST
/api/v1/terminal/pastePaste text (bracketed mode)
POST
/api/v1/terminal/waitWait for a screen condition

System & Meta

7 endpoints

curl .../system/resources → { "cpu": 45.2, "memory": { ... } }

GET
/api/v1/terminal/healthService health check
GET
/api/v1/system/resourcesCPU, memory, disk, network
GET
/api/v1/system/processesRunning processes
GET
/api/v1/system/processes/{pid}Inspect a process
GET
/api/v1/system/portsListening ports
POST
/api/v1/system/process/signalSend a signal to a PID
GET
/api/v1/system/displaysActive X11 displays
home / kit / terminal / use-cases
Use Cases

Built for real workflows

Each scenario maps to a specific Terminal endpoint.

  • 01

    Remote Development

    GET /terminal/ws

    Open your container from any device. Full shell access with live session state — pick up where you left off.

  • 02

    AI Agent Orchestration

    POST /terminal/execute

    Agents run shell commands over HTTP and read structured results. Build, test, deploy — programmatically.

  • 03

    Team Debugging

    GET /terminal/sessions

    Point teammates at the same session and debug together — same output, same input, in real time.

  • 04

    GUI Applications

    ?display=N

    Launch a graphical app from the terminal and it appears at the matching Hoody Display URL.

  • 05

    CI/CD Integration

    GET /terminal/result/{id}

    Run build steps and tests over HTTP and gate on the exit code — from any pipeline, with plain curl.

  • 06

    Live Monitoring

    GET /system/resources

    Real-time CPU, memory, disk, and network stats, running processes, and listening ports.

home / kit / terminal / start

Ready to explore?

Terminal is one of the 18 Kit services in every Hoody container. No installation, no configuration — explore the docs or browse the API reference above.

Read the Docs