Deploy Open Intelligent UI

Open-source ChatGPT-style UI: answers stream as interactive interface.

Deploy Open Intelligent UI

Just deployed

Deploy and Host Open Intelligent UI on Railway

Deploy on Railway

This template deploys Open Intelligent UI, an open-source implementation of the "Intelligent UI" pattern introduced in ChatGPT, built on OpenUI. Ask "I'm in San Francisco for a day, plan a sightseeing route" and the answer arrives as a map, photos and an itinerary you can edit, not a paragraph. One Next.js service, no database, and you bring your own model key.

About Hosting Open Intelligent UI

One service, web. Railpack reads engines.node from package.json and provisions Node 24, runs npm run build, then next start. There is no Dockerfile step and no image to pin: the build comes from the upstream repository on every deploy.

No database and no volume are attached. Conversations are stored in the browser's local storage, so a redeploy loses nothing on the server and there is no data to back up or migrate. Runtime calls leave the container for three things: your model endpoint, the public OSRM demo server for street routes, and Wikipedia/Wikimedia for photo search.

One model path is active at a time, chosen at boot by what is set: if LLM_BASE_URL has a value, the app talks to that OpenAI-compatible endpoint; otherwise, if MODEL_PROVIDER=ollama or OLLAMA_MODEL is set, it talks to Ollama; otherwise it falls back to the OpenUI Gateway at https://api.thesys.dev/v1/embed. Both path selectors ship empty, so the gateway path is what runs until you set LLM_BASE_URL. The two keys are alternatives: set THESYS_API_KEY, or set LLM_BASE_URL and LLM_API_KEY together, never both. If neither is set the app says so on the first message rather than failing silently.

Why Deploy Open Intelligent UI

Running it locally means Node 24, an install of roughly 400 packages, and a key. Deploying gives you a URL you can open on a phone or hand to someone else, with the model key held server-side instead of pasted into a browser session. It is also the shortest way to see whether streaming UI instead of streaming text is worth building into your own product, before you commit to a component library.

Common Use Cases

  • Try generative UI hands-on, from a URL, without a local toolchain
  • Demo "answers that render as interface" to a client or a team
  • A starting point for a vertical app: keep the streaming loop, replace the component library
  • Compare how different models lay out the same answer, since the layout is written by the model at runtime
  • A sandbox for prompt and tool changes against the OpenUI spec

Dependencies for Open Intelligent UI Hosting

  • An OpenAI-compatible model endpoint, or an OpenUI Cloud key. Nothing else is required.
  • No database, no object storage, no volume.
  • Outbound network access to your model endpoint, router.project-osrm.org, and the Wikimedia APIs.

Deployment Dependencies

Implementation Details

Variables

The two API keys are alternatives, never both. Which one matters depends on LLM_BASE_URL: while it has a value, the direct path runs and only LLM_* is read; clear it and the gateway path runs, and only THESYS_* is read. Yours to choose at deploy time.

VariablePathRequiredDefaultPurpose
LLM_BASE_URLdirectpath selectoremptyAny OpenAI-compatible base URL ending in /v1, e.g. https://openrouter.ai/api/v1. Setting it switches the app off the gateway. Leave empty to use THESYS_API_KEY.
LLM_API_KEYdirectyes, with that path—Key for LLM_BASE_URL. OpenRouter keys come from openrouter.ai/keys. Ignored while LLM_BASE_URL is empty.
LLM_MODELdirectyes, with that pathemptyModel id the endpoint serves, set together with both values above, e.g. openai/gpt-6.1-sol on OpenRouter. A model the endpoint does not have fails on the first prompt.
LLM_REASONING_EFFORTbothnolowlow, medium, high, or default to send no reasoning parameter at all. Use default if a model rejects the parameter.
THESYS_API_KEYgatewayyes, with that path—OpenUI Cloud key from thesys.dev. This is the path that runs while LLM_BASE_URL is empty.
THESYS_MODELgatewaynoemptyModel id on the OpenUI Gateway. The app falls back to openai/gpt-6.1-sol when this is empty. Ignored while LLM_BASE_URL is set.

First use: open the service URL and ask for something with structure. The first answer takes a few seconds while the model writes the UI program. If chat returns an error, check which path is active first: with LLM_BASE_URL set, a missing or wrong LLM_API_KEY is the usual cause; with it empty, THESYS_API_KEY is.

Limits worth knowing: chat is light theme only, the dark theme lives behind a dev-only route upstream. Layout quality tracks the model; smaller models produce simpler cards. The OSRM and Wikimedia calls hit public demo endpoints with rate limits outside this template's control.

Notes: this template is published by a third party. It is not affiliated with the upstream maintainers, OpenUI, or OpenAI. Upstream issues belong in the upstream repo; template issues (variables, build, networking) belong in the template queue.


Template Content

More templates in this category

View Template
Chat Chat
Chat Chat, your own unified chat and search to AI platform.

okisdev
117
View Template
NEW
Möbius v0.1 Personal AI OS
Self-hosted AI agent that builds and runs apps for you, with memory.

bento
1
View Template
stella
Self-host stella with web, API, Postgres, Redis, and object storage.

Jan Kubica
7