Installing Snowflake CLI

This topic explains how to install Snowflake CLI on supported platforms. Note that Snowflake CLI is not currently available for AIX systems.

Snowflake recommends using binary installation methods, such as package managers, to install Snowflake CLI on your system. You can download the binary installers from the official Snowflake CLI repository.

Requirements

To use Snowflake CLI, you need a valid Snowflake account with the privileges required for the features you intend to use.

Tip

If your Snowflake account requires MFA (multi-factor authentication), Snowflake CLI requires approval for every command. You can use MFA caching to require authentication only once every four hours. For more information, see Use multi-factor authentication (MFA).

Install Snowflake CLI using package managers

Select your operating system below.

On macOS you can install Snowflake CLI with Homebrew or with the macOS package installer.

Homebrew

Snowflake recommends installing Snowflake CLI with Homebrew.

  1. Install Homebrew, if necessary.

  2. Give Homebrew access to the Snowflake CLI repository:

    brew tap snowflakedb/snowflake-cli
    brew update
  3. Install Snowflake CLI:

    brew install snowflake-cli
  4. Verify that the software was installed successfully:

    snow --help
    Usage: snow [OPTIONS] COMMAND [ARGS]...
    
    Snowflake CLI tool for developers.
    
     Options 
     --version                           Shows version of the Snowflake CLI                                                                   │
     --info                              Shows information about the Snowflake CLI                                                            │
     --config-file                 FILE  Specifies Snowflake CLI configuration file that should be used [default: None]                       │
     --install-completion                Install completion for the current shell.                                                            │
     --show-completion                   Show completion for the current shell, to copy it or customize the installation.                     │
     --help                -h            Show this message and exit.                                                                          │
    
     Commands 
     app          Manages a Snowflake Native App                                                                                              
     connection   Manages connections to Snowflake.                                                                                           
     cortex       Provides access to Snowflake Cortex.                                                                                        
     git          Manages git repositories in Snowflake.                                                                                      
     notebook     Manages notebooks in Snowflake.                                                                                             
     object       Manages Snowflake objects like warehouses and stages                                                                        
     snowpark     Manages procedures and functions.                                                                                           
     spcs         Manages Snowpark Container Services compute pools, services, image registries, and image repositories.                      
     sql          Executes Snowflake query.                                                                                                   
     stage        Manages stages.                                                                                                             
     streamlit    Manages a Streamlit app in Snowflake.                                                                                       
    
  5. Configure the Snowflake connection.

macOS package installer

  1. Download the Snowflake CLI installer from the Snowflake CLI repository.

  2. Run the installer and follow the instructions.

  3. To verify that the software was installed successfully, open a new terminal and run the following command:

    snow --help
    Usage: snow [OPTIONS] COMMAND [ARGS]...
    
    Snowflake CLI tool for developers.
    
     Options 
     --version                           Shows version of the Snowflake CLI                                                                   │
     --info                              Shows information about the Snowflake CLI                                                            │
     --config-file                 FILE  Specifies Snowflake CLI configuration file that should be used [default: None]                       │
     --install-completion                Install completion for the current shell.                                                            │
     --show-completion                   Show completion for the current shell, to copy it or customize the installation.                     │
     --help                -h            Show this message and exit.                                                                          │
    
     Commands 
     app          Manages a Snowflake Native App                                                                                              
     connection   Manages connections to Snowflake.                                                                                           
     cortex       Provides access to Snowflake Cortex.                                                                                        
     git          Manages git repositories in Snowflake.                                                                                      
     notebook     Manages notebooks in Snowflake.                                                                                             
     object       Manages Snowflake objects like warehouses and stages                                                                        
     snowpark     Manages procedures and functions.                                                                                           
     spcs         Manages Snowpark Container Services compute pools, services, image registries, and image repositories.                      
     sql          Executes Snowflake query.                                                                                                   
     stage        Manages stages.                                                                                                             
     streamlit    Manages a Streamlit app in Snowflake.                                                                                       
    
  4. Configure the Snowflake connection.

Install Snowflake CLI as a Python tool

You can also install Snowflake CLI as a Python package using uv, pipx, or pip.

All Python-tool installation methods require Python version 3.10 or later.

uv is a fast Python package and project manager. The uv tool subcommand installs Python packages into isolated environments and exposes their executables on your PATH, so it doesn’t modify your current Python environment.

