Changes in TWBlue releases

Note: I had planned to post this article today, although the changes described here were applied in a completely different way due to an issue we had with our twitter API keys at the project, hence everyone was forced to update to the latest version of TWBlue. However, I still am posting this here so you can have more information about why we are going to release a single version.

Today, after many years of development and a couple of years without having posted here, we are pleased to announce a couple of changes that hopefully will positively affect the way you enjoy TWBlue, and more important, the frequency in which we can update the software, add new features and fix issues from past versions.

Some context

Before the announcement, it's important to talk a little bit about some terms we were using for the past years here at TWBlue. If you don't know, some years ago, we started to release two different versions of the same application. At that time, we named those versions "stable" and "snapshot". The idea behind this reasoning was that we wanted to give the choice to our users, whether they wanted to use a well tested, fully translated and documented version, which was the stable version; or the last up to date code arriving to our repository, with the newest features, bugfixes and testing parts we were introducing before the next stable. We called that version the Snapshot. So, people who would want the stable version were a little bit out of date with all features we were adding, but the version was more mature and tested; meanwhile snapshot users were prone to more bugs and reduced performance, but normally they were having access to newer features. At the end, we were using the snapshot version to test the next stable, and our users were fully participating in that process.

However, after 2019, We had a hard time here in the project. Firstly, there were a lot of changes we needed to perform if we wanted TWBlue to keep using up to date technology. We needed to migrate to one of the Pytohn 3 versions, as Python 2 was discontinued a while ago; We needed to replace the module we use to communicate with Twitter -as Twython, the module we were using before, looks to be abandoned, and in the meantime we dropped support for Windows XP and replaced our audio playback engine completely. At the same time, we received less contributions from the community in our repository, as all people contributing to the project are doing so during their free time and normally they have pretty busy days.

The More work we had to do, less people working in the project and life situations making us being generally unable to be working in the project as we'd like, had a few consequences. The first and most important was that we were unable to release neither snapshot or stable versions in a long time due to the magnitude of changes we were performing, thus many people thought that the project was abandoned, despite being generally active in the source code repositories. Once we had something to release as a new snapshot, the differences against the current stable version were too significant that we knew since the first snapshot released built with Python 3, that we would be unable to release a new stable version as an update to the existing version because everything would break. To make it easy, both Python 2 version (0.95 or the stable released in 2019) and all newer snapshots (Python 3 versions) cannot be mixed, therefore autoupdating the stable version would not be possible. Also, new snapshot versions introduced many things that made us to be unable to update the current stable, such as a new cache database, which would break the stable one, changes in configuration for proxies which are also not compatible with the config values from stables, and some other changes that might break the stable features offered due to the difference between Python versions.

Another consequence about our (considerably weird) releasing schedule was that very often, people tend to think about snapshot versions as unstable or dangerous-buggy code. A couple of weeks ago, I started recommending people to use the latest snapshot version as opposed to the current stable, because we were basically 2 years ahead on development, features and fixes than in 2019, but I received many questions about the stability of the current snapshots. That's why I thought we needed to do something about this problem. Since nowadays the snapshot versions are way more stable than the installer, portable or other bundles we distributed in 2019 as the "current stable version". I thought we no longer should call TWBlue releases as "snapshots", as those are much more stable, performant and generally bug free than what we considered stable version in 2019.

What is changing?

Lately, I have been quite busy with many other duties in life and work. Among those, I am setting up a single person software company to make me being able to access more opportunities in Mexico, the country where I live. Probably, if you use TWBlue, you will notice a name change in the about section within the application. Though that's going to be a minor change, because everything else is going to be the same. About the TWBlue's release versions, we are going to make it much easier for everyone by releasing only a single version, which will be updated regularly to add new features, bugfixes and translations. We will no longer keep separate versions based in how stable the code is, because we consider that with the current codebase, TWBlue is stable enough to keep a single, unified version and get this version up to date with the latest Twitter features.

We also will change our versioning system to the calendar version release. This means that instead of being releasing software based in major.minor version, as we were doing before, we will start to release TWBlue versions based in the date the release was finished. So, very soon you will see TWBlue Version 2021.10.26, for example, which should make it easier for people to identify when exactly the version was built.


With those changes, we hope there will be more time for us to code, test and pack features into the software instead of worrying about when we should freeze a specific version and when we should release more snapshots. Also, hopefully this will make the project more active among the community and stop giving the impression of abandonment by people using it.

