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.

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"
"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

Release files for ovos-skill-intercom 0.0.2

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.2
File Size Uploaded
ovos_skill_intercom-0.0.2.tar.gz 37.9 kB Details

Built distribution (wheel)

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

Total release size: 93.2 kB

Release files / ovos_skill_intercom-0.0.2.tar.gz

Download URL ovos_skill_intercom-0.0.2.tar.gz
Size 37.9 kB
Tags Source
SHA-256 checksum
How to use checksums
205e7cdb6bb3d745063fd59254bd7f987b24c330e41ae27627c6c551dd9cea99
BLAKE2b-256 checksum
How to use checksums
6f14c311c7d922c422c60e2b5ec0987cf7c3442f10de7360243fd233b4122241
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 Aug 18, 2026.

Transparency log

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

Download URL ovos_skill_intercom-0.0.2-py3-none-any.whl
Size 55.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
73b785074a1eed793b68aa24c0eac70d0de42ffc8f2acb75ebdf84c1e3adf24c
BLAKE2b-256 checksum
How to use checksums
dee93d4a2e135a9bf622194787d6419c395a260a00391060e46e3b99e1c783a0
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 Aug 18, 2026.

Transparency log

Release history Release notifications | RSS feed

0.0.4

2 release files

0.0.3

2 release files

This release

0.0.2 This release

2 release files

0.0.1

2 release files

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