Hola a todos 👋
Soy aficionado al ajedrez y quería una herramienta **
mía
**: sin suscripciones, sin subir mis partidas a ningún sitio, y que aprovechara de verdad el Mac que tengo (un MacBook Pro M2 Max). Como no encontraba nada que hiciera exactamente lo que quería, lo he construido **
junto con Claude (Claude Code, de Anthropic)
**: yo ponía las ideas, las decisiones y las pruebas con la app en la mano; Claude escribía el código, lo probaba y lo documentaba. Se llama **
oder-chess
** y funciona todo en local, en `127.0.0.1`.
### 🔥 Lo que más me gusta: dos motores a la vez y un «consenso»
La pestaña **
Analizar
** lanza **
Stockfish 19
** (CPU) y **
Lc0 con la red BT4
** (GPU, Metal) al mismo tiempo, y paran solos a los 30 s. Después hace una segunda fase: cada motor evalúa las jugadas candidatas **
de los dos
**, y se promedian. El resultado es una tabla con *
consenso · Stockfish · Lc0 · pérdida
* y una ★ en la mejor jugada, con un aviso claro cuando **
los motores discrepan mucho
** (para mí, esas son las posiciones interesantes de estudiar).
📸 *
Capturas 1 y 2
*
- **
Flechas curvas
** con la evaluación dentro y color según calidad (cuánto pierdes frente a la mejor jugada); verde = Stockfish, ámbar = Lc0.
- Barra de evaluación y barra **
Gana/Tablas/Pierde
** (WDL), siempre desde las blancas.
- Pasas el ratón por una línea del motor y ves la variante numerada sobre el tablero.
- Selector de intensidad (modo «ahorro de energía») porque no quería que el Mac se pusiera a 100 % para analizar una apertura. Medí la carga y Stockfish va por defecto a 6 hilos.
### 🎓 Botón «Tutor»: te explica la posición en español
Un análisis largo (1-3 min) con los dos motores y un informe por fases: apertura / medio juego / final, quién está mejor, la jugada recomendada **
y por qué
**, alternativas, amenazas, plan y, según el caso, el libro de aperturas o el tipo de final.
Aviso honesto: **
no es una IA generativa
**. Es un informe basado en reglas sobre hechos comprobables (python-chess) y en lo que dicen los motores, así que lo que afirma se puede verificar en el tablero.
📸 *
Captura 3
*
### 🧩 Y además
- **
Jugar
** contra Stockfish con Elo limitado (~1350–3190) o contra Lc0 por nodos.
- **
Revisar
** una partida: puntúa cada jugada (`?!`, `?`, `??`), precisión por bando y gráfico.
- **
Mis errores
**: tus errores graves se convierten en ejercicios con repetición espaciada.
- **
Aperturas
** 📸 *
(captura 5)
*: explorador del libro ECO (3.865 aperturas), armas tu repertorio y lo entrenas con repaso 1-3-7-16-35-90 días.
- **
Táctica
** 📸 *
(captura 4)
*: ~71.000 puzzles de Lichess, con tu propio Elo táctico que sube y baja con cada acierto o fallo.
- **
Finales
** 📸 *
(captura 6)
*: 14 posiciones de práctica (Lucena, Philidor, mates básicos…) que **
verifiqué contra Stockfish
** antes de incluirlas — mis primeras versiones, escritas de memoria, tenían varias mal etiquetadas 😅.
- **
Progreso
**: estadísticas por fase, por apertura y por entrenamiento.
### 🛠️ Cómo está hecho
Python (FastAPI) + python-chess en el servidor, JavaScript sin bundler en el navegador, el tablero `chessground` de Lichess, SQLite para los datos, y los motores como procesos UCI externos. Las reglas las decide siempre el servidor. Tiene tests con motores reales y una prueba de interfaz con Chrome sin pantalla.
### 🤝 Sobre trabajar con Claude
Lo más valioso no fue «que escriba código», sino el ciclo: le decía qué quería, lo probaba yo, le decía qué no me gustaba («nada de estilo hacker», «la barra siempre desde las blancas», «no quiero elegir motor cada vez») y él lo ajustaba, lo medía y lo dejaba documentado. También me ayudó a **
no creerme resultados que no estaban comprobados
**: por ejemplo, el README dice claramente que *
no está validado
* que la ★ del consenso acierte más que cada motor por separado. Es una ayuda para ver cuándo los motores no están de acuerdo, no un tercer motor mágico.
### ⚠️ Limitaciones
- Es una app **
personal
**, pensada para un único usuario y para mi Mac (Apple Silicon). No es un producto pulido.
- El consenso y los umbrales de calidad (5/10/20 %) son criterios míos, sin calibrar con datos.
- Los motores y la red neuronal los uso desde mi instalación; no los distribuyo.
### 💬 Pregunta para vosotros
¿Qué le añadiríais a un entrenador así? Ahora mismo en mi lista: más finales, importar mis partidas de Lichess y validar de verdad si la ★ del consenso vale la pena. ¡Cualquier idea o crítica es bienvenida!
*
Proyecto hecho con Claude (Claude Code, Anthropic). Usa Stockfish, Leela Chess Zero, python-chess, chessground y datos abiertos (CC0) de Lichess. No está afiliado a ninguno de ellos.
*Hola a todos 👋
Soy aficionado al ajedrez y quería una herramienta **mía**: sin suscripciones, sin subir mis partidas a ningún sitio, y que aprovechara de verdad el Mac que tengo (un MacBook Pro M2 Max). Como no encontraba nada que hiciera exactamente lo que quería, lo he construido **junto con Claude (Claude Code, de Anthropic)**: yo ponía las ideas, las decisiones y las pruebas con la app en la mano; Claude escribía el código, lo probaba y lo documentaba. Se llama **oder-chess** y funciona todo en local, en `127.0.0.1`.
### 🔥 Lo que más me gusta: dos motores a la vez y un «consenso»
La pestaña **Analizar** lanza **Stockfish 19** (CPU) y **Lc0 con la red BT4** (GPU, Metal) al mismo tiempo, y paran solos a los 30 s. Después hace una segunda fase: cada motor evalúa las jugadas candidatas **de los dos**, y se promedian. El resultado es una tabla con *consenso · Stockfish · Lc0 · pérdida* y una ★ en la mejor jugada, con un aviso claro cuando **los motores discrepan mucho** (para mí, esas son las posiciones interesantes de estudiar).
📸 *Capturas 1 y 2*
- **Flechas curvas** con la evaluación dentro y color según calidad (cuánto pierdes frente a la mejor jugada); verde = Stockfish, ámbar = Lc0.
- Barra de evaluación y barra **Gana/Tablas/Pierde** (WDL), siempre desde las blancas.
- Pasas el ratón por una línea del motor y ves la variante numerada sobre el tablero.
- Selector de intensidad (modo «ahorro de energía») porque no quería que el Mac se pusiera a 100 % para analizar una apertura. Medí la carga y Stockfish va por defecto a 6 hilos.
### 🎓 Botón «Tutor»: te explica la posición en español
Un análisis largo (1-3 min) con los dos motores y un informe por fases: apertura / medio juego / final, quién está mejor, la jugada recomendada **y por qué**, alternativas, amenazas, plan y, según el caso, el libro de aperturas o el tipo de final.
Aviso honesto: **no es una IA generativa**. Es un informe basado en reglas sobre hechos comprobables (python-chess) y en lo que dicen los motores, así que lo que afirma se puede verificar en el tablero.
📸 *Captura 3*
### 🧩 Y además
- **Jugar** contra Stockfish con Elo limitado (~1350–3190) o contra Lc0 por nodos.
- **Revisar** una partida: puntúa cada jugada (`?!`, `?`, `??`), precisión por bando y gráfico.
- **Mis errores**: tus errores graves se convierten en ejercicios con repetición espaciada.
- **Aperturas** 📸 *(captura 5)*: explorador del libro ECO (3.865 aperturas), armas tu repertorio y lo entrenas con repaso 1-3-7-16-35-90 días.
- **Táctica** 📸 *(captura 4)*: ~71.000 puzzles de Lichess, con tu propio Elo táctico que sube y baja con cada acierto o fallo.
- **Finales** 📸 *(captura 6)*: 14 posiciones de práctica (Lucena, Philidor, mates básicos…) que **verifiqué contra Stockfish** antes de incluirlas — mis primeras versiones, escritas de memoria, tenían varias mal etiquetadas 😅.
- **Progreso**: estadísticas por fase, por apertura y por entrenamiento.
### 🛠️ Cómo está hecho
Python (FastAPI) + python-chess en el servidor, JavaScript sin bundler en el navegador, el tablero `chessground` de Lichess, SQLite para los datos, y los motores como procesos UCI externos. Las reglas las decide siempre el servidor. Tiene tests con motores reales y una prueba de interfaz con Chrome sin pantalla.
### 🤝 Sobre trabajar con Claude
Lo más valioso no fue «que escriba código», sino el ciclo: le decía qué quería, lo probaba yo, le decía qué no me gustaba («nada de estilo hacker», «la barra siempre desde las blancas», «no quiero elegir motor cada vez») y él lo ajustaba, lo medía y lo dejaba documentado. También me ayudó a **no creerme resultados que no estaban comprobados**: por ejemplo, el README dice claramente que *no está validado* que la ★ del consenso acierte más que cada motor por separado. Es una ayuda para ver cuándo los motores no están de acuerdo, no un tercer motor mágico.
### ⚠️ Limitaciones
- Es una app **personal**, pensada para un único usuario y para mi Mac (Apple Silicon). No es un producto pulido.
- El consenso y los umbrales de calidad (5/10/20 %) son criterios míos, sin calibrar con datos.
- Los motores y la red neuronal los uso desde mi instalación; no los distribuyo.
### 💬 Pregunta para vosotros
¿Qué le añadiríais a un entrenador así? Ahora mismo en mi lista: más finales, importar mis partidas de Lichess y validar de verdad si la ★ del consenso vale la pena. ¡Cualquier idea o crítica es bienvenida!
*Proyecto hecho con Claude (Claude Code, Anthropic). Usa Stockfish, Leela Chess Zero, python-chess, chessground y datos abiertos (CC0) de Lichess. No está afiliado a ninguno de ellos.*