Browser UI
muaz ships an optional browser UI — a React app served by the muaz-gateway
server. It gives you a graphical surface for chat, agents, providers, plugins,
skills, MCP status, and sessions, backed by the same agent runtime as the CLI.
Starting the UI
Section titled “Starting the UI”-
Launch the gateway.
Terminal window muaz gateway # binds 127.0.0.1:7878 by defaultmuaz gateway --port 9000 # custom portOn startup it prints a URL containing a one-time token, e.g.
http://127.0.0.1:7878/?token=…. -
Open the printed URL. Visiting it with the token sets a
muaz_tokencookie, so every later request in that browser authenticates automatically.
What’s in the UI
Section titled “What’s in the UI”| Page | Purpose |
|---|---|
| Chat | Talk to an agent with streamed responses, an in-browser approval dialog for tool calls, and an inline banner to enter an API key and retry when a turn fails authentication |
| Agents | Browse agents across namespaces, create/edit/delete local agents, and “Fork” built-in/plugin agents into your local workspace |
| Providers | Manage provider profiles, the default binding, and per-agent bindings; store API keys (with a Key set / From environment / Not set status) and Test a profile’s credentials |
| Plugins | Install (by name from the registry), enable/disable, trust, and uninstall plugins |
| Skills | View discovered Agent Skills |
| MCP | See registered MCP servers and their status |
| Sessions | Browse and resume saved sessions |
| Settings | View the active configuration |
How it relates to the CLI
Section titled “How it relates to the CLI”The UI is a thin front-end over the same muaz-core runtime the CLI uses —
agents, skills, sessions, tools, and the approval policy are shared. Anything you
configure on disk (see Configuration) applies to
both. Tool approvals that would prompt in the terminal instead surface as an
approval dialog in the browser.
Authentication at a glance
Section titled “Authentication at a glance”The gateway token can be supplied three ways on each request:
Authorization: Bearer <token>header- a
muaz_tokencookie (set automatically after the first?token=visit) - a
?token=query parameter (used byEventSource, which can’t set headers)
Comparison is constant-time, and the static UI shell is the only public route.