Skip to content

statico/chess-puzzles-menuitem

Repository files navigation

Chess Puzzles Menu Item

GitHub Actions Workflow Status

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.

CleanShot 2025-11-30 at 20 45 36@2x

Vibe coded with Cursor.

Features

  • 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

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.

Development

Build the project:

make build

Run the app directly:

make run

Build the app bundle for testing:

make app

This 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.

Releasing

  1. Update the version in Package.swift:

    let version = "1.0.0"  // Update to new version
  2. Build the release app bundle:

    make app
  3. Test the app bundle to ensure it works correctly.

  4. 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
  5. 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

License

This software is released into the public domain under the Unlicense. The source code is under Unlicense because it was generated with Cursor.

Attribution

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.