2026-04-18 18:51:53 +00:00
# nanobot webui
2026-04-21 14:33:44 +00:00
The browser front-end for the nanobot gateway. It is built with Vite + React 18 +
2026-04-19 13:10:36 +00:00
TypeScript + Tailwind 3 + shadcn/ui, talks to the gateway over the WebSocket
multiplex protocol, and reads session metadata from the embedded REST surface
on the same port.
For the project overview, install guide, and general docs map, see the root
[`README.md` ](../README.md ).
2026-05-16 13:38:11 +00:00
## Just want to use the WebUI?
2026-04-19 13:10:36 +00:00
2026-05-16 13:38:11 +00:00
If you installed nanobot via `pip install nanobot-ai` , the WebUI is **already bundled** in the wheel. Enable the WebSocket channel in `~/.nanobot/config.json` and run `nanobot gateway` — see the root [`README.md` ](../README.md#-webui ) for the 3-step setup. You do **not** need anything in this directory.
This `webui/` tree is for people **hacking on the WebUI itself** (UI changes, new components, styling, etc.).
2026-04-18 18:51:53 +00:00
## Layout
2026-04-19 13:10:36 +00:00
```text
2026-04-18 18:51:53 +00:00
webui/ source tree (this directory)
2026-04-21 14:33:44 +00:00
nanobot/web/dist/ build output served by the gateway
2026-04-18 18:51:53 +00:00
```
2026-05-16 13:38:11 +00:00
## Develop the WebUI (Vite HMR)
2026-04-19 13:10:36 +00:00
### 1. Install nanobot from source
From the repository root:
```bash
pip install -e .
```
2026-05-16 13:38:11 +00:00
> Editable installs intentionally **skip** the WebUI bundle step — Vite HMR is faster than rebuilding `dist/` on every change.
2026-04-21 12:46:17 +00:00
### 2. Enable the WebSocket channel
In `~/.nanobot/config.json` :
```json
{ "channels" : { "websocket" : { "enabled" : true } } }
```
### 3. Start the gateway
2026-04-19 13:10:36 +00:00
In one terminal:
```bash
nanobot gateway
```
2026-04-21 12:46:17 +00:00
### 4. Start the WebUI dev server
2026-04-19 13:10:36 +00:00
In another terminal:
2026-04-18 18:51:53 +00:00
```bash
cd webui
bun install # npm install also works
2026-04-19 13:10:36 +00:00
bun run dev
2026-04-18 18:51:53 +00:00
```
2026-04-19 13:10:36 +00:00
Then open `http://127.0.0.1:5173` .
2026-04-18 18:51:53 +00:00
2026-05-16 13:38:11 +00:00
By default the dev server proxies `/api` , `/webui` , `/auth` , and WebSocket traffic to `http://127.0.0.1:8765` .
2026-04-18 18:51:53 +00:00
2026-04-19 13:10:36 +00:00
If your gateway listens on a non-default port, point the dev server at it:
2026-04-18 18:51:53 +00:00
```bash
NANOBOT_API_URL = http://127.0.0.1:9000 bun run dev
```
2026-05-06 22:50:56 +08:00
### Access from another device (LAN)
2026-05-16 13:38:11 +00:00
To use the WebUI from another device on the same network, set `host` to `"0.0.0.0"` and configure a `token` or `tokenIssueSecret` in `~/.nanobot/config.json` :
2026-05-06 22:50:56 +08:00
```json
{
"channels" : {
"websocket" : {
"enabled" : true ,
"host" : "0.0.0.0" ,
2026-05-06 23:10:24 +08:00
"port" : 8765 ,
"tokenIssueSecret" : "your-secret-here"
2026-05-06 22:50:56 +08:00
}
}
}
```
2026-05-06 23:15:18 +08:00
The gateway will refuse to start if `host` is `"0.0.0.0"` and neither `token` nor `tokenIssueSecret` is set.
2026-05-06 22:50:56 +08:00
2026-05-16 13:38:11 +00:00
Then open `http://<your-ip>:8765` on the other device. The WebUI will show an authentication form where you enter the secret. It is saved in your browser so you only need to enter it once.
2026-05-06 22:50:56 +08:00
2026-04-19 13:10:36 +00:00
## Build for packaged runtime
2026-04-18 18:51:53 +00:00
2026-05-16 13:38:11 +00:00
You usually do not need to run this by hand: `python -m build` invokes the WebUI build automatically when packaging the wheel.
If you want to preview the production bundle locally without rebuilding the wheel:
2026-04-18 18:51:53 +00:00
```bash
2026-04-19 13:10:36 +00:00
cd webui
2026-05-16 13:38:11 +00:00
bun run build # writes to ../nanobot/web/dist
2026-04-18 18:51:53 +00:00
```
2026-05-16 13:38:11 +00:00
The gateway picks up the new bundle on the next restart.
2026-04-19 13:10:36 +00:00
2026-04-18 18:51:53 +00:00
## Test
```bash
2026-04-19 13:10:36 +00:00
cd webui
bun run test
2026-04-18 18:51:53 +00:00
```
2026-04-19 13:10:36 +00:00
## Acknowledgements
- [`agent-chat-ui` ](https://github.com/langchain-ai/agent-chat-ui ) for UI and
interaction inspiration across the chat surface.