Skip to content

Every Hoody container includes 18 HTTP services — your complete toolkit for building, deploying, and operating software. No installation. No configuration. Just instant HTTP access to everything you need.

The revolutionary part: Each service is a URL. Open it in a browser. Use it from your phone. Embed it in an iframe. Share it with a teammate. Control it via AI. Access it all through Hoody OS — a floating-window web-based operating system that lives inside each of your containers — or type ssh hoody.com for the same OS in your terminal. Everything is accessible because everything is HTTP.

Screenshot Needed Hoody OS Workspaces — multiple Kit services visible as floating windows: terminal, file browser, SQLite query interface, AI agent chat, and display viewer
Multiple services visible at once through Hoody OS Workspaces

Infinite Possibilities Through Composition

Section titled “Infinite Possibilities Through Composition”

These 18 services unlock unlimited potential—not through rigid feature sets, but through creative combination.

Each service is designed to be complete on its own while composing naturally with others:

  • Terminals can execute any command—but pair with Displays and GUI apps appear instantly
  • Files can access any storage—but integrate with SQLite for indexed metadata or Exec for automated processing
  • Agent can orchestrate workflows—but give it Terminal access and it controls your entire infrastructure
  • Browser can automate web tasks—but combine with cURL for API integration and SQLite for result storage

The pattern: One service enables the task. Two services multiply capability. Three or more services create workflows impossible on traditional platforms.

You’re not limited to “supported features.” With HTTP as the universal interface, every service can talk to every other service. Build workflows we never imagined—because the tools compose infinitely through HTTP.

This is intentional. Each service is a primitive. Your creativity determines what they become.


When you spawn a container with hoody_kit: true, you immediately get URLs for all 18 services:

https://PROJECT-CONTAINER-terminal-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-display-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-files-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-sqlite-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-exec-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-browser-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-workspaces-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-code-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-curl-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-n-1.SERVER.containers.hoody.icu # Notifications
https://PROJECT-CONTAINER-daemon-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-cron-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-pipe-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-notes-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-watch-1.SERVER.containers.hoody.icu
https://PROJECT-CONTAINER-run-1.SERVER.containers.hoody.icu # Run
https://PROJECT-CONTAINER-logs-1.SERVER.containers.hoody.icu # Proxy Logs
https://PROJECT-CONTAINER-tunnel-1.SERVER.containers.hoody.icu

No setup. No installation. Already running. Just use the URLs.


Hoody Agent includes a production-ready Model Context Protocol (MCP) client that connects to external MCP servers, dynamically discovering their tools at runtime.

  • Dynamic Tool Discovery: The number of available tools depends on which MCP servers you connect — there is no fixed list.
  • Local & Remote Servers: Supports local MCP servers (via stdio) and remote MCP servers (via StreamableHTTP/SSE).
  • OAuth Authentication: Full OAuth flow for authenticated remote MCP servers.
  • Safety First: Destructive operations require confirmation.

🖥️ Workspaces (Hoody UI)

Your floating operating system—manage all containers, projects, and services from one browser interface.

Key Capabilities:

  • Unified dashboard for all containers
  • Drag-and-drop workspace layouts
  • Embed multiple containers in one view
  • Share entire workspace with a URL
  • Access from any device

Perfect for: Project management, monitoring, client presentations

Learn More →

🔤 Terminals

Execute shell commands via HTTP—your Linux terminal as a web service, accessible from anywhere.

Key Capabilities:

  • Web terminal UI in browser
  • HTTP command execution API
  • Multiple terminal instances per container
  • Session state persistence (cwd, env, history)
  • SSH to remote servers (no client needed)
  • Launch GUI apps instantly

Perfect for: Command execution, automation, remote server management, AI agent control

Learn More →API Reference →

🖼️ Displays

Remote desktop via HTTP—run graphical applications and see them in your browser. Zero configuration.

Key Capabilities:

  • Full Linux desktop in browser
  • Multiple display instances (one app per display)
  • Auto-mapping with terminals (terminal-5 → display-5)
  • Session sharing for multiplayer
  • Screenshot API

Perfect for: Visual development tools, GUI applications, browser automation, design software

Learn More →API Reference →

📂 Files

Unified file access via HTTP—read, download, and manage files across local storage and 60+ cloud providers.

Key Capabilities:

  • Web File Manager UI
  • HTTP file streaming
  • 60+ cloud storage integrations
  • File integrity verification (hashes)
  • Shared Storage cross-container access

Perfect for: Cloud aggregation, download verification, cross-container file sharing

Learn More →API Reference →

🗄️ SQLite

Database via HTTP—SQLite queries and KV store accessible through HTTP endpoints.

Key Capabilities:

  • Web Database UI
  • SQL operations via HTTP
  • KV store with time-travel
  • SQLite Drive for multi-container access
  • Atomic operations and batch updates

Perfect for: Configuration management, feature flags, session storage, shared state

Learn More →API Reference →

⚡ Exec

Execute any script via HTTP—turn code into instant API endpoints with dependency management and AI generation.

Key Capabilities:

  • Run TypeScript/JavaScript/Python/Bash via HTTP
  • Automatic dependency installation
  • AI-powered script generation
  • MITM capabilities (intercept/modify services)
  • Built-in logging and monitoring

Perfect for: API endpoints, webhooks, automation, service customization

Learn More →API Reference →

🌐 cURL

HTTP requests as a service—make web requests from your container with scheduling, sessions, and storage.

Key Capabilities:

  • Wrap POST into GET - Turn any POST request into a GET URL (infinite workflows, zero constraints)
  • Execute HTTP requests via API
  • Request scheduling (cron-like)
  • Session management (cookies, headers)
  • Response storage and history

Perfect for: API integrations, web scraping, scheduled tasks, workflow automation

Learn More →API Reference →

🌍 Browser

Chrome automation via HTTP—control Chromium instances through REST API for testing and automation.

Key Capabilities:

  • Browser instance management
  • Page interaction (click, type, scroll)
  • Screenshot capture
  • Network interception
  • Health monitoring

Perfect for: Web scraping, automated testing, screenshot services

Learn More →API Reference →

⚙️ Daemons

Process management via HTTP—manage long-running background services through HTTP API.

Key Capabilities:

  • Daemon lifecycle control (start/stop/restart)
  • Process monitoring and health checks
  • Log aggregation
  • Auto-restart on failure
  • Resource usage tracking

Perfect for: Background services, worker processes, monitoring daemons

Learn More →API Reference →

🕐 Cron

Managed cron jobs via HTTP—create, update, enable/disable, and auto-expire scheduled tasks through a REST API.

Key Capabilities:

  • Managed entries with UUID, metadata, and comments
  • Enable/disable without deletion
  • Auto-expiration with background cleanup
  • Per-user crontab management
  • Raw crontab read/write for full control
  • Standard 5-field cron + macros (@hourly, @daily, etc.)

Perfect for: Scheduled backups, periodic data processing, maintenance tasks, temporary monitoring

Learn More →API Reference →

🔔 Notifications

Push notifications via HTTP—trigger desktop/mobile notifications through HTTP endpoints.

Key Capabilities:

  • Desktop push notifications
  • Custom icons and sounds
  • Notification history
  • WebSocket streaming
  • Toast/banner/alert styles

Perfect for: Build alerts, monitoring notifications, user engagement

Learn More →API Reference →

💻 Code

VS Code in browser via HTTP—full-featured code editor accessible through web URL.

Key Capabilities:

  • Complete VS Code experience
  • Extensions and themes
  • Terminal integration
  • Multi-instance support
  • Health monitoring

Perfect for: Web-based development, collaborative coding, mobile development

Learn More →API Reference →

📡 Pipe

Streaming data transfer over HTTP—named pipes over the internet. Send to a path, receive from the same path, data flows through in real-time.

Key Capabilities:

  • Real-time streaming (not store-and-forward)
  • Multi-receiver fan-out (up to 256 receivers)
  • Built-in video player for screen sharing
  • Progress spectating via SSE
  • Multipart uploads from browser
  • Binary-clean transport — bring your own encryption (e.g. openssl enc | curl -T -) for end-to-end secrecy

Perfect for: Screen sharing, file transfers, live data piping, event forwarding, multiplayer collaboration

Learn More →

📝 Notes

Collaborative notes via HTTP—realtime multi-user notes, inline databases, and file attachments.

Key Capabilities:

  • Realtime multi-user editing
  • Inline tables / databases
  • File attachments per note
  • REST + WebSocket API

Perfect for: Shared runbooks, team knowledge bases, embedded checklists

API Reference →

👁️ Watch

File system watchers via HTTP—recursive path monitoring streamed over SSE or WebSocket.

