chicken-git /


libgit2 bindings for CHICKEN Scheme.


Obviously, libgit2 is required:

Assuming you have that, installation should be straightforward:

$ git clone git://
$ cd chicken-git
$ chicken-install -test

This library requires libgit2 0.19.0 and Chicken 4.7 or newer.


The library is split into two modules, git and git-lolevel:

  • git-lolevel is essentially just the libgit2 API, thinly wrapped. Most of the function signatures remain the same, with two exceptions:

  • Structures & pointers that would normally be put on the stack and passed as out parameters are allocated automatically.

  • Return values are checked where appropriate, signaling an exception of type (exn git) when negative.

  • git is a higher-level interface around git-lolevel, providing record types for each libgit2 structure.

Documentation is available at


Some functionality is not yet provided, such as custom backends, remotes and reflog inspection. Obviously, patches are more than welcome.



BSD. See LICENSE for details.