Standalone React frontend for managing Ozwell agents.
Ozwell Manager is an operational console, not a login surface. Auth is handled by the manager container or local auth proxy. The React app calls the Ozwell API and never creates, edits, or asks users for auth headers during normal agent workflows.
- View manager identity and provisioning state
- List agents
- Create agents with the MIEWeb Q builder
- Edit existing agents with Q
- Reveal/copy agent keys
- Rotate agent keys
- Delete agents
- Reveal/copy the manager Ozwell parent key
- Claim an existing
ozw_parent key
- Vite
- React
- TypeScript
@mieweb/ui@mieweb/qlucide-react
When running Vite locally, point the frontend at the local auth proxy:
VITE_OZWELL_API_BASE_URL=http://localhost:3100Start the frontend:
npm install
npm run dev -- --port 5174Open:
http://localhost:5174/
The backend and auth proxy must be running separately from ozwellai-api.
Build the React app:
npm run buildStart the production server on port 3000:
OZWELL_API_TARGET=https://your-ozwell-backend.example.com npm startOZWELL_API_TARGET or OZWELL_BACKEND_URL is required. The server fails on startup if neither is set.
In production, React calls same-origin /v1/manager/.... The Node server serves the built React app and proxies /v1/* to the configured Ozwell backend target while preserving inbound x-user-* headers.
Manager identity:
GET /v1/manager/me
Models for Q dropdown:
GET /v1/manager/models
Agent operations:
GET /v1/manager/agents
POST /v1/manager/agents
GET /v1/manager/agents/:agent_id
PUT /v1/manager/agents/:agent_id
POST /v1/manager/agents/:agent_id/reveal-key
POST /v1/manager/agents/:agent_id/rotate-key
DELETE /v1/manager/agents/:agent_id
Manager parent key operations:
POST /v1/manager/parent-key/reveal
POST /v1/manager/claim-key
- No login UI in this app
- No parent key input for normal create/edit
- The manager container or proxy injects trusted manager auth
- Local development uses the auth proxy on
localhost:3100
npm run buildOZWELL_API_TARGET=https://your-ozwell-backend.example.com npm startOZWELL_BACKEND_URL can be used instead of OZWELL_API_TARGET.