> 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/web-application-and-api-protection-waap/application-security-testing/ast-basics-and-workflow/runners-and-cli/cli-pre-checks-and-installation.md).

# CLI Pre-checks and Installation

The Traceable CLI is a core component used to initiate scans, perform validations, and interact with the Traceable platform. Its behavior and reliability depend on the underlying system being correctly set up and accessible.

## What will you learn in this topic?

By the end of this topic, you will understand:

* The steps to install the CLI on your system.
* The commands and options available for use post-installation.

***

## Installing the CLI

1. Download the latest package and installation script:

   ```bash
   curl -0 https://downloads.traceable.ai/cli/release/v2/install.sh
   ```
2. Execute the command below to install the CLI:

   ```bash
   bash install.sh --service --token <traceable-api-token> --server <traceable-server>
   # Replace the <traceable-api-token> and <traceable-server> placeholders with the actual values
   ```
3. Execute the following command to perform pre-checks:

   ```bash
   traceable preflight
   ```

   As part of the above command, Traceable checks the status of the following components:

   * OS version
   * User info
   * Write access
   * Disk capacity
   * Memory capacity
   * CPU capacity
   * Fork capabilities
   * Internet connectivity
   * Traceable server reachability
4. Execute the following command to verify the CLI installation:

   ```bash
   traceable version
   ```

***

## Traceable commands and options

Traceable provides the following commands and options that you can use with the CLI:

<table data-header-hidden><thead><tr><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td>Core command</td><td>Command</td><td>Sub-command</td><td>Flags</td></tr><tr><td rowspan="6"><code>ast</code></td><td><code>hook</code></td><td><code>test</code></td><td><code>--hook-file</code></td></tr><tr><td><code>plugins</code></td><td></td><td>general CLI options</td></tr><tr><td rowspan="4"><code>scan</code></td><td><code>initAndRun</code></td><td><code>-n</code> / <code>—-scan-name</code> override flags</td></tr><tr><td><code>queue</code></td><td><p><code>-n</code> / <code>—-scan-name</code></p><p><code>--scan-id</code></p><p><code>--runner-ids</code></p><p><code>--runner-name</code></p><p><code>--runner-labels</code></p><p><code>--wait</code></p><p><code>--wait-timeout</code></p><p><code>--exit-code</code></p><p>override flags</p></td></tr><tr><td><code>report</code></td><td><p><code>--id</code></p><p><code>--output-format</code></p><p><code>--output-file</code></p><p><code>--wait</code></p><p><code>--exit-code</code></p></td></tr><tr><td><code>getEvaluationResult</code></td><td><code>--id</code></td></tr><tr><td><code>code</code></td><td><code>apis</code></td><td>—</td><td><p><code>-cp</code> / <code>--code-path</code></p><p><code>-cl</code> / <code>--code-language</code></p><p><code>-bp</code> / <code>--binary-path</code></p><p><code>-ml</code> / <code>--memory-limit</code></p><p><code>-a</code> / <code>--artifact-path</code></p></td></tr><tr><td><code>login</code></td><td>—</td><td>—</td><td><p><code>--clean</code></p><p><code>--config-file</code></p></td></tr><tr><td><code>preflight</code></td><td>—</td><td>—</td><td><code>-c</code> / <code>--check</code></td></tr><tr><td rowspan="2"><code>runner</code></td><td><code>start</code></td><td>—</td><td><p><code>--runner-name</code></p><p><code>--runner-labels</code></p><p><code>--environment-ids</code></p></td></tr><tr><td><code>stop</code></td><td>—</td><td>general CLI options</td></tr><tr><td><code>version</code></td><td>—</td><td>—</td><td>—</td></tr></tbody></table>

{% @harness-feedback/feedback %}
