> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tappify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Install the CLI

> Install tappify, sign in, and confirm the vendor and sandbox project it sees.

`tappify` scaffolds an extension, keeps its types current, serves it while you edit, runs
every check the Tap Store runs, and publishes it. Install it, then sign in.

<Tabs>
  <Tab title="curl (macOS/Linux)">
    ```bash theme={null}
    curl -fsSL https://get.tappify.ai | sh
    ```
  </Tab>

  <Tab title="Homebrew (macOS/Linux)">
    ```bash theme={null}
    brew tap tappify-dev/homebrew-tap
    brew install tappify
    ```
  </Tab>

  <Tab title="npm">
    ```bash theme={null}
    npm install -g @tappify/cli
    ```
  </Tab>

  <Tab title="winget (Windows)">
    ```powershell theme={null}
    winget install Tappify.CLI
    ```
  </Tab>

  <Tab title="Scoop (Windows)">
    ```powershell theme={null}
    scoop bucket add tappify https://github.com/tappify-dev/scoop-bucket
    scoop install tappify
    ```
  </Tab>

  <Tab title="Chocolatey (Windows)">
    ```powershell theme={null}
    choco install tappify
    ```
  </Tab>
</Tabs>

The binary is self-contained; the npm package needs Node 20 or newer.

<Steps>
  <Step title="Sign in">
    ```bash theme={null}
    tappify login
    ```
  </Step>

  <Step title="Confirm what it sees">
    ```bash theme={null}
    tappify extension whoami
    ```

    One line: your email, your role in the vendor, and the sandbox project — then what to
    run next. If it reports no vendor, run
    [`tappify vendor create`](/extensions/start/create-a-vendor-account).
  </Step>
</Steps>

## Two ways to run every command

Every command works with flags only, for scripts, agents and CI:

```bash theme={null}
tappify extension add widget --name Funnel --page analytics --slot kpi-row --size 2x1
```

or guided, when you leave the flags off:

```bash theme={null}
tappify extension add widget
```

Guided mode asks with select lists. Both produce the same files and the same manifest entry.

Every `tappify extension` and `tappify vendor` command also takes `--json` and prints the
object its human output describes, so an agent reads the result rather than the prose. `tappify ext` is the same command as
`tappify extension`.

<Card title="Your first extension" icon="rocket" href="/extensions/start/your-first-extension">
  From an empty directory to a published release.
</Card>