Key Capabilities:

  • Recursive directory watching (Linux inotify)
  • SSE streaming
  • WebSocket streaming
  • Pattern filters

Perfect for: Build triggers, live reload, file-change-driven automation

API Reference →

🚀 Run

Multi-source app resolver—query app names across Nix, pkgx, AppImage, Docker/OCI, and manifest registries; get back the exact shell command.

Key Capabilities:

  • Search across 9+ package sources in one query
  • Candidate ranking (manual or first-match)
  • Exact shell command output (agent-friendly)
  • Path-based launch URLs
  • Per-user profiles

Perfect for: AI agent app discovery, portable install flows, cross-source launchers

API Reference →

📜 Proxy Logs

Access logs from Hoody Proxy via HTTP—query and tail the request log for the container.

Key Capabilities:

  • Query historical access logs
  • Live tail over SSE / WebSocket
  • Filter by path, method, status, time range

Perfect for: Debugging access issues, traffic analysis, audit trails

API Reference →

🔌 Tunnel

TCP tunneling over HTTP—expose local services online or pull remote services into the container through the relay.

Key Capabilities:

  • Expose HTTP/WS/TCP services to the internet
  • Pull remote TCP services into the container loopback
  • Session-based control plane
  • URL/port bindings management

Perfect for: Sharing local dev servers, bridging networks, remote access

Learn More →


Traditional approach: Install tools on your computer. Each requires setup, configuration, dependencies, compatibility checks. Switching computers means reinstalling everything.

Hoody approach: Everything is a URL. Open the URL, you have the tool. Works on any device with a browser—phone, tablet, laptop, or TV.

Need a terminal? Open the terminal URL.
Need a database? Open the SQLite URL.
Need VS Code? Open the code URL.

No installation. No configuration. Just URLs.

Because everything speaks HTTP, everything composes:

// Terminal executes command that queries database
fetch(terminalUrl + '/api/v1/terminal/execute', {
method: 'POST',
body: JSON.stringify({
command: `curl -X POST ${sqliteUrl}/api/v1/sqlite/db?db=app -H 'Content-Type: application/json' -d '{"transaction":[{"query":"SELECT * FROM users"}]}'`
})
});
// Exec script reads file, processes data, stores in database
fetch(execUrl + '/process-data.ts', {
method: 'POST',
body: JSON.stringify({
input_file: filesUrl + '/data/input.csv',
output_db: sqliteUrl
})
});
// Agent orchestrates entire workflow across all services
fetch(agentUrl + '/api/v1/agent/prompt', {
method: 'POST',
body: JSON.stringify({
ai: "Deploy the app using terminal, monitor with browser, store logs in database",
wait: true
})
});

Each service is independent. Together, they’re a complete development environment.


The 18 services organize into 4 logical groups:

See and control your containers:

  • Terminals - Command-line interface via HTTP
  • Displays - Graphical desktop in browser
  • Browser - Automated Chrome for testing/scraping
  • Pipe - Streaming data transfer between any devices

Store and access information:

  • Files - Unified file system with cloud storage
  • SQLite - Database and KV store
  • Notes - Collaborative notes, databases, and files

Run code and coordinate systems:

  • Exec - Execute scripts as HTTP endpoints
  • cURL - HTTP requests with scheduling
  • Run - Multi-source app resolver (Nix, pkgx, AppImage, Docker/OCI)

Manage and observe systems:

  • Daemons - Background process management
  • Cron - Managed cron job scheduling
  • Notifications - Push alerts and updates
  • Code - Web-based IDE
  • Watch - File and event watchers
  • Proxy Logs - Access logs from Hoody Proxy
  • Tunnel - TCP tunneling over HTTP
  • Workspaces - Global management UI

Here’s the power: You can run multiple instances of most services in the SAME container:

terminal-1, terminal-2, terminal-3, terminal-4...
display-1, display-2, display-3, display-4...
exec-1, exec-2, exec-3...
sqlite-1, sqlite-2, sqlite-3...
browser-1, browser-2, browser-3...
curl-1, curl-2, curl-3...
daemon-1, daemon-2, daemon-3...
cron-1, cron-2, cron-3...
code-1, code-2, code-3...
pipe-1, pipe-2, pipe-3...

Why this matters:

  • Separation of concerns - Terminal-1 for frontend, terminal-2 for backend, terminal-3 for database
  • Parallel operations - Run tests in exec-1 while building in exec-2
  • Specialized agents - Agent-1 for code, agent-2 for docs, agent-3 for DevOps
  • Multi-user collaboration - Each user gets their own terminal/display instance

