Welcome to the coala documentation!

You might also want to look at our website._images/coala-header.png

coala: Language Independent Code Analysis

coala provides a unified command-line interface for linting and fixing allyour code, regardless of the programming languages you use.

With coala, users can createrules and standards to be followed in the sourcecode. coala has a user-friendly interface that is completely customizable.It can be used in any environment and is completely modular.

coala has a set of official bears (plugins) for several languages, includingpopular languages such as C/C++, Python, JavaScript, CSS,Java and many more, in addition to some generic language independentalgorithms. To learn more about the different languages supported and thebears themselves,click here.

Note

To see what coala can do for you and your language, take a look atour capabilities listing.

If you are here to use coala for your own projects, take a look at ourinstallation guide.

If you want to start contributing to coala, you can follow ourtutorial for newcomers which aims to geteveryone to fix an issue by themselves.

Note

To contact us, always feel free to check ourGetting In Touch page.

What do I get?

As a User

coala allows you to simply check your code against certain qualityrequirements. The checking routines are named Bears in coala. Youcan easily define a simple project file to check your project with allbears either shipped with coala or ones you found in the internet andtrust.

As a Developer

If you are not satisfied with the functionality given by the bears weprovide, you can easily write your own bears. coala is written with easinessof extension in mind. That means: no big boilerplate, just write onesmall object with one routine, add the parameters you like and see howcoala automates the organization of settings, user interaction andexecution parallelization. You shouldn’t need to care about anythingelse than just writing your algorithm!

See also

Check out Writing Bears for moreinformation on this.

To programmatically access coala’s functionality, use the —json option.Use the —format option if you want to use a custom format string. Both ofthese arguments along with —ci argument run coala in non-interactive modewhich is suitable for continuous integration.

Hint

—json makes the coala output easy to read and understand. It consists ofa collection of name/value pairs usually represented by objects and an orderedlist of values stored in arrays. You can read more about this format here.

—format has a linear, one line return. Its output can be easily parsedas it is fully customizable. This option will not show all the tested areasbut those with issues. In case of no errors, —format will have no output.

Status and Stability of the Project

We are currently working hard to make this project reality. coala is currentlyusable, in beta stage and already provides more features than mostlanguage dependent alternatives. Every single commit is fully reviewed andchecked with various automated methods including our testsuite covering allbranches. Our master branch is continuously prereleased to our users so you canrely on the upcoming release being rock stable.

If you want to see how the development progresses, check outcoala andcoala-bears.