Cross platform Lichess Cheat

Posted on August 12, 2015 in Chess • Tagged with Software, Python, Programming, Chess • 5 min read

Edit: Cheat updated on 1.10.2015

Visit Lichess Bot Projects Page for the newest information for this bot! The description and code below will probably not work anymore!

Hello Everyone

Once in a while I like to play Chess on lichess. But sometimes I get beat up tot harshly, such that I want to take some revenge :D. Recently I created a new cheat for lichess. You can find the whole source code on my lichess cheat github repository. If you want to use the cheat, please follow the following tutorial:

  1. Download and install Python 3.4 (or newer) for your operating system from here: python web site
  2. Add Python to your system path such that you can open python file from anywhere (This step depends on what operating system you are using)
  3. Then download the python cheat from here. It is the file with the .py suffix
  4. Then execute the python cheat file where you downloaded it. Just go to the directory where you saved it and enter in a shell: `python
  5. Open your browser (tested with chrome and firefox) and add the HTTP proxy server in the network settings that is outputted in the …

Continue reading chess bot!

Posted on April 23, 2014 in Uncategorized • Tagged with Uncategorized, Programming, Chess • 4 min read

22.05.2014: Updated the bot, should work better now

Hi everyone!

I was in a coding mood during Easter and decided to write a small chess bot with selenium and stockfish engine to cheat a bit on

I think the code is pretty self explanatory and I won't discuss it in depth here. You can tweak the config, the comments should explain what the parameters do.

The config is in the beginning of the code, so modify it there. You should maybe modify it to use your username and password. Make sure that you download stockfish and install it. Then supply the correct path in the 'stockfish_binary' parameter.

As always: Have fun!

Some open issues:

  • Sometimes the last move fails because the bot won't to start a new game before it can checkmate
  • Promoting doesn't work yet :/

Here is the code:

__author__ = 'nikolai'
__date__ = 'Easter 2014'

config = {
    'username' : 'probably_a_spider', # the login username
    'password' : 'somepwd', # the login password
    'stockfish_binary' : '/home/nikolai/PycharmProjects/LichessBot/stockfish-dd-src/src/stockfish', # the path to your local stockfish binary
    #Set to true if the bot should play forever
    'pwn_forever' : True, # if the bot should play endlessly
    'min_per_side …

Continue reading

The art of cheating: Making a chess bot following an unusual approach!

Posted on January 26, 2014 in C • Tagged with C,, Cheating, Firefox, Hooking, Chess, Lowlevel, Programming, Security • 21 min read

Table of contents

  1. Preface: Giving first insight into the idea and why I think that hooking into a browser is a good idea.
  2. Many different ways to make browser game bots: Discussion various techniques to write HTTP/WebSocket bots
  3. How does internally look like?: Investigation of the client side behavior of
  4. How the bot works: Explaining how my shared library hooks firefox network functions
  5. Conclusion: Summary of my discoveries
  6. Demo Video and another, better demo video: You might only watch that video, but make sure you read the explanation on the very bottom of this blog post!
  7. You may find the sources to the shared library (so) on my github account.


Usually I don't have good ideas in forms of flashes of genius. On the contrary, I think that many endeavors and interesting projects might be reasonable if realized, but often so, there's a huge amount of work involved and too many variables and strategic decisions in the process that could eventually render the project a failure. What I try to say: A mediocre idea well engineered might be a good product. But a good idea badly implemented and designed is usually just bad in …

Continue reading

Bullet chess challenge :)

Posted on November 26, 2012 in Chess • Tagged with Learning, Chess • 3 min read

I realised once more, that, when I excessively play bullet chess, I tend to stagnate or my performance even goes down the tubes. The reason behind this, I am assuming, the absence of defined goal or when I play without thinking (as far as thinking in bullet chess is the legit word) or other bad behaviour, as listening to music...

Therefore, I will try a little experiment: I play every day not more than 10 bullet games. This is around 20 minutes of playing. But every time I lose, I have to to 6 full and slow chin-ups. I'll play on and my starting rating is right now 1924, which actually is pretty high for me. Nevertheless, my goal is to reach ELO 2050. My all time highscore is 1974. Let's go and breake some records...

Ok let the journey begin :)

  • 26.11.2012: 1924 - 1896. Did around 30 chin-ups. Tired as hell. Lost too many times :)
  • 28.11.2012 1896 - 1903. Back in the 1900s. Did lot's of chin ups. My game improved slightly, I think more and deeper. My speed is still to slow...
  • 29.11.2012 1903 - 1900. I am stagnating, I have the impression …

Continue reading

Bullet Chess - A silly game?

Posted on November 05, 2012 in Chess • Tagged with Chess • 6 min read

I define bullet chess as games with one minute time for each player. There are plenty of other definitions, but I think my definition refers to the most common one. This article is definitely worth a read and helps to understand my further deliberations:

Well, besides my enthusiasm for IT security, I have always been a bullet chess player with myself worrying adictive feautures. It all began around three or four years ago, when I realised that simply too much people tend to use chess engines on online platform and in addition, I was just to nervous and unwilled to calculate and think the average (somehow boring long) length of a entire chess game. Bullet games came perfect in this manner: It is almost impossible to cheat manually in bullet games (of course you could write bots which directly interact with the server through the underlining protocol - HTTP when you're lucky, or some really badass proprietary one, when you have misfortune, but I assume that's a rather low percentage). It turns out, that my renunciation of the original purpose of chess; thinking deep and beeing patient, turned my in a slightly better long …

Continue reading