Skip to main content
This page is for contributors and operators who need a quick map of the source tree. It is intentionally high level. Public docs should explain how to run, configure, and use Roomote; deeper implementation contracts and agent-facing runbooks live in .agent-guidance/. Roomote is a pnpm + Turborepo monorepo with applications under apps/ and shared libraries under packages/.

Applications

AppDescription
apps/webNext.js web dashboard for setup, settings, tasks, and review.
apps/docsMintlify public documentation site published at docs.roomote.dev.
apps/apiHono API server: webhooks, MCP and task-control routes, artifact APIs, backend tRPC.
apps/controllerWorker-dispatch control plane: dequeues jobs and launches sandbox workers.
apps/workerTask runtime that runs inside each sandbox and executes the agent.
apps/bullmqBackground workers and scheduled jobs on BullMQ.
apps/preview-proxyReverse proxy that exposes live previews from task sandboxes.
apps/devLocal dev CLI that orchestrates the PM2-managed services (pnpm dev).

Packages

PackageDescription
packages/cloud-agentsAgent definitions, prompt assembly, routing, workflows, and skills.
packages/dbDrizzle ORM schema and migrations.
packages/sdkShared contract between API, controller, and worker.
packages/authAuthentication and session handling.
packages/compute-providersSandbox compute provider integrations.
packages/github, gitlab, gitea, adoSource-control provider integrations.
packages/slack, linear, communicationConversation-surface and issue-tracker integrations.
packages/redis, env, types, feature-flagsShared infrastructure utilities.

Request flow

  1. A task is created from the web dashboard, Slack, or another entry surface.
  2. The API records it and enqueues work; the controller dequeues and provisions a sandbox with the selected compute provider.
  3. The worker runs inside the sandbox, executes the agent against your repositories, and streams progress back.
  4. Live previews from the sandbox are exposed through the preview proxy, and results are delivered back to the surface that started the task.
For local setup, see Local development. For running a deployment, see Self-hosting.