Claudius started out trying to be a functional library that works like a fantasy console system like TIC-80or PICO-8: A way to do some retro-style demo graphics progeramming but in OCaml rather than in LUA. In its current form it doesn't do nearly as much as those fantasy consoles, instead just concentrating on enabling you to make graphical demos, and lacks things like audio, expressive input support, sprite editors and so forth. But if your goal is to enter something like Tiny Code Christmas or Genuary, then Claudius is designed for that use case.
Claudius is a library for OCaml to do retro-style graphics, and so you need to create a new project that uses Cladius. But because Claudius isn't currently in Opam, you'll need to add it into your project using a vendor directory:
$ dune init proj myprogram
$ cd myprogram
$ mkdir vendor
$ cd vendor
$ echo "(vendored_dirs *)" > dune
$ git clone https://github.com/claidiusFX/claudius.git
$ cd ..
There are odoc documentation for most of Claudius. You can build that documentation with:
$ dune build @doc
$ open _build/default/_doc/_html/index.html
Or you can use whatever browser directly to open that index file.
Claudius has been tested under macOS, Linux, and Windows via WSL, and requires that you have SDL 2 installed.
It requires OCaml 5 or newer (see here for installation instructions), and relies on tsdl for talking to SDL, and ounit2 for unit tests.