All support/help is welcome and highly appreciated!

This page is for downloading BanksiaGUI – a free chess GUI with beta versions, before officially releasing.

To run the app, just download, unzip and click the program. You need a 64-bit OS, Windows, macOS, or Linux.

Bug reports, ideas, suggestions, feature requests… are highly appreciated! Please use some below ways:

New: You are welcome to join and post on Banksia GUI forums. Forums’ topics are chess/computer chess in general. Recently, it has just been eased temporarily for registering.


We plan to support/study some hardware. Some of them are expensive. Thus we need some help from you all. You may donate us some hardware (such as electronic chessboards). Used or new is fine. Or even lend us for a while (for a few months). You may donate or advertise on our app too. For any donation above US$50, we will display your name/information/advertisement in the About dialog box of BSG as golden sponsors for one year (for being Diamond sponsors with unlimited time, please discuss with us). All help is highly appreciated!


Ver 0.54 beta (20 May 2022)

Besides some minor bug fixes, many small improvements, and changes, there are some new things, including:

  • Show boards & brief info in the tournament panel as tooltips
  • The human can play in tournaments (re-implement the feature)
  • Use online EGTB (Lichess or Chessdb) for adjudicating
  • Officially support OCGDB (Open Chess Game Database Standard, based on SQLite). The new chess database format and code are one of the best so far (it is comparable to any best chess database program on any parameter) and highly optimized for sizes, speed, and position searching
  • Officially support OOBS (Open Opening Book Standard) – a new format for opening books based on SQLite


  • We pride ourselves as founders of two new open chess standards, one for databases and the other for opening books. Both are open-source, totally free, and built on SQL databases which are mature, very strong engines/libraries to store and search data. Those standards and code have open, clean, clear database structures thus very easy to understand, and convert data from, to or modify. All could work directly and very well with BSG. The game databases can have customized structures. Users may not be worried anymore about speed and limitations (very high than average need and much much higher than any other chess format/program)
  • EGTB 7-men has been available for some years. However, the number of users who download them all is still small (based on our experience and discussion on some forums). The reason is that 7-men are too huge, too expensive (to buy enough storage), and require too much time and effort to download. With the new feature, BSG can help users to get some benefits without downloading them. Lichess or chessdb could be chosen for adjudicating with endgames 7-men. In our tests, it is very fast, and smoothly and can help save significant time and computer power

Language packages

To use Banksia GUI with some languages, users can download language packages (extension .qm) and copy it into folder languages (it is located on the same folder with the runnable file of Banksia GUI. For macOS, it is in package, right-click on that to popup menu and select Show Package Contents)

You may help people by translating BSG into your languages by forking one of the below repositories:

Youtube channel

Version history


BanksiaGUI is built based on our open-source Banksia. You may visit, download and/or contribute:

