explaingit

aaklon/akinator

Analysis updated 2026-05-18

9GoAudience · developerComplexity · 3/5LicenseSetup · moderate

TLDR

An open-source 20-questions guessing engine written in Go that uses probability and information theory to identify what you're thinking of, similar to Akinator.

Mindmap

mindmap
  root((akinator engine))
    How it works
      Probabilistic scoring
      Shannon entropy questions
      UCB exploration
      Self-correction
    Features
      Dataset agnostic
      Handles uncertain answers
      Learns over time
    Tech
      Go backend
      HTTP server
      JSON dataset
    Use cases
      Anime characters
      Any custom dataset
      Guessing game backend
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a 20-questions guessing game for any category by swapping in your own dataset of characters or items.

USE CASE 2

Use the engine as a backend service for a web-based guessing game by calling its HTTP endpoints from a frontend.

USE CASE 3

Study how a probabilistic 20-questions algorithm works by reading the architecture documentation and source code.

What is it built with?

Go

How does it compare?

aaklon/akinatorcandratama/tamagoshjimzhang168872/vpnkit
Stars91111
LanguageGoGoGo
Setup difficultymoderateeasymoderate
Complexity3/52/53/5
Audiencedeveloperops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires Go 1.21+ and a correctly formatted dataset file, AGPL license requires source disclosure if you distribute derived software.

AGPL 3.0: free to use and modify, but if you distribute software built with this you must release your source code under the same license.

In plain English

This is the engine behind a 20-questions guessing game, similar to Akinator. You think of a character, answer yes/no/maybe questions, and the engine tries to identify who you are thinking of. The creators built it originally to power an Anime Akinator game and have released the engine as an open-source project so others can use it with any dataset they choose. The engine is written in Go and runs as a web server. The key design choice is that it uses probability rather than a strict yes/no decision tree. When you answer a question, the engine does not eliminate characters absolutely, instead, it adjusts each character's probability score up or down. A contradictory answer or an "I don't know" response applies a small penalty rather than removing a candidate entirely. This means the game can recover from mistakes and handle uncertain answers gracefully. To decide which question to ask next, the engine calculates which question would most efficiently split the remaining candidates based on their current probability distribution. It also tracks which questions it has asked less often and gives those a small bonus to avoid repeating the same sequence every game. After each completed game, the engine updates its internal knowledge base based on who the correct answer was, so it gradually improves its question strategy over time. The engine is dataset-agnostic, meaning you can replace the anime character dataset with any other set of entities, such as movies, historical figures, or programming languages, and it will work the same way. The README provides installation instructions and documents the structure of the dataset format. The license is AGPL 3.0, which is a copyleft license. If you build something with this engine and distribute it, you are required to release your source code under the same terms. For personal or internal use, this restriction does not apply.

Copy-paste prompts

Prompt 1
I want to use the Aaklon/akinator engine with a dataset of historical figures. What format does the dataset need to be in and how do I swap out the anime dataset?
Prompt 2
Walk me through how the akinator engine picks which question to ask next. Explain the Shannon entropy and information gain logic in plain terms.
Prompt 3
I'm running the akinator engine locally. How do I connect a simple HTML frontend to its HTTP endpoints to build a playable game?

Frequently asked questions

What is akinator?

An open-source 20-questions guessing engine written in Go that uses probability and information theory to identify what you're thinking of, similar to Akinator.

What language is akinator written in?

Mainly Go. The stack also includes Go.

What license does akinator use?

AGPL 3.0: free to use and modify, but if you distribute software built with this you must release your source code under the same license.

How hard is akinator to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is akinator for?

Mainly developer.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub aaklon on gitmyhub

Verify against the repo before relying on details.