Skip to main content

nestor-satellite

Python SDK to write satellites for Nestor: devices (a Raspberry Pi speaker, a robot, a screen) that pair with a Nestor server, stream audio over WebRTC, carry out its intents and report what they observe, following the nestor.satellite/1 protocol. It does not depend on the Nestor server.

Documentation: nestorhome.dev/docs/sdks/python (pairing options, the command, conformance).

pip install 'nestor-satellite[sounddevice]'
NESTOR_PAIRING_URI='nestor+http://nestor.local:7860/?code=K7QF2M9X' nestor-satellite run --room salon

A driver of your own:

import asyncio

from nestor_satellite import AUDIO_CAPTURE, AUDIO_PLAYBACK, EXPRESSION, IDENTIFY, Body, Device, Manifest
from nestor_satellite import Satellite, TokenStore
from nestor_satellite.devices import Microphone, Speaker


class Led(Body):
    def behavior(self, behavior):
        print("attitude:", behavior)  # idle, listening, thinking, speaking

    def expression(self, expression, intensity):
        print("expression:", expression, intensity)

    def identify(self):
        print("blink!")  # a person is telling devices apart


manifest = Manifest.of(
    Device("enceinte-salon", "raspberry-pi-4", "salon"), AUDIO_CAPTURE, AUDIO_PLAYBACK, EXPRESSION, IDENTIFY
)
satellite = Satellite(
    "http://nestor.local:7860",
    manifest,
    tokens=TokenStore("~/.config/nestor-satellite/enceinte-salon.json"),
    body=Led(),
    source=Microphone(),
    sink=Speaker(),
)
asyncio.run(satellite.run())  # pairs the first time, then stays connected and reconnects

The recorded voice that says device codes is shared under CC BY 4.0: see src/nestor_satellite/voice/LICENSE.

Development

The tests run the SDK against the Nestor server's conformance suite: the server (nestor-home) is a dev dependency, pinned and taken from PyPI. To test against a local checkout of the server instead: uv run --with-editable ../nestor pytest.

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

License

MIT

Metadata

Release files for nestor-satellite 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-satellite 0.2.0
File Size Uploaded Provenance Actions
nestor_satellite-0.2.0.tar.gz 448.4 kB Without provenance Details for nestor_satellite-0.2.0.tar.gz

Built distribution (wheel)

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

Total release size: 911.4 kB

Release files / nestor_satellite-0.2.0.tar.gz

Download URL nestor_satellite-0.2.0.tar.gz
Size 448.4 kB
Tags Source
SHA-256 checksum
How to use checksums
b672ea6b385ca6fda08de4d6756bd71d61808ee8594d948b8af33ffce297bd56
BLAKE2b-256 checksum
How to use checksums
77910bca7f74e94bfa5e24836ed116377ffa7361d579e1f922fc9456be8716bc
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_satellite-0.2.0-py3-none-any.whl

Download URL nestor_satellite-0.2.0-py3-none-any.whl
Size 463.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
50c8f4452d316240b81fb70b548da882b1f6159cc9fc573d988c181ba421fa31
BLAKE2b-256 checksum
How to use checksums
dcdac23da61db8630dfb795569f7c574c686deab3223e527d91c24bb192bfc08
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-satellite 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.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files No provenance

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