opal
Open source · Runs in your browser
Bring your microblog posts
to the open web.
Opal converts your posts from Twitter, Mastodon, Threads, and Nostr into Bluesky posts — so your words stay with you, not the platforms.
What it does
Twitter/X
Import your tweet archive from Twitter's data export file.
Mastodon
Convert your ActivityPub outbox or CSV export from any Mastodon instance.
Threads
Bring over your Threads posts from Meta's data export.
Nostr
Convert your Nostr text notes (kind 1 events) to Bluesky posts.
Facets
Links, mentions, and hashtags are converted to ATProto facets where possible.
Bluesky
Publish imported posts to ATProto Bluesky with full facet support.
Private
Everything runs in your browser. No data is sent anywhere except your own PDS.
How it works
- 1 Choose a platform
Pick Twitter, Mastodon, Threads, or Nostr.
- 2 Sign in with ATProto
Use your Bluesky handle and an app password. Nothing is stored.
- 3 Upload your export
Drop in your archive file — everything is processed locally in your browser.
- 4 Import
Opal publishes your posts to your PDS with automatic rate-limit handling.
Ready?
No account needed. No data leaves your browser except to your own PDS.
Start convertingMore tools like this one
Same idea, different platform — all free and open source.
Import your music listening history into Teal.
JasperImport Instagram photos and videos to Grain or Spark.
BismuthConvert ATProto richtext-block documents to Markdown.
TourmalineAnalyse your Teal.fm scrobbles and discover your listener archetype.
opal is free, and staying that way
No ads, no accounts, no tracking — just a tool that does the job and gets out of the way. If it saved you an afternoon, chipping in helps keep it maintained.
Rather not? Star the repo or a word to someone who'd use it helps just as much.