Skip to content

FAQ

At minimum: Docker with Compose (recommended) or Node.js 24 and PostgreSQL 17 for a manual install. You also need at least one agent CLI — Cursor and/or Claude — installed and authenticated on the server. Mistral Vibe is optional. See Installation for full details.

Yes. Install Node.js 24 and PostgreSQL 17, set the required environment variables, run Prisma migrations, and start the API and dashboard. The application README has exact commands.

The first time you open Nova Code, it shows a setup screen where you create the admin account (username and password). No pre-seeding or configuration file is needed.

Each workspace points at a directory the server can read and write. In Docker, these are paths under /data-root (mapped from ~/.novacode/data on the host by default). The file browser and Git commands are scoped to that workspace root — they cannot access files outside it.

Yes. Add more bind mounts to the volumes section of your docker-compose.yml and restart. For example, mount /home/you/work to /data-root/work, then create workspaces with paths like work/my-project.

Cursor Agent, Claude Code, and optionally Mistral Vibe. The new-session UI only shows agents that are installed and authenticated on the server.

Go to Settings → Agent Auth and use the embedded terminal to log in to Cursor and/or Claude. For Mistral Vibe, install the vibe CLI on the server path and set the API key in Settings → Mistral Vibe.

Where is my code sent when I use an agent?

Section titled “Where is my code sent when I use an agent?”

Nova Code spawns agent CLIs as child processes. Those CLIs send your prompts and code context to their vendor APIs (Cursor, Anthropic, or Mistral). Nova Code does not proxy or store that traffic. See Privacy for more details.

What happens if I lose connection during a session?

Section titled “What happens if I lose connection during a session?”

WebSocket connections are used for streaming chat. If you lose connection, you can reconnect and the chat history is preserved in the database. Any in-flight response may be lost, but you can re-send the prompt.

Yes. Sessions persist in the database and each agent type supports resume so follow-up prompts continue the same conversation thread.

The REST API uses JWT bearer auth — the same token your browser receives after login. Send it as Authorization: Bearer <token> with your requests.

Not currently. Use the JWT from your login session for programmatic access.

GET /api/health returns server status (uptime and database reachability) without requiring authentication. Use it for Docker HEALTHCHECK directives or uptime monitors.

The server generates an ed25519 SSH keypair on first startup. Copy the public key from Settings → Git into your Git provider and use SSH remote URLs. See Files & Git for details.

HTTPS remotes use the host’s credential helper, not the server-generated SSH key. If your Git provider requires credentials for HTTPS, configure them on the host or use SSH instead.

If you used install.sh, re-run the same curl command to pull the latest image and restart. If you cloned the repo, pull the latest code and run docker compose up --build -d.

Back up your PostgreSQL database and the config volume (~/.novacode/config by default). The config volume holds agent credentials, SSH keys, VAPID keys, and MCP configuration. Your workspace files are on the host filesystem and should be included in your regular backup strategy.

All existing browser sessions become invalid and users must log in again. Active WebSocket connections will close. Keep JWT_SECRET stable across restarts and upgrades.