Contrib packages for the bub ecosystem.
| Package | Bub Plugin Entry Point | Description |
|---|---|---|
packages/bub-codex |
codex |
Provides a run_model hook that delegates model execution to the Codex CLI. |
packages/bub-tg-feed |
tg-feed |
Provides an AMQP-based channel adapter for Telegram feed messages. |
packages/bub-schedule |
schedule |
Provides scheduling channel/tools backed by APScheduler with a JSON job store. |
packages/bub-tapestore-sqlalchemy |
tapestore-sqlalchemy |
Provides a SQLAlchemy-backed tape store for Bub conversation history. |
packages/bub-tapestore-sqlite |
tapestore-sqlite |
Provides a SQLite-backed tape store for Bub conversation history. |
packages/bub-discord |
discord |
Provides a Discord channel adapter for Bub message IO. |
packages/bub-dingtalk |
dingtalk |
Provides a DingTalk Stream Mode channel adapter for Bub message IO. |
packages/bub-web-search |
web-search |
Provides a web.search tool backed by the Ollama web search API. Registers the tool only when BUB_SEARCH_OLLAMA_API_KEY is configured. |
packages/bub-feishu |
feishu |
Provides a Feishu channel adapter for Bub message IO. |
packages/bub-session-prompt |
session-prompt |
Provides a session-specific system prompt sourced from ~/.bub/sessions/<session_id>/AGENTS.md. |
packages/bub-wechat |
wechat |
Provides a WeChat channel adapter for Bub message IO. |
- Python 3.12+ (workspace root)
uv(recommended)
To install an individual package, run:
uv pip install git+https://github.com/bubbuild/bub-contrib.git#subdirectory=packages/<package-name>Install all workspace dependencies:
uv syncWe encourage all plugin contributors to take responsibility for the ongoing maintenance of their submitted plugins. Each plugin should ideally have at least one active maintainer who is familiar with its domain and willing to respond to issues or update dependencies as needed.
To foster a healthy and growing ecosystem, the code review standards for contributed plugins will be appropriately relaxed compared to core Bub repositories. We prioritize:
- Practicality and usefulness over strict style or architectural perfection
- Clear ownership: contributors are expected to respond to issues and PRs related to their plugins
- Basic safety and compatibility: plugins should not break the workspace or introduce security risks
We welcome experimental, niche, or work-in-progress plugins, as long as they are clearly documented and do not negatively impact other packages in this repository.
If you are submitting a plugin, please be prepared to maintain it or help find a new maintainer if you become unavailable.
This repository is licensed under LICENSE.