citytweets is a Twitter/Mastodon retweet bot currently powering @luebbecketweets, @mindentweets, and more.

View the Project on GitHub YNedderhoff/citytweets


Build, Test and Publish Codacy Badge


citytweets is a Twitter and Mastodon repost bot currently powering my accounts listed below. In addition to my accounts, it also powers @TweetsFuerMiLB, which is not owned by me.

It reposts everything the search finds. It is intended to be used with searches like @mindentweets so that everyone can at-mention the account @mindentweets and will get a repost, thus reach every follower of @mindentweets.

The bot’s own Twitter account can be found at @citytweets_bot. The respective Mastodon account is hosted on



For some calls it still relies on the deprecated Twitter API 1.1. For calls to this API it uses Twitter4J, which does not seem to be maintained anymore as well. For other calls, and especially the calls that actually search for new tweets, it already relies on the new Twitter API 2.0 to which I got early access. These calls are made without any library help. Further migration will happen over time.

Twitter API Deprecation

On February 2nd 2023, Twitter announced the deprecation of their v1.1 and v2 APIs effective February 9th.

These are the two APIs citytweets relies on to work for Twitter, so unless Twitter changes that policy, any Twitter retweet account will stop working on that date.


The important parts of the Mastodon API are implemented. It currently still relies on parsing its followers’ toots and reposting those in case there is a mention, instead of using the search including webfinger lookup.

Owned Accounts

Platform Handle Name Link Status
Twitter @mindentweets Minden Tweets Active
Twitter @luebbecketweets LĂĽbbecke Tweets Active
Twitter @herfordtweets Herford Tweets Active
Twitter @badoeyntweets Bad Oeynhausen Tweets Active
Twitter @espelkamptweets Espelkamp Tweets Active
Twitter @portatweets Porta Tweets Inactive, profile exists
Twitter @hilletweets Hille Tweets Inactive, profile exists
Twitter @rahdentweets Rahden Tweets Inactive, profile exists
Mastodon @mindentoots Minden Toots Active
Mastodon @luebbecketoots LĂĽbbecke Toots Active
Mastodon @herfordtoots Herford Toots Active
Mastodon @badoeyntoots Bad Oeynhausen Toots Active
Mastodon @espelkamptoots Espelkamp Toots Active
Mastodon @portatoots Porta Toots Active
Mastodon @hilletoots Hille Toots Active
Mastodon @rahdentoots Rahden Toots Active
Mastodon @milktoots Minden-LĂĽbbecke Toots Active</a> but had to be moved, as’s Code Of Conduct does not allow posts in German language.

  1. It was originally hosted on