Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

RosaeNLG logo, thanks to Denis Aulas

CII Best Practices Known Vulnerabilities


RosaeNLG is a Natural Language Generation library for node.js or client side (browser) execution, based on the Pug template engine. Based on Pug-like textual templates and on input data, RosaeNLG will generate high quality texts.

Fully supported languages (with grammar, gender etc.) are English, French, German, Italian and Spanish but you can generate texts in any other language with less features.

RosaeNLG is complete enough to write production grade real life NLG applications.

RosaeNLG is a Sandbox Project of LF AI & Data Foundation, part of the Linux Foundation.

Getting Started Using RosaeNLG

The main documentation site is A mirror is available on Github pages, but without the search bar.

Use the Quick Start and the Tutorials on the documentation site.

You can also play around with a client side editor, compiler and renderer with an in browser editor.

Sample template:

- var data = ['apples', 'bananas', 'apricots', 'pears'];
  eachz fruit in data with { separator: ',', last_separator: 'and', begin_with_general: 'I love', end:'!' }
    | #{fruit}
`, 'I love apples, bananas, apricots and pears!'

will generate:

<p>I love apples, bananas, apricots and pears!</p>

Getting Started Developing RosaeNLG

RosaeNLG is an open source project, and welcomes your contribution, be it through code, a bug report, a feature request, or user feedback.

  • The Contribution Guidelines document will get you started on submitting changes to the project.
  • The Developer Guide will walk you through how to set up a development environment, build the code, run tests, add a new language, publish a new version.

Versioning, Releases

See Release doc

Join the RosaeNLG Community!

The RosaeNLG community is committed to fostering an open and welcoming environment, with several ways to engage with other users and developers. You can find out more about here.

Also check our Code of Conduct.


RosaeNLG aims to become the most used NLG open source engine, and to support more than 50 commonly spoken languages.

Major targets are:

  • Improve the ability to add new languages
  • Add more languages - depending on contributors
  • Add new NLG libraries, like rosaenlg-countries
  • Dedicated VSCode plugin, with template debug support
  • Industrialize the Java version

2021 Roadmap was presented and discussed during the first 2021 RosaeNLG meetup. See detailed 2021 roadmap.

Logo & Artwork

RosaeNLG logo was made by Denis Aulas. Reference artwork is here.


RosaeNLG is open source, with most code available under the Apache 2.0 license (see the LICENSE), and documentation under Creative Commons Attribution 4.0 International (CC-BY-4.0) license, though some elements are necessarily licensed under different open source licenses for compatibility with upstream licensing or code linking. For instance, english-ordinals and rosaenlg-cli modules remain under MIT.

The licenses applicable to each linguistic resource package are included in each subfolder the package directory, and a summary of the licenses can be found in the Linguistic resources documentation.


RosaeNLG is a Natural Language Generation library for node.js and browser rendering, based on the Pug template engine.



Code of conduct

Security policy





No packages published