Note: This documentation is for the legacy command-line tool odasa.
The final version was released in May 2020. Support for this tool expires in May 2021.

For documentation on the new generation CodeQL CLI, see CodeQL CLI .
In particular, you may find the Notes for legacy QL CLI users useful in planning your migration.

Skip to end of metadata
Go to start of metadata


Each Semmle project defines a code base to build and index for Semmle analysis. Initially, a project only consists of a subdirectory of the odasa/projects directory, containing all files associated with the project, and a project configuration file. The project file contains the information used to access a copy of your source and build the code base. This information is used to generate a snapshot of your code for you to analyze. For further information about projects, see Project.


Before you can create a new project, you need to install Semmle Core and you need to know the following information about your code base:

  • How to access the source code repository  Semmle Core requires read-only access to the repository.
  • How to build or compile the project – Semmle Core analyzes the code base as a system and so must know how the various elements are built or compiled.

Basic project creation using bootstrap

You can create a project using two different commands: bootstrap and createProject. In most cases, the bootstrap tool is the recommended method for creating a new project. The bootstrap command launches an interactive project creation process, which prompts you to define:

  1. Basic project details – define the name of the project and the language of the code base.
  2. Source code extraction method – define the type and location of the repository used. Optionally, define a specific code version to analyze.
  3. Build method for the code base – define the build location and build method for compiled languages..

When you have defined the configuration of the project, you are then prompted to decide if you would like to add a snapshot of your code and to start analysis immediately. 

The following tutorials step you through the process of using the bootstrap tool for a variety of languages:

For examples of advanced project creation, where other methods may be more appropriate see, Advanced project creation.