---
title: Chess
emoji: ♟️
colorFrom: purple
colorTo: gray
sdk: gradio
sdk_version: 5.50.0
app_file: app.py
pinned: false
license: mit
short_description: Play against chess-playing reasoning LLM
---
# ♔ Chess Reasoner
Play chess against a reasoning LLM! This demo showcases **[nuriyev/chess-reasoner-grpo](https://huggingface.co/nuriyev/chess-reasoner-grpo)**, a Qwen3-4B model tuned to play chess with detailed reasoning traces.
## 🎮 How to Play
1. **You play as White** - click on pieces to move them
2. **AI plays as Black** - the model will respond with its move
3. **View AI Reasoning** - expand the "🧠 AI Reasoning" accordion to see the model's thought process
4. **AI First** - click this button if you want the AI to play White instead
## 🧠 Model Details
| Attribute | Value |
|-----------|-------|
| Base Model | [Qwen/Qwen3-4B-Instruct-2507](https://huggingface.co/Qwen/Qwen3-4B-Instruct-2507) |
| Training | SFT with LoRA (r=32) on reasoning traces |
| Dataset | [aicrowd/ChessExplained](https://huggingface.co/datasets/aicrowd/ChessExplained) |
| Output Format | `...move` |
## 📋 Output Format
The model outputs structured reasoning:
```
The opponent left their queen undefended. Taking it wins material.
d4d8
```
## ⚠️ Limitations
Model is still very bad at playing chess! I am working on creating a beast. Coming soon...
## 🔗 Links
- [Model Card](https://huggingface.co/nuriyev/chess-reasoner)
- [LoRA Adapter](https://huggingface.co/nuriyev/chess-reasoner-lora)
- [Training Dataset](https://huggingface.co/datasets/nuriyev/chess-reasoning)
- [Training Code](https://colab.research.google.com/drive/1koRx4Aa8AzA1HGwvEFYll9dWmw0hyVzo)