All instances share the same container filesystem, processes, and network—it’s one computer with multiple access points.


# Type in terminal-5
terminal-5.hoody.icu → firefox &
# See in display-5 (auto-mapped)
display-5.hoody.icu → Firefox appears

GUI applications automatically appear in matching display numbers. Zero configuration.

# Terminal with embedded agent panel
terminal-1.hoody.icu/?panel=...workspaces-1.hoody.icu&panel-width=40%

AI assistant helps with commands, explains output, suggests best practices—all in one window.

// Read CSV from cloud storage
const data = await fetch(filesUrl + '/google-drive/data.csv');
// Process with exec script
const processed = await fetch(execUrl + '/etl.ts', {
method: 'POST',
body: data
});
// Store in SQLite
await fetch(sqliteUrl + '/api/v1/sqlite/db?db=analytics', {
method: 'POST',
body: JSON.stringify({
transaction: [{ statement: 'INSERT INTO analytics VALUES (...)' }]
})
});

Services compose naturally through HTTP.

// Agent has access to all container services
const agent = await fetch(agentUrl + '/api/v1/agent/prompt', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
ai: "Set up production environment",
wait: true
})
});
// Agent coordinates:
// 1. Terminal - Install dependencies
// 2. Files - Download config from cloud
// 3. SQLite - Initialize database schema
// 4. Exec - Run deployment script
// 5. Notifications - Alert when complete

One task description. Multiple services orchestrated.


Problem: Need to code from your phone/tablet but VS Code requires desktop OS.

Solution:

code-1.hoody.icu → Full VS Code in mobile browser
terminal-1.hoody.icu → Run builds and tests
display-1.hoody.icu → Preview GUI applications

Your complete development environment, accessible from any device.

Problem: Managing 10+ projects switching between terminals, editors, databases.

Solution:

Workspace shows all projects
├─ Project A: terminal-1, display-1, sqlite-1 (frontend app)
├─ Project B: terminal-1, agent-1, exec-1 (API service)
├─ Project C: browser-1, curl-1, sqlite-1 (scraper)
└─ Project D: terminal-1, code-1, files (docs site)

One workspace. All projects visible. Click to access any service instantly.

Problem: AI agents can’t install tools or access infrastructure.

Solution:

workspaces-1.hoody.icu → AI has HTTP access to:
├─ terminal (execute commands)
├─ files (read/write code)
├─ exec (run scripts)
├─ sqlite (manage state)
└─ browser (test web apps)

AI orchestrates entire development workflow via HTTP. Human approves critical decisions.

Problem: Share development environment with team across time zones.

Solution:

# Share workspace URL with team
https://abc123-def456-workspaces-1.node-us-1.containers.hoody.icu
# Team sees:
- Live terminal sessions (multiplayer)
- Shared displays (see what others see)
- Common file access
- Shared database state

Everyone works in the same environment, from anywhere.


How to find service URLs after spawning a container:

When you create a container, the response includes server details:

{
"data": {
"id": "def456",
"project_id": "abc123",
"server_name": "node-us-1",
"status": "running"
}
}

Construct URLs:

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

Open Workspaces, select your container, see all service URLs with copy buttons.

Terminal window
GET /api/v1/containers/{container_id}

Returns full container details including computed service URLs.


Don’t use a terminal when exec makes more sense:

  • terminal.run/executecd /app && npm test && echo "done"
  • exec.run/test-runner.ts → Clean script with logging, error handling, proper structure

Don’t use exec when terminal is simpler:

  • ❌ Create exec script just to run ls -la
  • terminal.run/execute{"command": "ls -la"}

Give instances semantic meaning:

terminal-1 → Frontend work
terminal-2 → Backend work
terminal-3 → Database management
terminal-4 → DevOps/deployment
agent-1 → Code and tests
agent-2 → Documentation
agent-3 → Infrastructure
exec-1 → API endpoints
exec-2 → Scheduled tasks
exec-3 → Data processing

Services work better together:

  • Terminal + Display → Visual debugging
  • Files + SQLite → Data pipelines
  • Agent + Everything → Full autonomy
  • Browser + Exec → Web automation
  • Terminal + Agent Panel → AI-assisted development

