Vibe Chess used to be only a bot. Now the service has a full app: it opens right inside Telegram and shows what is awkward to read as messages - the city event listing, the field of a tournament, the live table, the state of the current round, a player's profile and their game history.
The bot has not gone anywhere and stays where it is stronger: your opponent and table number arrive privately, and the result is recorded with a button in the same message. One complements the other, and there is no separate registration and no separate password - the login is the same Telegram account.
A tournament is created through a six-step dialogue with the command /create_tournament: the name, the venue, the date and time, the time control, the number of rounds and the player limit. After that the tournament is run with commands: /open_registration and /close_registration to open entries, /start_tournament to start, /next_round between rounds and /finish_tournament at the end. A tournament you have started is saved as a draft - you can break off and come back. The full walkthrough is in the organiser's guide.
The core of the service is the pairing. The pairs for each round are calculated by bbpPairings - an open engine implementing the Dutch system described in the FIDE rules for Swiss tournaments. The same engine is used as the reference when pairings are checked, and it runs locally on our server: the tournament data goes nowhere.
In practice that means the pairs come out not “looking about right” but exactly as arbiting software would produce them: splitting into score groups, floating players between groups when the field is odd, alternating colours and forbidding a repeat meeting. With an odd number of players the engine assigns the bye (a missed round with a point) itself and does not give it to the same person twice while other candidates remain. How many rounds to set for your size is described in the article how many rounds in a Swiss.
A finished tournament is exported as a single file in TRF format - the official FIDE data exchange format, also known as the Krause format, which arbiting software works with and federations accept. Everything goes into the file: the tournament header with the dates, the city, the time control and the chief arbiter, and for every player the results of every round with their opponents and colours.
There are two ways to export it: a button in the app on the card of a finished tournament (the file arrives in the chat or downloads to your device), and the organiser also receives it automatically along with the final standings. So that the report carries the players' details, the profile now has a section for the FIDE and federation standards: FIDE ID, federation code, chess title, sex, date of birth and federation. Filling them in is only compulsory for people who play in rated tournaments.
Once a round starts the bot sends every player their opponent and table number privately - /my_pairing will show your pairing at any moment. The players record the results themselves with buttons (win, loss, draw, no-show). If only one of them records it, the opponent gets a confirmation request; if they say nothing the bot accepts it automatically, and if the two differ the dispute goes to the organiser with buttons for entering the result by hand.
The table (/standings) with points and the Buchholz score is recalculated after every round. A player sees their place in real time. How the tie-break works is in the article on the Buchholz score.
Two practical advantages. The first is guest mode: the organiser adds a player without Telegram by name, they play on equal terms with everyone else, and the organiser enters their results. That makes the bot usable in schools, camps and workplaces - see a guest without Telegram. The second is free a chess clock on your phone with a Fischer increment and a move counter, for timing the games. They can be opened separately from the bot too - a chess timer with a move counter works from a direct link, with no registration and nothing to install.
The bot's interface is translated into 11 languages: Russian, English, Spanish, Portuguese, German, French, Italian, Turkish, Indonesian, Hindi and Persian. Every player sees the bot in their own language, chosen in their profile.
Thanks to that a tournament can be run not only in Russia but in mixed international groups and in other countries: players from different countries each use the bot in their native language while the organiser runs one shared tournament. For an international club, a student group with foreign members or a tournament abroad, that removes the language barrier.
Honestly about the limits, so that nobody expects the wrong thing. The TRF export gives you a file, not a rating: for a tournament to count towards an official national or FIDE rating it has to be registered with the federation in advance, run with a licensed arbiter and submitted with a package of documents - the report is only one of them. The app itself has not been through endorsement by the FIDE pairing programs commission: the rules of the Dutch system are followed in it, but it holds no certificate.
The entry fee in the settings is an informational field: the service takes no payments and the organiser collects the money themselves. The round robin is supported for small groups (see a tournament for 8), but the main mode is the Swiss.
And the main thing: the service is developed continuously around real tournaments. If a feature you need is not there yet, you can suggest it with the command /support - there is more in the article the bot is developed around you.
Nothing. All of it is free: the app, the bot, pairing by FIDE rules, the TRF report export, the chess clock and the live table. No subscription, no paid tiers and no limit on the number of tournaments or players. The entry fee in the tournament settings is an informational field for the players: the service takes no payments, and the organiser collects the money (for a prize, say) however suits them.
They are two parts of one service, with a shared login through Telegram. The app shows what is awkward to read as messages: the city event listing, the field of a tournament, the live table, the state of the round, your profile and your game history. The bot handles the immediate things: it sends your pairing and table number privately and takes your result at the touch of a button. You can use either or both.
By the FIDE rules for Swiss tournaments: the pairs for each round are calculated by the open bbpPairings engine, which implements the Dutch system. It splits players into score groups, floats players between groups when the field is odd, alternates colours and never pairs people who have already met. The engine runs locally on our server, and the tournament data goes nowhere.
Yes. A finished tournament is exported as a file in TRF format - the official FIDE data exchange format that arbiting software works with. The button is in the app on the card of a finished tournament, and the organiser also receives the file automatically along with the final standings. For the report to be complete, players should fill in the FIDE and federation standards section of their profile: FIDE ID, federation code, title, sex and date of birth.
No. Anyone who wants to signs up and records their own results, and the organiser adds the rest as guests by name. One smartphone with the bot - the organiser's - is enough.
From a small group to a mass tournament. The number of rounds grows slowly: 16 people means 5 rounds, 32 means 6, a hundred means 8-9. The bot keeps the pairing correct at any size.
Not the rating itself, but it prepares the document for it. The export gives a report in TRF format, which arbiting software and federations accept. For a tournament to count towards an official national or FIDE rating it has to be registered with the federation in advance and run with a licensed arbiter - the report is only one document in the package. The app has no endorsement from the FIDE pairing programs commission: the rules of the Dutch system are followed, but no certificate was issued.
The interface is translated into 11 languages: Russian, English, Spanish, Portuguese, German, French, Italian, Turkish, Indonesian, Hindi and Persian. Every player chooses their own language in their profile, so a tournament can be run in mixed international groups and in other countries.
Open @vibechessbot on Telegram, give your city and create a trial tournament with the command /create_tournament; the app opens from the bot's menu. The best way to find your feet is with a small group of 6-8 people - the whole mechanism makes sense in under an hour.
No arbiter skills required. The app takes over the part that usually stops people from running tournaments at all: who plays whom in each round and who finishes first.
The bot is constantly improved based on real tournaments. If you need a feature that isn't there yet, message the developers right inside the bot with the /support command. Many features appeared exactly because organizers asked for them, and useful ideas get added quickly.
Where to start is in the organiser's guide. How the bot is developing is in the bot is developed around you. The big FAQ is in questions about running tournaments. General preparation is in how to run a tournament.
At the board since childhood: hazy about his rating, precise about every rook he has blundered. Counts an evening as a good one if the opponent stayed to talk afterwards instead of rushing off to check with an engine. Message →