semantic bufo search
find-bufo.com
bufo
bufo-bot#
bluesky bot that listens to the jetstream firehose and quote-posts matching bufo images.
how it works#
- connects to bluesky jetstream (firehose)
- for each post, checks if text contains an exact phrase matching a bufo name
- if matched, quote-posts with the corresponding bufo image
matching logic#
- extracts phrase from bufo filename (e.g.,
bufo-let-them-eat-cake->let them eat cake) - requires exact consecutive word match in post text
- configurable minimum phrase length (default: 4 words)
configuration#
| env var | default | description |
|---|---|---|
BSKY_HANDLE |
required | bluesky handle (e.g., find-bufo.com) |
BSKY_APP_PASSWORD |
required | app password from bsky settings |
MIN_PHRASE_WORDS |
4 |
minimum words in phrase to match |
POSTING_ENABLED |
false |
must be true to actually post |
COOLDOWN_MINUTES |
120 |
don't repost same bufo within this time |
EXCLUDE_PATTERNS |
... |
exclude bufos matching these patterns |
JETSTREAM_ENDPOINT |
jetstream2.us-east.bsky.network |
jetstream server |
local dev#
# build
zig build
# run locally (dry run by default)
./zig-out/bin/bufo-bot
deploy#
# set secrets (once)
fly secrets set BSKY_HANDLE=find-bufo.com BSKY_APP_PASSWORD=xxxx -a bufo-bot
# deploy
fly deploy
# enable posting
fly secrets set POSTING_ENABLED=true -a bufo-bot
# check logs
fly logs -a bufo-bot