> ## Documentation Index
> Fetch the complete documentation index at: https://docs.qredence.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Web app (Qredence UI)

> The Qredence web UI for Fleet Prime Agent: chat, tool cards, session list, model picker.

The web app is Fleet Prime Agent's browser interface. It renders every tool call as a card, streams the model's response as it's produced, and lets you switch models and branches without leaving the tab.

## Run it

```bash theme={null}
pnpm install --dir web
pnpm --dir web --filter @prime-agent/web dev
```

Open `http://127.0.0.1:<port>` — the port is printed on startup.

The server binds to `127.0.0.1` only. It has no multi-user auth. Do not expose it beyond localhost without your own auth layer in front — see [Security](/fleet-prime-agent/reference/security).

## What you get

* **Streaming chat** — `ChatStreamEvent` events over NDJSON. See [Streaming chat](/fleet-prime-agent/guides/streaming-chat).
* **Tool cards** — a card per tool call, rendered by BEUI components in `web/design`. See [Tool cards](/fleet-prime-agent/guides/tool-cards).
* **Session list** — resume, fork, or search sessions. See [Sessions](/fleet-prime-agent/guides/sessions-and-branching).
* **Model picker** — swap providers and models mid-session.
* **Slash commands** — `/login`, `/refine`, and everything else you'd get in the TUI.

## How it plugs into the runtime

The browser never imports agent packages directly. Only the web server adapter (`web/server/src/event-mapper.ts`) imports `@earendil-works/*` — it translates `AgentSessionEvent` from the agent runtime into `ChatStreamEvent` NDJSON for the browser and `AgentSessionEvent` SSE for out-of-turn events.

Contracts stay in `web/protocol` (`chat-protocol.ts`, `fleet-contract.ts`) and must be updated in lockstep with the adapter.

## Related

* [Web API reference](/fleet-prime-agent/reference/web-api) — HTTP routes and event shapes.
* [Architecture](/fleet-prime-agent/concepts/architecture) — where the adapter sits in the stack.
