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:
debpackages,rpmpackages.
To install Snowflake CLI using the deb package manager:
Download the Snowflake CLI
debfrom 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
rpmpackage 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:
snow --helpUsage: 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. │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
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:
snow --helpUsage: 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. │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
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:
snow --helpUsage: 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. │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
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:
snow --helpUsage: 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. │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
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:
snow --helpUsage: 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. │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
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:
snow --helpUsage: 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. │ ╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
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:
python -m venv .venv
Activate the Python virtual environment in the container, as shown in the following example:
source ~/.venv/bin/activate
Upgrade
pipandsetuptoolsin 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-binaryoption 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 standard shell tab completion functionality.
To install auto-completion into Snowflake CLI, perform the following steps:
Run the
snow --install-completioncommand:snow --install-completionzsh completion installed in <user home>/.zfunc/_snow Completion will take effect once you restart the terminal
Run the
snow --show-completioncommand to generate the commands you need to add to your shell profile (.bashrc,.bash_profile,.zshrc, and others):snow --show-completion_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,
.bashrcin 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
sourceyour shell profile file, such as:source ~/.bashrc
To test the feature, enter a snow command followed by a
TAB, as shown:snow app [TAB]
deploy init open run teardown version