> For the complete documentation index, see [llms.txt](https://fig.gitbook.io/fig/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fig.gitbook.io/fig/build-a-cli.md).

# ⚒️ Build your own CLI

Fig makes it easy to visually build your own Command Line Interface (CLI) for yourself, your team, and your company.&#x20;

A CLI built with Fig lets you directly execute scripts. For users who often don't remember input parameters, flags, or commands, it lets you build an [interactive runbook ](/fig/interactive-runbooks-2.md)into the CLI. This makes traditional command line interfaces more discoverable, approachable, and interactive.&#x20;

### **How can I get started?**

1. Navigate to the directory where you want to save your CLI
   * e.g. your scripts folder in a shared repo
2. Run [`fig build`](/fig/build-a-cli/fig-build.md) to visually create and edit your CLI tool
   * This will create a .fig file in that folder
3. Add the directory from Step 1 where your .fig file is saved to your [$FIGPATH](/fig/the-fig-cli/figpath.md)&#x20;
   * You do this in [Settings](/fig/get-started/fig-home/settings.md)
   * Make sure your teammates do the same
4. Run `fig CMD SUBCOMMAND`
   * where CMD is the name of your .fig file&#x20;
   * where SUBCOMMAND is a command you defined in `fig build`
   * Your teammates can do this too 😀

{% content-ref url="/pages/-MD3e\_ZBXpFWtiwRMddv" %}
[\`fig build\`](/fig/build-a-cli/fig-build.md)
{% endcontent-ref %}

![](https://1545242415-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MBzsiIfFzkblTOBPFTF%2F-MD8pv4ODFipQcBxpE5U%2F-MDBanS819ZwE3P4vc1b%2Ffig%20build.png?alt=media\&token=63ff2dd1-33bf-4988-82fd-546cefdd58b2)

### What is a .fig file?

A .fig file is the blueprint for your CLI tool. It is a JSON stringified object that contains the mapping for all of your subcommands.&#x20;

### How should I name my .fig file?

The name of your .fig file (e.g. `ACME.fig`) defines the root command used to access the subcommands you defined.

e.g. If I had a file named ACME.fig with a subcommand called `deploy`, I could access it by running `fig ACME deploy`

### How do I share this CLI tool with my team?

1. You can host the .fig file with Fig (coming soon)
2. You can put the .fig file in a shared repository
   1. Make sure your teammates add their local path to that shared repo to their [$FIGPATH](/fig/the-fig-cli/figpath.md)
