# Command Line Interface

## --compile

`--compile <input file path> [output file path]` - compiles the file and exits

```
sanny.exe --compile C:\myscm.txt C:\myscm.scm
```

{% hint style="info" %}
The `output file path` parameter is optional. If there is no output path parameter, the compiler uses the [format rules](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md) to compute the output file name.
{% endhint %}

{% hint style="info" %}
The input file must have no errors. If there are errors found during compilation, they will be logged in the file `compile.log`. When compilation ends, the program shuts down.
{% endhint %}

Shortcut: `-c`

## --decompile

`--decompile <input file path> [output file path]` - decompiles the file and exits

```
sanny.exe --decompile C:\myscm.scm C:\myscm.txt
```

{% hint style="info" %}
The `output file path` parameter is optional. If there is no output path parameter, the compiler uses the [format rules](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md) to compute the output file name.
{% endhint %}

{% hint style="info" %}
The input file must have no errors. If there are errors found during decompilation, they will be logged in the file `compile.log`. When decompilation ends, the program shuts down.
{% endhint %}

Shortcut: `-d`

**--use-source** - optional argument that makes the decompiler use the source code [embedded in the script](/editor/options/general.md#add-extra-info-to-scm) (if present). By default the source is ignored.

```
sanny.exe --decompile C:\1.cs --use-source
```

## --debug

`--debug` - toggles [debug options](/editor/debug-options.md)

```
sanny.exe --debug 110000
```

## --game

`--game <game>` - selects the [default mode](/edit-modes.md#type) for the given game. Known `game` values are:

* `gta3`
* `vc`
* `sa`
* `lcs`
* `vcs`
* `vc_mobile`
* `sa_mobile`

Shortcut: `-g`

```
sanny.exe --game sa
```

## --mode

`--mode <id>` - selects the mode by `id`. [Modes](/edit-modes.md) and their ids are defined in respective `mode.xml` files.

Shortcut: `-m`

```
sanny.exe --mode vcs_psp
```

## --no-splash

`--no-splash` - runs Sanny Builder without the splash screen

```
sanny.exe --no-splash
```

## -x

`-x` - reloads [edit modes](/edit-modes.md) configuration (useful for testing the mode changes)

```
sanny.exe -x
```

## --option

{% hint style="info" %}
Available since v3.8.0
{% endhint %}

`-o <option name> <value>` - sets the value of the specified [option](/editor/options.md). To set multiple options, list each of them individually:

`-o <option1 name> <option1 value> -o <option2 name> <option2 value> ... -o <optionN name> <optionN value>`

Option name can be one of the following:

{% hint style="warning" %}
This list is not final and subject to change at any moment.
{% endhint %}

| Name                                                                                                              | Allowed Values  | Options Tab |
| ----------------------------------------------------------------------------------------------------------------- | --------------- | ----------- |
| [Editor::ShowPanel](/editor/options/editor.md#editor-configuration)                                               | 0, 1            | Editor      |
| [Editor::ShowOpcodeInfo](/editor/options/editor.md#editor-configuration)                                          | 0, 1            | Editor      |
| [Editor::ShowLineNumbers](/editor/options/editor.md#editor-configuration)                                         | 0, 1            | Editor      |
| [Editor::ShowGutterBorder](/editor/options/editor.md#editor-configuration)                                        | 0, 1            | Editor      |
| [Editor::OpenLastFile](/editor/options/editor.md#editor-configuration)                                            | 0, 1            | Editor      |
| [Editor::OpenAllClosedFiles](/editor/options/editor.md#editor-configuration)                                      | 0, 1            | Editor      |
| [Editor::ConfirmExit](/editor/options/editor.md#editor-configuration)                                             | 0, 1            | Editor      |
| [Editor::LanguageService](/editor/options/editor.md#editor-configuration)                                         | 0, 1            | Editor      |
| [Editor::SemanticConstHighlighting](/editor/options/editor.md#editor-configuration)                               | 0, 1            | Editor      |
| [Editor::IdentifiersListAuto](/editor/options/editor.md#code-scan-distance)                                       | 0, 1            | Editor      |
| [Editor::ScanDistance](/editor/options/editor.md#code-scan-distance)                                              | 0..65535        | Editor      |
| [Editor::Lang](/editor/options/general.md#interface-language)                                                     | known locale id | General     |
| [Editor::QuickGameLoading](/editor/options/general.md#quick-game-loading)                                         | 0, 1            | General     |
| [Editor::ShowProgress](/editor/options/general.md#show-progress)                                                  | 0, 1            | General     |
| [Editor::ShowReport](/editor/options/general.md#show-report)                                                      | 0, 1            | General     |
| [Decompiler::OverwriteOutputFile](/editor/options/general.md#always-overwrite-output-file)                        | 0, 1            | General     |
| [Decompiler::ManualIMGOpening](/editor/options/general.md#manual-img-opening)                                     | 0, 1            | General     |
| [Decompiler::HexadimalOffsets](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md)    | 0, 1            | Formats     |
| [Decompiler::LabelsFormat](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md)        | 0, 1, 2         | Formats     |
| [Decompiler::AlwaysWriteOpcodes](/editor/options/general.md#write-opcodes)                                        | 0, 1            | General     |
| [Decompiler::ReplaceMissionNumbers](/editor/options/general.md#replace-mission-numbers)                           | 0, 1            | General     |
| [Decompiler::InsertOriginalMissionNames](/editor/options/general.md#insert-original-mission-names)                | 0, 1            | General     |
| [Compiler::ShowIMGWarning](/editor/options/general.md#show-warning)                                               | 0, 1            | General     |
| [Compiler::CheckConditions](/editor/options/general.md#check-conditions)                                          | 0, 1            | General     |
| [Compiler::CheckLocalVariables](/editor/options/general.md#ranges-check)                                          | 0, 1            | General     |
| [Compiler::AddExtraInfo](/editor/options/general.md#add-extra-info-to-scm)                                        | 0, 1            | General     |
| [CustomNames::UseCustomLabels](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md)    | 0, 1            | Formats     |
| [CustomNames::UseCustomVariables](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md) | 0, 1            | Formats     |
| [CustomNames::UseCustomArrays](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md)    | 0, 1            | Formats     |
| [CustomNames::Format](https://github.com/sannybuilder/docs/blob/en/editor/broken-reference/README.md)             | 0, 1, 2         | Formats     |

{% hint style="info" %}
Options set via CLI are not persistent and only applied to the current session. On the next launch Sanny Builder will use values stored in the `settings.ini`.
{% endhint %}

Shortcut: `-o`

```
sanny.exe -o Compiler::CheckConditions 0 -o Editor::LanguageService 1
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sannybuilder.com/editor/cli.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
