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
Before using Snowflake CLI, you must have a valid Snowflake account.
To run Streamlit in Snowflake using Snowflake CLI, you must have a Snowflake account with permission to use Streamlit.
To run Snowpark Container Services in Snowflake using Snowflake CLI, you must have a Snowflake account with privileges to use Snowpark Container Services.
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
To install Snowflake CLI using platform-specific package managers, use one of the following procedures:
Install with Linux package managers
If you use a Linux operating system, you can install Snowflake CLI with package managers that support the following:
deb packages,
rpm packages.
To install Snowflake CLI using the deb package manager:
Download the Snowflake CLI deb from the Snowflake CLI repository.
Install the package by running the following command:
sudo dpkg -i snowflake-cli-<version>.deb
To install Snowflake CLI using the rpm package manager:
Download the Snowflake CLI rpm package from the Snowflake CLI repository.
Install the package by running the following command:
sudo rpm -i snowflake-cli-<version>.rpm
To verify that the software was installed successfully, run the following command:
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. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Configure the Snowflake connection.
Install with the MacOS package installer
To install Snowflake CLI on MacOS, do the following:
Download the Snowflake CLI installer from the Snowflake CLI repository.
Run the installer and follow the instructions to install Snowflake CLI.
To verify that the software was installed successfully, open new terminal and run the following command:
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. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Configure the Snowflake connection.
Install with the Windows installer
To install Snowflake CLI on Windows, do the following:
Download the Snowflake CLI installer from the Snowflake CLI repository.
Run the installer and follow the instructions to install Snowflake CLI.
To verify that the software was installed successfully, open new terminal and run the following command:
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. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Configure the Snowflake connection.
Install with Homebrew
If you use a Mac operating system, you can install Snowflake CLI with Homebrew.
Install Homebrew, if necessary.
To give Homebrew access to the Snowflake CLI repository, run the following command:
brew tap snowflakedb/snowflake-cli
brew update
To install Snowflake CLI, run the following command:
brew install snowflake-cli
To verify that the software was installed successfully, run the following command:
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. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Configure the Snowflake connection.
Advanced local installations
You can also install Snowflake CLI as a Python package using either of the following:
Snowflake recommends installing as a Python package only for development purposes or when installing binaries isn’t possible in your environment.
Install with pip (PyPi)
Note
This method modifies the Python environment where you install Snowflake CLI. Consider using pipx instead to avoid dependency conflicts.
To install Snowflake CLI using pip, you must have Python version 3.10 or later installed.
Run the following shell command:
pip install snowflake-cli
To verify that the software was installed successfully, run the following command:
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. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Configure the Snowflake connection.
Install with pipx
pipx provides an alternative to pip that installs and executes Python packages into isolated virtual environments. Installing Snowflake CLI with pipx does not, therefore, modify your current Python environment.
To install Snowflake CLI using pipx, you must have pipx installed.
Run the following shell command:
pipx install snowflake-cli
To verify that the software was installed successfully, run the following command:
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. │
╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
Configure the Snowflake connection.
Installing 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:
Create a Python virtual environment in the container, as shown in the following example:
Activate the Python virtual environment in the container, as shown in the following example:
source ~/.venv/bin/activate
Upgrade pip and setuptools in the container, as shown in the following example:
pip install -U setuptools pip
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.
where <your-command> is any valid Snowflake CLI command, such as snow --help.
Install command auto-completion functionality
Snowflake CLI supports standard shell tab completion functionality.
To install auto-completion into Snowflake CLI, perform the following steps:
Run the snow --install-completion command:
snow --install-completion
zsh completion installed in <user home>/.zfunc/_snow
Completion will take effect once you restart the terminal
Run the snow --show-completion command to generate the commands you need to add to your shell profile (.bashrc, .bash_profile, .zshrc, and others):
_snow_completion() {
local IFS=$'
'
COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \
COMP_CWORD=$COMP_CWORD \
_SNOW_COMPLETE=complete_bash $1 ) )
return 0
}
complete -o default -F _snow_completion snow
Select and copy the command output text.
Open your shell profile file, .bashrc in this example, and paste the copied text:
export SHELL=/bin/bash
...
_snow_completion() {
local IFS=$'
'
COMPREPLY=( $( env COMP_WORDS="${COMP_WORDS[*]}" \
COMP_CWORD=$COMP_CWORD \
_SNOW_COMPLETE=complete_bash $1 ) )
return 0
}
complete -o default -F _snow_completion snow
Save the file.
To activate the tab-completion functionality, restart your shell or source your shell profile file, such as:
To test the feature, enter a snow command followed by a TAB, as shown:
deploy init open run teardown version