548 thoughts on “Download

  1. Good day,

    I apologize, the “Forums” link gives me HTTP ERROR 500 error, and the link to talkchess forum – 403 Forbidden, so I ask here:
    Is it possible to flip the board, so that black pieces are on the bottom and white ones on top, and if yes where I could find this option, please?
    Thank you.

  2. Hi! Banksia has been crashing for me for quite some time, back in the days when I first tried I remember it had something to do with how I placed each dock in the UI and I thought it was the PV window that was causing, however now even if it is switched off it crashes. Usually when I start a tournament and watch it on the main screen, concurrency set to 1, Around the third or fourth game it crashes.
    I can replicate it fairly easy if you want, just not sure what is causing it.
    I am on Windows 10. I was setting up a gauntlet tournament of two GPU engines vs a CPU. Works well on Cutechess, so I don’t think it has to do with the engines.

    1. Thanks for the report. Can you check if you turn on GPU engines’ options LogLiveStats and VerboseMoveStats? If they are on, just turn them off and try again. I realised those engines may create too many output and make BSG laggy too much and crash when processing them. I have been working on crashing issues too, fixed some already thus I hope the coming version may work better

  3. we need this report => “Live Rating” like TCEC =>

    suppose I run a tournament with 3 engines [A, B, C] and assign a rating to machine A = 0

    thus, every 1 game ends, the rankings are updated immediately with reference to the rating of engine A = 0

    if user does not assign a rating to one of the engines before the tournament starts, then system will randomly choose to assign a rating = 0 to one of these engines

    so the Tab will be like this…

    Initial Rating Live Rating Diff + –

  4. Tournament stopped at game 32 [], I think it’s not only me who has experienced something like this, a user on Talkchess also experienced the same thing

        1. Python is much easier than C++ for learning. It is also much easier when writing a new program due to it is a safer programming language (not easy to make mistakes), come with redundant libraries… However, C and C++ are better for creating higher performant programs. For the chess engine programmers, they almost talk in “C/C++ language” thus you are easier to discuss if using the same language with them.

  5. First I’d like to thank you for developing and sharing this truly amazing software! Hope you continue working and improving on it it.
    Re: BanksiaGui-0.37-win64
    Trying out the feature “Build Opening Books by Computing”
    My save to book name = BuildBook.bin
    Noticed while it is running that it creates a file “BuildBook.bin.tmp” and presently the size is 257 kb.
    When does it write to the BuildBook.bin?
    Let it run for sometime and then stopped it. It did not write to the file I mentioned and left the tmp one as it was when running. Later when I went back to it it asked me if I wanted to resume which is nice but when will it write to file and is there no way to force it to write the info it has collected to my BuildBook.bin?

    1. Perhaps that depends on the font and system. On my computer, the list length is changed clearly when the font changed, including font 9, 10, 11…

    1. Thanks a lot for the video and the suggestion. Yes, it is a very interesting feature. However, it is really a challenge for me to implement (that kind of re-acts depends much on the tool used to build the GUI)

    1. Could you give me the list of involving engines (or the file banksiaplaying.json) and configuration of that computer (CPU, OS)? I need to reproduce the crash. Thanks a lot

        1. Thanks, I got it and working on it. A bit hard for me at the moment to reproduce the issue since that computer has only a 2 GB RAM.

          1. yes, old computer, but other GUIs (Arena, Cutechess GUI, Fritz14, Hiarcs, Scid vs PC) all of them run well on that 2GB RAM computer

            and when running Tournament I only use 16 and 32MB of Hash, and let the computer run without the slightest interruption, I use another computer for work

            in my opinion, testing an application on a weak computer is very useful, it’s to ensure that the application works properly under any circumstances

          2. A clear difference between BSG and Arena/Cutechess is that BSG logs a lot. If you turn off some or all most all logs, especially the engine logs, the database log seems to be not good too, I guess BSG can run smoother on that computer

  6. I think you should start thinking of ways to integrate Ordo into BSG, because Ordo is currently used by a lot of people

      1. yes, Ordo only read from existent PGN, and Cutechess also use Ordo and implements it well… and I think BSG should too

        1. BSG has supported already the format of Cutechess computing info (three info items as we have discussed). I have been working on supporting TCEC’s format too

    1. Oh, do you mean to integrate the function to calculate Elo as Ordo? Elo calculation is one of my weak knowledge thus it is one of the weak points of BSG too. I have planned to solve that problem, just a bit… later because of being a bit lazy 😉

        1. Thanks a lot for the files!
          * CCC.pgn: not a standard data format, it used a mix between standard & TCEC-like such as +0.30/23 1.5s, ev=0.30, d=23, pd=c5, mt=00:00:01…
          * your computer.pgn: cutechess-cli. BSG can work well with that file
          * not a standard data format such as [%eval 206,19] 8.6s
          * TCEC.pgn: not a standard data format but BSG is supporting. I will fix some problem I have seen and may support fully later

          1. Normal users don’t care about standard or nonstandard, only programmers care about it.

            What normal users like me want is, the data from TCEC, CCC and SPCC are used as a reference in assessing the progress of a chess engine, so of course we want to read statistics from the data they present regardless of whether those datas are standard or not.

            It would be a added value to BSG if it can read statistics from TCEC, CCC and SPCC even though the data they present are not standard.

            I saw some persons starting to switch from Fritz to BSG, that’s because BSG has features that other GUIs don’t have, if BSG is not unique from other GUIs, then why would people use it?

            Being able to read statistics from TCEC, CCC, and SPCC is one of the things that makes BSG unique.

            I see BSG has started to have a place in the hearts of chess engine lovers 🙁

    1. Thanks a lot for the report. I can’t reproduce (on my Win10 pro). Can you try to expand the dialog, drag the bars between blocks/tables, drag the lines between columns of Participants table… add to add more spaces, just in the hope it appears again.

        1. Can you try to restart that computer as well as try on other computers? I have just tried on another computer Win7 but can’t reproduce either. Thanks

          1. on my new computer, no problem, this happen only on my old computer

            but I like to use a weaker computer to test an application, it aims to find out that an application is working properly

            and maybe the biggest cause is, because my old computer is using windows 8.1

          2. Thanks for the info. From that, I can reproduce now 🙁 It will be fixed for the next release

  7. Hi,
    First, Very nice piece of software. It is shaping up well. I found it by accident at LiChess (

    I have downloaded V.36b. I go to Tools / Download but nothing appears in tabs: Engines; Game Database; Opening Books; Syzygy. The download feature works well in previous version (v0.32). I am using Win 10 64 v1903

    1. Thanks a lot for your report and data.

      From the file logengines_behind.txt I found below info:
      1.20:21:07 Stockfish 200820 nn-82215d0fd0df> info depth 18 seldepth 24 multipv 1 score cp 54 nodes 495115 nps 332962 hashfull 247 tbhits 0 time 1487 pv c4d5 d8d5 f1g2 f8d8 b1c3 d5f5 c3a4 b8c6 d1c1 e7e5 d2d3 d8e8 h2h3 e5e4 d3e4 f5e4 e1g1 e4e2

      1.20:21:06 Stockfish 11> info depth 18 seldepth 29 multipv 1 score cp 20 nodes 1464685 nps 707235 hashfull 338 tbhits 0 time 2071 pv d7d5 f1g2 b8c6 d2d4 c8f5 e1g1 e7e6 b1c3 f6e4 c3e4 f5e4 d1d2 d8d6 a2a4 c6b4 f3e5 e4g2 g1g2 a8d8

      That info is matched to speeds of the first screen.

      1. I did retest, this time, the parameters are like this:
        -Engine: Stockfish 11
        -TC= movetime: 5s/move
        -I only took the data of the first move of Stockfish 11 from the starting position

        and here are the results:
        on the screen (nps=715) =>
        behind the screen (769) =>

        NPS Difference (in %) = (769-715)/769 = 0.07 * 100% = 7%

        maybe you can try it on your own laptop with the same engine (sf11), for 1 & 2 threads

        download link:

          1. yes, it is indeed a screenshot from the logengine

            I mean, they are logengines of the games being played on the screen and behind the scenes

  8. 1. I started a test game and the first thing I realized is that it is not possible to castle by moving the king into the tower square, which is good if you are playing bullet, as I usually do when playing online or in some other gui.
    2. It would be gratifying if reading in .si4 (scid) format were implemented, I know that banksiagui does not pretend to be a database manager, but scid is an open and documented format, in addition to being very widespread in the FOSS community, so to analyze games, even if it is “read only” would be very good.
    Thank you for reading.

    1. Thanks a lot for the feedback. 1) I will add that feature for the next release. Currently, users can move like that for chess960 only. 2) That is the issue of supporting a popular or not format. I am not sure about how popular Scid databases are since I am rare to see them. Thus I add your idea/request into my TODO list and will take some study first. Thanks again

  9. why are these 2 reports different?

    it seems that TOURNAMENT RESULT (above) makes more sense, because there is a difference of 1 depth at different NPS

    while on the report from RESULT and STATS (below), no difference in Depth for different NPS

    1. I guess some computing info may missing to write down to the PGN file thus the stats function collect and count a bit different between them. If you still have files of that tournament (banksiaplaying.json and the PGN file), please send them to me for checking. Thanks a lot

    1. They are JSON files (they all have extension .json). Since they all are text files, you may use any text editor to open and see as well as edit their contains. banksiamain.json contains all info about the general game configuration (not tournaments) such as timers, Syzygy path, book paths, adjudications… banksiadllist.json contains all information about downloading such as store folders, which ones are downloaded… banksiatour.json contains all info about tournaments such as selected engines, timers… They all are just information BSG needs to store for the next running and for the convenience of users – they don’t have to re-enter what they need. If those JSON files are missing or there is something wrong, BSG will ignore/discard and try to recreate them.

      1. So the json files that related to tournaments are only banksia engines.json, banksia playing.json and banksiatour.json ?

    1. Thanks a lot for the report. Bugs/crashing are always hard to find. I have been running many tests just to find them. If you can reproduce, please let me know. Thanks

      1. On high spec computers, Banksia GUI (latest ver) is running normally, but on computers with weaker hardware, thing like this can happen

        on my new computer, this does not happen, but on my old computer (Ivy Bridge) with only 2 GB of RAM, this happens

        but version 0.31, 0.32 and 0.33 runs very smoothly even on my old computer

        I started seeing this problem in versions 0.34, 0.35, and 0.36, 0.36b

        1. Thanks for the report! BSG has been found and fixed a few bugs thus I hope BSG could be back to “normal” in your weaker computer

          1. BSG suddenly stopped when the tournament was running, it is no longer happening in version 0.39. Thanks for your hard work.

    1. Cutechess stores only 3 computing info items, including score, depth, time such as { +0.49/15 0.37s }. BSG supports more popular 4-items-format: score, depth, time, node such as {-0.92/14 1.0 1816157}. That is why BSG ignored all computer info from Cutechess since it thought the data was wrong.
      I have been considering to support Cutechess 3-items-format or not. Node-info is one of very important ones anyway

      1. I think BSG should support Cutechess format, because this GUI is used widely

        besides, currently, only BSG supports this popular 4 item format, so if you use this standard, then none of the datas from other GUIs can be read by BSG, including Arena, Fritz and so on, because all GUIs only support the popular 3 items format

        1. Agreed! BSG will support 3-item-info and extract game stats as much as possible. Just ignore some node-stats such as speed, nodes/m…

    1. Look like the index column was scrolled too much to the left side and be hidden. You may need to scroll it manually back a bit. Not sure why that happens, I can’t reproduce on my computer

    1. Could you please send me the file banksiaplaying.json to me (via email), I need to reproduce the issue? Thanks a lot!

    1. Thanks for the report. That task is still on my TODO list. It is not straightforward for a quick fix. I will work on that later

    1. It is just a tool to run command lines – no more no less. Thus all depend on engines if they support what you need via command lines.

    1. Thanks for the report. Can you give me some more info:
      – Is it continuous tournaments, say, you run games from 1 to 41 without stopping, resuming?
      – At the crash point (game 41), which engines typically involve?

      If you could, please send me the file banksiaplaying.json (in configuration folder) which had that crash for further examination.
      Thanks a lot again

      1. -yes, it was a continuous tournaments
        -sf11 & stockfish_20080822_x64_modern

        I stopped the tournament in game 40. Then, about 10-15 minutes later, I continued the tournament, and in game 41 or 42 BSG stopped working. Because of this I closed BSG, then opened it again and continued the tournament and it ran well. Then a few moments later, BSG stopped again.

        I will run another tournament, and if it still happens, I will send you the file you requested.

    1. The score percent counts and calculates from scores of all players, not only one, thus we can understand/compare how good a player is by looking at how much percent he got.

      In that tournament, there are totally 5 wins and 30 draws, total score is 5 x 1 + 30 x 0.5 = 20. SF-Dark Horse got 1 win 4 draws, score = 1 x 1 + 4 x 0.5 = 3, so the percent of its score over the total score = 3 x 100 / 20 = 15%

      1. for example, SF-Dark Horse 0.1
        total games = 5
        wins = 5
        losses = 0
        draws = 0
        total score = 5
        in % = (5/20)*100% = 25% …never lose and only get a score of 25% ??

        I think, there should be another column that contains statistics about performance of each engine based only on the number of games they played.

        This 15% indicates relative performance to other engines in that tournament, not the actual performance of that engine.

        While this 60%, is the actual performance of that engine.

        So, there must be 2 different columns that show statistics based on the relative performance and the actual performance of those engines.

    1. BSG has supported partly that by understanding and parsing for information. However, that standard (probably by TCEC) is not as popular as the current one BSG supported (to write computing information as sequence numbers of score/depth time nodes)

        1. The problem is that it is a kind of (non-official) standard. If I add anything, other chess programs may get trouble to process that PGN file 🙂

          1. As an option. So there is an option (in the Tournament section), to add or not NPS into PGN

          2. Thanks, I may add later and/or consider to support fully TCEC format for engines info

    1. With the multi concurrency, the game in PGN file can’t be in the right order since BSB writes down immediately any game when it is just completed. However, the games may have different lengths/time periods, thus they may be completed not in order. That may make the next games be played (and then completed) not in order too and make the order be worse.

      To make those games be in the right order we need to post-process (after the tournament). However, that adds more complications (because BSG can start/stop/resume tournaments, quit/restart… at any time and the PGN file could be edited/modified by human/external programs at the same time) when the benefit is so little.

      1. “the game in PGN file can’t be in the right order since BSB writes down immediately any game when it is just completed” => but cutechess-cli can do that

        “when the benefit is so little” => it depends on what?

        If we want to test some Openings, then this becomes very important. Because we want to know how well an engine plays a certain Opening from the white and black side. If the order is not sequential, it’s certainly troublesome to find a second game from the same opening.

        1. I don’t know how cutechess-cli implements that. Perhaps it keeps some games in the memory and writes them down when they are in correct order. BSG can do the same. However, I don’t like that way since if the program crashes or be quitted/killed, some games may be lost. I consider saving games as a kind of logging: save immediately if have.

          When BSG creating a new tournament, all openings are probed/selected and embedded already into the games (you may look into the file banksiaplaying.json) before any engine starts. Thus they (openings) don’t be affected by the orders of starting nor completing games.

          1. If you use BSG to view PGN games, you can sort them easily!

            BTW, I am considering to let BSG export games at any time from the Tournament list, users will have PGN games in the tournament order, store it in any folder they want. That may make the PGN game log becomes less important

          2. “PGN game log” => you mean “results.txt” file ? I think this file is rarely opened by anyone

            but I think you have to provide this tool, then it’s up to the users whether to use it or not.

            I saw this tool is also in SCID, but there is only an option to sort games by ECO, not based on the tournament order

  10. Please make a step-by-step guide for running a tournament from CMD.
    Or at least provide a Script that can be directly pasted to CMD like this…

    cutechess-cli -recover -repeat -rounds 100 -games 2 -concurrency 7 -ratinginterval 1 -tournament gauntlet -pgnout D:\Chess\test3.pgn ^
    -resign movecount=5 score=500 ^
    -draw movenumber=50 movecount=10 score=9 ^
    -openings file=D:\Chess\Openings\SuperGM_2mvs_100.pgn format=pgn order=sequential plies=4 ^
    -tb D:\Chess\Tablebase\Syzygy\3-4-5piecesSyzygy\3-4-5 ^
    -tbpieces 5 ^
    -engine name=”Stockfish 11 64 POPCNT” cmd=D:\Chess\Engines\Stockfish\stockfish_20011801_x64_modern.exe option.Hash=32 tc=60+1 ^
    -engine name=”SF NNUE 190720 sv20200801-1515″ cmd=D:\Chess\Engines\StockfishNNUE\stockfish.sse41.halfkp_256x2-32-32.profile-nnue.2020-07-19.exe option.EvalFile=D:\Chess\Engines\StockfishNNUE\20200801-1515.bin option.Hash=16 tc=60+1 ^
    -each proto=uci option.Threads=1 timemargin=90

    This script is used to run Tournament at Cutechess-CLI.

    1. Sorry, there is a bug preventing BSG to run as a terminal/cmd program even it is designed to run that!

      For a temporary solution, you may download and run Banksia (not Banksia GUI) at It has a short guide which you may see by running banksia.exe -h

      Banksia is different from cutechess-cli since at the moment it requires some JSON files to run and can’t run with “pure” command line (without JSON files) only.
      I have planned to review and improve both banksia and BanksiaGUI about running in the command line but that will take a significant time/work.

        1. Yes, it is designed to be easier and can reuse/share JSON files between BSG and Banksia (no GUI). The main disadvantage (compared with cutechess-cli) is missing the way to run from pure command lines (without JSON files) only which I have considered to add later.

  11. I’ve tried various hardware, but it still shows that Engine Speed ​​on BSG is around 15-20% slower than in other GUIs like Arena.

    As I recall, this issue has occurred since Ver 0.11

    1. Thanks a lot for the report!

      Typically chess GUIs don’t affect engine speeds since they (GUIs) are just waiting for engines calculating then collect their stats. Engines are independent to take memory, threads from the system, calculating under the control (in terms of computing power) of the system, not BSG. Perhaps, the ways chess GUIs collect and display stats may be different.

      BTW, it is a good time to exam BSG more carefully and compares it with other GUIs. Can you give me the names of some engines, the OS, and the time controls you have used those tests? I will verify and fix BSG if something wrong. Thanks a lot again.

      1. SF11, SFnnue. Komodo 10, Houdini 1.5a
        win10 64-bit, win8.1 64-bit
        tc: 1m+1s, 3m+2s, 3s/move

        I suggest you to download Arena 3.5.1 (portable or installable), then do analysis (using 1 thread, then 4 threads, and 8 threads), and look at the Speed ​​reported by both GUI Arena 3.5.1 and BSG, you will see a pretty significant difference in Speed (about 15-20% slower).

        1. I have done a quick experiment on my computer WinPro 10 with Arena 3.5.1 and BanksiaGUI 0.34, using SF 11 and Komodo 11. The good news is that: speeds of an engine running under any chess GUI are the same and quite similar to that engine running directly in the console (command prompt) too. It means all those chess GUIs don’t affect/interfere speeds of chess engines.

          I have also noted that one factor we may miss when testing: those engines should be set carefully to the same hash size since the default hash sizes may vary from chess GUIs.

          I am going to do a few more tests with more engines and chess GUIs and writing a blog post about that.

          1. Can you help to do similar tests with 4-8 threads? My computer has only 4 cores thus I can’t make such that test at the moment. Engines on different chess GUIs should be run with the same thread number, same hash sizes. You may verify by looking into their logs to make sure they are set correctly. To reduce none-determined factors, you may turn off ponder, search to a fixed depth, test until their move replies become different. You may run that chess engine directly on a command prompt (without using a chess GUI) to verify too. Thanks.

          2. You can’t run a tournament via CMD since it is too hard to control manually: at least two engines involving, setups their options, start a new game for both, tell one to start computing, get its result then copy the result to the 2nd one and tell it to start computing…
            For testing speed, you just give an engine a given position, setup options and tell it to start computing. For example, after starting Stockfish from CMD, I type as following:

            setoption name Threads value 4
            setoption name Hash value 64
            setoption name Ponder value false
            postion startpos moves g1f3
            go depth 30

            BTW, I have managed to do one more quick test in which some engines run with 4 threads, 64 MB hash and computing for some different positions to fixed depth 30. The good news is that the speeds of engines are quite the same, regardless chess GUIs/none chess GUIs. A few more details were added to the blog post:

          3. I have noticed the NPS report in logresults, it turns out, the engine speed is the same as that reported in Arena.

            With this I conclude, the GUI reports different values ​​from the actual values ​​behind the scene.

          4. Yes, you are right! BSG usually displays speeds on the screen in short forms, say 12mN/s, without fraction when Arena may display in longer forms with fraction, say 12.321 mNPS. It is not a big difference nor big deal. The main factors that affect speeds are engines’ options – if they are different, speeds may become so different.
            BTW, BSG reports speeds in Tournament reports in the full format (N/s).

          5. that’s not what i mean, i mean like this…
            for example, Speed behind the screen is 1000 knps
            but somehow, BSG reports it is only 900 knps on the screen

    1. Thanks for the feedback. BSG sometimes has issues with resizing ComboBoxes. It depends on libraries and systems which may not work as well as we want. I have taken notes for this issue.

Leave a Reply

Your email address will not be published.