> For the complete documentation index, see [llms.txt](https://developer.harness.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developer.harness.io/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/multilanguage.md).

# Multilanguage

This article shows you how to analyze your applications written in multiple languages using Qwiet AI by Harness. It assumes that you have already [set up and authenticated](broken://spaces/uPVBkglG6gsk2SsnsKgG/pages/fDfomI4jhzwCNFxmGSLc) with Qwiet.

## Requirements <a href="#requirements" id="requirements"></a>

See [Prerequisites](broken://spaces/uPVBkglG6gsk2SsnsKgG/pages/0c1ezDgaUil5NxR4VnY3#language-support-and-requirements) for more information.

## Analyzing a multilanguage application <a href="#analyzing-a-multilanguage-application" id="analyzing-a-multilanguage-application"></a>

![](/files/mlZo7QhbBaWAQlpvEVi9)note

Qwiet offers a [sample application](https://github.com/ShiftLeftSecurity/shiftleft-java-demo) that you can use to run and test Qwiet AI by Harness.

To analyze your multilanguage application, run:

```
sl analyze --app <name> </path/to/code>
```

![](/files/DfHDmRpYn5HJOmhRtTva) ![](/files/P5vj8JOtHNJWVEvAqKym)

| Parameter        | Description                                                                 |
| ---------------- | --------------------------------------------------------------------------- |
| `--app <name>`   | The name of the application to be analyzed (maximum length: 100 characters) |
| `<path/to/code>` | The path to your project                                                    |

See the [CLI reference](broken://spaces/4t03gua31tHpZwtcczPO/pages/bfq0NtVB7O7f6pFvFzK3) for additional `sl analyze` options.

## Additional parameters <a href="#additional-parameters" id="additional-parameters"></a>

Parameters after a double hyphen `--` are applied to all languages. To specify additional parameters for individial languages, use `--<language>.<option>=<value>` after the double hyphen `--`.

For example:

```
sl analyze --app my_app . -- --c.exclude-regex=".*([-.])min\\.c"
```

![](/files/DfHDmRpYn5HJOmhRtTva) ![](/files/P5vj8JOtHNJWVEvAqKym)

This is the equivalent to:

```
sl analyze --app my_c_app -c . -- --exclude-regex ".*([-.])min\\.c"
```

![](/files/DfHDmRpYn5HJOmhRtTva) ![](/files/P5vj8JOtHNJWVEvAqKym)

For information about language-specific features, please [review the options available as part of `sl analyze`](broken://spaces/4t03gua31tHpZwtcczPO/pages/bfq0NtVB7O7f6pFvFzK3) or the page appropriate for your application:

* [Apex](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/apex.md)
* [C/C++](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/c.md)
* [C#](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/c-sharp.md)
* [Go](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/golang.md)
* [Java](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/java.md)
* [JavaScript/Typescript](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/javascript.md)
* [Kotlin](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/kotlin.md)
* [PHP](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/php.md)
* [PL/SQL](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/plsql.md)
* [Python](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/python.md)
* [Ruby](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/ruby.md)
* [Scala](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/scala.md)
* [Swift](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/swift.md)
* [Terraform](/sast-and-sca/prezero/static-analysis-sast/analyzing-applications/terraform.md)

## Excluding languages <a href="#excluding-languages" id="excluding-languages"></a>

One or more languages can be exclude from the analysis using the option `--exclude-languages <language>` one or more times. For example:

```
sl analyze --app my_app --exclude-languages jssrc --exclude-languages pythonsrc .
```

![](/files/DfHDmRpYn5HJOmhRtTva) ![](/files/P5vj8JOtHNJWVEvAqKym)

## Disable multilanguage <a href="#disable-multilanguage" id="disable-multilanguage"></a>

Multilanguage can be disabled for a particular analysis using the option `--disable-multilanguage-analysis`. The most prevalent language will be detected and used for analysis (unless a language option is specified). For example:

```
sl analyze --disable-multilanguage-analysis --app my_app .
```

![](/files/DfHDmRpYn5HJOmhRtTva) ![](/files/P5vj8JOtHNJWVEvAqKym)

## Tagging results with your branch name <a href="#tagging-results-with-your-branch-name" id="tagging-results-with-your-branch-name"></a>

To include the branch name in your Qwiet AI by Harness results, allowing you to distinguish one set of results from another, add the following to your invocation of Qwiet:

```
sl analyze --app <name> --tag branch=`git symbolic-ref --short HEAD` </path/to/code>
```

![](/files/DfHDmRpYn5HJOmhRtTva) ![](/files/P5vj8JOtHNJWVEvAqKym)

If you're working in a GitHub environment (e.g., [GitHub Actions](https://github.com/features/actions)), you can also use `--tag branch=${{ github.head_ref }}` to populate your branch name.

If you don't provide a branch name, but Qwiet detects one available in your environment, it will use that name.

## Troubleshooting <a href="#troubleshooting" id="troubleshooting"></a>

If you have any issues scanning your project, please see our [general troubleshooting page](/sast-and-sca/prezero/tutorials/troubleshooting.md).
