---
id: api-cli-commands
title: CLI Commands
---

Contracts written in Ligo can be compiled using the `ligo` executable.


## Compiling a contract

Compile your contract with a specific entry point.

```zsh
ligo compile-contract SOURCE_FILE [ENTRY_POINT]
```

#### Example

```zsh
ligo compile-contract examples/counter.ligo main
```

## Defining the initial storage

If your contract implements a sophisticated storage, you can compile a Ligo expression into a Michelson value quite easily.

```zsh
ligo compile-storage SOURCE_FILE ENTRY_POINT EXPRESSION
```

#### Example
```zsh
ligo compile-storage examples/counter.ligo main 5
# Outputs: 5
```

## Invoking the contract with a parameter

```zsh
ligo compile-parameter SOURCE_FILE ENTRY_POINT EXPRESSION
```

#### Example
```zsh
ligo compile-parameter examples/counter.ligo main "Increment(5)"
# Outputs: (Right 5)
```