---
title: "Deploy OpenMuse"
description: "CopilotKit's personal agent with a browser, files and tasks, on Postgres"
category: "AI/ML"
url: https://railway.com/deploy/openmuse-1
---

# Deploy OpenMuse

CopilotKit's personal agent with a browser, files and tasks, on Postgres

**[Deploy OpenMuse on Railway](https://railway.com/template/openmuse-1)**

Machine-readable deploy manifest (JSON, validated by TemplateCI): https://railway.com/deploy/openmuse-1/manifest.json

- **Creator:** Dektion
- **Category:** AI/ML
- **Total deploys:** 1

## Template content

### Postgres https://devicons.railway.com/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:17

### OpenMuse https://raw.githubusercontent.com/dektionstudio/railway-template-images/d8d078cf98674ac1e828e5fc7a88b66e2c73e6dc/openmuse-web/icon.png

- **Source:** dektionstudio/railway-template-images
- **Health check:** /
- **Public domain:** Yes

### Browser https://devicons.railway.com/i/chrome.svg

- **Source:** dektionstudio/railway-template-images
- **Health check:** /health

### API https://raw.githubusercontent.com/dektionstudio/railway-template-images/d8d078cf98674ac1e828e5fc7a88b66e2c73e6dc/openmuse-web/icon.png

- **Source:** dektionstudio/railway-template-images
- **Health check:** /api/health
- **Public domain:** Yes

## Documentation

# Deploy and Host OpenMuse on Railway

[OpenMuse](https://github.com/CopilotKit/openmuse) is CopilotKit's open-source personal agent: a chat app with its own browser, files and background tasks, where you can watch the agent work and take over its browser. This template runs it as upstream designed it for hosting: the API, a private Chromium worker and the web app, with Postgres.

## About Hosting OpenMuse

OpenMuse has no releases yet and changes daily, so the template builds a pinned commit (d0b3a6b, 2026-09-29) rather than whatever is newest.

Two changes from upstream's own cloud setup:

- The API uses Railway Postgres instead of its embedded database. That embedded store is why upstream sizes the API at 2 GB; here it idled at 0.15 GB.
- The browser worker has no public address. It listens on Railway's private network and only the API talks to it, with a generated shared secret.

Everything else is generated at deploy: `OPENMUSE_ACCESS_KEY` (what you sign in with), the token encryption key and the worker secret. You bring two things:

- A CopilotKit Intelligence key (`CPK_INTELLIGENCE_API_KEY`). OpenMuse stores its chat threads there and won't start without one. The free plan covers one developer: run `npx copilotkit@latest login`, then `npx copilotkit@latest project select`.
- A model key. The default is `MODEL=openai/gpt-5-mini` with `OPENAI_API_KEY`; Anthropic (`anthropic/...`) and Google (`google/...`) work too. For OpenRouter, set `OPENAI_BASE_URL=https://openrouter.ai/api/v1` and `MODEL=openai//`.

Before publishing I tested it on Railway with OpenRouter as the model provider. The API reported live mode with the agent and browser configured, the web app loaded with the API address built in, and the access key signed in. The browser worker opened https://example.com over the private network and read the page back. An agent task read the same page with its browser tool and finished. After restarting the API, the browser worker and Postgres, the same checks passed.

Two things I couldn't test: chat needs a real CopilotKit Intelligence key, and through OpenRouter `gpt-4o-mini` never called the agent's tools while `gpt-5-mini` did.

Memory at idle: API 0.15 GB, browser worker 0.25 GB (0.48 GB while browsing), web app 0.02 GB, Postgres 0.08 GB. That's about $5 a month on Railway's usage pricing, plus your model and CopilotKit usage.

## Common Use Cases

- A personal agent that reads pages, fills PDFs and runs tasks in the background while you do something else
- Watching an agent browse and taking over its browser when a page needs you
- A starting point for your own CopilotKit / AG-UI agent app, running on your infrastructure

## Dependencies for OpenMuse Hosting

A CopilotKit Intelligence key and a model key (OpenAI, Anthropic, Google, or an OpenAI-compatible gateway such as OpenRouter).

### Deployment Dependencies

- OpenMuse: https://github.com/CopilotKit/openmuse
- CopilotKit Intelligence: https://copilotkit.ai
- The Dockerfiles this template builds: https://github.com/dektionstudio/railway-template-images (folders `openmuse-api`, `openmuse-browser`, `openmuse-web`)

### Implementation Details

```
OPENMUSE_URL           # open this and sign in with OPENMUSE_ACCESS_KEY
MODEL                  # provider/model, default openai/gpt-5-mini
BROWSER_WORKER_URL     # the private Chromium worker, reached only by the API
```

The optional Linux computer from upstream is off: it needs a Docker engine, which Railway services don't have. The web app has the API address built in at build time, so after changing the API's domain, redeploy the OpenMuse service.

## Why Deploy OpenMuse on Railway?

The agent keeps working while your laptop is closed, and its browser, files and task history live on volumes and in Postgres. Four services and their private networking come up from one deploy.


## Similar templates

- [Chat Chat](https://railway.com/deploy/-WWW5r) — Chat Chat, your own unified chat and search to AI platform.
- [stella](https://railway.com/deploy/stella) — Self-host stella with web, API, Postgres, Redis, and object storage.
- [Hermes Agent | OpenClaw Alternative with Dashboard](https://railway.com/deploy/hermes-agent-or-openclaw-alternative-wit) — Self-Hosted Hermes AI Agent for Telegram, Discord & Slack

Open this page in a browser: https://railway.com/deploy/openmuse-1
