Crates.io | raikan |
lib.rs | raikan |
version | 0.2.1 |
created_at | 2025-09-14 14:52:37.508547+00 |
updated_at | 2025-09-24 21:28:15.399353+00 |
description | Hanabi bot using Hyphenated rules for hanab.io |
homepage | |
repository | https://github.com/mswart/raikan |
max_upload_size | |
id | 1838876 |
size | 373,484 |
Raikan is a Hanabi game implementation (and utils) and implementation of H-Group rules. It aims to be a usable bot to use on hanab.live.
raikan-web
is a CLI tool to connect to the live game environment hanabi.live.
It can join games and be a bot to play with more players than available peoples.
You can either compile the project yourself (enable webclient
feature) or use the binaries from releases.
You need to set HANABI_USERNAME
and HANABI_PASSWORD
environment variables to define which account to use for hanab.live.
Remember that new accounts are crated on-the-fly if the username isn't taken yet.
Send the bot a DM with /join
as message to make it join your table.
Experienced beginner maybe? While limitations will come up, it allows for first successful games (sometimes even perfect ones).
Implemented features:
Core limitations:
Raikan (as a library) offers a few different functions:
A hanabi game implementation (using a Player interface for strategy implementations). The interface is tried to keep simple/state less. Each player implementation should do state tracking according to its needs.
Helper functions to do game state tracking (e.g. represent possible card options)
An H-Group rules following player ipmlementation.
Raikan was born during Corona when I played frequently Hanabi with friends (following H-Group rules). But occasionally we weren't enough people for a normal game (or too few to split into two normal sized onces). Building an Hanabi bot following the already defined rules can't be that difficult, right? Well, it is rather complex to correctly track knowledge and knowledge views correctly and encode hard-rules for hard decisions to judge different rules against each other. But I wanted to practice programming in Rust again, and started.
I don't play as often anymore and find only time for more development infrequently. But I still want to implement more features and rules and make the bot follow (almost all) lower levels.
As I wrote it primarily for me, it isn't very limited in its implemented/documented use cases. My focues for now is to improve the documentation and architecture and developend tooling in general. Afterward, the rule implementation can be improved over time.
Hanabi is Japanies for firework. Raikan is also japanies and means to support to initiate the fireworks.
I hope to accept pull requests for fixes / new improvements.