Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
49 changes: 32 additions & 17 deletions CHANGELOG.md

Large diffs are not rendered by default.

24 changes: 7 additions & 17 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,11 @@ something else, all the way.
→ you review, merge, done
```

Source-available. Self-hostable or our Cloud. Use your ChatGPT subscription or bring your own
Source-available. Self-hosted. Use your ChatGPT subscription or bring your own
API keys.

![Roomote chat workflow demo](assets/roomote-hero.gif)

<a href="https://cloud.roomote.dev/sign-up"><img src="https://roomote.dev/images/deploy-button.png" alt="Deploy on Roomote Cloud" style="height: 40px; width: auto;"></a>
&nbsp;&nbsp;
<a href="https://railway.com/deploy/Rj2cFo?referralCode=roomote"><img src="https://railway.com/button.svg" alt="Deploy on Railway" style="height: 40px; width: auto;"></a>
&nbsp;&nbsp;
<a href="https://render.com/deploy?repo=https://github.com/RooCodeInc/Roomote"><img src="https://render.com/images/deploy-to-render-button.svg" alt="Deploy to Render" style="height: 40px; width: auto;"></a>
Expand Down Expand Up @@ -96,10 +94,6 @@ cleans up after itself.

Pick one path. You will have a working Roomote instance at the end.

### Roomote Cloud (fastest, ~2 min)

Don't want to run infrastructure? We'll host your deployment: free 7-day trial, no credit card. Same single-tenant product — your own isolated instance, connect your ChatGPT subscription or bring an API key. Move to self-hosting anytime. [Start free →](https://cloud.roomote.dev/sign-up)

### One-click deploy (Railway)

New to Railway? [Sign up with our referral link](https://railway.com?referralCode=roomote)
Expand Down Expand Up @@ -179,8 +173,8 @@ copy-pasting.
or bring API keys from any supported provider. Switch models per task. No
markup on tokens.
- **Read every line.** The full source is here. Audit it, extend it, fork it.
- **No per-seat SaaS pricing.** Free for up to 10 users. Need more? [Buy a
self-hosted license on Roomote Cloud](https://cloud.roomote.dev/sign-up).
- **Free for up to 10 users.** Need more? [Contact Roomote about a
self-hosted license](mailto:help@roomote.dev).

---

Expand Down Expand Up @@ -215,8 +209,7 @@ Need SSO, custom SLAs, or dedicated support? Get in touch:
It is source-available under the [Fair Core License 1.0](LICENSE) (FCL-1.0-ALv2).
You can read, modify, and self-host the code. Free for up to 10 users. Larger
deployments need a license. Email
[help@roomote.dev](mailto:help@roomote.dev) for teams larger than 100 users, or
[buy a self-hosted license on Roomote Cloud](https://cloud.roomote.dev/sign-up).
[help@roomote.dev](mailto:help@roomote.dev) for a self-hosted license.
After the license period, the code
converts to Apache 2.0.

Expand Down Expand Up @@ -256,9 +249,7 @@ GitHub, GitLab, Gitea, Azure DevOps, and Bitbucket Cloud. Connect one or many.
**What does it cost?**
Self-hosting is free for up to 10 registered users. You pay your own model
provider for tokens (or use the models bundled with your ChatGPT subscription).
Cloud starts at $49/mo, depending on total user count.
For 11–100 users, [buy a self-hosted license on Roomote
Cloud](https://cloud.roomote.dev/sign-up). For larger teams, email
For more than 10 users, contact Roomote about a self-hosted license at
[help@roomote.dev](mailto:help@roomote.dev).

**I already pay for ChatGPT Plus. Do I need an API key too?**
Expand Down Expand Up @@ -297,10 +288,9 @@ Report vulnerabilities privately. See [SECURITY.md](SECURITY.md).
## License

[Fair Core License 1.0 (FCL-1.0-ALv2)](LICENSE). Free for up to 10 users.
Licenses for 11–100 users are available through [Roomote
Cloud](https://cloud.roomote.dev/sign-up); larger teams can email
For a self-hosted license, contact
[help@roomote.dev](mailto:help@roomote.dev). Purchased licenses report their
current user count for subscription billing. Refresh purchased keys annually in
the Roomote Cloud portal, then replace the key in Settings or `R_LICENSE_KEY`.
your existing license account, then replace the key in Settings or `R_LICENSE_KEY`.
The license key functionality may not be disabled or circumvented.
[TRADEMARKS.md](TRADEMARKS.md) covers trademark usage.
6 changes: 3 additions & 3 deletions SELF_HOSTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -980,8 +980,8 @@ Roomote is licensed under the Fair Core License 1.0 (FCL-1.0-ALv2, see
registered user account counts toward the limit, whichever sign-in path or
surface it uses. Removing a user frees their seat.

To go beyond 10 users, [buy a self-hosted license on Roomote
Cloud](https://cloud.roomote.dev/sign-up) and apply its key in either of these
To go beyond 10 users, [contact Roomote for a self-hosted
license](mailto:help@roomote.dev) and apply its key in either of these
ways:

- Enter it in **Settings → Users → License** as an admin, or
Expand All @@ -990,7 +990,7 @@ ways:
any key stored in Settings.

Purchased keys are issued annually. While the subscription is active, refresh
the key in the Roomote Cloud portal and replace the value in Settings or
the key in your existing license account and replace the value in Settings or
`R_LICENSE_KEY` before its displayed expiry date. Keys are verified offline;
usage reporting does not activate or validate them.

Expand Down
2 changes: 1 addition & 1 deletion apps/api/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
"p-map": "^7.0.4",
"snowflake-sdk": "3.3.0",
"svix": "^1.99.1",
"undici": "^7.29.1",
"undici": "^7.30.1",
"zod": "^3.25.76"
},
"devDependencies": {
Expand Down
71 changes: 0 additions & 71 deletions apps/docs/cloud.mdx

This file was deleted.

7 changes: 5 additions & 2 deletions apps/docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
"description": "Documentation for Roomote, the open, self-hostable platform for cloud coding agents.",
"markdown": {
"instructions": [
"Start new users at /index to choose Roomote Cloud or self-hosting. Use /cloud for managed hosting and /self-hosting for an operator deployment, including home networks at /homelab. Both paths continue through /first-task. Use Local development only when the user intends to modify Roomote itself.",
"Start new users at /index, then /self-hosting to choose and prepare a host, including home networks at /homelab or infrastructure providers at /self-hosting/platforms. Continue through /first-task. Use Local development only when the user intends to modify Roomote itself.",
"When an agent is asked to follow /self-hosting or install Roomote autonomously, read and follow /self-hosting/agent-installation as the normative automation contract even though it is intentionally hidden from side navigation.",
"Use the one-command Linux installer for both evaluation and production. On macOS or Windows, create or reuse a full Ubuntu VM and run the same installer inside it; do not replace the installer with the repository's development Compose files.",
"For a local VM, prepare a stable public HTTPS domain before connecting providers. Use a named tunnel with internal origin TLS or public DNS with ports 80/443 forwarded to the Linux host. Cloudflare Quick Tunnels do not support the Server-Sent Events Roomote uses; do not use them for the complete setup path.",
Expand Down Expand Up @@ -44,7 +44,6 @@
"group": "Getting started",
"pages": [
"index",
"cloud",
{
"group": "Self-hosted",
"icon": "server",
Expand Down Expand Up @@ -228,6 +227,10 @@
]
},
"redirects": [
{
"source": "/cloud",
"destination": "/self-hosting"
},
{
"source": "/anonymous-analytics",
"destination": "/privacy"
Expand Down
4 changes: 2 additions & 2 deletions apps/docs/environment-variables.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ as per-task auth tokens or workspace paths.
| `R_API_SHUTDOWN_DRAIN_MS` | Optional | Milliseconds the API allows in-flight session turns to finish during shutdown before aborting the remainder so they resume on the next process. Defaults to `20000`; set to `0` to abort immediately. Keep it below the hosting platform's SIGTERM-to-SIGKILL grace period. Also the fallback for `R_BULLMQ_SHUTDOWN_DRAIN_MS`. |
| `R_BULLMQ_SHUTDOWN_DRAIN_MS` | Optional | Same window for the bullmq service, which executes the session turns the queue resumes. Defaults to `R_API_SHUTDOWN_DRAIN_MS`, then `20000`. |
| `R_FAST_DURABLE_RETRY_DISABLED` | Optional | Set to `true` to keep inference retry waits in the current process instead of parking in-flight session turns durably. Durable admission remains enabled. |
| `R_CLOUD_ENABLED` | Roomote Cloud only | Deployment-managed switch for Roomote Cloud behavior, including required anonymous analytics and Cloud support integrations. Do not set this for self-hosted deployments. |
| `R_CLOUD_ENABLED` | Managed deployments only | Deployment-managed switch for managed-service behavior, including required anonymous analytics and support integrations. Do not set this for self-hosted deployments. |
| `R_CURATED_INTEGRATIONS_DISABLED` | Optional | Operator policy for the curated **Integrations** catalog, which is enabled by default. Set to `true` and restart Roomote to prevent those integrations from being configured or used. Existing connections remain stored while disabled and become available again once the value is unset. Communications, source-control, inference, sandbox providers, and environment-defined MCP servers are unaffected. |
| `R_GITHUB_APP_SLUG` | GitHub setup | Primary GitHub App slug used by server-rendered setup, mentions, and GitHub integration flows. |
| `R_GITHUB_ADDITIONAL_APP_SLUGS` | Optional GitHub setup | Comma-separated additional GitHub App slugs that Roomote should trust as managed bot identities for review attribution and notifications. |
Expand Down Expand Up @@ -260,7 +260,7 @@ manifest changes.

| Env var | Required | Used for |
| ------------------------------------ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `DEFAULT_COMPUTE_PROVIDER` | Optional | Runtime default sandbox provider when no admin default is saved. Supported values are `docker`, `modal`, `e2b`, `daytona`, `blaxel`, `box`, `azure`, and the Roomote Cloud-only `roomote`. |
| `DEFAULT_COMPUTE_PROVIDER` | Optional | Runtime default sandbox provider when no admin default is saved. Supported values are `docker`, `modal`, `e2b`, `daytona`, `blaxel`, `box`, `azure`, and the deployment-managed `roomote`. |
| `EXCLUDED_COMPUTE_PROVIDERS` | Optional | Comma-separated provider IDs to hide or exclude from default selection. |
| `DOCKER_WORKER_IMAGE` | Optional | Worker image used by Docker. In production, prefer an immutable registry-qualified tag. |
| `ROOMOTE_WORKER_IMAGE_REPO` | Optional | Registry repository used to derive the worker image from `RELEASE_VERSION` when `DOCKER_WORKER_IMAGE` is unset. |
Expand Down
16 changes: 7 additions & 9 deletions apps/docs/first-task.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,8 @@ icon: play
description: Connect a model and repository, run a small task, and review the result in your browser.
---

Follow this guide after you can open your Roomote deployment. The steps are
the same for Roomote Cloud and self-hosted deployments, with hosting
differences called out below. By the end, you will have a Roomote task that
Follow this guide after you can open your Roomote deployment. By the end,
you will have a Roomote task that
reads a repository, runs commands in a sandbox, and reports what it found.

## Before you start
Expand All @@ -16,13 +15,12 @@ Have these ready:
- the deployment's initial setup link, or an administrator account if setup
has already started
- an inference provider account with usable credentials and available credit
or quota, unless you choose the Roomote inference offered during Cloud setup
or quota
- permission to connect one repository for the first task

An inference provider supplies the model. A sandbox provider supplies the
isolated workspace where the agent edits files and runs commands. Both are
needed for the task in this guide. Cloud provisions a sandbox provider;
for a self-hosted deployment, the installer can configure Docker on your host.
needed for the task in this guide. The installer can configure Docker on your host.

<Note>
You can start a conversation after connecting inference alone. Repository
Expand All @@ -33,7 +31,7 @@ can complete the whole guide in your browser.

## 1. Open your deployment and create your account

Open the deployment link from the Cloud portal or your self-hosted installer.
Open the deployment link from your installer or hosting platform.
Follow the account setup prompts. If you have already created the account,
sign in and continue from your current setup step.

Expand Down Expand Up @@ -115,8 +113,8 @@ commands, services, tool versions, or preview ports for later work.
## 5. Confirm where the task will run

If a sandbox provider is already configured, Roomote can start the task
without another setup step. Keep the provider provisioned for your Cloud
deployment or configured by your self-hosted installer.
without another setup step. Keep the provider configured by your installer
or deployment administrator.

If Roomote asks for a sandbox, use its configuration controls to select and
configure a provider:
Expand Down
20 changes: 9 additions & 11 deletions apps/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -1,29 +1,28 @@
---
title: Getting started
icon: book-open
description: Choose Roomote Cloud or self-hosting, complete setup, and run your first task.
description: Deploy Roomote on your own infrastructure, complete setup, and run your first task.
---

Roomote agents work on your repositories in isolated sandboxes and return
results you can review. Start, follow, and steer their work from the web
dashboard, with optional connections to your team's chat and other tools.

This guide takes you from choosing where Roomote runs to completing your first
repository task. Both hosting paths run the same Roomote product.
repository task on infrastructure you control.

## 1. Choose where Roomote runs

<CardGroup cols={2}>
<Card title="Roomote Cloud" icon="cloud" href="/cloud">
Roomote manages hosting, networking, sandboxes, and upgrades for your
isolated deployment. You choose inference, connect repositories, and
decide what work to run.
</Card>
<Card title="Self-hosted" icon="server" href="/self-hosting">
<Card title="Self-host Roomote" icon="server" href="/self-hosting">
Run Roomote on your own hardware or infrastructure you control. You manage
the host, networking, sandboxes, and maintenance, then connect inference
and repositories.
</Card>
<Card title="Hosting platforms" icon="layers" href="/self-hosting/platforms">
Deploy on infrastructure you manage through Railway, Render, or another
hosting provider.
</Card>
</CardGroup>

A home server or **homelab is a self-hosted deployment**. So is a deployment on
Expand All @@ -44,9 +43,8 @@ The guide walks through:
2. Connecting a repository and checking that a sandbox is ready to run work.
3. Running a small repository inspection task and reviewing the result.

Have a repository you can authorize Roomote to access. For inference, use
managed Roomote inference when offered, or bring a supported subscription or
provider API key. The hosting guide explains what is already supplied.
Have a repository you can authorize Roomote to access. For inference, bring a
supported subscription or provider API key.

<Tip>
Slack and other communications providers are optional. You can complete
Expand Down
Loading
Loading