$npx -y skills add tkellogg/open-strix --skill bluesky-pollerMonitor Bluesky notifications (replies, mentions, quotes) on a schedule. Ready-to-use poller following the pollers.json contract with follow-gate trust tiers. Install from ClawHub or copy into your agent's skills/ folder.
| 1 | # Bluesky Notification Poller |
| 2 | |
| 3 | Monitors your Bluesky account for new replies, mentions, and quotes. Emits events to the agent only when there's something actionable. |
| 4 | |
| 5 | ## Installation |
| 6 | |
| 7 | Install from [ClawHub](https://clawhub.ai): |
| 8 | |
| 9 | ```bash |
| 10 | npx clawhub install bluesky-poller |
| 11 | ``` |
| 12 | |
| 13 | Or copy this skill directory into your agent's `skills/` folder. |
| 14 | |
| 15 | After installation, call `reload_pollers` to register the poller with the scheduler. |
| 16 | |
| 17 | ## Setup |
| 18 | |
| 19 | ### 1. Set environment variables |
| 20 | |
| 21 | The poller reads credentials from the agent's environment (`.env` file or system env): |
| 22 | |
| 23 | | Variable | Required | Description | |
| 24 | |----------|----------|-------------| |
| 25 | | `BLUESKY_HANDLE` | yes | Your Bluesky handle (e.g., `agent.bsky.social`) | |
| 26 | | `BLUESKY_APP_PASSWORD` | yes | App password from Bluesky Settings > App Passwords | |
| 27 | |
| 28 | **Important:** Use a dedicated agent account, not a personal account. The poller doesn't mark notifications as read, but using a separate account keeps things clean. |
| 29 | |
| 30 | ### 2. Configure pollers.json |
| 31 | |
| 32 | The skill ships with a default `pollers.json` that polls every 5 minutes: |
| 33 | |
| 34 | ```json |
| 35 | { |
| 36 | "pollers": [ |
| 37 | { |
| 38 | "name": "bluesky-mentions", |
| 39 | "command": "python poller.py", |
| 40 | "cron": "*/5 * * * *" |
| 41 | } |
| 42 | ] |
| 43 | } |
| 44 | ``` |
| 45 | |
| 46 | Adjust the cron schedule as needed. For lower-traffic accounts, `*/15 * * * *` (every 15 minutes) is fine. |
| 47 | |
| 48 | ### 3. Reload pollers |
| 49 | |
| 50 | After installation, call `reload_pollers` to register the poller with the scheduler. |
| 51 | |
| 52 | ## What It Reports |
| 53 | |
| 54 | The poller emits events for: |
| 55 | - **Replies** to your posts |
| 56 | - **Mentions** of your handle |
| 57 | - **Quote posts** of your content |
| 58 | |
| 59 | Each event includes the author, text, and URIs needed to respond. |
| 60 | |
| 61 | Likes and follows are ignored — they don't require agent action. |
| 62 | |
| 63 | ## Trust Tiers (Follow-Gate) |
| 64 | |
| 65 | Events from accounts you follow are emitted as normal prompts. Events from accounts you don't follow are prefixed with `[PERMISSION NEEDED]` — the agent should ask the operator before engaging. |
| 66 | |
| 67 | The follow list is cached for 1 hour to avoid API rate limits. |
| 68 | |
| 69 | ## Dependencies |
| 70 | |
| 71 | Requires the `atproto` Python package: |
| 72 | |
| 73 | ```bash |
| 74 | pip install atproto |
| 75 | ``` |
| 76 | |
| 77 | Or with uv: |
| 78 | |
| 79 | ```bash |
| 80 | uv add atproto |
| 81 | ``` |