Run Anything as a Service. Control It Over HTTPS.
Node, Python, Go, Rust, or any binary becomes a persistent, auto-restarting program supervised by supervisord. Register, start, stop, and watch it — all through HTTP, with no SSH and no unit files.
# Register a supervised program
POST /api/v1/daemon/programs/add
{"name":"nodejs-app","command":"node server.js","user":"nodejs"}
# 200 — program registered
{"success":true,"id":2}
The Daemon Service Manages Them All
Every Hoody Kit service — Terminal, Display, Files, SQLite, and 14 more — runs as a supervisord program you can start, stop, or restart over HTTP. (Illustrative: simulates supervisord status.)
Terminal
Shell sessions via HTTP + WebSocket
Display
Full desktops in your browser
Files
Filesystem as a REST API
SQLite
Databases queryable via HTTP
Exec
Scripts become HTTP endpoints
Browser
Chrome/Puppeteer automation
Workspaces
AI agent orchestration with 100+ tools
Code
VS Code instances in browser
cURL
REST calls as shareable GET URLs
Notifications
Push notifications via HTTP
Daemon
Background process management
Cron
Scheduled task management
Pipe
Streaming data between containers
Notes
Collaborative notebooks with real-time sync
Watch
File and directory change monitoring
App
Multi-source app resolver — Nix, pkgx, AppImage, Docker/OCI
Tunnel
TCP tunneling over HTTP — expose or pull services
Proxy Logs
Access logs and traffic inspection for Hoody Proxy
Every State, Every Transition
From registration to crash recovery, each lifecycle step is a single HTTPS call — no SSH, no CLI, no host access required.
A program must be enabled before it can run. Enable registers it with supervisord, then start launches it via supervisorctl. Pass wait:true with a timeout to block until the instance reports back.
# Enable, then start the program
POST /api/v1/daemon/programs/{id}/enable
POST /api/v1/daemon/programs/{id}/start
{"wait":true,"timeout":30}
# 200 — instance starting
{"success":true,"instance":{
"instance_name":"api-server_8042",
"status":"STARTING"}}
Persistent Daemons or Ephemeral Jobs.
The same daemon API runs both. Managed programs are saved to programs.json and survive reboots; Quick Start programs are temporary and auto-clean when they stop. Pick the mode per workload.
| Capability | Managed Program | Quick Start |
|---|---|---|
| Saved to programs.json (survives reboot) | ||
| Auto-starts on system boot | ||
| Enable / disable registration | ||
| Start and stop on demand | ||
| TTL auto-stop | ||
| Auto-cleanup on stop, exit, or reboot | ||
| Auto-restart policy (autorestart) | ||
| Resource stats (CPU / memory) |
19 Endpoints. One Consistent Interface.
Program management, process control, status monitoring, and ephemeral quick-start — all under the same base URL.
Program Management
6 endpointsPOST /api/v1/daemon/programs/add
Quick Start
5 endpointsPOST /api/v1/daemon/quick-start
Process Control
4 endpointsPOST /api/v1/daemon/programs/{id}/start
Status & Monitoring
4 endpointsGET /api/v1/daemon/status
Your Crash-Loop Retries, Auditable Over HTTP.
Register a program, point it at any binary, set a boot priority. supervisord does the supervising — you just POST.