Current answer set solvers work on variable-free programs. Hence, a grounder is needed that, given an input program with first-order variables, computes an equivalent ground (variable-free) program. gringo is such a grounder. Its output can be processed further with clasp, claspfolio, or clingcon.

clingo combines both gringo and clasp into a monolithic system. This way it offers more control over the grounding and solving process than gringo and clasp can offer individually - e.g., incremental grounding and solving.

Both clingo and gringo are released together in one package.

Attention! The languages of clingo 3 and 4 are not fully compatible because clingo 4 adheres to the recent ASP language standard. For processing legacy encodings, we recommend downloading the latest version of clingo 3 in addition to clingo 4. The language did not change in version 5 but there were many API changes.




The easiest way to obtain Python enabled clingo packages is using Anaconda. Packages are available in the Potassco channel. First install either Anaconda or Miniconda and then run

conda install -c potassco clingo


conda install -c potassco/label/dev clingo

to install the latest development version of clingo.

We also provide pip packages for Python. Packages can be installed from

python3 -m pip install --user --upgrade clingo

Development packages can be installed from

python3 -m pip install --user --upgrade --extra-index-url clingo-cffi

Packages for clingo are available for some Linux distributions:

For Mac OS X, clingo packages are available in

Related Projects

  • The clorm Python library provides an object relational mapper-like interface to clingo. It allows facts to be asserted and extracted in an intuitive and easy to use way.
  • The clingo-rs project provides rust bindings to the clingo library.
  • The clingo-haskell project provides Haskell bindings to the clingo library.
  • There are also rudimentary prolog bindings to clingo.
  • There is a project offering rudimentary JavaScript support to run clingo in the browser.
  • There are abandoned java bindings to clingo.
  • Syntax highlighting is available for vim and emacs.