Nova uses one shared Python agent runtime across four interfaces: a terminal TUI, an HTTP server, a browser-based web app, and a desktop window. Choose nova serve when you need the backend or an API, nova web for the browser, nova tui for a terminal workflow, or nova desktop for a native window around the frontend. The interface changes how you access Nova; the README says the agent loop, tool registry, and SQLite store are shared.
What is shared across Nova’s four interfaces?
Nova’s project README describes a common Python core behind the TUI, server, web frontend, and desktop app. The shared pieces include the agent loop, tool registry, and SQLite store. You do not choose a different agent implementation simply by choosing a different interface; you choose how to interact with it and, in some cases, how to expose it.
As an Amazon Associate I earn from qualifying purchases.
The setup instructions and dependencies do vary by interface. Nova’s README specifies Python 3.12 or later and an editable install for the base project. TUI use adds Bun, while the web frontend has its own npm dependencies. The desktop mode hosts the built frontend in a PyWebView window.
Which Nova interface should you use?
| Interface | Command | What it does | Additional consideration |
|---|---|---|---|
| Server | nova serve |
Starts the FastAPI backend, documented at http://127.0.0.1:8765, including an SSE chat endpoint. |
Use it as the backend for clients or as the service behind the web and desktop interfaces. |
| Web | nova web |
Serves the built frontend through the backend and opens it in a browser; builds frontend/dist if needed. |
For development, the README describes running Vite separately. |
| TUI | nova tui |
Runs the terminal interface, described as a Bun, React, and OpenTUI client with streaming and inline diffs. | Bun is required. |
| Desktop | nova desktop |
Opens a PyWebView window that hosts the built frontend. | PyInstaller is used for packaging. |
How do you install and configure Nova?
-
Clone the repository and enter its directory:
git clone https://github.com/bigrivi/nova.git cd nova -
Install Nova in editable mode. The README specifies Python 3.12 or later:
#1 Best Overall
pip install -e . -
Configure a provider and model in
~/.nova/config.json. The README also documentsNOVA_HOMEas an override for the Nova home directory. -
Install only the optional dependencies needed for your chosen workflow. Playwright Chromium is needed only if you want browser tools. Frontend packages are installed separately in
frontendwith npm. For TUI development, the README documentsbun installfollowed bybun run build.
How do the four launch modes differ?
Server: run the backend
Run nova serve to start the FastAPI backend. The README documents the default local address as http://127.0.0.1:8765 and identifies POST /api/chat/stream as an AI SDK UI-compatible server-sent events (SSE) chat endpoint. This is the backend-oriented option when you want to connect an API client or run the service separately from its interface.
Web: open the browser interface
Run nova web to have the backend serve the built frontend and open it in a browser. If the frontend build is missing, the command builds frontend/dist. For development, Nova’s README describes running Vite separately rather than treating the production-style web command as the frontend development server.
TUI: work in the terminal
Run nova tui for Nova’s terminal client. The README describes it as a Bun, React, and OpenTUI application, with streaming and inline diffs. Bun is an extra requirement for this interface; installing the Python package alone does not supply it.
Desktop: use a windowed frontend
Run nova desktop to open a PyWebView window hosting the built frontend. This is a windowed way to use the frontend, not a separate agent runtime. The README identifies PyInstaller as the packaging tool.
Which model providers are documented?
Nova’s README lists Ollama, openai-compatible, openai-response, and anthropic as provider types. It specifically says Ollama can run locally without an API key. That statement should not be extended to the external provider options: their credentials and access requirements depend on the provider you configure.
What should you know before exposing Nova on a network?
The README says Nova binds to 127.0.0.1 by default, which limits access to the local machine. To expose it on a LAN, the project instructs operators to set host to 0.0.0.0 and configure both auth_user and auth_password. It warns that the credentials travel as base64 over plain HTTP, not encrypted transport, and says to use this only on a trusted network. Do not treat those settings as a substitute for HTTPS on an untrusted network.
Quick Recap
Best Value
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




