Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

zelpy

zelpy is an async Python client for sending and receiving text and Ogg Opus voice messages with the Zello Channel API. The library operates entirely on in-memory data; the included CLI provides convenient file and audio conversion support for testing.

Library usage

from zelpy import TextMessage, VoiceMessage, Zello, ZelloCredentials

credentials = ZelloCredentials(
    developer_token="...",
    username="...",
    password="...",
    issuer="...",
    public_key="...",
    private_key="...",
)

async with Zello(credentials, "my-channel") as client:
    await client.send_text("Hello from Python")

    async for message in client.messages():
        if isinstance(message, TextMessage):
            print(message.sender, message.text)
        elif isinstance(message, VoiceMessage):
            print(message.sender, message.audio)

Pass complete Ogg Opus bytes to client.send_voice(audio). Received VoiceMessage.audio values are also complete Ogg Opus byte strings.

CLI usage

# Listen for text and voice messages
uv run zelpy --channel my-channel receive

# Send a text message
uv run zelpy --channel my-channel send-text "Hello from Python"

# Send an audio file
uv run zelpy --channel my-channel send-voice message.wav

The CLI accepts native Ogg Opus audio directly. For other audio formats, it uses ffmpeg when available. Received voice messages are saved under ./received/ by default.

zello.yaml

The CLI reads credentials from ./zello.yaml in the current working directory:

developer_token: "..."
username: "..."
password: "..."
issuer: "..."
public_key: |
  -----BEGIN PUBLIC KEY-----
  ...
  -----END PUBLIC KEY-----
private_key: |
  -----BEGIN PRIVATE KEY-----
  ...
  -----END PRIVATE KEY-----

Use a different file with --credentials /path/to/zello.yaml.

Obtaining credentials

See Zello's Channel API authentication guide, then:

  1. Go to the Zello Developer Console and click Login.
  2. Enter your Zello username and password. If you don't have an account, download the Zello app and create one.
  3. Complete every field in the developer profile and click Submit.
  4. Click Keys, then Add Key.
  5. Copy and save the Sample Development Token, Issuer, and Private Key. Use Select All to ensure that each complete value is copied.
  6. Click Close.

The developer credentials expire every 30 days. See the Channel API authentication guide for renewal instructions and more information.

Download files

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

Source Distribution

zelpy-0.0.0a1.tar.gz (12.6 kB view details)

Uploaded Source

Built Distribution

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

zelpy-0.0.0a1-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

Details for the file zelpy-0.0.0a1.tar.gz.

File metadata

  • Download URL: zelpy-0.0.0a1.tar.gz
  • Upload date:
  • Size: 12.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zelpy-0.0.0a1.tar.gz
Algorithm Hash digest
SHA256 d46bc0dd4e2ed3d57995f59d81a20d4afebfa7c32b6a37d7a88a18ded9562dbd
MD5 0f8b85bd3b130d27fe0c967555331f15
BLAKE2b-256 a9fe7c237b2422362e6c1b41a7bc05366a17fc11c5946715ab29ddc3c86fda81

See more details on using hashes here.

Provenance

The following attestation bundles were made for zelpy-0.0.0a1.tar.gz:

Publisher: release.yml on afourney/zelpy

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

File details

Details for the file zelpy-0.0.0a1-py3-none-any.whl.

File metadata

  • Download URL: zelpy-0.0.0a1-py3-none-any.whl
  • Upload date:
  • Size: 11.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for zelpy-0.0.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 c36a9451f9920599e50c5721d5fe3363a78c0729d56a08f5d22e132b0abc4d43
MD5 83eb43f426028080be9b3c2ffe016963
BLAKE2b-256 89cb35a109a713a7b6ff2a660a9e30a5956fedc43711f0dedf43b71d87b6ad01

See more details on using hashes here.

Provenance

The following attestation bundles were made for zelpy-0.0.0a1-py3-none-any.whl:

Publisher: release.yml on afourney/zelpy

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

Release history Release notifications | RSS feed

This release

0.0.0a1 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