Bluesky

Schedule Bluesky postswithout an App Password

Bluesky does not issue API keys, so there is nothing to apply for and nothing to be approved for. Connect with atproto OAuth, keep your password to yourself, and schedule posts and threads. Accounts on self-hosted servers work the same way. Write once and publish to X and Bluesky together.

Last updated: September 2026

7-day free trial. Cancel anytime.

What OpenTweet is, so you can decide fast

OpenTweet is an X-native tool. Everything deep in it lives on X: analytics, evergreen recycling, connectors, DM campaigns, Articles, and an MCP server for agents. Bluesky is a mirror for the posts you are already writing there. If Bluesky is your main network and you want depth on it, a Bluesky-first tool will serve you better than this one.

Connecting Bluesky, start to finish

There is no developer console step, because Bluesky has no developer console. The whole flow is four screens and it ends on your own server, not on ours.

  1. Type your handle

    Enter yourname.bsky.social, or your own domain if that is your handle. OpenTweet resolves which server holds the account from the handle itself, so there is nothing to look up and no server URL to paste.

  2. Approve it on your own server

    You are sent to your server to sign in and approve. That page belongs to Bluesky or to whoever runs your server, not to OpenTweet, so your password is typed where it already lives.

  3. Grant covers posting, and only posting

    The scope OpenTweet asks for creates posts and uploads images. It does not cover reading your DMs, changing who you follow, or touching the rest of your repository.

  4. Pick your networks on any post

    From then on every composer carries a platform choice. Tick X, tick Bluesky, or tick both, then schedule it like any other post.

App Password versus atproto OAuth

This is the difference worth checking in any Bluesky scheduler you try. If a tool asks you to paste an App Password, it is asking for a credential that can do nearly anything your account can.

App Passwordatproto OAuth, what OpenTweet uses
What you hand the tool
A credential you generate and paste in
Nothing. You approve a grant instead
Where you sign in
Inside the third-party tool
On the server that holds your account
What it is allowed to do
Close to everything your account can do
Create posts and upload images
Turning it off
Delete the App Password in Bluesky settings
Revoke the grant, or disconnect in OpenTweet
Standing in atproto
The older model OAuth is replacing
The current auth model
Accounts on a self-hosted server
Depends on what the tool hardcoded
Resolved from your handle, works anywhere

Both can be revoked, so revocation is not scored against App Passwords. The gap is scope and where you type your password.

What you get on Bluesky

No API key, because there are none

Bluesky issues no API keys and runs no developer program. There is no form to submit, no approval to wait for, and no rate-limit tier to negotiate before your first scheduled post.

Your password stays yours

OpenTweet uses atproto OAuth. Most competing tools still ask you to paste an App Password, a credential with close to full account access that Bluesky is moving away from.

Self-hosted servers are first class

OAuth resolves your personal data server from your handle, so an account on a server you run yourself connects the same way as one on bsky.social. No host is hardcoded.

One draft, both networks

Write a post or a thread once, tick X and Bluesky, and schedule it. Each network gets a native post. Threads post as real reply chains on both.

The limits, exactly

Bluesky is not X and the numbers are different. OpenTweet validates against these before a post reaches your queue, so a post that is too long fails in the editor rather than at publish time.

Per post

  • 300 graphemes of text
  • Graphemes, not bytes: an emoji or an accented letter costs one
  • Up to 4 images, 2MB each
  • Per-image alt text, carried over from the same draft

Across a thread

  • Threads are supported, as a real reply chain
  • Each part carries its own text and images
  • The same draft can post as a thread on X and on Bluesky
  • Scheduled from the calendar like any other post

What OpenTweet does not do on Bluesky

Worth stating plainly, because a scheduler that claims parity across networks usually has less on both.

Built

  • Publishing single posts and threads
  • Images with alt text
  • Scheduling, the queue, and the calendar
  • One draft published to X and Bluesky together

Not built

  • Bluesky analytics. Engagement is never read back
  • Feeds, follows, likes, or replies on Bluesky
  • Evergreen recycling and DM campaigns, which stay X-only
  • LinkedIn, Threads, Instagram, and TikTok, which are not planned

Depth on X, plus a mirror

OpenTweet did not become a nine-network scheduler. It publishes to two networks and it is honest about which one it is built for. If you need one API that posts to Instagram, LinkedIn, Facebook, and TikTok at once, a multi-platform tool is the right call and OpenTweet is not it.

Frequently asked questions

Do I need a Bluesky API key or a developer account?

No, and neither does any other tool. Bluesky does not issue API keys and has no developer program to apply to. You connect by authorizing OpenTweet on the server that holds your account, through atproto OAuth. There is no application form, no approval queue, and no waiting.

Does OpenTweet ask for my Bluesky App Password?

No. You sign in on your own server, and OpenTweet stores a scoped OAuth grant instead of a credential. That matters: an App Password can do close to everything your account can do, and it is the older model that atproto OAuth replaces. OpenTweet never sees your password and never asks for an App Password.

Can I use OpenTweet if I self-host my Bluesky account?

Yes. OAuth resolves your personal data server from your handle, so an account on a server you run yourself connects exactly like one on bsky.social. Nothing in the flow assumes a single host, and your handle can be your own domain.

Can I post to X and Bluesky at the same time?

Yes. Write the post or the thread once, select both networks, and schedule it. Each network gets a native post of its own, not a link pointing back at the other one. Threads work on both.

How long can a Bluesky post be?

Bluesky allows 300 graphemes per post. It counts graphemes rather than bytes, so an emoji or an accented letter costs one, not several. You can attach up to 4 images per post, 2MB each. Threads are supported, so a longer piece splits across parts.

Does OpenTweet show Bluesky analytics?

No. Analytics in OpenTweet cover X only. Bluesky support is publishing and scheduling: single posts, threads, images with alt text, and the calendar. Nothing reads your Bluesky engagement back, and the page will say so rather than imply otherwise.

Is OpenTweet a multi-platform scheduler now?

No. OpenTweet is X-native and goes deep on X: analytics, evergreen recycling, connectors, DM campaigns, X Articles, and an MCP server for AI agents. Bluesky is a mirror for the posts you are already writing, not a second product. LinkedIn, Threads, Instagram, and TikTok are not supported and are not planned.

Which plans include Bluesky?

Every paid plan, starting at $11.99 a month. Pro connects 1 Bluesky account, Advanced 3, and Agency 10, matching the X account count on the same plan. There is no separate Bluesky fee and no per-post charge.

Schedule Bluesky without handing over a password

Connect with atproto OAuth in under a minute. No API key, no developer account, no App Password, and self-hosted servers work. Included on every plan from $11.99 a month.