Releases: rysb-dev/agari
v0.8.0
Install agari 0.8.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.8.0/agari-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/ryblogs/agari/releases/download/v0.8.0/agari-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install ryblogs/tap/agariDownload agari 0.8.0
| File | Platform | Checksum |
|---|---|---|
| agari-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| agari-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| agari-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| agari-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| agari-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.7.0
🎉 New Features
- Interactive Web Frontend - A complete browser-based Riichi Mahjong calculator at https://ryblogs.github.io/agari/
- WebAssembly Bindings - Use Agari's scoring engine directly in JavaScript/TypeScript applications
- Real-time Shanten Display - See shanten updates as you build your hand
- Visual Tile Selection - Click-to-select tile palette with SVG-rendered tiles
- Complete Scoring Breakdown - Full han, fu, yaku, and payment details
🏗️ Architecture Changes
- Migrated to Cargo workspace with
agari-coreandagari-wasmcrates - Added GitHub Actions workflow for automatic deployment to GitHub Pages
🛠️ Tech Stack
- Svelte 5 with runes
- Vite + TypeScript
- Tailwind CSS 4
- wasm-bindgen for Rust-JS interop
📱 Responsive Design
The web app is fully responsive and works on both desktop and mobile devices.
v0.6.2
Install agari 0.6.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.6.2/agari-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/ryblogs/agari/releases/download/v0.6.2/agari-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install ryblogs/tap/agariDownload agari 0.6.2
| File | Platform | Checksum |
|---|---|---|
| agari-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| agari-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| agari-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| agari-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| agari-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.6.1
Install agari 0.6.1
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.6.1/agari-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/ryblogs/agari/releases/download/v0.6.1/agari-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install ryblogs/tap/agariDownload agari 0.6.1
| File | Platform | Checksum |
|---|---|---|
| agari-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| agari-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| agari-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| agari-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| agari-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.6.0
Install agari 0.6.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.6.0/agari-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/ryblogs/agari/releases/download/v0.6.0/agari-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install ryblogs/tap/agariDownload agari 0.6.0
| File | Platform | Checksum |
|---|---|---|
| agari-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| agari-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| agari-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| agari-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| agari-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.5.0
Install agari 0.5.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ryblogs/agari/releases/download/v0.5.0/agari-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/ryblogs/agari/releases/download/v0.5.0/agari-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install ryblogs/tap/agariDownload agari 0.5.0
| File | Platform | Checksum |
|---|---|---|
| agari-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| agari-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| agari-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| agari-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| agari-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
v0.4.1
Release Notes
What's Changed
Features
-
CLI: Renamed Kokushi 13-wait display to Kokushi Juusanmen (
5848220)Updated the yaku display name from "Kokushi Musou 13-wait" to "Kokushi Juusanmen (Kokushi Musou 13-wait)" for consistency with Japanese naming conventions used by other yakuman.
Full Changelog: v0.4.0...v0.4.1
v0.4.0
Release Notes
New Features
Colorized Terminal Output
- Added colorful terminal output to improve readability
- Header/footer borders display in cyan
- Section headers highlighted in yellow
- Context-aware coloring: tsumo (green), ron (blue), closed hand (green), open hand (yellow)
- Riichi and ippatsu highlighted in cyan
- Score levels use color gradient (yellow → magenta) based on level
- Yakuman yaku displayed in green with 🌟 marker
- Payment box with green borders
- Errors in red, warnings in yellow
- New
--no-colorflag to disable colors - Automatically respects
NO_COLORenvironment variable
Input Validation Warnings
- Warning when
--riichiis specified with open melds (e.g., using(...)notation instead of[...]for kans) - Warning when both
--riichiand--openflags are specified together - Guides users to correct notation:
[...]for closed kans vs(...)for open kans
Bug Fixes
ASCII Mode Consistency
- Fixed
--asciiflag to properly display ASCII tiles in game context section - Dora indicators, ura dora, and winning tile now display as ASCII (e.g., "E W 6s Gr") when
--asciiis used
Full Changelog: v0.3.0...v0.4.0
v0.3.0
Agari Release Notes
Highlights
This release brings significant improvements to CLI ergonomics, scoring accuracy, and output options. Major additions include intuitive honor tile notation, automatic winning tile inference, JSON output support, and better alignment with Tenhou's scoring rules.
New Features
Ergonomic Honor Tile Notation
You can now use intuitive letter-based notation for honor tiles instead of the numeric z notation:
- Winds:
e(East),s(South),w(West),n(North) - Dragons:
wh(White),g(Green),r(Red) - Verbose names:
east,south,haku,hatsu,chun, etc.
Works everywhere—hand strings, called melds, winning tile, dora, and ura dora:
# Before
agari "123m456p789s11144z" -w 1z -d 35z
# After
agari "123m456p789seeenn" -w e -d wwhThe parser handles ambiguous sequences like wwhwwwh correctly (West, White, West, West, White).
Automatic Winning Tile Inference
When -w/--win is omitted, Agari now automatically infers the winning tile that maximizes your score. This fixes scoring mismatches where hands with Ryanpeikou weren't receiving Pinfu because the wait type was unknown.
# Agari now correctly awards Pinfu by inferring the optimal winning tile
agari "440566m334405p66s" --tsumo -r
# Result: 11 han / 20 fu / Sanbaiman (matches MahjongSoul)JSON Output
New --json flag for machine-readable output, useful for integrating Agari into other tools:
agari "123m456p789s11122z" -r --jsonIncludes hand structure, yaku list with han values, dora breakdown, fu calculation, payment details, and full game context.
Grouped Dora Notation
Specify multiple dora indicators using standard mahjong notation:
agari "..." -d 58m --ura 29pg # 5m, 8m as dora; 2p, 9p, green as ura
agari "..." -d 19mr # 1m, 9m, red dragon as doraCounted Yakuman Distinction
Hands reaching yakuman-level points (13+ han) through accumulated yaku are now labeled as "Counted Yakuman" (数え役満), distinguishing them from true yakuman patterns like Kokushi or Suuankou.
Input Validation Warnings
Helpful warnings when using riichi-dependent options without riichi:
⚠️ Warning: Ura dora (--ura) specified without riichi. Ura dora only apply when winning with riichi.
⚠️ Warning: Ippatsu (--ippatsu) specified without riichi. Ippatsu only applies when winning within one turn of riichi.
Bug Fixes
- Interpretation selection: When multiple interpretations have equal payment, prefer higher han (e.g., Ryanpeikou over Chiitoitsu)
- Suuankou scoring: All forms now scored as single yakuman to match Tenhou
- Dora display: Ura dora and akadora now shown separately in yaku output
- Kokushi display: Now shows all 14 tiles instead of just the pair
- Winning tile validation: Rejects multi-tile input like
1m2mwith helpful error - Validator: Ignores akadora markings when game has akadora disabled
Documentation
- Added comprehensive "Using as a Library" guide to README
- Added validator README with dataset source and usage instructions
- Updated CLI help text with new notation examples
Test Coverage
Added 59 new tests covering:
- Honor letter notation parsing (35 tests)
- Winning tile inference scenarios (19 tests)
- Riichi dependency validation (4 tests)
- Edge cases for interpretation preference, sanankou, and nobetan fu
Total test count: 254
Full Changelog: v0.2.0...v0.3.0
v0.2.0
- fix(yaku): treat all Suuankou as single yakuman to match Tenhou
- feat(cli): include game context in JSON output
- feat(cli): add JSON output and grouped dora notation
- feat(cli): support grouped tile notation for dora indicators
- fix(display): show ura dora and akadora separately in yaku output
- fix(validator): ignore akadora markings when aka_flag is false
Full Changelog: v0.1.0...v0.2.0