Skip to content

Bluesky

Connect Bluesky to OpenQuok with an app password — schedule text, images, video, and follow-up replies.

4 min read

Connect your agent today

Draft from chat, review in your calendar, and publish only what you approve.

Start for $0

Overview

Bluesky publishing uses your handle or email, an app password, and the service URL of your account host (default https://bsky.social). There is no operator-registered developer app and no backend env vars for this channel. OpenQuok encrypts those credentials on the server so workers can publish on your behalf.

CLI walkthroughs: CLI Examples — Bluesky.

How OpenQuok stores your credentials

OpenQuok needs a reversible copy of your app password and service details to log in at publish time (one-way hashing is not an option for publishing).

LayerWhat happens
BrowserYou enter service URL, handle, and app password once in Add Channel. The values are not kept in localStorage or other client storage.
HTTP APIsList, connect, and public integration responses omit token fields — the browser never reads the password back.
DatabaseEncrypted JSON with service, identifier, and password is stored as AES-GCM ciphertext on the connected channel (when INTEGRATIONS_TOKEN_ENCRYPTION_KEY or SECURITY_SECRET is set). OpenQuok re-validates credentials on refresh; it does not persist short-lived session tokens as the durable secret.

The service URL must be public HTTPS only. OpenQuok rejects private, loopback, and link-local hosts (including DNS that resolves there).

Features

Supported

FeatureDetails
ConnectApp password from Bluesky settings (works with two-factor authentication enabled)
CaptionPlain text up to 300 graphemes; text-only posts are valid
MediaUp to four images or one MP4 per post — never mixed
Alt textTaken from media details when you set it in the composer
Links and mentions@handle and URLs become rich-text facets at publish time
Follow-up repliesSame-account replies after the main post, with optional media on reply rows
MentionsComposer autocomplete searches actors and inserts @handle

Not supported

FeatureNotes
Operator OAuth appNo OpenQuok env keys; users paste credentials in the dashboard
Public OAuth connectDashboard only
Workspace or per-post analyticsNot available in OpenQuok for Bluesky today
Extra compose Settings fieldsNo title, tags, or privacy panel beyond follow-up comments

Create an app password

Open Bluesky settings

Sign in to Bluesky and open Settings → App passwords.

Generate an app password

Create a new app password. Copy it once — OpenQuok keeps it on the server for publishing after you paste it (see How OpenQuok stores your credentials).

Connect in OpenQuok

In the workspace, choose Add Channel → Bluesky. The form prefills Service with https://bsky.social. Enter your handle or email and the app password, then connect. OpenQuok validates the credentials against your host, then saves the channel.

To refresh an existing channel, open the same credentials form (Refresh connection on Home) — do not expect a platform OAuth redirect.

Media and thread rules

RuleDetail
ImagesUp to 4 per main post or follow-up row
Video1 MP4 per post — not combined with images
Length300 graphemes per caption and per follow-up message when scheduling
Follow-upsConfigure in Follow-up comments — stored under bluesky.replies for API and CLI

See Media rules and Threads and comments.

Self-host

Bluesky needs no operator OAuth pair. Leave the social-app ID/secret rows in infra/self-host/.env.example unchanged. Users paste credentials in the dashboard after the stack is up. See Self-host — Docker Compose.

Search documentation
Find a docs page
Discord Support