Aiobale
β‘ A modern, fully-asynchronous Python client for Bale Messenger β fast, reliable, and developer-friendly π
Install / Use
/learn @Enalite/AiobaleREADME
π Why Aiobale?
Bale Messenger's API can be a maze of encrypted gRPC calls. Aiobale cuts through the noise:
- Async-first, fully non-blocking, built on
aiohttp. - Type-safe Python classes for messages, users, groups, and more.
- Event-driven Dispatcher for clean, modular bot code.
- Handles connections, reconnections, and multi-client setups effortlessly.
- Reverse-engineered, continuously updated, zero reliance on
.protofiles.
In short: Build bots, automation, or monitoring tools without wrestling with low-level network details.
β¨ Features
- Async & High Performance: Responsive bots and automation.
- Complete API Coverage: Messaging, files, presence, bots, groups, channels.
- Pythonic Interface: Type hints, dataclasses, clean methods.
- Smart Dispatcher: Decorator-based event routing, multiple clients support.
- Robust Connections: Auto-reconnects, handles disconnects gracefully.
- Extensible & Modular: Easy to adapt and extend for custom workflows.
β οΈ Important Notes
- Baleβs API is sensitive to excessive POST gRPC calls, especially outside authentication. Overuse may trigger rate limits or temporary account bans.
- Use Aiobale responsibly β no spamming, scraping, or TOS violations.
- Aiobale is unofficial and provided as-is for educational and ethical purposes.
π¦ Installation
# Stable release
pip install aiobale
# Latest development version
pip install git+https://github.com/Enalite/aiobale.git
π‘ Quick Start β Echo Bot
from aiobale import Client, Dispatcher
from aiobale.types import Message
dp = Dispatcher()
client = Client(dp)
@dp.message()
async def echo(msg: Message):
if content := msg.document:
await msg.answer_document(content, use_own_content=True)
elif text := msg.text:
await msg.answer(text)
else:
await msg.answer("Nothing to echo!")
client.run()
π§βπ» Contributing
We welcome contributions of all kinds:
- β Star the repo
- π Report bugs or request features
- π§© Submit pull requests (code, docs, tests)
- βοΈ Help document unknown methods or structures
Every contribution counts β even small fixes make a difference.
π License
Aiobale is released under the MIT License. Use freely and responsibly.
π Links
- PyPI: pypi.org/project/aiobale
- GitHub: github.com/Enalite/aiobale
- Bale Channel: ble.ir/aiobale
- Telegram Mirror: t.me/aiobale
- Docs: docs.aiobale.ir
π¬ Final Thoughts
Aiobale isnβt just a library β itβs a gateway to Bale Messengerβs inner workings. Build bots, explore features, and automate with confidence and simplicity.
Welcome to the unofficial Bale ecosystem. Letβs innovate together!
Related Skills
gh-issues
351.4kFetch GitHub issues, spawn sub-agents to implement fixes and open PRs, then monitor and address PR review comments. Usage: /gh-issues [owner/repo] [--label bug] [--limit 5] [--milestone v1.0] [--assignee @me] [--fork user/repo] [--watch] [--interval 5] [--reviews-only] [--cron] [--dry-run] [--model glm-5] [--notify-channel -1002381931352]
node-connect
351.4kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
oracle
351.4kBest practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
taskflow-inbox-triage
351.4kname: taskflow-inbox-triage description: Example TaskFlow authoring pattern for inbox triage. Use when messages need different treatment based on intent, with some routes notifying immediately, some w
