# ⚒️ 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 %}

![](/files/-MDBanS819ZwE3P4vc1b)

### 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)


---

# 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://fig.gitbook.io/fig/build-a-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.