For cross-container workflows:

  • /hoody/shared/ → Files accessible from all containers
  • /hoody/databases/ → SQLite databases accessible from all containers

See Shared Storage → and SQLite Drive →


Are all 18 services included in every container?

Section titled “Are all 18 services included in every container?”

Yes, when you create a container with hoody_kit: true. If you set hoody_kit: false, you get a plain Linux container without these HTTP services (SSH access only)—useful for minimal containers or custom setups.

Can I disable specific services I don’t need?

Section titled “Can I disable specific services I don’t need?”

Currently, all services come together. However, unused services consume minimal resources (they only activate when accessed). A terminal service that never receives requests uses almost no CPU/memory.

How do services communicate within the same container?

Section titled “How do services communicate within the same container?”

They share the same filesystem, processes, and network. A file created via the Files service is immediately readable via Terminal. A database created via SQLite is accessible from Exec scripts. They’re all running on the same Linux computer.

Can multiple users access the same service instance simultaneously?

Section titled “Can multiple users access the same service instance simultaneously?”

Yes! Terminals and Displays support multiplayer—multiple users typing in the same terminal or seeing the same desktop. Other services (Files, SQLite, Exec) are accessible simultaneously with standard HTTP concurrency.

What happens to services when I snapshot a container?

Section titled “What happens to services when I snapshot a container?”

Snapshots capture the complete container state, including all services and their data. When you restore a snapshot, all services come back exactly as they were—terminal history, file contents, database state, daemon configurations.

Do I need different authentication for each service?

Section titled “Do I need different authentication for each service?”

No. Proxy permissions control access to ALL services in a container. Set permissions once at the project or container level, and it applies to terminals, displays, files, SQLite, exec, etc.

Can services in different containers communicate?

Section titled “Can services in different containers communicate?”

Yes. Containers on the same server can communicate via internal networking. Use Shared Storage (/hoody/shared/) for file sharing or SQLite Drive (/hoody/databases/) for database sharing across containers.

Which service URLs support embedding in iframes?

Section titled “Which service URLs support embedding in iframes?”

All of them! Every service is web-native:

  • Terminals → Embed live shell
  • Displays → Embed desktop view
  • Files → Embed file browser
  • SQLite → Embed database UI
  • Code → Embed VS Code
  • Agent → Embed chat interface

This is how you build custom dashboards—compose service iframes.


Problem: https://abc123-def456-terminal-1.node-us.containers.hoody.icu returns 404

Causes:

  1. Container not running - Check status: GET /api/v1/containers/{id}
  2. Wrong URL format - Verify project_id, container_id, server_name are correct
  3. Proxy permissions - Service might be blocked by permissions

Solutions:

Terminal window
# Verify container is running
curl "https://api.hoody.icu/api/v1/containers/{container_id}" \
-H "Authorization: Bearer $HOODY_TOKEN" | jq '.data.status'
# Check server name matches
# Should be: node-us-1, node-eu-1, etc. (check container response)
# Verify proxy permissions allow access
curl "https://api.hoody.icu/api/v1/containers/{container_id}/proxy/permissions" \
-H "Authorization: Bearer $HOODY_TOKEN"

Problem: Service URLs are very slow to respond

Causes:

  1. Server overloaded - Too many containers/processes on server
  2. Network congestion - High traffic on container
  3. Resource limits - Container out of CPU/memory

Solutions:

Terminal window
# Check server resource usage
curl "https://abc123-def456-terminal-1.node-us.containers.hoody.icu/api/v1/system/resources"
# Check running processes
curl "https://abc123-def456-terminal-1.node-us.containers.hoody.icu/api/v1/system/processes?sort=cpu"
# Consider moving to less loaded server or upgrading server resources

Can’t access service from specific device/network

Section titled “Can’t access service from specific device/network”

Problem: Service works from laptop but not from phone/public WiFi

Cause: Proxy permissions restrict access by IP or require authentication

Solution:

Terminal window
# Check current permissions
GET /api/v1/containers/{id}/proxy/permissions
# Update to allow your IP or remove IP restrictions
PUT /api/v1/containers/{id}/proxy/permissions
{
"groups": {},
"permissions": {},
"default": "deny"
}

See Proxy Permissions → for access control details.


Explore individual services:

Understand the platform:

See complete technical specs:


The Hoody Kit turns every container into a complete computing environment.
18 HTTP services. Zero installation. Infinite possibilities.
Everything you need, accessible via URL.