Last but not least, I wanted to take the time to thank you all, users, contributors, translators, sound designers and writers for putting what is in your possibilities to make this project the giant piece of software it is nowadays. When I have started to code this, only in spanish and as a fun project, I never imagined that this project would last for 8 years. And as long as Twitter keeps existing and allowing third party developers to code for their platform, I hope we can see many more years of this project, which, among other things, is translated to more than 19 languages by a group of experienced people, making many more users capable of enjoying a good Twitter experience. As the lead developer of the project, you all encourage me to implement all changes in order to make the software better. Thank you all and let's hope for more years to come.

Regarding the Inability to Authenticate New Twitter Accounts in TWBlue

Many TWBlue users have been reporting, both on Twitter and in GitHub issues, that TWBlue will not authorize new accounts. This is the result of a change made by Twitter to how the authentication process works. This post will describe the cause of this problem and how to fix it. Please read this post before mentioning (@tw_blue2) on Twitter or opening a GitHub issue about this, as we have been getting many duplicate GitHub issues filed about this and it can be annoying to have to comment on every one of them with the solution. Feel free to share this post with your friends as well.

The cause.

If you just want your TWBlue to work again and don't care about the technical details, feel free to skip past this section and go to the solution heading below.

Short version.

Twitter made a change to the account authorization process that broke the method TWBlue, and probably some other clients, used to authenticate new accounts.

Long version.

Previously, to authenticate new accounts, TWBlue opened a web server on your device. This server was on a random port and only stayed open to receive the access token that Twitter provides when you authorize your account for use with TWBlue. This was how you were able to just click "authorize app" on the Twitter website and get your account authorized without any action taken on your part. However, recently Twitter started to require callback URLs, URLs that Twitter sends access tokens to and that Twitter applications redirect to when they've been authorized to use your account, to be whitelisted. TWBlue's callback URL was "", so it could send the Twitter access token to the web server opened on your device, but this is no longer allowed under Twitter's policies. Because of this, TWBlue had to revert to PIN authorization, where you grant access to TWBlue by entering a PIN code that Twitter provides to you when you authorize it to use your account.


At the moment, you need to download a snapshot to authorize a new account. You can download a snapshot, which will always be the latest version available, (here).

But I don't want to use snapshots!

That's fine. You can use the snapshot just to authorize your account. Here's how you can do this.

  1. Run TWBlue.exe from the snapshot's directory and authorize your account.
  2. Close TWBlue.
  3. Copy the "config" folder in the snapshot's directory to the TW Blue folder in your appdata folder. You can access this by opening the run dialog and typing "%appdata%\TW Blue" without the quotes.
  4. Run the stable version of TWBlue you have installed on your system. It should log in to your Twitter account and you can use the stable version again. You can delete the snapshot if you'd like, but you might want to keep it around in case your configuration gets corrupted and you need to reauthorize your account.

Snapshot versions are back!

Hello everyone,

If you have been a TWBlue user for a long time, you surely remember our snapshot versions. Thanks to these versions, people could try the newest changes added into our repository while were able to help us by reporting problems and giving valuable feedback so we could have a more stable version. We had some issues in the past, and lack of time, of course. That was one of the most important reasons why we stopped releasing these kind of versions. But today we have found a better approach to release them, and we will give you these versions back, so you won't need to wait for the stable version to try the new features and bugfixes we are adding in the sources.

however the process we are going to use for building snapshot versions is quite different than what we used in the past. We are going to use tools for generating these versions automatically, so human intervention will be needed only in exceptional cases.

If you are interested in using TWBlue snapshot versions, here you have some important pros and cons about them. Take it into account before downloading and using them so you will understand what are you using and what to expect.


  • You are going to use the latest source code, available from our repository.
  • Every new feature and bugfix will be deployed in snapshot before a stable release.
  • Depending in the changes committed in the repository, the build tool will generate a new snapshot every few weeks.
  • You will be able to contribute by testing snapshots and reporting bugs or giving feedback in order to create a better user experience for stable versions.


  • you should expect more issues than what you may see in the stable version, because as new features are being added, its corresponding bugs are waiting to be found and fixed.
  • We usually won't add translations and documentation changes to snapshot versions.
  • In snapshot, the only supported language will be English. Eventually we may update documentation or changes in other languages, but that won't be a priority (our translation team need to take their time).
  • We hope you will be patient if you find bugs in snapshot, as we need your help for fixing everything.


If you want to try the bleeding edge of TWBlue development, regardless of finding bugs and a version that is not so stable, you can use our snapshot versions and keep up to date. If you prefer to have a Twitter client that "just works" or don't like to report bugs and fight with software, probably you should stay in the stable version.

Download a snapshot version from our downloads page

