nexus-ui
The admin dashboard. It is a standalone repository
(nexus-ui), not part of the Rust monorepo — so
nexus-platform stays Rust-only and the UI ships on its own cadence. It manages
the whole platform through the Nexus Core REST API.
Stack
| Library | Use |
|---|---|
| Next.js 16 (App Router) | framework, server routes, build |
| React 19 + TypeScript | app |
| Tailwind CSS v4 | styling (token-based, dark-first) |
| TanStack Query | API state, caching, mutations |
| TanStack Table | agent / task / run tables |
| Radix UI + lucide-react | primitives + icons |
| sonner / cmdk / nuqs | toasts, command palette, URL state |
| Zod | env + schema validation |
TanStack Query fits because the UI constantly fetches and mutates server state: tasks, runs, agents, skills, memory, approvals, and logs.
Talking to Core
The browser never calls Nexus Core directly. A same-origin server route —
/api/nexus/[...path] — proxies every request and injects the X-Nexus-Api-Key
server-side, so the key never reaches the client and CORS is a non-issue.
Pages
Dashboard · Agents · Skills · Memory · Board · Runs
Approvals · Integrations · Telegram Commands · Settings
Agents
Create / clone agent · enable-disable · assign skills · choose model · choose tools · choose memory scopes · set Kubernetes resources · set permissions · view performance.
Skills
Create skill · edit Markdown/YAML in Monaco · version · test against a sample task · publish · attach to agents.
Memory
Search · filter by scope · approve proposed memory · delete bad memory · pin important memory · see which agent created it.
Runs
Live logs · agent output · files changed · commands run · failure reason · retry button.
Approvals
The queue of human-approval requests raised by permission gates
(production_deploy, dependency_upgrade, database_migration, etc.). Approve
or reject; the corresponding run resumes or the action is skipped.
Related
- Concepts — what the pages manage
- API reference — what the UI calls