Skip to content
home / kit / workspaces
WorkspacesKit Service

Workspaces

A floating, multiplayer operating system inside a browser tab. Arrange terminals, displays, code editors, and dashboards from any number of containers in one layout — and share the whole thing with a URL.

workspace.hoody.com · proj-dev
terminal-1

$ bun test

✓ 142 passed

$ _

display-1
files — /workspace
src/public/tests/package.jsonbun.lockREADME.md
3 containers · 5 windowsmultiplayer — 2 viewers

Compose containers

Drop any Kit service — terminal, display, code, files, sqlite — into a floating window. Mix services from different containers.

Share a URL

The entire layout is encoded in the address bar. Paste the link to a teammate; they see the same arrangement, live.

Orchestrate live

Every window stays connected — terminals stream, displays render, file changes propagate. No page refresh, no glue code.

home / kit / workspaces / scale

A workspace is an HTTPS endpoint

No installer, no desktop agent, no VPN tunnel. Everything runs inside a single browser tab and speaks plain HTTP — which is why sharing, embedding, and auditing just work.

Emily Watson

Platform Lead

Michael Lee

Infrastructure

workspace.hoody.com/?project=abc123● live
18 active windows3 collaborators
0

Desktop apps to install

Services per workspace

1 URL

To share everything

<120ms

From click to live session

home / kit / workspaces / how
How it works

From empty tab to shared OS in four moves

Spin up a workspace the same way you open a gist — one URL, no agents, no config files. The moves below run in the order you'd take them in real work.

Read the spec
  1. step · 0101/04

    Open the workspace URL

    Navigate to workspace.hoody.com and the floating WebOS boots in the tab. No login prompt, no loading spinner per tool — the shell is static HTML.

    https://workspace.hoody.com/?project=abc123
  2. step · 0202/04

    Drag in your services

    Open a terminal window, a display for your GUI app, a file manager, a SQLite UI — each is an iframe pointing at a Kit endpoint. Resize and tile freely.

    + terminal · display · code · files · sqlite
  3. step · 0303/04

    Send the URL

    The layout, the containers, the welcome iframe — all encoded in query params. Your teammate opens the same link and lands in the same arrangement.

    ?folder=/workspace&id=5&welcome-iframe-url=...
  4. step · 0404/04

    Collaborate live

    Multiplayer is the default. Cursors, terminal scrollback, and display state sync in real time across everyone connected to the URL.

    GET /api/v1/agent/workspace → [ collaborators: 3 ]
home / kit / workspaces / vs
VS legacy dashboards

What a workspace replaces

Every item below used to need its own browser tab, desktop app, VPN rule, or admin console. Workspaces absorb them into one URL you can email.

Setup

Open a URL vs install, VPN, SSO, agents.

Workspaces
AWS console + RDP + Slack

Sharing

Paste the URL vs screen-share software and seat licenses.

Workspaces
AWS console + RDP + Slack

Multi-container view

Native — drag-and-drop tile vs N browser tabs or an RDP session.

Workspaces
AWS console + RDP + Slack

Multiplayer cursors

Built-in vs nothing in most admin tools.

Workspaces
AWS console + RDP + Slack

Audit trail

Every action is an HTTP request vs scattered across 6 systems.

Workspaces
AWS console + RDP + Slack

Embed in your app

iframe src=workspace.hoody.com vs not supported anywhere.

Workspaces
AWS console + RDP + Slack

Works on a phone

Yes — browser tab vs RDP clients only on macOS / Windows.

Workspaces
AWS console + RDP + Slack

Cost per seat

Pay per container, not per user vs tiered per-seat licensing.

Workspaces
AWS console + RDP + Slack
home / kit / workspaces / endpoints
API REFERENCE

24 Endpoints. One WebOS.

Create and manage workspaces, control floating windows, share layouts, take snapshots, and stream live events — all over plain HTTP.

Workspace Management

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST /api/v1/workspaces → { id: "ws_abc", name: "Dev" }

GET
/api/v1/workspacesList all workspaces in the project
POST
/api/v1/workspacesCreate a new workspace
GET
/api/v1/workspaces/:idGet workspace details
PUT
/api/v1/workspaces/:idUpdate workspace name or settings
DELETE
/api/v1/workspaces/:idDelete a workspace
GET
/global/workspace-stateGet global workspace state

Windows & Layout

{count, plural, =1 {# endpoint} other {# endpoints}'}

PUT /api/v1/workspaces/:id/layout → { panels: [...] }

GET
/api/v1/workspaces/:id/windowsList all open windows in workspace
POST
/api/v1/workspaces/:id/windowsOpen a new floating window
PUT
/api/v1/workspaces/:id/windows/:winIdUpdate window position, size, or service URL
DELETE
/api/v1/workspaces/:id/windows/:winIdClose a floating window
GET
/api/v1/workspaces/:id/layoutGet current panel layout
PUT
/api/v1/workspaces/:id/layoutSave panel layout
GET
/api/v1/workspaces/:id/layout/presetsList saved layout presets

Share & Snapshots

{count, plural, =1 {# endpoint} other {# endpoints}'}

POST /api/v1/workspaces/:id/share → { url: "..." }

POST
/api/v1/workspaces/:id/shareGenerate a shareable workspace URL
GET
/api/v1/workspaces/:id/shareGet current share settings
DELETE
/api/v1/workspaces/:id/shareRevoke shared access
POST
/api/v1/workspaces/:id/snapshotSave a layout snapshot
GET
/api/v1/workspaces/:id/snapshotsList all saved snapshots
POST
/api/v1/workspaces/:id/snapshots/:snapId/restoreRestore workspace from a snapshot

System & Events

{count, plural, =1 {# endpoint} other {# endpoints}'}

GET /global/event → SSE stream of workspace events

GET
/global/healthService health status
GET
/global/eventSSE stream of live workspace events
GET
/global/hoodyGet container context and metadata
GET
/global/agent/sessionsList active agent sessions
POST
/global/agent/sessionsStart a new agent session
home / kit / workspaces / start

Put your whole stack in a browser tab

Workspaces is one of 14 Kit services bundled with every Hoody container. There is nothing to install and nothing to configure — the URL is the product.

View Documentation
  • Zero installation
  • Shareable via URL
  • Multiplayer by default
  • Works on any browser
  • Embed anywhere