selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

Rome logo

Self-host Rome

app-runtime-v0.9.4

Agent OS where human-AI collaboration compounds over time

BetaOpen SourceMIT
Updated10 hours ago
LanguageTypescript
Setup difficultyModerate
Stars
877
Ports
8080 (web dashboard (container port)), 9222 (Chrome CDP automation port), 6080 (noVNC desktop access), 22 (SSH access inside container (optional, mapped to host 2222))
Requires
Docker, Node.js, Pnpm
Docker
yunfanye/rome
Install with Docker Compose

What is Rome?

Rome is an open-source agent operating system designed for persistent collaboration between a human guardian and AI agents. Unlike chat-only assistants, Rome builds durable capabilities — actions, skills, apps with their own databases and interfaces — that survive across sessions and can be reused by agents in future tasks. The guardian interacts through a web dashboard (default port 7663) and can also chat with Rome via Discord, Telegram, or WhatsApp connected as channels. Rome can be self-hosted with a single Docker command or via docker-compose, storing state in named volumes. It defaults to connecting to Rome Cloud (romeos.cc) for the app store and OAuth connectors, but can run fully offline by unsetting PANTHEON_BASE_ORIGIN. The project is MIT-licensed and actively developed.

Should you self-host Rome?

Rome scores 52/100 on selfhost.directory (how scoring works) and ranks #86 of 209 in AI Agents. It has 877 GitHub stars.

It shipped 7 stable releases in the past year. The latest, app-runtime-v0.9.4, came out on 28 October 2026.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is MIT-licensed and written mostly in Typescript.

Its closest alternative on selfhost.directory is OpenMausBot (74/100, 5 799 stars). It scores higher overall, so compare the two before you pick. See Rome vs OpenMausBot side by side.

Features

  • App Store for community appsRequires Rome Cloud connection (PANTHEON_BASE_ORIGIN)
  • Browser automation (CDP)Requires ROME_ENABLE_CHROME=1
  • Git-tracked capabilities
  • Model provider choice
  • Multi-channel chat (Discord, Telegram, WhatsApp)
  • Persistent agent environment
  • Rome Apps (installable capabilities)
  • SSH access to containerEnabled by setting SSH_USER_PASSWORD
  • Telemetry & tracing (OpenTelemetry)Disabled by default; enable with OTEL_EXPORTER_OTLP_ENDPOINT
  • Web DashboardDefault port 7663 (host) / 8080 (container)
  • WeChat integrationOpt-in only; requires SYS_ADMIN capability

Rome README

How to install Rome

Install Rome with Docker Compose

Docker with Docker Compose
Environment variables
See .env file (PANTHEON_BASE_ORIGIN, ANTHROPIC_API_KEY, ROME_JWT_SECRET, OTEL_EXPORTER_OTLP_ENDPOINT, WECHAT_USER_ENABLED, ROME_HOST_EXECUTION_ENABLED, etc.)

git clone https://github.com/rome-os/rome.git cd rome docker compose up -d

Uses docker-compose.yml with rome and otel-collector services. Requires .env file for configuration.

How to configure Rome

  • ANTHROPIC_API_KEYAnthropic API key; without it, onboarding offers Claude-account login instead.

    Anthropic API key; without it, onboarding offers Claude-account login instead.

    values: Valid Anthropic API key

  • LOG_LEVELLog level for the container.

    Log level for the container.

    values: debug | info | warn | error

  • NODE_ENVproductionNode environment (production keeps telemetry export off).

    Node environment (production keeps telemetry export off).

    values: production | development

  • OTEL_EXPORTER_OTLP_ENDPOINTOTLP HTTP collector endpoint for telemetry export. Telemetry is disabled unless this is set.

    OTLP HTTP collector endpoint for telemetry export. Telemetry is disabled unless this is set.

    values: Valid OTLP HTTP endpoint URL

  • PANTHEON_BASE_ORIGINhttps://romeos.ccRome Cloud origin — enables the app store, connector OAuth, and instance enrollment. Default: https://romeos.cc. Set empty to run without Rome Cloud.

    Rome Cloud origin — enables the app store, connector OAuth, and instance enrollment. Default: https://romeos.cc. Set empty to run without Rome Cloud.

    values: Any valid URL or empty string

  • ROME_CHROME_CDP_PORT9222Chrome CDP port for automation.

    Chrome CDP port for automation.

    values: Port number

  • ROME_DOCKER_APP_CODE_MODEsourceApp code mode for Docker deployment.

    App code mode for Docker deployment.

    values: source | ...

  • ROME_DOCKER_USER_MODEmultiUser mode for Docker deployment.

    User mode for Docker deployment.

    values: multi | ...

  • ROME_ENABLE_CDP_AUTOMATIONfalseEnable Chrome DevTools Protocol automation.

    Enable Chrome DevTools Protocol automation.

    values: true | false

  • ROME_ENABLE_CHROME1Enable Chrome/Chromium in the container for browser automation.

    Enable Chrome/Chromium in the container for browser automation.

    values: 0 | 1

  • ROME_HOST_EXECUTION_ENABLEDfalseEnable host execution helper socket.

    Enable host execution helper socket.

    values: true | false

  • ROME_JWT_SECRETauto-generatedJWT secret for guardian web login sessions. Generated automatically per machine if not set.

    JWT secret for guardian web login sessions. Generated automatically per machine if not set.

    values: 32-byte hex string

  • ROME_NOVNC_PORT6080noVNC port for desktop access.

    noVNC port for desktop access.

    values: Port number

  • ROME_PROFILEProfile name for data isolation.

    Profile name for data isolation.

    values: Any string

  • SSH_USER_PASSWORDPassword for the container's SSH account. When set, host port 2222 maps to container's sshd.

    Password for the container's SSH account. When set, host port 2222 maps to container's sshd.

    values: Any string

  • TS_HOSTNAMEromeTailscale hostname for the container.

    Tailscale hostname for the container.

    values: Hostname string

  • WEB_HOST0.0.0.0Web server bind address.

    Web server bind address.

    values: IP address

  • WECHAT_USER_ENABLEDfalseEnable personal WeChat client in container (requires SYS_ADMIN cap).

    Enable personal WeChat client in container (requires SYS_ADMIN cap).

    values: true | false

Rome releases & version history

FAQ

How to publish a Rome App outside Rome?

Use the @rome-os/app-web-sdk CLI (rome publish) with a CLI/API token from Settings > Developer, or run rome login --host <url>. Inside Rome, ask your agent to publish an installed app using the instance's own credentials.

More in Workflow Automation

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…