To install Snowflake CLI using uv, you must have uv installed.

  1. Run the following shell command:

    uv tool install snowflake-cli
  2. To verify that the software was installed successfully, run the following command:

    snow --help
    Usage: snow [OPTIONS] COMMAND [ARGS]...
    
    Snowflake CLI tool for developers.
    
     Options 
     --version                           Shows version of the Snowflake CLI                                                                   │
     --info                              Shows information about the Snowflake CLI                                                            │
     --config-file                 FILE  Specifies Snowflake CLI configuration file that should be used [default: None]                       │
     --install-completion                Install completion for the current shell.                                                            │
     --show-completion                   Show completion for the current shell, to copy it or customize the installation.                     │
     --help                -h            Show this message and exit.                                                                          │
    
     Commands 
     app          Manages a Snowflake Native App                                                                                              
     connection   Manages connections to Snowflake.                                                                                           
     cortex       Provides access to Snowflake Cortex.                                                                                        
     git          Manages git repositories in Snowflake.                                                                                      
     notebook     Manages notebooks in Snowflake.                                                                                             
     object       Manages Snowflake objects like warehouses and stages                                                                        
     snowpark     Manages procedures and functions.                                                                                           
     spcs         Manages Snowpark Container Services compute pools, services, image registries, and image repositories.                      
     sql          Executes Snowflake query.                                                                                                   
     stage        Manages stages.                                                                                                             
     streamlit    Manages a Streamlit app in Snowflake.                                                                                       
    
  3. Configure the Snowflake connection.

To upgrade an existing installation, run:

uv tool upgrade snowflake-cli

Install Snowflake CLI in FIPS-compliant environments

You can use a Docker image to install Snowflake CLI in an environment that is compliant with FIPS (Federal Information Processing Standards).

Prerequisites

Before installing Snowflake CLI in a FIPS-compliant environment, ensure that you meet the following prerequisites:

  • FIPS-compliant Python: Python must be preinstalled, built, and configured for FIPS compliance. This typically means Python is linked against a FIPS-enabled OpenSSL library.
  • FIPS-enabled OpenSSL: The system’s OpenSSL libraries must be FIPS-compliant and available to Python at runtime.
  • Build tools: Standard build tools (such as a C compiler and Python development headers) must be available, as dependencies will be built from source.
  • Network Access: The environment must allow access to PyPI or your internal package index for downloading source distributions.

Install Snowflake CLI in a FIPS-compliant Dockerfile

To install Snowflake CLI in a FIPS-compliant environment, follow these steps:

  1. Create a Python virtual environment in the container, as shown in the following example:

    python -m venv .venv
  2. Activate the Python virtual environment in the container, as shown in the following example:

    source ~/.venv/bin/activate
  3. Upgrade pip and setuptools in the container, as shown in the following example:

    pip install -U setuptools pip
  4. Install the cryptography, Python connector, and Snowflake CLI dependencies from source in the container, as shown in the following example. Note that all dependencies must be installed from source to ensure they are built against your FIPS-compliant libraries.

    pip install cryptography==44.0.3 --no-binary cryptography
    pip install -U snowflake-connector-python[secure-local-storage] --no-binary snowflake-connector-python[secure-local-storage]
    pip install -U snowflake-cli --no-binary snowflake-cli

    The --no-binary option forces installation from source, ensuring that the builds use FIPS-ready libraries.

Validate the Docker image

To confirm that your Python environment uses a FIPS-enabled OpenSSL library, enter the following command in the running container:

python -c "import ssl; print(ssl.OPENSSL_VERSION)"

After installing Snowflake CLI and validating the Docker image, you can use Snowflake CLI in the container.

snow <your-command>

where <your-command> is any valid Snowflake CLI command, such as snow --help.

Install command auto-completion functionality

Snowflake CLI supports tab completion for bash, zsh, fish, and PowerShell. The completion command auto-detects your current shell.

  1. Run the following command:

    snow --install-completion

    The output reports the shell that completion was installed for, along with where the completion script was written. For example, in zsh:

    zsh completion installed in <user home>/.zfunc/_snow
    Completion will take effect once you restart the terminal
  2. To apply the change, restart your shell or source your shell profile. For example:

    source ~/.zshrc

Note

If snow --install-completion doesn’t modify your shell profile (for example, in environments with non-standard shell setups), you can install completion manually:

  1. Run snow --show-completion to print the completion script for your current shell.
  2. Append the printed script to your shell profile (.bashrc, .zshrc, .config/fish/config.fish, or your PowerShell profile).
  3. Restart your shell, or source the profile.