Linting and Fixing Code for All Languages

coala: Language Independent Code Analysis

coala provides a common command-line interface for linting and fixing all your code, regardless of the programming languages you use. It allows users to analyse projects containing multiple languages with just one tool, using just one configuration and seeing just one user interface.

How does it work?

With coala, you create just one configuration file. It can be separated into sections that run independently to fit different scenarios. Using different bears (which are coala's modules) users can work with a wide range of existing tools, wrapped by bears, and native analysis routines. This enables users to check their python code for pep8 conformity, calculate complexity for their java code, find code duplicates in the C code and check the documentation for spelling errors, while making sure the commits follow the set guidelines. All controlled via one configuration file, run with one command and served in the same user interface.

For Users

coala offers a unified static code analysis suite. It can be used as a simple standalone testing suite, pre-commit hook and CI tool. Besides the normal user interactive mode, there is a non interactive mode for CI, a html output mode, to view results in the browser, and JSON output if you want to integrate coala into your own system. If implemented, coala even offers to automatically fix problems.

For Developers

You can easily write your own bears. coala is written with ease of extension in mind. That means: no big boilerplate, just write one small object with one routine, add the parameters you like and see how coala automates the organisation of settings, user interaction and execution parallelisation.

For Newcomers

coala offers a great newcomer experience with an in depth step by step guide for your first contribution, extensive documentation of the whole workflow and fast and easy communication over the gitter channel.

lightbulb_outline View ideas list


  • python


comment IRC Channel
email Mailing list

coala 2017 Projects

  • Rahul Jha [:RJ722]
    Auto-removal of dead code through vulture
    vulture is a tool which detects and reports dead (unused) code and coala is an automatic linter. The motivation of this proposal is to: Extend...
  • Adhika Setya Pramudita
    coala: Implement Aspeca
    Currently configuring coala on a new project is unnecessarily hard, especially for first time user. There are few reason for this. New users are not...
  • Meet Mangukiya
    cobot enhancement
    coala community has grown substantially over last few months. To make it easier on maintainers to cope up and still be a welcoming community for new...
  • Saurav Singh
    Documentation Extraction & Parsing
    To develop an analyzing routine at least for python and java that will find all documentation strings in a file, parse them into specific groups and...
  • Satwik Kansal
    Enhance coala-quickstart
    coala is a modular and language-agnostic tool for performing static code analysis. The aim of coala is to make static code analysis easier for the...
  • Yash Nisar
    Extend Linter Integration
    The aim of the project is to ease the process of testing bears in coala by significantly improving the testing API to yield favorable, easy to...
  • Naveen Kumar Sangi
    Extending GitMatev2.0 to support GitLab and BitBucket
    GitMate for all! This time with user configurable plugins! About the product GitHub, GitLab and BitBucket support webhooks for common events like...
  • Hemang Kumar
    Improve coala Website and Supporting Tools
    Currently, the coala Online module lacks support for all the bears. Bears with non-optional settings are ignored. The first goal of this project is...
  • Alexandru-Sorin Maxim
    Improve the coala CLI
    coala has come a long way from its early days in terms of its usability, although all the changes that have been made are improvisations. A proper...