View on GitHub


Documenting everything about OCaml


User Interface


  • lablgtk: GTK2/3 bindings for OCaml with various higher-level facilities to define GUIs.
  • lablqml: QML Qt5 bindings for OCaml.
  • labltk: Interface to the Tcl/Tk GUI framework.
  • bogue: A new, SDL-based GUI. Ideal for integration in games.
  • Revery WIP: A brand-new (and exciting) OCaml/ReasonML-based GUI. Revery stands as a native, cross-platform alternative to Electron.
  • Brisk WIP: Rather than taking Revery‚Äôs approach of having a uniform interface, Brisk aims to use native platform APIs do draw OS-based GUI elements. demo video
  • Stk: A GTK inspired SDL-based GUI toolkit
  • owme: A window manager emulator for faking graphical desktop applications


Any of GTK, QML and Tcl/Tk can produce solid cross-platform UIs. If you want to be more adventurous, you might want to try bogue.

TUI (Terminals)

  • Lambda-Term: Lambda-Term is a cross-platform library for manipulating the terminal. It provides an abstraction for keys, mouse events, colors, as well as a set of widgets to write curses-like applications.
  • Lwd: Reactive interfaces in the terminal.
  • Notty: Notty is a declarative terminal library for OCaml, structured around a notion of composable images.
  • Nottui: Higher level DSL on top of Notty. Used together with lwd.
  • Progress: Beautiful user-definable progress bars. Highly recommended.