Token导航 LogoToken导航TokenDH.com
运维和基础设施执行命令unknown未标认证来源可访问许可证需确认审计未展示

snowflake-cliSnowflake CLI 运维

Agent Skill

snowflake-cli 用于补充运维和基础设施相关能力,适合在 Local Agent 中需要让 Agent 承接运维和基础设施相关任务时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

485

周安装

20

下载量

158
Local Agent

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:snowflake-cli(Snowflake CLI 运维)
来源仓库:https://smithery.ai
仓库路径:snowflake-cli
安装命令:
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。当前暂无明确安装命令,请以来源页面说明为准。

简介

snowflake-cli 用于补充运维和基础设施相关能力,适合在 Local Agent 中承接运维和基础设施相关任务。

  • 它能协助 Agent 处理运维和基础设施相关任务,提升工作效率。
  • 安装方式未知,建议结合来源仓库和原始 README 核验具体用法。
  • 安装前请确认权限范围和维护状态,注意是否涉及联网、命令执行或文件读写操作。
  • 该技能适用于运维和基础设施类任务,需配合 Local Agent 使用。

SKILL.md

Snowflake CLI (snow)

Execute SQL, manage Snowflake objects, and deploy applications using the Snowflake CLI command-line tool.

When to Use This Skill

Activate this skill when users ask about:

  • Running SQL queries and scripts from command line
  • Deploying Streamlit applications to Snowflake
  • Managing Snowflake stages (upload/download/execute files)
  • Using variables and templating in SQL scripts
  • Executing Snowpark procedures and Python scripts
  • Managing database objects (warehouses, tables, etc.)
  • Automating Snowflake operations in CI/CD pipelines
  • Multi-environment deployments with variables
  • Troubleshooting CLI connection or execution issues

Quick Start

Three Main Use Cases:

  1. SQL Execution - Run queries and scripts with variable substitution
  2. Deployments - Deploy Streamlit apps and Snowpark objects
  3. Stage Operations - Manage files and execute scripts from stages

Connection Behavior

Important: The Snowflake CLI uses the default connection profile from ~/.snowflake/connections.toml unless you specify a different connection with the -c or --connection flag.

# Uses 'default' connection (implicit)
snow sql -q "SELECT CURRENT_USER()"

# Uses 'default' connection (explicit)
snow sql -q "SELECT CURRENT_USER()" -c default

# Uses specific named connection
snow sql -q "SELECT CURRENT_USER()" -c prod

For connection configuration, see the snowflake-connections skill.

SQL Execution

# Inline query
snow sql -q "SELECT * FROM my_table" -c default

# Execute file
snow sql -f script.sql -c default

# With variables (Jinja {{ }} or <% %> syntax)
snow sql -q "SELECT * FROM {{db}}.{{schema}}.table" \
  -D db=PROD_DB -D schema=SALES -c default

Variables & Templating

Critical Concept: Snowflake CLI supports three different variable syntaxes depending on context.

Three Syntax Types

1. Bash Variables - Shell expansion (for environment control):

DB="PROD_DB"
SCHEMA="SALES"
snow sql -q "SELECT * FROM ${DB}.${SCHEMA}.orders" -c default

Use for: Connection names, file paths, environment selection, shell control flow

2. Standard Syntax <% %> - Default for snow sql commands:

# Single-line query with -q flag
snow sql -q "SELECT * FROM <% db %>.<% schema %>.orders" \
  -D db=PROD_DB -D schema=SALES -c default

# Multi-line query with -i flag (reads from stdin)
# The -i flag tells snow sql to read SQL from standard input
# <<EOF creates a here-document that feeds multi-line SQL to stdin
snow sql -i -D db=PROD_DB -D schema=SALES -c default <<EOF
SELECT
  order_id,
  customer_id,
  order_total
FROM <% db %>.<% schema %>.orders
WHERE order_date >= CURRENT_DATE - 7;
EOF

Understanding heredoc (<<EOF):

  • <<EOF - Start of here-document (ends with matching EOF)
  • SQL between the markers is fed to snow sql -i as standard input
  • Variables are substituted using <% %> syntax
  • Useful for readable multi-line SQL without escaping quotes
  • The closing EOF must be on its own line with no indentation

Combining bash variables with heredoc for multi-statement scripts:

# Set bash variables for environment and database objects
ENV="prod"
CONNECTION="${ENV}_connection"
DB="PROD_DB"
SCHEMA="SALES"
TABLE="orders"

# Heredoc enables multiple SQL statements and complex scripts
# without worrying about quote escaping or line continuations
# Bash expands ${variables} before sending to Snowflake
snow sql -i -c ${CONNECTION} <<EOF
-- Create or replace view
CREATE OR REPLACE VIEW ${DB}.${SCHEMA}.recent_${TABLE} AS
SELECT
  order_id,
  customer_id,
  order_total,
  order_date,
  '${ENV}' as environment
