Nova
A desktop assistant and browser activity monitor exploring which requests can run on your computer and which need a cloud model.
3rd Place · Cactus DeepMind Hackathon · 21 February 2026
Help on the Desktop
Nova puts a voice assistant above other windows for routine requests such as setting timers and controlling music. A companion browser extension captures activity and displays categories and possible productivity concerns.
The prototype first tries requests with a small model running on the computer. When its confidence is low, request context goes to a cloud model instead. The local setup targets Apple Silicon, so this is an exploration of a specific desktop setup rather than an assistant that runs entirely offline.
Routing Requests Between Local and Cloud Models
Trying the Local Model First
The desktop overlay sends requests to a Python backend, which coordinates application state and inference. FunctionGemma runs through Cactus and returns a confidence score alongside its result. The desktop architecture places this routing decision between the interface and the models.
Passing Uncertain Requests to Gemini
When local confidence is low, the router passes request context to Gemini for cloud reasoning. A confident local result can be used directly instead. This makes confidence the decision point for where inference runs; a routine request and an uncertain request can enter through the same interface but take different processing paths.
Interfaces and Inference
| Component | Responsibility |
|---|---|
| Desktop overlay | Electron and React voice interface above other windows. |
| Browser extension | Captures activity and displays categories and productivity risk. |
| FastAPI | Coordinates local requests, state, and MCP tool execution. |
| Local model | FunctionGemma through Cactus attempts inference and returns confidence. |
| Gemini | Receives request context for cloud fallback when confidence is low. |
Connecting Responses to Desktop Actions
FastAPI coordinates MCP tool execution for actions such as timers and music controls. Model inference decides how to interpret the request, while the application layer manages the tools that carry it out. The companion extension provides a separate browser activity view with categories and productivity concerns.