Project

tootify

0.0
No release in over a year
Experimental Bluesky->Mastodon cross-poster
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
 Dependencies

Runtime

~> 0.2
~> 2.5
~> 0.3
~> 0.2
~> 0.13
~> 0.1
 Project Readme

Tootify 🦋→🐘

A simple Bluesky-to-Mastodon cross-posting service

What does it do

Tootify allows you to do a selective one-way sync of Bluesky posts to your Mastodon account.

The way it works lets you easily pick which skeets you want to turn into toots: it scans your recent posts and checks which of them you have liked yourself, and only those posts are reposted. The self-like is automatically removed afterwards.

Currently handles:

  • post with link embeds
  • quotes – posted as "RE: bsky.app/..."
  • images (with alt text)
  • videos
  • threads of multiple chained posts from you

Installation

At the moment:

git clone https://github.com/mackuba/tootify.git
cd tootify
bundle install

Usage

First, log in to the two accounts:

./tootify login johnmastodon@example.com
./tootify login @alf.bsky.team

Press like on the post(s) on Bluesky that you want to be synced to Mastodon.

Then, you can either run the sync once:

./tootify check

Or run it continuously in a loop:

./tootify watch

By default it checks for new skeets every 60 seconds – use the interval parameter to customize the interval:

./tootify watch --interval=15

Configs

Tootify stores configs and data in the config folder:

  • bluesky.yml – created when you log in, stores Bluesky user ID/password and access tokens
  • mastodon.yml – created when you log in, stores Mastodon user ID/password and access tokens
  • history.csv – stores a mapping between Bluesky and Mastodon post IDs; used for reply references in threads
  • tootify.yml - optional additional configuration

The config in tootify.yml currently supports one option:

  • extract_link_from_quotes: true – if enabled, posts which are quotes of someone else's post which includes a link will be "collapsed" into a normal post that just includes that link directly without the quote (so the link card on Mastodon will show info about the link and not the quoted bsky.app post)

Credits

Copyright © 2025 Kuba Suder (@mackuba.eu).

The code is available under the terms of the zlib license (permissive, similar to MIT).