# Poe - Zulip Bot for Monorepo Changes Poe is a Zulip bot that broadcasts daily changelog updates from a monorepo to a configured channel. It integrates with Claude to interpret messages and can help extend its own functionality. ## Key Features - **Daily Broadcasts**: Automatically post changelog updates to Zulip - **Claude Integration**: Natural language interaction for queries and self-modification - **XDG Configuration**: Standard config file locations with fallbacks - **Multiple Commands**: Run as daemon or one-shot broadcast ## Usage ### Running the Bot ```bash # Run as a long-running bot service poe run # With explicit config file poe run -c /path/to/poe.toml # Broadcast changes once and exit poe broadcast ``` ### Configuration Poe searches for configuration in order: 1. Explicit path via `-c` / `--config` 2. XDG config: `~/.config/poe/config.toml` 3. Current directory: `poe.toml` 4. Built-in defaults Config file format (TOML): ```toml channel = "general" # Zulip channel to broadcast to topic = "Daily Changes" # Topic for broadcasts changes_file = "DAILY-CHANGES.md" monorepo_path = "." ``` Zulip credentials are loaded from `~/.config/zulip-bot//config` or environment variables. ### Bot Commands When running as a bot, Poe responds to: - `help` or `?` - Show help message - `status` - Show current configuration - `broadcast`, `post changes`, `post`, `changes` - Broadcast daily changes - Any other message - Passed to Claude for interpretation ## Installation ``` opam install poe ``` ## License ISC