FROM ${DB}.${SCHEMA}.${TABLE}
WHERE order_date >= CURRENT_DATE - 7;

-- Grant permissions
GRANT SELECT ON VIEW ${DB}.${SCHEMA}.recent_${TABLE} TO ROLE ANALYST;

-- Verify row count
SELECT
  COUNT(*) as row_count,
  MIN(order_date) as earliest_date,
  MAX(order_date) as latest_date
FROM ${DB}.${SCHEMA}.recent_${TABLE};
EOF

Why use heredoc:

  • ✅ Multiple SQL statements in one execution
  • ✅ No quote escaping needed for complex SQL
  • ✅ Readable multi-line scripts with comments
  • ✅ Bash expands ${VAR} before sending to Snowflake
  • ✅ Natural formatting for longer migration or deployment scripts

When to use bash vs Snowflake CLI variables:

  • Bash ${VAR} - Simple, expanded before execution (use for most cases)
  • Snowflake CLI <% var %> - Use with -D flags when you need Snowflake CLI to handle substitution (safer for user input)

Use for: Inline SQL and heredoc with snow sql -q or snow sql -i

3. Jinja Syntax {{}} - Automatic for staged SQL files:

# SQL files on stage use Jinja automatically (no flag needed)
snow stage execute @my_stage/script.sql -c default \
  -D db=PROD_DB \
  -D schema=SALES

Use for: SQL files executed from stages with snow stage execute

Template Syntax Control

Control which syntaxes are enabled with --enable-templating:

# STANDARD (default): <% var %> only
snow sql -q "SELECT <% var %>" -D var=value

# JINJA: {{ var }} only
snow sql --enable-templating JINJA -q "SELECT {{ var }}" -D var=value

# LEGACY: &var or &{var} (SnowSQL compatibility)
snow sql --enable-templating LEGACY -q "SELECT &var" -D var=value

# ALL: Enable all syntaxes
snow sql --enable-templating ALL -q "SELECT <% var %> {{ var }}" -D var=value

# NONE: Disable templating (useful for queries containing template-like text)
snow sql --enable-templating NONE -q "SELECT '<% not_a_var %>'"

Default: STANDARD and LEGACY are enabled by default

Important Notes

  • Stage execution automatically uses Jinja - SQL files uploaded to stages should use {{var}} syntax
  • String values need quotes - Use -D name="'John'" for string literals
  • Enable Jinja explicitly - Add --enable-templating JINJA to use {{}} with snow sql commands
  • Combining variable types - Use bash for environment, <% %> for SQL: ENV="prod" CONNECTION="${ENV}_connection" snow sql -c ${CONNECTION} -i -D db=PROD_DB <<EOF SELECT * FROM <% db %>.orders; EOF

Comparison Table

FeatureBash VariablesStandard <% %>Jinja {{}}
Resolved byShellSnowflake CLISnowflake CLI
When resolvedBefore CLI runsBefore sent to SnowflakeBefore sent to Snowflake
Define withVAR=value-D var=value-D var=value
Use in command${VAR}<% var %>{{var}}
Default enabledAlwaysYesNo (except stage execute)
Best forShell operationsSQL templatingSQL files on stage

Deployments

Streamlit Apps

snow streamlit deploy --replace -c default
snow streamlit list -c default
snow streamlit get-url my_app -c default

Snowpark (UDFs/Procedures)

snow snowpark build -c default
snow snowpark deploy --replace -c default

Project Creation

See PROJECT_CREATION.md for:

  • How to create app projects
  • Streamlit project structures
  • Snowpark object projects

Stage Operations

Quick Commands:

# Upload/download files
snow stage copy ./script.sql @my_stage/ -c default
snow stage copy @my_stage/file.csv ./downloads/ -c default

# List files
snow stage list-files @my_stage -c default

# Execute SQL (uses Jinja {{ }} syntax automatically)
snow stage execute @my_stage/script.sql -c default -D db=PROD_DB

# Execute Python (access variables via os.environ)
snow stage execute @my_stage/script.py -c default -D var=value

For comprehensive stage management, see STAGE_OPERATIONS.md for:

  • Complete file operations (upload, download, list, remove)
  • Variable syntax for SQL vs Python scripts
  • Multi-file execution patterns
  • Integration with schemachange
  • Troubleshooting guide

Object Management

# List objects
snow object list warehouse -c default
snow object list table -c default

# Describe object
snow object describe table my_table -c default

# Create object
snow object create warehouse my_wh --size SMALL -c default

Connection Configuration

