Deploy openmuse-template
Self-hosted OpenMuse: personal AI agent with browser, terminal, and files
browser-worker
Just deployed
Just deployed
/data
OpenMuse — Your Personal AI Agent, Self-Hosted
OpenMuse (by the CopilotKit team) is a personal AI agent with a browser, terminal, files, and persistent tasks — durable task plans with approvals, inline email/browser/PDF cards, and thread persistence. This template deploys the full stack in one click: the web UI + API + durable task engine in one service, plus the Playwright/Chromium browser worker on Railway's private network.
Upstream is in active development (Alpha). This template builds from a pinned commit of CopilotKit/openmuse (MIT) plus a small same-origin patch, so your deploy is reproducible.
The one credential you need
Every OpenMuse mode requires a free CopilotKit Intelligence project key (it powers thread persistence and replay). The deploy form asks for it as CPK_INTELLIGENCE_API_KEY:
- Run
npx copilotkit@latest loginand sign in (free). - Run
npx copilotkit@latest project selectand create/select a project. - Copy the server key and paste it into the deploy form.
That is the only input the template asks for. The app boots in sample mode (fictional data, no LLM keys) so you can explore the UI, chat, tasks, files, and browser immediately.
Post-deploy options (all optional)
- Real model: set
AGENT_BACKEND=model,MODEL=openai/gpt-4o(oranthropic/claude-*,google/gemini-*), and the matchingOPENAI_API_KEY/ANTHROPIC_API_KEY/GOOGLE_API_KEYon theopenmuseservice. OpenAI-compatible endpoints work viaOPENAI_BASE_URL. - Live Google workspace: set
WORKSPACE_MODE=liveplusAGENT_BACKEND=model,OPENMUSE_ACCESS_KEY(24+ random chars),TOKEN_ENCRYPTION_KEY(32 random bytes, base64), andGOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET. OAuth callback:PUBLIC_API_URL + /api/google/callback. - RAM: for heavy browsing sessions raise the
browser-workerservice to 2 GB RAM in its Railway settings.
Deploy and Host
About Hosting
Two services are provisioned:
- openmuse — the Node API (CopilotKit runtime, task engine, files, PGlite-embedded Postgres) with in-process task worker, fronted by nginx which serves the React Native web build and proxies
/apisame-origin. A Railway volume is mounted at/datafor the database, files, and signing key; the healthcheck isGET /api/health; restarts are automatic on failure. Threads, tasks, and uploads persist across deploys. - browser-worker — the Playwright/Chromium browser service from upstream
apps/worker, reachable only on Railway's project-private network (no public domain), storing browser profiles under/data. Delete this service if you don't need the browser tool; everything else keeps working.
Security notes: OpenMuse is a single-owner app without multi-user auth — treat your Railway domain as a secret. The API binds to loopback inside the container; nginx is the only public entry point over HTTPS.
Why Deploy
- One click, one prompt: the only deploy input is the CopilotKit key — domain-derived config (
PUBLIC_API_URL,ALLOWED_ORIGINS, worker URL/token) is derived at runtime, so nothing else to configure. - Random-domain safe: the web build targets its own origin, so Railway's generated domains work without rebuilds.
- Reproducible alpha tracking: builds pin an upstream commit, so redoes are identical; bump the pin when you want updates.
- Private browser worker: Chromium runs isolated on the private network — verified working on Railway.
- Persistent by default: PGlite + files live on a Railway volume; threads, tasks, and history survive restarts and redeploys.
Common Use Cases
- Personal research agent — browse, read, and summarize the web with a persistent Chromium profile and durable task plans you can approve.
- File workflows — upload PDFs, fill forms, and draft documents inline; files persist on the volume.
- Email and calendar copilot — switch to live mode with Google OAuth to draft mail and manage events with approvals.
- Self-hosted CopilotKit playground — a full AG-UI/CopilotKit runtime to develop and test your own agents against.
- Team demo — show stakeholders a working agent product in minutes without touching Docker locally.
Dependencies for
Deployment Dependencies
- A free CopilotKit account for the Intelligence server key (
npx copilotkit@latest login→project select) — required in every mode, supplied in the deploy form. - A public GitHub connection — the template builds from
lNamelessl/openmuse-railway-template, which pins upstreamCopilotKit/openmuse(MIT) at commit34b15bc80340e582fb8c25573646cfb0bbc5184d. - Optional: an LLM provider key (OpenAI, Anthropic, or Google) for
AGENT_BACKEND=model; Google OAuth credentials for live workspace mode. - Optional: raise
browser-workerRAM to 2 GB for heavy browsing.
Template Content
browser-worker
lNamelessl/openmuse-railway-templateCPK_INTELLIGENCE_API_KEY
