kollabor-webui
kollabor-webui is the browser UI shell for kollabor-engine.
It serves the assistant-ui single-page app, proxies engine configuration to the browser, and connects to the local engine API for sessions, assistant-transport streaming, permission prompts, profiles, MCP, and hub controls.
Architecture
| Module/Asset | Responsibility |
|---|---|
src/kollabor_webui/__init__.py |
kollabor-webui command entrypoint and uvicorn launcher |
src/kollabor_webui/server.py |
FastAPI config endpoint, Vite assets, and SPA fallback |
frontend/src/ |
assistant-ui React/TypeScript source |
frontend/dist/ |
local Vite output (ignored; regenerated for package builds) |
src/kollabor_webui/static/ |
legacy static fallback and packaged assistant-ui output |
The checked-in frontend source is the source of truth. hatch_build.py runs
npm ci and npm run build when npm is available, then force-includes Vite's
frontend/dist output in a wheel under kollabor_webui/static/assistant. The
source checkout also serves frontend/dist directly, which makes editable
installs useful without copying generated files into git. Python-only builds
continue to serve the legacy static/index.html and static/app.js fallback
if Node/npm is unavailable.
Usage
Quickest path — kollab --web-ui spawns the engine and this package together
(reusing an already-running engine on 7433 if one is healthy) and cleans both
up on Ctrl+C or SIGTERM:
kollab --web-ui
To run the two pieces separately (useful when iterating on one of them):
Start the engine:
python -m kollabor_engine serve --host 127.0.0.1 --port 7433
Start the web UI:
KOLLAB_ENGINE_URL=http://127.0.0.1:7433 \
KOLLAB_WEBUI_PORT=8080 \
kollabor-webui
Then open:
http://127.0.0.1:8080
For an editable checkout without installed console scripts:
python -c "from kollabor_webui import main; main()"
Frontend development
cd packages/kollabor-webui/frontend
npm ci
npm run typecheck
npm run build
npm run dev
Vite proxies /api, /sessions, /profiles, /mcp, and /hub to the local
engine while developing. The production build uses relative asset paths, so
FastAPI can serve hashed assets from any mount path and route client-side
navigation back to index.html.
Engine endpoints used
POST /sessionsGET /sessionsDELETE /sessions/{session_id}POST /sessions/{session_id}/assistantPOST /sessions/{session_id}/cancelPOST /sessions/{session_id}/permissionGET /sessions/{session_id}/permissionsPOST /sessions/{session_id}/permissions/modeGET/DELETE /sessions/{session_id}/historyGET/POST/PUT/DELETE /profiles...GET/POST/PUT/DELETE /mcp/servers...GET/POST /sessions/{session_id}/mcp...GET /hub/agentsPOST /hub/messages
Authentication
The browser gets the current engine bearer token from /api/config, which
reads ~/.kollab/engine.token. Frontend requests retry once after a 401 by
refreshing that config, covering engine restarts that rotate the token.
Validation
python -m py_compile packages/kollabor-webui/src/kollabor_webui/*.py
python -m pytest tests/unit/test_webui_auth_wiring.py -q
cd packages/kollabor-webui/frontend
npm run typecheck
npm run build
License
MIT
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kollabor_webui-0.7.2.tar.gz.
File metadata
- Download URL: kollabor_webui-0.7.2.tar.gz
- Upload date:
- Size: 116.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8aff43f09f3a681270d061e8c8f94d3d0bb8070c3e1913a55108b18d751a5427
|
|
| MD5 |
522b1d75a4fef6a8e7555066c2afd1db
|
|
| BLAKE2b-256 |
a7fec4a94d7f9e3cbb430f30f4ee8e02e04e9c7e8d021009ad48641eb859e0f7
|
File details
Details for the file kollabor_webui-0.7.2-py3-none-any.whl.
File metadata
- Download URL: kollabor_webui-0.7.2-py3-none-any.whl
- Upload date:
- Size: 26.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06e7aea93d6c6502851bff2411e1d19b5bd1b1a565aef9d8c4563ac2a6664678
|
|
| MD5 |
d4e466753d1d1a0551dc9ba1cd34bb37
|
|
| BLAKE2b-256 |
663e991c6192182bf5aa8de148b618502e337ba8c9d2022b7168f50b7fb74170
|