Commands, package names, and image names on this page come from the open-source project that Mibyan Desktop is built on, and can differ from the Mibyan Desktop installer. For the supported Mibyan install and update path, see Install and update.
Architecture
Open WebUI connects to Mibyan’s API server just like it would connect to OpenAI. Mibyan handles the requests with its full toolset — terminal, file operations, web search, memory, skills — and returns the final response.Runtime locationThe API server is a Mibyan agent runtime, not a pure LLM proxy. For each request, Mibyan creates a server-side
AIAgent on the API-server host. Tool calls run where that API server is running.For example, if a laptop points Open WebUI or another OpenAI-compatible client at a Mibyan API server on a remote machine, pwd, file tools, browser tools, local MCP tools, and other workspace tools run on the remote API-server host, not on the laptop.API_SERVER_CORS_ORIGINS for this integration.
Quick Setup
1. Enable the API server
mibyan config set auto-routes the flag to config.yaml and the secret to ~/.mibyan/.env. If the gateway is already running, restart it so the change takes effect:
2. Start Mibyan gateway
3. Verify the API server is reachable
/health fails, the gateway didn’t pick up API_SERVER_ENABLED=true — restart it. If /v1/models returns 401, your Authorization header doesn’t match API_SERVER_KEY.
4. Start Open WebUI
ENABLE_OLLAMA_API=false suppresses the default Ollama backend, which would otherwise show up empty and clutter the model picker. Omit it if you actually have Ollama running alongside.
First launch takes 15–30 seconds: Open WebUI downloads sentence-transformer embedding models (~150MB) the first time it starts. Wait for docker logs open-webui to settle before opening the UI.
5. Open the UI
Go to http://localhost:3000. Create your admin account (the first user becomes admin). You should see your agent in the model dropdown (named after your profile, or mibyan-agent for the default profile). Start chatting!Docker Compose Setup
For a more permanent setup, create adocker-compose.yml:
Configuring via the Admin UI
If you prefer to configure the connection through the UI instead of environment variables:- Log in to Open WebUI at http://localhost:3000
- Click your profile avatar → Admin Settings
- Go to Connections
- Under OpenAI API, click the wrench icon (Manage)
- Click + Add New Connection
- Enter:
- URL:
http://host.docker.internal:8642/v1 - API Key: the exact same value as
API_SERVER_KEYin Mibyan
- URL:
- Click the checkmark to verify the connection
- Save
API Type: Chat Completions vs Responses
Open WebUI supports two API modes when connecting to a backend:Using Chat Completions (recommended)
This is the default and requires no extra configuration. Open WebUI sends standard OpenAI-format requests and Mibyan responds accordingly. Each request includes the full conversation history.Using Responses API
To use the Responses API mode:- Go to Admin Settings → Connections → OpenAI → Manage
- Edit your mibyan-agent connection
- Change API Type from “Chat Completions” to “Responses (Experimental)”
- Save
input array + instructions), and Mibyan can preserve full tool call history across turns via previous_response_id. When stream: true, Mibyan also streams spec-native function_call and function_call_output items, which enables custom structured tool-call UI in clients that render Responses events.
Open WebUI currently manages conversation history client-side even in Responses mode — it sends the full message history in each request rather than using
previous_response_id. The main advantage of Responses mode today is the structured event stream: text deltas, function_call, and function_call_output items arrive as OpenAI Responses SSE events instead of Chat Completions chunks.How It Works
When you send a message in Open WebUI:- Open WebUI sends a
POST /v1/chat/completionsrequest with your message and conversation history - Mibyan creates a server-side
AIAgentinstance using the API server’s profile, model/provider config, memory, skills, and configured API-server toolsets - The agent processes your request — it may call tools (terminal, file operations, web search, etc.) on the API-server host
- As tools execute, inline progress messages stream to the UI so you can see what the agent is doing (e.g.
`💻 ls -la`,`🔍 Python 3.12 release`) - The agent’s final text response streams back to Open WebUI
- Open WebUI displays the response in its chat interface
Configuration Reference
Mibyan (API server)
Open WebUI
Troubleshooting
No models appear in the dropdown
- Check the URL has
/v1suffix:http://host.docker.internal:8642/v1(not just:8642) - Verify the gateway is running:
curl http://localhost:8642/healthshould return{"status": "ok"} - Check model listing:
curl -H "Authorization: Bearer your-secret-key" http://localhost:8642/v1/modelsshould return a list withmibyan-agent - Docker networking: From inside Docker,
localhostmeans the container, not your host. Usehost.docker.internalor--network=host. - Empty Ollama backend shadowing the picker: If you omitted
ENABLE_OLLAMA_API=false, Open WebUI shows an empty Ollama section above your Mibyan models. Restart the container with-e ENABLE_OLLAMA_API=falseor disable Ollama in Admin Settings → Connections.
Connection test passes but no models load
This is almost always the missing/v1 suffix. Open WebUI’s connection test is a basic connectivity check — it doesn’t verify model listing works.
Response takes a long time
Mibyan may be executing multiple tool calls (reading files, running commands, searching the web) before producing its final response. This is normal for complex queries. The response appears all at once when the agent finishes.”Invalid API key” errors
Make sure yourOPENAI_API_KEY in Open WebUI matches the API_SERVER_KEY in Mibyan.
Multi-User Setup with Profiles
To run separate Mibyan instances per user — each with their own config, memory, and skills — use profiles. Each profile runs its own API server on a different port and automatically advertises the profile name as the model in Open WebUI.1. Create profiles and configure API servers
API_SERVER_* are env vars, not YAML config keys, so write them to each profile’s .env. Pick ports outside the default-platform range (8644 is the webhook adapter, 8645 is wecom-callback, 8646 is msgraph-webhook), e.g. 8650+:
2. Start each gateway
3. Add connections in Open WebUI
In Admin Settings → Connections → OpenAI API → Manage, add one connection per profile:
The model dropdown will show
alice and bob as distinct models. You can assign models to Open WebUI users via the admin panel, giving each user their own isolated Mibyan agent.
Linux Docker (no Docker Desktop)
On Linux without Docker Desktop,host.docker.internal doesn’t resolve by default. Options:

