Vibe ChessVibe ChessApp

Organiser's guide to running a tournament in the Vibe Chess bot

It used to be that running a Swiss tournament meant drawing a table on paper, pairing players by hand, keeping track of who had already played whom and working out the tie-breaks on a calculator. The Vibe Chess Telegram bot does all of that for you: it pairs the rounds, sends the pairings to the players, collects the results and keeps the standings with Buchholz. Below is the full guide, from creating the tournament to the final table.

What the bot takes care of

  • Swiss pairing: no repeat pairings, alternating colours, and an automatic BYE when the number of players is odd.
  • Sending out the pairings: every player gets their opponent and board number privately - nothing has to be announced out loud.
  • Collecting results: players mark the outcome with a button, the bot confirms it and sorts out the disputed cases.
  • The standings: points and Buchholz are recalculated automatically after every round.
  • Everyone can play: the organiser adds anyone without Telegram by name, and they play on equal terms with the rest.

Creating a tournament: the /create_tournament command

Creating one is a six-step conversation. The bot asks the questions one at a time and you answer with a message or a button. A started tournament is saved as a draft: you can break off and come back later.

1

Tournament name

The first step after the command /create_tournament is the name. Make it clear to the players: “Workshop 3 Tournament”, “Friday Blitz at the Bar”, “Class 8A Championship”. It goes into the list of open events in your city, which is where players will find it.

2

Venue

Next comes the name of the place (a room, a cafe, the works hall) and the address. That is simply a pointer for the players so they know where to go. The bot already knows the city from your profile and there is no need to change it at this step.

3

Date and start time

Enter the date and time in the format 25.05.2026 18:00. From that time the players know when to gather, and you know when to start round one.

4

The time control

The time control is the pace of the game: minutes for the game plus an increment for every move. The notation 5+3 means 5 minutes and 3 seconds a move. The bot offers ready-made options as buttons: blitz for a quick evening, rapid for a weekend event. A convenient way to keep time is our chess clock on your phone: chess timer with time controls opens with the same button, and the 5+3 you chose is already set in it.

5

Number of rounds

The number of rounds is chosen with a button. In the Swiss system everyone plays the same number of rounds, so it is worth estimating in advance from the size of the field: 8-16 players - 5 rounds, 17-32 - 6, 33-64 - 7. More on that in the breakdown of how to run a tournament.

6

Player limit, entry fee and description

The last step is the maximum number of players (so that registration closes itself), the entry fee (0 or skip means free) and a description with the rules. Any field can be skipped with a button. The fee here is an informational field: the bot does not take payments, and you collect the money however suits you. At the end the bot shows a tournament card for you to confirm.

How to run the tournament: the control commands

The tournament is created - from here five commands take it from registration to the final standings. With them you run the whole event straight from your chat with the bot.

/open_registration

Open registration

The tournament appears in the list of open events in your city. Players find it through /open_tournaments and sign up in one tap. Their names show up in your list straight away.

/close_registration

Close registration

Once everyone has arrived, you close the entry list. The field is then fixed and the bot is ready to pair round one.

/start_tournament

Start a tournament

The bot pairs round one by the Swiss system and messages every player privately: who they are playing and at which board. You do not have to draw anything up.

/next_round

The next round

Once the round's results are in, this command pairs the next round. The bot avoids repeating pairings, alternates the colours and hands out the new pairs by board.

/finish_tournament

Finish the tournament

Locks in the results: the final standings with places, points and Buchholz. You can show it to everyone.

What to do in disputed situations

The players entered different results. The bot marks the game as disputed and sends it to you. You set the correct outcome with a button - White wins, Black wins or a draw.

The opponent did not turn up. Among the result buttons there is an “opponent did not appear” option - the bot scores it by the rules and the round does not stall.

An odd number of players. One player each round gets a BYE (a skipped round) with a point. The bot picks who, and does not give the bye to the same person twice while there is anyone else.

Someone without a smartphone. Add them as a guest by name - they play in the general pairing and you enter their results. That way the tournament is open to absolutely everyone.

Create your first tournament

Open the bot, set your city and send /create_tournament - a minute later the tournament is ready for registration. Free, with no install and no tables on paper.

Frequently asked questions

What do I need to start - some kind of account, or an install?

Nothing but Telegram. Open the bot at t.me/vibechessbot, set your city in your profile and send the /create_tournament command. There is nothing to install, no site to register on and nothing to pay - the bot is free.

How do players find out who they are playing?

The bot messages each of them privately: the opponent's name and the board number. The /my_pairing command shows the current pairing at any moment. You do not have to announce pairings out loud or pin up a printout - everyone sees their own on their phone.

Who enters the results of the games?

The players themselves, with a button (win, loss, draw, opponent did not appear). If only one of the pair marks the result, the other gets a confirmation request; if they say nothing, the bot accepts the result automatically. If the two entered different results, the dispute comes to you and you set the result by hand with a button.

What do I do if there is an odd number of players?

Nothing - the bot gives one player a BYE (a skipped round) and awards a point for it, as is customary in the Swiss system. In the next round somebody else gets the bye. There is nothing for you to keep track of.

And if somebody has no Telegram - can they not be entered?

They can. The organiser adds such a player by name, and they take a full part in the pairing like everyone else, with you entering their results. That is handy at school events and anywhere not everybody has a smartphone.

How is the final place decided when players are on equal points?

By Buchholz - the sum of all the opponents' scores: whoever played the stronger opposition finishes higher. The bot calculates it automatically after every round. How that tie-break works is covered in a separate article on Buchholz.

Missing a feature? Write in

The bot is constantly being developed around real tournaments. If you need a feature that is not there yet, the /support command inside the bot puts you in touch with the developers. Many of its features exist because organisers asked for them, and useful ideas get built quickly. Tell us how you run your events and what is missing - there is a good chance it will appear in the bot.

More than a bot: the app, FIDE rules and a TRF report

  • The app. Besides the bot there is an app - inside Telegram and simply at playvibechess.com/app: what is on in your city, the player list, a live table, the current round, your profile and game history - everything that is awkward to read as chat messages.
  • Pairings by FIDE rules. Pairings are computed by bbpPairings, an open-source engine implementing the Dutch system: score groups, floats on an odd field, colour alternation, no rematches, and no player gets a bye twice.
  • A TRF report. A finished tournament exports as a single file in the FIDE data exchange format - the one arbiter software and federations accept. Your profile stores the FIDE ID, national federation code, title, sex and date of birth for it.
  • Free. All of the above, with no subscriptions, paid plans or limits on the number of tournaments and players.

Full overview

The same thing, but on screens: the organiser app

The whole sequence from this guide can be done not with commands but in the app: there the tournament is created with a form, and the entry list and standings are visible in full rather than as messages in a feed. Creating a tournament is free, with no limit on the number of events or players.

  • The Swiss system. You set the number of rounds, and bbpPairings works out the pairs by the FIDE rules.
  • The round robin. Everyone plays everyone, and the number of rounds is worked out automatically at the start, once the field is known.
  • A free meetup. An event with no rounds and no pairing: the players decide for themselves who to sit down with.

The organiser's workflow is the same: create the event (date, place, time control), open the entry list, start the tournament, enter the results, finish it and, if you need to, export a TRF report.

What to read next

A general guide to preparation is how to organise a chess tournament. How the final tie-break is calculated is the Buchholz score. How the bot differs from desktop programs is in the review of tournament software. Equipment for the games is a chess clock on your phone.