A macOS menu bar application that provides chess puzzles from the Lichess database. Solve puzzles directly from your menu bar with an interactive chess board, timer, and statistics tracking. The app downloads and caches puzzle data locally for offline use.
Vibe coded with Cursor.
- Daily chess puzzles from the Lichess puzzle database
- Interactive chess board with move validation
- Puzzle difficulty levels and statistics tracking
- Timer for puzzle solving sessions
- Customizable board colors
- Offline puzzle database with automatic updates
Download the application from the Releases page.
The application is not code signed because I'm too cheap to pay for an Apple developer account right now.
Build the project:
make buildRun the app directly:
make runBuild the app bundle for testing:
make appThis creates Chess Puzzles.app in the project root. The build script extracts the version from Package.swift, creates the app bundle structure, generates the app icon, and signs the app with ad hoc signing.
-
Update the version in
Package.swift:let version = "1.0.0" // Update to new version
-
Build the release app bundle:
make app
-
Test the app bundle to ensure it works correctly.
-
For distribution outside the App Store, you may need to:
- Sign with a Developer ID certificate (replace ad hoc signing in
build-app.sh) - Notarize the app with Apple
- Create a disk image or zip archive for distribution
- Sign with a Developer ID certificate (replace ad hoc signing in
-
Create a git tag for the release:
git tag -a v1.0.0 -m "Release version 1.0.0" git push origin v1.0.0
This software is released into the public domain under the Unlicense. The source code is under Unlicense because it was generated with Cursor.
The chess piece and board square vector graphics are from JohnPablok's improved Cburnett chess set and are licensed under CC-BY-SA 3.0.