Integration

Bluesky

Post to Bluesky (AT Protocol) directly from FaustBot. Share stream announcements, clips, and updates with your followers on the decentralized social network.

Overview

FaustBot connects to Bluesky using the AT Protocol, enabling full social media functionality:

Create Posts

Post text updates up to 300 characters.

Image Uploads

Attach up to 4 images per post.

Link Cards

Create posts with rich link previews.

Replies & Quotes

Reply to posts and create quote posts.

Like & Repost

Interact with other users' content.

Follow Management

Follow, block, and mute users.

Setup

Connect to Bluesky

1

Create App Password

In Bluesky, go to SettingsApp PasswordsAdd App Password. Give it a name like "FaustBot" and copy the generated password.

Screenshot: Bluesky app password
2

Connect in FaustBot

In FaustBot, go to Bluesky in the sidebar. Enter your handle (e.g., yourname.bsky.social) and the app password. Click Connect.

3

Verify Connection

Once connected, your profile information will be displayed. You can now post to Bluesky from FaustBot.

App Password Security

Never share your app password. Use a dedicated app password for FaustBot so you can revoke it independently if needed. Never use your main account password.

Effects

Posting

Create Post

Post text to Bluesky.

Post with Images

Post with up to 4 image attachments.

Post with Link

Create post with link card preview.

Reply to Post

Reply to an existing post.

Quote Post

Create a quote post.

Delete Post

Remove a post by URI.

Interactions

Like Post

Like a post by URI.

Unlike Post

Remove a like from a post.

Repost

Repost content to your feed.

Unrepost

Remove a repost.

User Management

Follow User

Follow a user by DID or handle.

Unfollow User

Unfollow a user.

Block User

Block a user.

Unblock User

Unblock a user.

Mute User

Mute a user.

Unmute User

Unmute a user.

Scripting API

Post to Bluesky programmatically from your scripts:

Connection & Info

# Check connection
if CPH.BlueskyIsConnected():
    info = CPH.BlueskyGetConnectionInfo()
    handle = CPH.BlueskyGetHandle()
    did = CPH.BlueskyGetDid()
    CPH.Log(f"Connected as: {handle}")

Creating Posts

# Simple text post (max 300 characters)
CPH.BlueskyCreatePost("Going live now! Come hang out!")

# Post with images (max 4 images)
image_paths = ["/path/to/thumbnail.png"]
alt_texts = ["Stream thumbnail"]
CPH.BlueskyCreatePostWithImages(
    "Check out this amazing moment!",
    image_paths,
    alt_texts
)

# Post with link card
CPH.BlueskyCreatePostWithLink(
    "I'm live on Twitch!",
    "https://twitch.tv/yourchannel",
    "YourChannel - Twitch",
    "Playing some games!"
)

# Reply to a post
CPH.BlueskyCreateReply(
    "Thanks for watching!",
    parent_uri,
    parent_cid,
    root_uri,
    root_cid
)

# Quote post
CPH.BlueskyCreateQuotePost(
    "This was an epic moment!",
    quoted_uri,
    quoted_cid
)

Interactions

# Like a post
CPH.BlueskyLikePost(post_uri, post_cid)

# Unlike a post
CPH.BlueskyUnlikePost(like_uri)

# Repost
CPH.BlueskyRepostPost(post_uri, post_cid)

# Remove repost
CPH.BlueskyUnrepostPost(repost_uri)

# Delete your own post
CPH.BlueskyDeletePost(post_uri)

User Management

# Follow by DID
CPH.BlueskyFollowUser(user_did)

# Follow by handle (resolves DID automatically)
CPH.BlueskyFollowUserByHandle("someone.bsky.social")

# Unfollow
CPH.BlueskyUnfollowUser(follow_uri)

# Block user
CPH.BlueskyBlockUser(user_did)

# Unblock user
CPH.BlueskyUnblockUser(block_uri)

# Mute user
CPH.BlueskMuteUser(user_did)

# Unmute user
CPH.BlueskyUnmuteUser(user_did)

# Resolve handle to DID
CPH.BlueskyResolveHandle("someone.bsky.social")

Fetching Data

# Get your timeline
CPH.BlueskyGetTimeline(50)  # Get 50 posts

# Get a user's feed
CPH.BlueskyGetAuthorFeed("someone.bsky.social", 25)

# Get post thread
CPH.BlueskyGetPostThread(post_uri, depth=6)

# Get notifications
CPH.BlueskyGetNotifications(50)

# Get unread count
CPH.BlueskyGetUnreadCount()

# Mark notifications as seen
CPH.BlueskyMarkNotificationsSeen()

# Get user profile
CPH.BlueskyGetProfile("someone.bsky.social")

# Get followers/following
CPH.BlueskyGetFollowers("someone.bsky.social", 100)
CPH.BlueskyGetFollowing("someone.bsky.social", 100)

See the full API reference for all available Bluesky methods.