Skip to content

feat: Add Bluesky support #7

@andrewgazelka

Description

@andrewgazelka

Summary

Add support for posting to Bluesky via the AT Protocol.

API Research

Official API available - Bluesky is built on the AT Protocol which has a public, well-documented API.

Authentication

  • App Passwords: Create in Settings → App Passwords (recommended for CLI tools)
  • OAuth2 also supported
  • Endpoint: com.atproto.server.createSession returns access/refresh tokens

Creating Posts

Endpoint: com.atproto.repo.createRecord
Collection: app.bsky.feed.post

Rate Limits

  • 5,000 points per 5 minutes (sliding window)
  • Post creation: 3 points per request
  • Reads: 1 point per request
  • Headers: RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset

Rust Libraries

atrium-api (v0.24.6) - Primary/official option

  • Type-safe AT Protocol bindings
  • Handles auth, posts, rich text (mentions, links, hashtags)
  • Active development

Proposed CLI

# Authenticate (app password)
post bsky auth --handle user.bsky.social --app-password xxxx-xxxx-xxxx

# Post
post bsky post "Hello Bluesky!"

# Reply to a post
post bsky reply <post-uri> "Your reply"

# Check status
post bsky status

Implementation Notes

  • No character limit (unlike X)
  • Rich text via facets (mentions, links, hashtags)
  • Decentralized - can work with any PDS
  • Growing X alternative with developer-friendly approach

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions