Copy your Tweets over to Mastodon as Toots

Introducing TweetToToot, a free, open-source, cross-platform, command-line tool that simplifies the process of copying your tweets from X (formally known as Twitter) to Mastodon as toots.

With TweetToToot, you can efficiently transfer your tweets to your Mastodon account, ensuring continuity of your digital presence. Easy to use and community-supported, TweetToToot provides a seamless transition to a decentralized social media platform.

I developed the TweetToToot utility in C# .NET Core for copying my 'timeless' tweets over to Mastodon. Recognizing its potential value to others who might face a similar situation, I decided to make it available for free. It's designed to be user-friendly and accessible, and I hope it can be as helpful to others as it has been for me. Feel free to download and use it, and share it with anyone who might benefit from its features.

I developed the TweetToToot utility essentially for the following reasons.

Following Elon Musk's purchase of Twitter, I noticed a significant number of users, including myself, migrating to Mastodon. For me, the shift was driven by a blend of ideological, practical, and social considerations. One of my main concerns was about content moderation and free speech. Musk's advocacy for absolute free speech and his criticism of Twitter's previous policies raised alarms for me, as I feared his ownership might lead to excessively lax moderation, allowing harmful content to flourish, or inconsistent enforcement, creating a chaotic environment. My political and ethical differences with Musk also played a significant role. His polarizing public persona and political statements made me uncomfortable, and I felt compelled to seek a platform that better aligned with my values. Additionally, I was anxious about potential changes Musk might implement, such as algorithm adjustments, altered verification processes, or new subscription models. The uncertainty about Twitter's future usability and fairness made me consider alternatives more seriously.

Privacy and data concerns further fueled my decision to leave. Given Musk's involvement in data-intensive ventures like Tesla and SpaceX, I feared increased data mining or misuse of personal information under his control of Twitter. In contrast, Mastodon's decentralized structure, which isn't controlled by a single entity, appealed to me. I preferred a more democratic and community-driven social media experience, where I could join specific communities that aligned with my interests and values, offering more control over my social interactions. Influential users and thought leaders promoting Mastodon as a viable alternative also impacted my decision. As these figures moved to Mastodon, I followed, along with many others in my network, creating a snowball effect. Additionally, I found Mastodon's unique features, such as community-driven instances and a more controlled feed, to be fresh and appealing, offering a preferable user experience compared to Twitter's algorithm-driven content.

In essence, my shift from Twitter to Mastodon was driven by a complex interplay of concerns about content moderation, ideological differences, privacy issues, and a desire for a more community-oriented and controlled social media environment. This migration reflects my pursuit of a platform that aligns more closely with my values and expectations.

Prior Preparation

Before we begin, let's check we have everything ready.

  1. Download the latest TweetToToot utility from the i4cy GitHub page. Then extract TweetToToot.exe from the zip file and copy it to a designated folder on your computer.
  2. Download an archive of your data from X.

    The archive can be requested at the X website by following the following links :
    More → Settings and privacy → Your Account → Download an archive of your data.

    Once requested, X will send your archived data within 24 hours as a zip file. When received, extract its contents to your TweetToToot designated folder.
  3. Have your Mastodon login details (email and password) to hand, including the Mastodon instance you wish to post to (typically

You should now be ready to use the TweetToToot utility.

Using the TweetToToot Utility

For the purposes of the demo described here, we will be using Microsoft Windows to run the utility, and assign C:\TweetToToot as our designated TweetToToot folder. Launch a Windows console, and change directory using the cd command to your TweetToToot designated folder.

First to check that the utility is working, by showing TweetToToot's help and usage information. Type in the following at the console.

TweetToToot -?
TweetToToot help and usage information

You should see the following information provided by the utility as shown above.

Before uploading your tweets to Mastodon it is advisable to review them first. To display all the tweets contained in your twitter archive, enter your Mastodon details and the location of your Twitter archive, similarly to the example below.

TweetToToot myapp JZ!56!j8 C:\TweetToToot\twitter-2024-04-17

You will see each displayed tweet is headed with its own index number so that it can be referenced if required. Below this is displayed, the original date the tweet was posted, any added images, and the tweet text itself.

To display a single tweet, we can use the startIndex '-s' and endIndex '-e' options so as to just display tweet number 146, i.e. display tweets starting at index 146 and ending at index 146.

TweetToToot myapp JZ!56!j8 C:\TweetToToot\twitter-2024-04-17 -s 146 -e 146
TweetToToot displaying tweets

Now lets try uploading this single tweet to Mastodon. This time we use the action option '-a Upload' to perform an upload. Notice also that the resolveUrl option '-r' has been used which converts any shortened urls into their expanded urls before the tweet is uploaded.

TweetToToot myapp JZ!56!j8 C:\TweetToToot\twitter-2024-04-17 -s 146 -e 146 -r -a upload
TweetToToot uploading tweets

Now head off to your Mastodon account to see if your tweet has been successfully uploaded as a toot.

Tweet to toot conversion

If all was well, we can now confidently upload all the tweets you require to copy to Mastodon.The final example below shows uploading multiple tweets numbered from 11 to 154, while omitting tweet numbers 19, 97 and 118. The dateStamp option '-d' adds the original creation date stamp to each created Mastodon toot.

TweetToToot myapp JZ!56!j8 C:\TweetToToot\twitter-2024-04-17 -s 11 -e 154 -r -o 19,97,118 -d -a upload

That's it.


Hopefully, this article has provided a comprehensive guide on how to effectively use the TweetToToot utility for seamlessly copying tweets over to Mastodon as toots. By following the steps outlined, users can effortlessly transition their content to this dynamic and decentralized social media platform.

This utility not only simplifies the migration process but also ensures that valuable content remains accessible to audiences across both platforms. As more users discover the benefits of Mastodon's decentralized nature, enhanced privacy features, and community-driven ethos, a significant increase in its user base is anticipated. Exploring Mastodon and joining the growing community that values freedom, privacy, and decentralization in social networking is highly encouraged.