zulip
Bindings for the Zulip message API
What it is and what it does
Zulip is a Python client library that wraps the Zulip messaging API, allowing you to programmatically send messages to streams and private conversations, create bots, and integrate Zulip into your applications. It reads credentials from a standard config file (~/.zuliprc) or environment variables, reducing boilerplate for typical use cases.
The library's primary strength is message sending, which is fully supported and production-ready. It also provides a ZulipStream logging handler for routing Python log records directly to Zulip, and includes a command-line tool (zulip-send) for dispatching messages from shell scripts. Other API operations exist but are documented as under active development, so their interfaces may change.
Use it for:
- Build a bot that monitors a system and sends alerts to a Zulip stream when thresholds are exceeded.
- Integrate Zulip notifications into a Python application's logging pipeline using the ZulipStream handler.
- Dispatch messages from cron jobs or shell scripts using the zulip-send command-line tool.
- Create a chatbot that responds to private messages or stream mentions by querying an API and posting replies.
- Automate team notifications (deployments, test results, build failures) to designated Zulip channels.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Python client library for sending and receiving messages through the Zulip messaging API, with support for bots, logging integration, and command-line message dispatch.
Yes, if you need to integrate Zulip messaging into a Python application or bot. The library is actively maintained, has no known vulnerabilities, and installs cleanly with minimal dependencies. The primary caveat is that only message sending is fully stable; other API operations may change. For simple message dispatch or logging integration, this is a straightforward choice.
Install
zulip on PyPI
pip
pip install zulipuv
uv add zulippoetry
poetry add zulipInstalling zulip
Before you install
Low install friction with a pure-Python wheel distribution. Actively maintained with recent commits and no known vulnerabilities. Requires Python 3.9 or later and four lightweight runtime dependencies (requests, distro, click, typing_extensions).
License in practice
Licensed under the Apache License (permissive), allowing commercial and private use with minimal restrictions.
Quickstart
pip install zulip
import zulip
client = zulip.Client(email="bot@example.com", client="MyBot/0.1")
message = {"type": "stream", "to": ["support"], "subject": "test", "content": "Hello"}
client.send_message(message)
Requires Python 3.9 or later. API credentials (email and key) must be configured via ~/.zuliprc file, command-line arguments, or environment variables (ZULIP_EMAIL, ZULIP_API_KEY, ZULIP_SITE).
Verify before relying
- Current API stability and scope beyond message sending—description notes other operations are 'under active development'.
- Whether all classifiers (Python 3.10, 3.11, 3.12) are actively tested or merely declared.
Package facts
| License | not declared (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — requests, distro, click, typing_extensions |
| Maintenance | actively maintained — 318 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 606,405/month — #5,791 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: zulip-0.9.1-py3-none-any.whl
Tags
More Chat packages
Provides Python bindings for Slack's Web API,…
permissive · top 1,000 on PyPI
python-telegram-botProvides a pure Python asynchronous interface…
copyleft · top 1,000 on PyPI
slackclientProvides Python interfaces to Slack's Web API…
permissive · top 5,000 on PyPI
aiogramaiogram is an asynchronous Python framework for…
permissive · top 5,000 on PyPI
TelethonTelethon is an asyncio-based Python library…
permissive · top 5,000 on PyPI
mleapSerializes and deserializes machine learning…
permissive · top 5,000 on PyPI
smpplibSMPP protocol client library for sending and…
copyleft · top 15,000 on PyPI
nats-pyAn asyncio Python client for connecting to and…
permissive · top 5,000 on PyPI
onesignal-python-apiA Python client library for the OneSignal API…
unclear · top 15,000 on PyPI
pyTelegramBotAPIA Python library that wraps the Telegram Bot…
copyleft · top 5,000 on PyPI
notifications-python-clientA Python client library for sending emails,…
permissive · top 15,000 on PyPI
stream-chatPython SDK for server-side integration with…
unclear · top 15,000 on PyPI
botbuilder-coreProvides the core SDK for building bots that…
permissive · top 5,000 on PyPI
fastapi-poeImplements the Poe protocol using FastAPI,…
permissive · top 15,000 on PyPI
actions-toolkitProvides a Python SDK for building GitHub…
permissive · top 15,000 on PyPI