Quick start
The current version of Qodana (2023.2) provides the linters that let you analyze Java, Kotlin, Groovy, PHP, JavaScript, TypeScript, C#, Visual Basic, C, C++, Python, and Golang projects. You can also extend the default linter configuration using various features.
As an example, this section explains how you can quickly start working with Qodana using:
note
You can skip the prerequisites if you would like to run Qodana in JetBrains IDEs.
Depending on your Qodana license, you probably need to obtain a trial license and accomplish the onboarding stage at Qodana Cloud.
To run Qodana in the CLI and GitHub, you will be using a project token available after creating a Qodana Cloud project. To learn more about it, see the Project tokens section.
Starting from version 2023.2, Qodana is available in IntelliJ IDEA and PyCharm (both the Professional and Community editions), PhpStorm, WebStorm, GoLand, and Rider.
tip
You do not need to buy a separate Qodana license to run it in the IDE.
Here is the short video showing how you can run Qodana in your IDE.

Here is the description of all steps shown in this video:
In your IDE, navigate to the Problems tool window.
In the Problems tool window, click the Server-Side Analysis tab.
On the Server-Side Analysis tab, click the Start Qodana button.
In the dialog that opens, click the Try locally button, and then click Run.
On the Server-Side Analysis tab, you can view inspection results. It also contains two links in the upper part of the tab.
Open Qodana report in browserAdd Qodana to CI/CD pipelineOpen the inspection report in an intuitive and easy-to-use form.
Open the configuration wizard for using Qodana in CI/CD pipelines.
To learn more about Qodana and CI/CD pipelines, see the Integration with CI systems section.
Qodana provides two options for local analysis of your code. Qodana CLI is the easiest option to start. Alternatively, you can use the Docker command from the Docker image tab.
To run Qodana CLI in the default mode, you must have Docker or Podman installed and running locally. If you are using Linux, you should be able to run Docker under your current non-root user.
Install Qodana CLI on your machine using available options:
macOS and LinuxWindowsOtherInstall with Homebrew (recommended):
$brew install jetbrains/utils/qodana
Alternatively, you can install Qodana CLI using our installer:
$curl -fsSL https://jb.gg/qodana-cli/install | bash
Install with Scoop:
scoop bucket add jetbrains https://github.com/JetBrains/scoop-utils scoop install qodana
Install with Go:
$go install github.com/JetBrains/qodana-cli@latest
In the project root directory, run this command:
$qodana init
This will create the
qodana.yaml
file containing all necessary configuration options.In the project root directory, run this command to inspect your code:
$qodana scan \ -e QODANA_TOKEN="<cloud-project-token>" \ --show-report
Here, the
QODANA_TOKEN
variable contains the project token described in the prerequisites.
This section assumes that you have the Docker application deployed on your machine.
Pull the image from Docker Hub (only necessary to get the latest version):
$docker pull <image>
Here,
image
denotes the Docker image name of a Qodana linter from this table:Image name
Application
jetbrains/qodana-jvm
Java and Kotlin for Server Side projects, based on IntelliJ IDEA Ultimate.
jetbrains/qodana-jvm-community
Java and Kotlin for Server Side projects, based on IntelliJ IDEA Community.
jetbrains/qodana-jvm-android
Java and Kotlin for Server Side projects, based on IntelliJ IDEA with the Android support.
jetbrains/qodana-php
PHP projects, based on PhpStorm.
jetbrains/qodana-python
Python projects, based on PyCharm Professional.
jetbrains/qodana-python-community
Python projects, based on PyCharm Community.
jetbrains/qodana-js
JavaScript and TypeScript projects, based on WebStorm.
jetbrains/qodana-go
Golang projects, based on Goland.
jetbrains/qodana-dotnet
.NET projects, based on Rider.
Run this command to analyze your codebase:
$docker run \ -p 8080:8080 \ -v <source-directory>/:/data/project/ \ -e QODANA_TOKEN="<cloud-project-token>" \ jetbrains/qodana-<linter> \ --show-report
Here,
<source-directory>
points to the root of your project, and theQODANA_TOKEN
variable contains the project token described in the prerequisites.Check inspection results in your browser at
http://localhost:8080
.
tip
Depending on your tasks, you can configure Qodana as explained on the Configure Qodana page.
Here is the short video showing how you can configure and run Qodana in GitHub.

Assuming that you already generated a project token as described in the Prerequisites chapter, follow these steps to configure Qodana in GitHub:
On the Settings tab of the GitHub UI, create the
QODANA_TOKEN
encrypted secret and save the project token as its value.On the Actions tab of the GitHub UI, set up a new workflow and create the
.github/workflows/code_quality.yml
file.To inspect the
main
branch, release branches, and the pull requests coming to your repository, save this workflow configuration to the.github/workflows/code_quality.yml
file:name: Qodana on: workflow_dispatch: pull_request: push: branches: - main - 'releases/*' jobs: qodana: runs-on: ubuntu-latest permissions: contents: write pull-requests: write checks: write steps: - uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit fetch-depth: 0 # a full history is required for pull request analysis - name: 'Qodana Scan' uses: JetBrains/qodana-action@v2023.2 env: QODANA_TOKEN: ${{ secrets.QODANA_TOKEN }}
tip
You can learn more about how to use Qodana in CI/CD pipelines in the Integration with CI systems section.
Thanks for your feedback!