# AskEaves

Source: https://www.gaz.dev/work/askeaves

I built AskEaves to let an AI assistant understand the house and write automations, with your approval before changes happen.

## Project facts

- Format: Self-hosted · Open source
- Focus: Voice · AI agents · Home automation
- My contribution: Product design and development

## The product

AskEaves connects an assistant to the home so it can understand devices and help write automations. You review and approve changes before they happen.

## Making voice feel immediate

I want a voice assistant that responds quickly enough to feel natural in conversation. Waiting several seconds for an ordinary house question breaks that flow. The challenge spans the whole turn: understanding the request, reading the relevant state, calling tools and starting the spoken reply.

In one recorded weather-question test, audible speech arrived after 8.6 seconds. Two model calls dominated that delay; ElevenLabs synthesis took 133 milliseconds. That made prompt size, the available tool catalogue and repeated model round trips concrete engineering problems to investigate.

The dashboard streams complete sentences into ElevenLabs as the answer is written, so speech can begin before the entire reply is finished. Faster model options are part of the exploration, alongside measuring where each stage spends its time.

## Understanding a changing house

On the server, the house is a continually changing system. Lights, motion sensors, media players and energy equipment report through different vendor APIs. I built plugins that translate those devices into a shared model of entities and capabilities, so the assistant can work with one consistent view.

Integrations such as Hue stream changes as they happen; others refresh through polling. The core maintains the reported state, while WebSockets distribute updates to the dashboard. A physical change to a light or sensor needs to reach that model just as a command from the assistant does.

## Fast decisions with useful context

I’m also exploring decision-making models that take a defined set of rubrics and return the most likely answer. For a routine house request, that offers a way to identify the likely intent and relevant capabilities quickly, while a fuller agent can handle tasks that need more reasoning.

Every new integration adds data and capabilities. Sending the whole house and every tool with every request quickly becomes unwieldy. I’m developing an approach that selects the relevant house context and a smaller set of tools for common requests, with wider discovery available when a task needs it. The assistant needs current device evidence as well as conversation history.

## A place to explore

This brings together a personal interest in home automation and my work with AI agents. It is a practical product for exploring responsive voice, live context and useful automation, with the local house core continuing to operate independently of the assistant.

## Technology stack

- **Node.js · TypeScript**: The headless home-automation core and device plugins.
- **React · TanStack Start**: The local dashboard and chat interface.
- **TanStack AI · OpenRouter**: The dashboard's assistant and model integration.
- **ElevenLabs**: Streamed spoken replies while the assistant's answer is being written.
- **MCP · WebSockets**: Assistant tools and live device-state updates.
- **SQLite · Docker**: Local storage and self-hosted deployment.


## Images

![AskEaves home automation assistant website](https://www.gaz.dev/assets/work/askeaves.png)

AskEaves: an open-source home automation project.


[Visit AskEaves](https://www.askeaves.com/)

[Work with Gary](https://www.gaz.dev/hire-me)
