A Zulip bot agent to sit in our Black Sun. Ever evolving
OCaml 97.4%
Dune 0.7%
Other 1.9%
30 1 0

Clone this repository

https://tangled.org/anil.recoil.org/poe
git@git.recoil.org:anil.recoil.org/poe

For self-hosted knots, clone URLs may differ based on your setup.

README.md

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#

# 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):

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/<name>/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