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.
# 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
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.
https://abc123-def456-terminal-1.node-us-1.containers.hoody.comabc123Project
Your project ID.
def456Container
The container ID.
terminalService
Which Kit service — terminal, files, display…
1Instance
Run many: terminal-1, terminal-2, terminal-3.
node-us-1Server
The node your container runs on.
The URL is the interface. No ports, no config, no network setup.
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.
POST a command. You get a command_id and status: running straight away.
Poll the result endpoint for the combined output and the exit code.
Open a WebSocket for real-time terminal frames as they happen.
Everything built in
Zero configuration. Terminal ships ready the moment your container starts.
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=/docsShell 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.
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 endpointscurl -X POST .../terminal/execute -d '{"command":"npm test"}'
Session Management
6 endpointscurl .../terminal/sessions → [{ "terminal_id": "1", "shell": "bash" }]
Streaming & Automation
4 endpointsWS .../terminal/ws — real-time terminal frames
System & Meta
7 endpointscurl .../system/resources → { "cpu": 45.2, "memory": { ... } }
Built for real workflows
Each scenario maps to a specific Terminal endpoint.
- 01
Remote Development
GET /terminal/wsOpen your container from any device. Full shell access with live session state — pick up where you left off.
- 02
AI Agent Orchestration
POST /terminal/executeAgents run shell commands over HTTP and read structured results. Build, test, deploy — programmatically.
- 03
Team Debugging
GET /terminal/sessionsPoint teammates at the same session and debug together — same output, same input, in real time.
- 04
GUI Applications
?display=NLaunch 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/resourcesReal-time CPU, memory, disk, and network stats, running processes, and listening ports.
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.