Features overview
Nova Code is a self-hosted control plane for AI coding agents. You attach workspaces (directories on the server), run sessions (chat with Cursor, Claude, or Mistral Vibe), create orchestrators (multi-step plans that spawn per-step sessions), schedule automations (recurring prompts), and use built-in files, Git, and rules tooling — all from a single web UI.
Core areas
Section titled “Core areas”| Area | What it gives you |
|---|---|
| Home | Dashboard with session counts (busy/idle), recently active sessions, and quick links to workspaces. |
| Workspaces | Named projects tied to real folders on disk; grouping, tags, colors, and archive. |
| Sessions | Streaming AI chat over WebSockets with prompt queues, model selection, image attachments, and Markdown rendering. |
| Orchestrators | Break a goal into subtasks; each step runs in its own session. Deleting an orchestrator removes its step sessions. |
| Automations | Recurring agent prompts per workspace on a schedule, with run history and manual triggers. |
| Files & Git | Browse and edit files; view status, diffs, commit, and push — with multi-repo awareness. |
| Rules & templates | Workspace rule files injected into agent prompts, plus reusable role templates. |
| Settings | Themes, PWA install, push notifications, MCP client configuration, and agent authentication. |
Architecture
Section titled “Architecture”- API: Fastify (TypeScript), REST + WebSockets, JWT authentication.
- Database: PostgreSQL via Prisma.
- Dashboard: Installable PWA built with Vue 3, Pinia, and Tailwind CSS; optional web push notifications when a session finishes (body shows a short preview of the last reply or tool result).
- Code style: Dashboard and API refactors follow the repository’s coding conventions (
docs/coding-conventions.md): import grouping (including optional// utilsbetween stores and classes), Vue script section order and headers,bprefixes on local and Pinia boolean refs, explicit braces on control flow, descriptive naming, and route handlers grouped in a consistent list/get/create/update/delete order. - Refactor reference:
app/api/src/classes/agentStreamParser.tsis a good API-side example of convention-focused refactoring (shared helpers, descriptive names, and no inline one-line control-flow branches). - Additional references:
app/api/src/routes/chat.ts,app/dashboard/src/views/SetupView.vue,app/dashboard/src/components/workspace/FilesComponent.vue, andapp/dashboard/src/components/DirPickerModal.vueare maintained as practical examples for explicit-brace control flow, import grouping, and sectioned script/route organization.
Supported agents
Section titled “Supported agents”| Agent | Description |
|---|---|
| Cursor Agent | Full integration with Cursor’s agent mode, including model list sync. |
| Claude Code | Anthropic’s Claude Code CLI with streaming chat and session resume. |
| Mistral Vibe | Optional — requires the vibe CLI on the server and an API key configured in Settings. |
Agent availability is shown dynamically in the new-session UI based on what is installed and authenticated on the server.
Designed for self-hosting
Section titled “Designed for self-hosting”Nova Code is built for trusted, often single-tenant deployments where you control the hardware and network. Your code, conversations, and credentials stay on your infrastructure. When agents run, they contact model provider APIs according to those providers’ terms — Nova Code itself does not proxy or store model traffic. See Privacy for details.
Next steps
Section titled “Next steps”Use the sidebar to dive into each feature area, or start with the installation guide if you haven’t set up Nova Code yet.