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)
| 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)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| 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.