Skip to content
← Public packages

@kentcdodds/bluesky

Bluesky and AT Protocol helpers using package-storage handle plus blueskyAppPassword.

README.md

42 lines · 1.8 KB · Markdown

@kentcdodds/bluesky

Intent

Headless Bluesky and AT Protocol helpers for Kody agents: authenticated reads, notifications, and guarded social writes. Posts should behave like posts created in the Bluesky UI, including clickable links and external cards with uploaded thumbnails.

What it does

  • Verify Bluesky auth and read the default profile
  • Resolve handles, search posts, read feeds, threads, or notifications
  • Call uncommon AT Protocol XRPC methods through one helper
  • Draft or publish posts, likes, reposts, follows only with explicit confirmation
  • Publish links with UTF-8 byte-indexed facets and optional external cards whose thumbnails are uploaded as blobs

Prerequisites / setup

  1. Save user secret blueskyAppPassword (Bluesky app password — do not paste the value in chat).
  2. Store your handle in package storage as blueskyHandle (used as the default actor/handle for authenticated calls).
  3. Approve this package to use blueskyAppPassword if prompted.
  4. Agents: see AGENTS.md for import paths and smoke checks.

Unauthenticated AppView reads (get-profile, get-author-feed, get-post-thread, and other GET request calls) default to https://public.api.bsky.app. search-posts defaults to an authenticated request on https://bsky.social because unauthenticated AppView search is blocked from Kody workers. Session creation and other authenticated calls still use https://bsky.social.

Done when

  • blueskyAppPassword is saved and blueskyHandle is stored in package storage
  • Read-only smoke test returns ok: true with did/handle/profile (no session tokens)
  • Write helpers return a dry-run payload unless confirm: true after explicit approval
  • Link posts get clickable facets; external cards can upload fitted thumbnails