Yeoman generator to scaffold OCaml modules.

Usage no npm install needed!

<script type="module">
  import generatorOcaml from '';


yo OCaml!

A Yeoman generator that provides a functional boilerplate to easily scaffold OCaml modules.

Build Status

Build Status

Code Climate

Table of Contents

This Project

Scaffold OCaml modules?


OCaml is a general purpose programming language with an emphasis on expressiveness and safety which supports both functional, imperative and object-oriented paradigms and features a powerful type system, user-definable algebraic data types and pattern-matching.

This project is Yeoman generator that provides a OCaml project skeleton with the following integrated features:

  • The OASIS build-system
  • The OCamlDoc automatic documentation generation
  • The OUnit testing framework
  • The Bissect code coverage framework

Getting To Know Yeoman


Yeoman is a node.js tool used to scaffold new applications. It can create common project assets like stylesheets and JavaScript files. Basically Yo provides an easy way to create all of the boilerplate code you need to get started on a project.

Feel free to learn more about it here.


First, make sure you have the main dependencies:

Then install the generator-ocaml.

npm install -g generator-ocaml


yo OCaml!

Getting Started

  1. Generate your new project:
yo ocaml

You will be asked the following about your project:

  • What's the package name?
  • What's your package all about?
  • What's the package version?
  • What's your name?
  • What's your email?
  • What's your Github username?
  • Choose your license type (Use arrow keys)

And the you should see the following structure:

|-- lib/
|   |--
|-- test/
|   |--
|-- .gitattributes
|-- .gitignore
|-- _oasis
|-- Makefile
  1. Install the OCaml dependencies:
opam init
opam install oasis ounit bissect
  1. Generate the file - which will handle any high-level operation on the project source.
oasis setup
  1. Configure the build-system:
ocaml -configure --enable-tests
  1. Build the project:

Other Options

To run the test suite, you just have to:

make tests
# Or
ocaml -tests

Generating the documentation with OCamlDoc is just the same:

make doc
# Or
ocaml -doc

These are the commands you have in

Command Description
-configure [options*] Configure the whole build process
-build [options*] Build executables and libraries
-doc [options*] Build documents
-test [options*] Run tests
-all [options*] Run configure, build, doc and test targets
-install [options*] Install libraries, data, executables and documents
-uninstall [options*] Uninstall libraries, data, executables and documents
-reinstall [options*] Uninstall and install libraries, data, executables and documents
-clean [options*] Clean files generated by a build
-distclean [options*] Clean files generated by a build and configure
-version Display version of OASIS used to generate this
-no-catch-exn Don't catch exception, useful for debugging
-quiet Run quietly
-info Display information message
-debug Output debug message
-ignore-plugins Ignore plugin's field
-help, --help Display this list of options


All the tasks needed for development automation are defined in the package.json scripts property and can be run via:

npm run <command>

Here is a summary of all the commands:

Command Description
setup Installs global Node dependencies needed for development
lint Runs ESLint as a code linting utility
tests Runs Mocha in BDD mode.
report Runs Istanbul coverage reports on Mocha tests
test Runs both lint, tests and report commands


Contributions are very welcome! If you'd like to contribute, these guidelines may help you.


Check the releases list.


generator-ocaml is distributed under the MIT License, available in this repository.

All contributions are assumed to be also licensed under the same.


The templates codebase was originally inspired by these two projects.