Running TWBlue from sources

Some people in Twitter have started to use TWBlue from the source code. It means that they are getting the sources as soon as they receive new changes or updates, and running the TWBlue version with these changed bits of code. I have been asked to provide the “official” guide for using TWBlue from sources, and even if I don’t recommend this for everyone, here are the “guide”.

Why you may want to run TWBlue from sources?

TWBlue is free software. Its source code is widely available and you can use the program by running it from sources, as we do every day. Some people started to run the program from its source code because they get code changes as soon as they are uploaded to the repository. That includes every new thing we are adding to the client. They just have to write a command, and they get the updated version of the source code repository. If you are wishing to try the versions of the client before anyone else, you may want to use the client from sources.

Getting git for windows

We use a tool called git for managing change sets in our repositories. If you want to install everything and get the source code changes, you should download and install git for windows from this link. This is a standard windows app, so you would be OK by following the wizard (basically press next several times and finish when it is done). Once installed, you can proceed.

Getting the files

Open the git CMD application (whether from the start menu or in your desktop) and paste the following commands:

git clone --dept=1

Note: after the above command it will download some files, so give it some time.

cd TWBlue

git submodule init

git submodule update

Installing dependencies

After these commands, there should be a directory called TWBlue in your home folder. If you open it, you will see some other directories and files, open the windows dependencies folder and install the executables located in the x86 folder (for 32 bits windows) or x64 (for 64 bits). If you have a 64 bits system, you can install both 32 and 64 bits versions of all components, but it is not needed, unless you plan to build an executable version of TWBlue. When installing Python, make sure you checked the option for adding python to the path environment variable in Windows, it will make your life much easier. These are the files you must install, the first file will be the Python version, others can be in the order that you prefer:

  • python-2.7.13
  • wxPython3.0-win32-
  • pywin32-220.win32-py2.7
  • pyenchant-1.6.6.win32
  • (optional, only needed if you want to build a distributable version of TWBlue) py2exe-0.6.9.win32-py2.7

Other files can be ignored.

Installing other python scripts

Open a command line (windows R and write “cmd”) and paste the following command:

easy_install -Z --upgrade six configobj goslate markdown future suds requests oauthlib requests-oauthlib requests-toolbelt pypubsub==3.3.0 pygeocoder arrow==0.6 python-dateutil futures winpaths PySocks win_inet_pton yandex.translate

Once installed, everything is ready for running TWBlue.

Running TWBlue from sources

Go to the TWBlue folder by opening it in the windows Explorer, open the src directory, and locate the file called Press the applications key there and select “open with Python”, if it’s not the first option. And everything should be done, TWBlue will be opened from the source code.

Getting updates

If you follow the TWBlue account in twitter, you should know that I tend to post every update that we send to the official repository. Every time you see these updates, you can apply them to the currently code that you have. You will need git for syncing these changes, so don’t remove it. Here are the steps for updating your version of the source code. Of course if you are using TWBlue from source, you will need to close the program, apply the updates to the source code, and open it again.

Open git CMD from the start menu or desktop, depending in your particular case.

Type the following commands:

cd TWBlue

git pull

You should see a list of updated files, or the message “already up to date” otherwise. And that’s all, you’ve updated the client and you can open it again for seeing the new added changes.


I have made this tutorial by following the TWBlue readme instructions and by modifying a tutorial created by @AnimalMetal. If you find issues when running TWBlue from sources, you can drop me a mention or direct message in twitter @tw_blue2) and we’ll try to help.

Welcome to the New TWBlue website

Hello everyone! Today we are pleased to announce the new TWBlue website. We have been working in a redesign of the current site of TWBlue for making it easier to translate, so you will be able to read this webpage in your native language, even if it is not English.

Currently, we are working for translating this website into Spanish, French and Russian. More translations may be added later, though. Other sections of the website are working properly (Downloads page, soundpacks and an updated version of the documentation, produced for TWBlue 0.86, can be read throught the main menu).

If you do speak Spanish, French or Russian, we are happy to announce that you will be able to access to the fully translated version of the TWBlue site in to your native language, by adding /code_name to the end of the URL. For example, the URL for this website is If you want to see the spanish version of the site, just go to And it will show you the right version in the Spanish language. The same will be for Russian ( and French (

Another way for changing the language is to display the main menu (in some browsers, you'll find a button that will show you the main menu), and select the language that you want from the second list.

In addition, when you are reading a section in the website, you will see all available translations in a header, so it will allow you to switch to another language if you want to do so.

We hope you will enjoy this new website, wich will be faster and safer.