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

ComponentResponsibility
Desktop overlayElectron and React voice interface above other windows.
Browser extensionCaptures activity and displays categories and productivity risk.
FastAPICoordinates local requests, state, and MCP tool execution.
Local modelFunctionGemma through Cactus attempts inference and returns confidence.
GeminiReceives 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.

Team

Built with Umar, Vihaan, and Xu An.

Return to Projects