✦ spec-driven development

the ultimate chess app

Extract hand-written chess scoresheets into .pgn files, analyse them with a local engine and sync seamlessly with your Lichess studies.

View on GitHub

Features



✍️

Scoresheet import

Import scoresheets from screenshots or as files and extract hand-written moves into a valid .pgn file instantly.

  • Hand-written OCR via cloud AI
  • Import existing .pgn files
  • Scoresheet validation to ensure correct transcription
  • Share across chess apps
⚙️

Engine analysis

Connect any locally installed engine that exposes the OEX protocol and analyse your games with the parameters you choose.

  • Auto-detects OEX-compatible engines
  • Configurable depth & multi-PV
  • Board powered by Flutter lichess libs
♟️

Lichess integration

Sign in with your Lichess account to browse and analyse all your studies inside annoto's clean, distraction-free interface.

  • Full study synchronisation
  • Beautiful & minimal board UI
  • Browsable study chapters
move quality screenshot
move quality screenshot

Tech stack

annoto is an experiment in spec-driven development to determine whether current state-of-the-art of assisted development can produce applications with real usage relevance. The development of this codebase has been almost entirely generated by coding agents, however, with continuous review and steering by the human.

This project makes use of Supabase as backend-as-a-service to leverage authentication workflows for cloud models: in order to access the hand-written to .pgn functionality users must be authenticated within the project. Un-authenticated users may still use the app with all its other functionalities (lichess integration, engine analysis).