Skip to main content

Nestor

Nestor is an open-source framework for intelligent home assistants — the household's butler.

It is built around a fast central agent that understands the home and the people living in it, remembers each of them, drives Home Assistant, delegates long tasks, speaks up on its own when something matters, and can be reached by voice as well as through messaging apps.

Status: design phase. The architecture is settled and a measured proof of concept exists; the framework itself is not usable yet.

Principles

  • Fast conversation. About one second from the end of your sentence to the assistant's voice. Interruptible, it ignores your "mm-hm", and it says so out loud when a provider fails.
  • Native Home Assistant. Rooms, devices, presence and to-do lists as first-class context; Nestor can also act as a Home Assistant Assist conversation agent.
  • Memory you control. Per-person profiles; every memory is dated, sourced, viewable and editable.
  • Delegation. Long tasks go to execution agents (Hermes, Codex…) while the conversation goes on; results are announced when they arrive.
  • Initiative. It can speak first — an important email, a finished task — when someone is home and it is the right moment.
  • One assistant, every channel. Voice, Telegram, WhatsApp, Discord, web: same agent, same memory.
  • Plug anything. Third-party integrations through MCP; providers and models are swappable adapters.
  • Minimum hardware: a CPU, a microphone and a speaker. Robots, cameras and screens are optional capabilities, with a shared behavior engine and one adapter per body.
  • Auditable. An append-only event log is the source of truth for the dashboard, audit and replay. Local-first storage on SQLite.

Its reference distribution is Richie, a Reachy Mini Wireless home robot.

Documentation: nestorhome.dev/docs: installing the server, pairing satellites, the satellite protocol, its schemas and the SDKs.

Development

uv sync
uv run pre-commit install
uv run ruff check && uv run ty check && uv run pytest

Admin (web/)

The admin is a React single-page app (Vite, TanStack Router and Query, Tailwind, shadcn/ui on Base UI, Project Fluent), built into src/nestor/admin/static/app/ and served by Nestor itself. It needs Node 22 and pnpm.

cd web
pnpm install
pnpm dev                                   # on the mock API (MSW), typed against web/openapi.json
NESTOR_API=http://localhost:8080 pnpm dev  # against a running Nestor instead of the mocks
pnpm lint && pnpm typecheck && pnpm test && pnpm build
pnpm api:generate                          # regenerate the client after the API changed
pnpm e2e                                   # Playwright on the mocks, light and dark
NESTOR_URL=http://localhost:8080 E2E_LOGIN=… E2E_PASSWORD=… pnpm e2e:live  # on a throwaway instance

On the mocks, sign in as mathis (owner) or lea (admin) with the password nestor; satellites pair with the code 424242. The visual identity lives in web/src/styles/tokens.css, the logo slot in web/src/components/wordmark.tsx, the admin's texts in web/src/locales/{en,fr}/*.ftl (the server's own messages come from GET /api/v1/i18n/{locale}). pnpm lint also runs the project's Biome plugins (web/lint/*.grit): no native form controls or hand-written ARIA widgets in features, no Base UI or cmdk imports outside components/ui, no presence variants on cmdk attributes, no boolean data-* attributes that render "false".

Copy: a text earns its place only if it tells the person something they need (a consequence, a rule, the next step, how to fix an error). No description that restates its title, no "here you can…" intro, and almost no em dashes (a period, a colon, parentheses or a middle dot instead): web/src/i18n/catalog.test.ts fails on all three. The agent speaks in the first person only where it speaks (its line on the home page, empty states, toasts after what it does); system texts stay neutral. Its figure is Nestor's character, the @nestor-home/character package, shown through web/src/components/agent-figure.tsx.

Checking a satellite

nestor satellites conformance checks a satellite written in any language against the nestor.satellite/1 standard: see Conformance.

License

MIT

Metadata

Release files for nestor-home 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nestor-home 0.2.0
File Size Uploaded Provenance Actions
nestor_home-0.2.0.tar.gz 1.2 MB Without provenance Details for nestor_home-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for nestor-home 0.2.0
File Interpreter ABI Platform Actions
nestor_home-0.2.0-py3-none-any.whl Python 3 none any Details for nestor_home-0.2.0-py3-none-any.whl

Total release size: 2.7 MB

Release files / nestor_home-0.2.0.tar.gz

Download URL nestor_home-0.2.0.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
3bb307f2f15d21fc1ee9c8223cbb5e183f327b9399f7ea729e603061dba3a6f4
BLAKE2b-256 checksum
How to use checksums
7bdaa33d0c3b99bea65fe273be85fd3bd966d6d1fbe3b7ca8123d3135bb4f8bd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / nestor_home-0.2.0-py3-none-any.whl

Download URL nestor_home-0.2.0-py3-none-any.whl
Size 1.4 MB
Tags Python 3
SHA-256 checksum
How to use checksums
b91636343fd8cd5c83b890dde57582fc28145af1b74ac3f83731f14d32849345
BLAKE2b-256 checksum
How to use checksums
3979a9d03b93fc577014e7efd55e42e899256bd9b54e60a79d9c9e579fcaae72
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.13.6 {"installer":{"name":"uv","version":"0.13.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Security for nestor-home 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page