Шахматный ambient-виджет для macOS: тактические пазлы в зоне чёлки во время естественных пауз в работе. Замена doomscroll-перерывов короткими тактическими переключениями (≤90 сек).
macOS 14+ · Apple Silicon / Intel · GPL-3.0
Перерыв между задачами — это не отдых, если он уходит на Twitter и Reddit. Dynochess подменяет рефлекс открыть хайп-фид на 30-90-секундный шахматный пазл прямо в notch.
- Не партии, а пазлы. Адаптивный рейтинг (Glicko-2) подбирает посильную сложность.
- Ambient. Pill в зоне чёлки, expanded-notch на hover/click. Приложение никогда не выходит на передний план.
- Триггеры: глобальный hotkey · idle ≥3 мин · Pomodoro (25/5) · фокус на Twitter/Reddit/YouTube.
- Hint engine. Stockfish 17.1 в bundle: «I give up» → лучший ход.
- Локально. Нет сети, нет аналитики, нет аккаунтов. JSONL лог событий в
~/.dynochess/events.jsonl.
- Скачай
Dynochess-0.1.0.dmgсо страницы Releases. - Открой DMG, перетащи
Dynochess.appвApplications. - Первый запуск: правый клик по
.app→ Open (ad-hoc подпись, не notarized — Gatekeeper попросит подтверждение один раз). - Иконка появится в menu bar. Hotkey по умолчанию — ⌘⇧C.
Симптомы: «Dynochess.app is damaged», «operation not permitted», или приложение тихо ничего не делает при клике. Это macOS quarantine + отсутствие notarization.
xattr -cr /Applications/Dynochess.app
open /Applications/Dynochess.appЕсли xattr отказывает — sudo xattr -cr /Applications/Dynochess.app. После этого иконка появится в menu bar.
Альтернатива: System Settings → Privacy & Security → внизу будет кнопка «Open Anyway» после первой неудачной попытки запуска.
- Hotkey ⌘⇧C — открыть пазл прямо сейчас.
- Idle trigger — pill сам всплывает после ≥3 мин неактивности (настраивается).
- Pomodoro — стартует через menu bar → Start Pomodoro. Цикл 25/5; пазл предлагается на break.
- App context — переключение на Twitter/Reddit/YouTube → pill с пазлом (можно отключить).
В expanded-notch:
- двигай фигуру кликами (from → to);
- зелёный border — правильный ход; красный — попробуй ещё.
- Hint — лучший ход подсветкой (Stockfish, ~200ms).
- Skip — следующий пазл; Close — свернуть в pill.
Stats: menu bar → Stats — кривая рейтинга, accuracy по темам, дневная активность.
Menu bar → Settings:
- Триггеры: idle / Pomodoro / app-context — включение и пороги.
- Hotkey: перепривязать через
KeyboardShortcuts.Recorder. - Звук: on/off для success/fail.
- Темы: mate / fork / pin / endgame / ... — фильтр.
Всё локально. Никаких внешних запросов.
~/.dynochess/events.jsonl— JSONL лог решений (puzzle id, FEN, your move, correct, time, trigger source). Только локально, никуда не отправляется. Удали файл — стата обнулится.~/Library/Application Support/Dynochess/— рейтинг и состояние.- Формат открытый — можешь грепать, импортировать в Pandas, удалить руками.
brew install create-dmg # для DMG
bash scripts/build-puzzle-db.sh # ~70k Lichess пазлов (~один раз)
bash scripts/fetch-stockfish.sh # Stockfish 17.1 binary
bash scripts/build-app.sh # → Dynochess.app
bash scripts/make-dmg.sh # → Dynochess-0.1.0.dmgТребования: macOS 14+, Swift 5.10+ / Xcode 16+.
- Lichess Puzzle Database — CC0 1.0
- Stockfish 17.1 — GPL-3.0 (binary в bundle)
- DynamicNotchKit — MIT
- KeyboardShortcuts — MIT
- ChessKit — MIT
GPL-3.0 (наследуется от Stockfish, упакованного в bundle). См. LICENSE.