project manager for c/c++
Python C
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


In contrast with many modern languages, C has no standardized systems of module distribution, dependency handling, or project management in general. From basic directory structure to build tools, everything seems fragmented. More so, libraries are inaccessibly scattered across the web - and that pressures developers to reinvent the wheel over and over again.

Kit is a potential solution to these problems. It provides standardized project structure, centralized module indexing, and a convenient build tool [which wraps CMake, capitalizing on standardization].


pip install git+

or, without pip:

git clone
cd Kit
python install

Sample Usage

Spawn a boilerplate project.

mkdir my-project
cd my-project
kit init
  • kit run is short for ./build/bin/my-project
  • kit test is short for ./build/bin/tests

Include kit modules.

kit build scans the source tree for lines that match #include <kit/*>, attempting to resolve each dependency. This is done by searching the local index, and if specified modules aren't found, by resorting to the central registry. Located modules are linked against, and their corresponding headers are added to the include path.

tl;dr: to include a module, #include <kit/module/file.h>.

Create kit modules.

To make code available locally, run `kit install'. If you feel that your code could be useful to others, send a pull request with edits to MODULES.csv. That file lists items in the central index.

Further Information