Skip to main content

hermes-plivo-tools

Plivo tools for Hermes Agent. The agent sends text messages, places phone calls and looks up numbers through Plivo.

Tool Detail
send_sms Sends a text message to a phone number
make_call Places a call answered by Plivo call-control XML, for notifications and alerts
lookup_number Returns carrier, country, line type and formatting details

The plugin registers tools only. It hosts no server and registers no messaging platform, and runs anywhere a Hermes agent runs. Standard library only, with no third-party dependencies.

Requirements

Hermes Agent Python 3.10 or later
Plivo An account, an SMS-capable number for send_sms, a voice-capable number for make_call

Installation

1. Install

pip install hermes-plivo-tools

Installing hermes-plivo-voice brings the plugin in as a dependency.

2. Enable

hermes plugins enable plivo-tools
hermes tools list

Hermes is opt-in and loads no plugin until enabled. Each tool is its own toolset, listed as plivo_send_sms, plivo_make_call and plivo_lookup_number, and each one can be enabled or disabled separately.

3. Add credentials

In ~/.hermes/.env:

PLIVO_AUTH_ID=MAxxxxxxxxxxxxxxxxxx
PLIVO_AUTH_TOKEN=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PLIVO_PHONE_NUMBER=+14155550100

The tools register whether or not credentials are present and refuse to dispatch without them, leaving the plugin safe to install before the account is configured.

Configuration

Variable Required Purpose
PLIVO_AUTH_ID yes Plivo account auth ID
PLIVO_AUTH_TOKEN yes Plivo account auth token
PLIVO_PHONE_NUMBER yes Default sender and caller ID, E.164
PLIVO_ANSWER_URL no Default document returning call-control XML for make_call. Plivo's demo document answers when absent

Credentials are read through the Hermes profile-scoped secret store, with an environment fallback, matching the bundled plugins.

What an outbound call says

make_call needs a Plivo answer URL, a fetchable document returning call-control XML. The Plivo API accepts no inline text and rejects a data: URI.

With none configured, calls reach Plivo's demo document, which speaks a single fixed sentence. The tool result carries a warning whenever the demo document answers.

To control what is said Result
Install hermes-plivo-voice The agent answers the call and holds a real-time conversation
Pass answer_url and answer_method Whatever the document returns, for example <Response><Speak>Deploy finished</Speak></Response>
Set PLIVO_ANSWER_URL in ~/.hermes/.env The same, applied to every call

Security

  • Credentials are read from the Hermes secret store or the environment, never from a file the plugin ships
  • Phone numbers in tool results are masked to their last four digits
  • Failures return structured JSON rather than raising, and a failed send leaves the agent turn intact

Troubleshooting

Symptom Cause
Agent has no send_sms, make_call or lookup_number The plugin is not enabled as plivo-tools
Only some of the three appear Each tool is its own toolset and can be disabled separately
A call speaks one fixed sentence No answer URL is configured, and Plivo's demo document answered
A tool reports missing credentials PLIVO_AUTH_ID or PLIVO_AUTH_TOKEN is unset in ~/.hermes/.env

Tests

python -m unittest discover -s tests
ruff check .

The suite covers number normalisation, credential handling, schema shapes and the handler contract with the REST layer stubbed. It needs no Hermes install and touches no network.

Limitations

  • make_call on its own plays a fixed document. A spoken conversation needs hermes-plivo-voice
  • Inbound SMS is a separate plugin, hermes-plivo-sms

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hermes_plivo_tools-0.1.0.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hermes_plivo_tools-0.1.0-py3-none-any.whl (13.4 kB view details)

Uploaded Python 3

File details

Details for the file hermes_plivo_tools-0.1.0.tar.gz.

File metadata

  • Download URL: hermes_plivo_tools-0.1.0.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hermes_plivo_tools-0.1.0.tar.gz
Algorithm Hash digest
SHA256 27b3e44b85d8075f1b1ea261a73c71f1787207faf0352e1d8a0663e503b2f4a2
MD5 b2d24cf5004e42ad3db13cfc4a561c8e
BLAKE2b-256 19e58bba5db590b7836eb70135d47b27e238476d90d8451c97ef3e1a00036758

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_plivo_tools-0.1.0.tar.gz:

Publisher: publish.yml on plivo-dev/hermes-plivo-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hermes_plivo_tools-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for hermes_plivo_tools-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0dec8633eab22ee6261e9d5695576ab366849535be228fe27caa378af6d3867a
MD5 570b24bc85937d6a29c47ddd1ffd7a3a
BLAKE2b-256 00b2b1127c279057f727869dc13608f259f3d15eb7f9ec4b6ceea10a33cf39e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for hermes_plivo_tools-0.1.0-py3-none-any.whl:

Publisher: publish.yml on plivo-dev/hermes-plivo-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

This release

0.1.0 This release

2 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