bluesky-agent

Post/read/manage content on Bluesky via a local Node.js CLI (manual invocation only).

Bluesky Agent Skill

This skill interacts with Bluesky (AT Protocol) by running a local CLI.

Safety rules (must follow)

  • Never post/delete unless the user explicitly asked for that action in this message.
  • For any write action, echo a preview of the payload first and ask for confirmation in-chat unless the user already said "do it".
  • For destructive actions (delete), require explicit CLI confirmation (--confirm).
  • Respect rate limits: if API returns HTTP 429, back off and retry with exponential delay.
  • Prefer --dry-run first for any write action.

Setup (one-time)

  1. Install deps in the skill directory:
    • npm i
  2. Set environment variables via .env or a secrets manager:
    • BLUESKY_HANDLE (e.g. daniel.bsky.social)
    • BLUESKY_APP_PASSWORD (recommended for single-user automation)
    • Optional BLUESKY_SERVICE_URL (defaults to https://bsky.social)

OAuth mode (optional, multi-user) is the long-term direction. See reference/oauth.md.

Actions

  • post "<text>" [--dry-run]
  • reply "<uri>" "<cid>" "<text>" [--dry-run]
  • delete "<uri>" --confirm [--dry-run]
  • feed "<actorHandleOrDid>" [limit]
  • thread "<uri>"

Run

Use: node scripts/bsky.js <action> ...

Examples:

  • node scripts/bsky.js post "hello from claude code" --dry-run
  • node scripts/bsky.js feed daniel.bsky.social 10