All Snowflake CLI commands use the -c flag to specify connection profiles:

snow sql -c default -q "SELECT * FROM table"
snow sql -c prod -q "SELECT * FROM table"

For complete connection setup, see the snowflake-connections skill for:

  • Creating ~/.snowflake/connections.toml
  • All authentication methods (SSO, key pair, OAuth, username/password)
  • Multiple environment configurations (dev, staging, prod)
  • Environment variable overrides
  • Security best practices and troubleshooting

Common Patterns

Multi-Environment Deployment

#!/bin/bash
ENV="${1:-dev}"

case $ENV in
  dev)
    DB="DEV_DB"
    SCHEMA="DEV_SCHEMA"
    ;;
  prod)
    DB="PROD_DB"
    SCHEMA="PROD_SCHEMA"
    ;;
esac

snow sql -c default -i -D db=$DB -D schema=$SCHEMA <<EOF
CREATE OR REPLACE TABLE <% db %>.<% schema %>.my_table AS
SELECT * FROM <% db %>.<% schema %>.source_table;
EOF

For stage-specific patterns, see STAGE_OPERATIONS.md for:

  • Migration scripts from stage
  • Data pipeline execution
  • Multi-environment deployments with stages
  • CI/CD integration examples

Troubleshooting

Variable Not Substituted

Problem: Variable appears literally in SQL (e.g., SELECT * FROM <% db %>.orders)

Solutions:

  1. Check syntax matches command type:

- snow sql -q → Use <% var %> - snow stage execute → Use {{var}} - Bash expansion → Use ${var}

  1. Verify -D flag is before SQL
  2. Ensure proper quoting for string values: -D name="'John'"

Syntax Conflicts

Problem: Query contains template-like text

Example: snow sql -q "SELECT '<% not_a_variable %>'"

Solution: Disable templating

snow sql --enable-templating NONE -q "SELECT '<% not_a_variable %>'"

Stage Execute Variables

Problem: Variables not working with snow stage execute

Solution: Use Jinja {{}} syntax (default for stage execute)

# ✅ CORRECT
snow stage execute @stage/script.sql -D var=value

# In script.sql: SELECT * FROM {{ var }}.table

Permission Errors

Problem: SQL access control error: Insufficient privileges

Solution: Grant appropriate permissions:

GRANT USAGE ON STAGE my_stage TO ROLE my_role;
GRANT READ, WRITE ON STAGE my_stage TO ROLE my_role;

Connection Failed

Problem: Can't connect to Snowflake

Quick Test:

snow connection test -c default

For comprehensive connection troubleshooting, see the snowflake-connections skill


Quick Reference

# Bash variables (shell expansion)
DB="PROD"
snow sql -c default -q "USE ${DB}_DATABASE"

# Standard syntax (default)
snow sql -c default -q "USE <% db %>" -D db=PROD

# Jinja syntax (explicit)
snow sql --enable-templating JINJA -c default -q "USE {{ db }}" -D db=PROD

# Stage execute (Jinja automatic)
snow stage execute @stage/script.sql -D db=PROD

# Disable templating
snow sql --enable-templating NONE -q "SELECT '<% literal %>'"

# String values need quotes
snow sql -D name="'John'" -D date="'2024-01-01'"

# Test connection
snow connection test -c default

# Multi-environment pattern
ENV="${1:-dev}"
case $ENV in
  dev) DB="DEV_DB" ;;
  prod) DB="PROD_DB" ;;
esac
snow sql -c default -i -D db=$DB <<EOF
SELECT * FROM <% db %>.orders;
EOF

Best Practices

DO:

  • Use bash variables for environment selection
  • Use <% %> for inline SQL queries
  • Use {{}} for staged SQL files (automatic)
  • Organize staged scripts in subdirectories
  • Quote string variable values: -D name="'value'"
  • Test locally before deploying to production
  • Use multiple connections for different environments

DON'T:

  • Mix variable syntaxes incorrectly
  • Hardcode environment-specific values
  • Use {{}} with snow sql without --enable-templating JINJA
  • Forget to grant stage permissions
  • Skip error handling in automation scripts

References

  • STAGE_OPERATIONS.md - Comprehensive stage management and script execution
  • snowflake-connections skill - Connection setup and authentication
  • Snowflake CLI Documentation - Official documentation

Goal: Transform AI agents into expert Snowflake CLI operators who efficiently execute SQL, manage stages, deploy applications, and automate operations with proper variable handling and connection configuration.

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Local Agent

92.51%
按下载量换算146

安全审计

暂无安全审计结果可展示。

权限和风险

执行命令

安装流程涉及命令执行,可能通过 第三方 CLI 联网下载 Skill 或依赖。用户安装前应确认命令来源、仓库内容和执行环境。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills