Skip to main content

Intercom

LAN intercom for OVOS - "send a message to the bedroom" delivers a spoken message to a named peer OVOS device on the same local network, with an optional spoken reply sent back. Fully offline, available in English, Danish, German, French, and Spanish.

Tests PyPI version

The one non-negotiable boundary

This skill speaks messages. It never executes commands. A received message is only ever passed to self.speak() - it is never routed through the intent pipeline. "Set an alarm in the bedroom from the living room" is explicitly out of scope; that would be remote command execution, a categorically different (and far more dangerous) capability than delivering a spoken message. See DEVELOPMENT.md for why relaying to the target's own OVOS messagebus was investigated and rejected, and why this isn't "a smaller HiveMind."

Setup

Each device needs a name and a shared household code, set by voice on that specific device:

"set intercom name to living room"
"set intercom code to four seven two nine"

Every device that should participate says the same code - not a separate secret per pair of devices. Say it once per device; any two devices with matching codes can message each other.

The name and code can also be set in the skill's settings (intercom_name, intercom_code in its settings.json, or a settings UI). A new name is advertised as soon as the settings are saved - no restart needed.

Usage

"send a message to the bedroom"
  -> "what should I say?"
  -> [you speak the message]
  -> "message sent"

[on the bedroom device]
  "message from living room"
  [message is spoken]
  "do you want to reply?"
  -> "yes" -> "go ahead, say your reply" -> [you speak it] -> "reply sent"

Or say the message in the same sentence:

"send a message to the bedroom saying dinner is ready"
  -> "message sent"
"send en besked til soveværelset og sig maden er klar"   (Danish)
"send en besked til soveværelset"                  (Danish)
"sende eine nachricht an schlafzimmer"             (German)
"envoie un message à chambre"                      (French)
"envía un mensaje a dormitorio"                    (Spanish)

How discovery and delivery work

Peer devices are found by name via mDNS - no IP addresses to type or remember. A device advertises itself as soon as it has a name set, even before a code is configured, so a sender gets a specific, useful error ("the bedroom doesn't have an intercom code set") rather than a bare "device not found" when the target exists but isn't fully set up yet.

Delivery is a single HTTP request over the LAN to the discovered peer, carrying the sender's name, the shared code, and the message. The code is never included in the mDNS advertisement itself - it only ever travels inside the actual message request. See DEVELOPMENT.md "Wire protocol" for the exact request/response shape.

Known limitations

  • Threat model: a WiFi-password-equivalent, not HiveMind-grade. No encryption on the wire, and the receiver does report back which kind of rejection happened (wrong code vs. no code set at all) rather than staying silent - useful for fixing a real setup problem, at the cost of leaking slightly more than a flat "message not delivered" would. Proportionate to keeping casual LAN presence out, not to defending against a targeted attacker.
  • Discovery is a fresh ~3-second scan per send, not a persistent cached browser - simpler, at the cost of a few seconds' latency each time.
  • A device that goes offline uncleanly (power loss, not a graceful shutdown) can leave a stale mDNS advertisement lingering in peers' local caches until it naturally expires.

See DEVELOPMENT.md for the full reasoning behind each of these, plus why ovos-skill-network-scanner was deliberately not made a dependency despite similar-looking mDNS code.

Install

pip install ovos-skill-intercom

Development

See DEVELOPMENT.md.

Category

Utility

Tags

#intercom #multi-device #messaging #lan

Metadata

Release files for ovos-skill-intercom 0.0.6

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

Source distribution (sdist)

Source distribution for ovos-skill-intercom 0.0.6
File Size Uploaded Provenance Actions
ovos_skill_intercom-0.0.6.tar.gz 44.5 kB With provenance Details for ovos_skill_intercom-0.0.6.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-intercom 0.0.6
File Interpreter ABI Platform Actions
ovos_skill_intercom-0.0.6-py3-none-any.whl Python 3 none any Details for ovos_skill_intercom-0.0.6-py3-none-any.whl

Total release size: 105.3 kB

Release files / ovos_skill_intercom-0.0.6.tar.gz

Download URL ovos_skill_intercom-0.0.6.tar.gz
Size 44.5 kB
Tags Source
SHA-256 checksum
How to use checksums
f633065dec86662ec42855a8a2deb1f4ad8257ec9acde983fc132710b0c2ca88
BLAKE2b-256 checksum
How to use checksums
e058c2fdded7996c554807a53391e82a312385be15d0e39b9744a183b087c49d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Release files / ovos_skill_intercom-0.0.6-py3-none-any.whl

Download URL ovos_skill_intercom-0.0.6-py3-none-any.whl
Size 60.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
4c7b145306eb16c62049747f1773b34311b9240dbcefe4a66bf793fd6b6e0359
BLAKE2b-256 checksum
How to use checksums
d62d5075d1d5834f7d7cf9db82f302d2b71aac92e00c91824bb80a38417714ed
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

Security for ovos-skill-intercom 0.0.6

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.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for ovos_skill_intercom-0.0.6.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 1, 2026.

Transparency log

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