Need help with lookout?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

141 Stars 35 Forks GNU Affero General Public License v3.0 1.1K Commits 78 Opened issues


Assisted code review, running custom code analyzers on pull requests

Services available


Need anything else?

Contributors list

source{d} Lookout

Service for assisted code review, that allows running custom code Analyzers on pull requests.

GitHub version Build Status Development Code Coverage Go Report Card GoDoc



With source{d} Lookout, we’re introducing a service for assisted code review, that allows running custom code analyzers on pull requests.

Jump to the Quickstart section to start using it!

Table of Contents

Motivation and Scope

source{d} is the company driving the Machine Learning on Code (#MLonCode) movement. Doing Machine Learning on Code consists of applying ML techniques to train models that can cluster, identify and predict useful aspects of source code and software repositories.

source{d} Lookout is the first step towards a full suite of Machine Learning on Code applications for AI-assisted coding, but you can also create your own analyzers without an ML approach.

The benefits of using source{d} Lookout are: - Keep your code base style/patterns consistent. - Language agnostic assisted code reviews. - Identify where to focus your attention on code reviews. - Automatically warn about common mistakes before human code review.

Current Status

Currently, source{d} Lookout is in development process.

Further Reading

This repository contains the code of source{d} Lookout and the project documentation, which you can also see properly rendered at


There are several ways to run source{d} Lookout; we recommend to use

because it's straightforward, but you can learn more about the different ways to run source{d} Lookout.

Please refer to the Configuring source{d} Lookout guide for documentation about the

file, and to know how to configure source{d} Lookout to analyze your repositories, or to use your own analyzers.

There is

config file for Docker Compose to start source{d} Lookout, its dependencies (bblfsh and PostgreSQL) and a
which will add some stats to the watched pull requests.

To do so, clone this repository or download


Create the

file in the same directory where
is. You can use
as a template. Make sure that you specify in the
the repositories that will be watched by source{d} Lookout. Then run, passing a valid GitHub user/token:
$ docker-compose pull
$ GITHUB_USER= GITHUB_TOKEN= docker-compose up --force-recreate

Once it is running, source{d} Lookout will start posting the comments returned by

analyzer into the pull requests opened at GitHub in the repositories that you configured to be watched.

You can stop it by pressing


If you want to try source{d} Lookout with your own analyzer instead of

one, you must run it in advance, then set it into
and then run:
$ docker-compose pull
$ GITHUB_USER= GITHUB_TOKEN= docker-compose up --force-recreate lookout bblfsh postgres

If you need to reset the database to a clean state, you should drop the

container. To do so, stop running source{d} Lookout with
and then execute:
$ docker rm lookout_postgres_1

Available Analyzers

This is the list of the known implemented analyzers for source{d} Lookout:

| Name | Description | Targeted files | Maturity level | | --- | --- | --- | --- | | style-analyzer | Code style analyzer | | development | | terraform | Checks if Terraform files are correctly formatted | Terraform | usable | | gometalint | Reports gometalinter results on pull requests | Go | testing and demo | | sonarcheck | Reports SonarSource checks results on pull requests using bblfsh UAST | Java | testing and demo | | flake8 | Reports flake8 results on pull requests | Python| testing and demo | | npm-audit | Reports issues with newly added dependencies using npm-audit | JavaScript | development | | function-name analyzer | Applies a translation model from function identifiers to function names. | | development |

Create an Analyzer

If you are developing an Analyzer, or you want more info about how they work, please check the documentation about source{d} Lookout analyzers.


Contributions are more than welcome, if you are interested please take a look at our Contributing Guidelines.


source{d} has an amazing community of developers and contributors who are interested in Code As Data and/or Machine Learning on Code. Please join us! 👋

Code of Conduct

All activities under source{d} projects are governed by the source{d} code of conduct.


Affero GPL v3.0 or later, see LICENSE.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.