Bluesky Skill
Advanced Bluesky/AT Protocol orchestration skill. This skill allows for authenticated interaction with the Bluesky Social network, including robust handling of rich text, media uploads, and thread management.
Provenance & Source
- GitHub Repository: https://github.com/Heather-Herbert/openclaw-bluesky
- Standard: Follows OpenClaw AT Protocol implementation patterns.
Configuration & Authentication
This skill expects the following environment variables to be set for secure operation:
BSKY_PDS: The PDS URL (default:https://bsky.social).BSKY_HANDLE: Your full Bluesky handle (e.g.,user.bsky.social).BSKY_APP_PASSWORD: A unique App Password generated via Bluesky Settings.
Setup
- Dependency: Ensure the
atprotoPython library is installed:pip install atproto. - Generate App Password: Go to
Settings>Advanced>App Passwordsin your Bluesky client. - Environment Variables: Configure your shell or
OPENCLAW_ENVto include the variables listed above. Do not store your primary account password here.
Capabilities
post(text, { reply_to, embed, facets }): Create new posts. Threading requiresrootandparentreferences (uri+cid).like(uri, cid): Like content.repost(uri, cid): Repost content.quote(text, uri, cid): Quote a post by embedding its Strong Reference.bookmark(uri, cid): Private bookmarking (App View specific storage).upload_blob(bytes, mimetype): Upload media (limit 1MB for images) before embedding.
Implementation Details
- Handles vs DIDs: Always resolve handles to DIDs using the
resolveHandleAPI before performing write operations. - Rich Text: Use
TextEncoderto ensure byte-accuratebyteStartandbyteEndfor facets. Never rely on UTF-16 character indices. - Indexing: Always fetch the latest post
cidbefore interacting (liking/reposting/quoting) to ensure valid Strong Reference anchors.