Install the "snowflake-snowpark-dbt" agent skill from https://github.com/Mindrally/skills/tree/main/snowflake-snowpark-dbt into .claude/skills/snowflake-snowpark-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snowflake-snowpark-dbt", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "snowflake-snowpark-dbt" agent skill from https://github.com/Mindrally/skills/tree/main/snowflake-snowpark-dbt into .agents/skills/snowflake-snowpark-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snowflake-snowpark-dbt", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "snowflake-snowpark-dbt" agent skill from https://github.com/Mindrally/skills/tree/main/snowflake-snowpark-dbt into .cursor/skills/snowflake-snowpark-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snowflake-snowpark-dbt", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "snowflake-snowpark-dbt" agent skill from https://github.com/Mindrally/skills/tree/main/snowflake-snowpark-dbt into .gemini/skills/snowflake-snowpark-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snowflake-snowpark-dbt", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "snowflake-snowpark-dbt" agent skill from https://github.com/Mindrally/skills/tree/main/snowflake-snowpark-dbt into .github/skills/snowflake-snowpark-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snowflake-snowpark-dbt", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "snowflake-snowpark-dbt" agent skill from https://github.com/Mindrally/skills/tree/main/snowflake-snowpark-dbt into .opencode/skills/snowflake-snowpark-dbt/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "snowflake-snowpark-dbt", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
snowflake-snowpark-dbt
GitHub stars
271
Token cost
~2.5k tokens
SKILL.md length
753 words
Files
1
Skills in repo
34
Repo updated
First seen
Licence
Apache-2.0
At a glance
Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter.
Works in 8 steps: Snowpark: open a session — Build a… → Snowpark: express transforms with the… → Snowpark: push compute server-side — Use… → …
Writing server-side Snowpark pipelines
SKILL.md covers Workflow for a Snowpark or dbt…, Snowpark Python, dbt with the Snowflake Adapter and Best Practices, plus 1 more section
Calls dbt and pip; needs SNOWFLAKE_PASSWORD
What it does
Snowflake Snowpark Dbt is an agent skill from Mindrally/skills. Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter. Use when writing server-side Snowpark pipelines, registering UDFs or stored procedures, choosing dbt materializations, configuring incremental models, or setting up sources and tests for a Snowflake-backed dbt project.
Its SKILL.md is about 2.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Data & Analytics, covering Data pipelines and ETL, Data warehousing and DataFrames. It works with Snowflake, dbt and Python. The repository describes itself as: 265+ Claude Code skills for every major framework and language. Install with: npx skills add Mindrally/skills. The licence is Apache-2.0.
When your agent uses it
Writing server-side Snowpark pipelines
Registering UDFs
Stored procedures
Choosing dbt materializations
Example prompts
“/snowflake-snowpark-dbt”
Requirements
Python 3
Workflow steps
8 steps, taken from the first numbered list in SKILL.md.
1Snowpark: open a session — Build a Session from environment-scoped credentials, specifying role, warehouse, database, and schema explicitly.
2Snowpark: express transforms with the DataFrame API — Prefer .filter(), .select(), .group_by().agg(), and .join() over raw SQL strings for…
3Snowpark: push compute server-side — Use scalar UDFs for row-wise logic, vectorized (pandas) UDFs for ML inference, UDTFs when one input…
4dbt: model in layers — Staging models (stg_*) rename and type-cast; mart models express business logic on top of staging.
5dbt: choose a materialization — view for cheap logic, table only when reads are frequent, incremental for large fact tables, dynamic_table…
6dbt: define sources and tests — Declare sources in _sources.yml with freshness thresholds; add unique/not_null tests on key columns.
7dbt: run selectively — Use dbt run --select model+ (model and downstream) or +model (model and upstream) instead of full-project runs…
8dbt: build and validate — Run dbt build (run + test in dependency order) before merging, and dbt docs generate to keep documentation…
What it can do on your machine
Read from SKILL.md and the folder at commit 7682ca7. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
dbt
pip
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
SNOWFLAKE_PASSWORD
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Snowflake Snowpark Dbt loads about 2.5k tokens when it runs. Until then it costs about 90 tokens; SKILL.md has 753 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~90
When it runs· the whole SKILL.md, loaded when a task matches
~2.5k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/snowflake-snowpark-dbt/SKILL.md (or your agent's skills folder).
name
snowflake-snowpark-dbt
description
Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter. Use when writing server-side Snowpark pipelines, registering UDFs or stored procedures, choosing dbt materializations, configuring incremental models, or setting up sources and tests for a Snowflake-backed dbt project.
metadata.maintainer
Mindrally
metadata.source
https://github.com/Mindrally/skills
Snowflake Snowpark Python & dbt
This skill covers building production data transformation pipelines with Snowpark Python (Snowflake's server-side Python API) and with dbt using the dbt-snowflake adapter.
Workflow for a Snowpark or dbt Transformation
Snowpark: open a session — Build a Session from environment-scoped credentials, specifying role, warehouse, database, and schema explicitly.
Snowpark: express transforms with the DataFrame API — Prefer .filter(), .select(), .group_by().agg(), and .join() over raw SQL strings for reusable pipeline code; DataFrames are lazily evaluated and only execute on .collect()/.show()/a write action.
Snowpark: push compute server-side — Use scalar UDFs for row-wise logic, vectorized (pandas) UDFs for ML inference, UDTFs when one input row produces multiple output rows, and stored procedures for multi-step server-side orchestration.
dbt: model in layers — Staging models (stg_*) rename and type-cast; mart models express business logic on top of staging.
dbt: choose a materialization — view for cheap logic, table only when reads are frequent, incremental for large fact tables, dynamic_table for near-real-time freshness needs.
dbt: define sources and tests — Declare sources in _sources.yml with freshness thresholds; add unique/not_null tests on key columns.
dbt: run selectively — Use dbt run --select model+ (model and downstream) or +model (model and upstream) instead of full-project runs during iteration.
dbt: build and validate — Run dbt build (run + test in dependency order) before merging, and dbt docs generate to keep documentation current.
Snowpark Python
Snowpark runs Python server-side inside a Snowflake warehouse — data never leaves Snowflake. Core abstractions: Session, DataFrame, UDF, UDTF, UDAF, and Stored Procedure.
from snowflake.snowpark.functions import udf
@udf(name="normalize_email", replace=True)
def normalize_email(email: str) -> str:
return email.strip().lower() if email else None
Vectorized UDFs
Vectorized (pandas) UDFs are 10-100x faster than scalar UDFs for ML inference because they batch rows instead of invoking Python per row.
python
import pandas as pd
from snowflake.snowpark.functions import udf
@udf(name="predict_score", packages=["scikit-learn", "pandas"], replace=True)
def predict_score(features: pd.Series) -> pd.Series:
import pickle, sys
model = pickle.load(open(sys.path[0] + "/model.pkl", "rb"))
return pd.Series(model.predict(features.values.reshape(-1, 1)))
UDTFs (return multiple rows per input)
python
from snowflake.snowpark.types import StructType, StructField, StringType
class Tokenizer:
def process(self, text: str):
for token in text.split():
yield (token,)
tokenize = session.udtf.register(
Tokenizer,
output_schema=StructType([StructField("token", StringType())]),
input_types=[StringType()],
name="tokenize",
replace=True,
)
Stored procedures
python
from snowflake.snowpark import Session
from snowflake.snowpark.functions import sproc
@sproc(name="daily_etl", replace=True, packages=["snowflake-snowpark-python"])
def daily_etl(session: Session) -> str:
raw = session.table("raw_events")
cleaned = raw.filter(raw["event_type"].is_not_null())
cleaned.write.mode("overwrite").save_as_table("cleaned_events")
return f"Processed {cleaned.count()} rows"
Packages and file access
Add third-party packages with session.add_packages("pandas", "scikit-learn==1.3.0", "xgboost") — pin versions for production UDFs and stored procedures.
Attach static files (e.g., a pickled model) with session.add_import("@my_stage/model.pkl").
For pandas-on-Snowflake with no data movement to the client, use modin.pandas with the Snowpark plugin: import modin.pandas as pd; import snowflake.snowpark.modin.plugin; df = pd.read_snowflake("my_table").
Never commit real credentials into profiles.yml — always source secrets from env_var().
Materializations
Available materializations: view, table, incremental, ephemeral, dynamic_table. Default to view for cheap logic; reserve table for models read frequently enough to justify storage cost; use incremental for large fact tables and dynamic_table when near-real-time freshness matters.
Dynamic Tables in dbt
sql
{{ config(materialized='dynamic_table', snowflake_warehouse='transforming', target_lag='1 hour') }}
SELECT customer_id, SUM(amount) AS lifetime_value FROM {{ ref('stg_orders') }} GROUP BY 1
Show full SKILL.md (305 more words)Show less
Incremental models
sql
{{
config(
materialized='incremental',
unique_key='event_id',
incremental_strategy='merge',
on_schema_change='sync_all_columns'
)
}}
SELECT * FROM {{ ref('stg_events') }}
{% if is_incremental() %}
WHERE event_timestamp > (SELECT MAX(event_timestamp) FROM {{ this }})
{% endif %}
Always guard {{ this }} with {% if is_incremental() %} — referencing it unconditionally breaks the first (full) run, when the target table doesn't exist yet.
Snowflake-specific configs
cluster_by=['col1', 'col2'] — clustering, large tables only (generally >1TB).
transient=true — no Fail-safe, lower storage cost; use for staging models.
query_tag='finance_daily' — workload attribution for cost tracking.
copy_grants=true — preserve access grants across a CREATE OR REPLACE.
snowflake_warehouse='lg_wh' — per-model warehouse override for heavy transforms.
secure=true — secure views, for models exposing sensitive columns.
Snowflake Snowpark Dbt next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Snowflake Snowpark Dbt compared with similar skills
A skill your agent uses when writing Snowflake SQL, building data pipelines with Dynamic Tables or Streams/Tasks, using Cortex AI functions, creating Cortex Agents, writing Snowpark Python…
Persists task and asset state across retries and DAG runs using Airflow 3.3's AIP-103 key/value stores (taskstatestore, assetstatestore) and the crash-safe ResumableJobMixin.
A skill your agent uses when migrating a dbt project from one data platform or data warehouse to another (e.g., Snowflake to Databricks, Databricks to Snowflake) using dbt Fusion's real-time…
Best practices for AutoML and hyperparameter search with Optuna, Ray Tune, and PyCaret, covering search-space design, validation splits, and leakage prevention.
Clean, maintainable, human-readable code principles combined with anti-over-engineering discipline: naming, single responsibility, DRY, and scoping changes to exactly what was requested.
Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter. Snowflake Snowpark Dbt is an agent skill from Mindrally/skills. Best practices for Snowpark Python (DataFrames, UDFs, UDTFs, stored procedures) and dbt with the dbt-snowflake adapter.
How do I install Snowflake Snowpark Dbt in Claude Code?
Run `npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a claude-code`. Or copy the skill folder (snowflake-snowpark-dbt in Mindrally/skills) into .claude/skills/snowflake-snowpark-dbt in your project. Claude Code loads it when a task matches its description.
How do I install Snowflake Snowpark Dbt in Codex?
Run `npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a codex`. Or copy the skill folder (snowflake-snowpark-dbt in Mindrally/skills) into .agents/skills/snowflake-snowpark-dbt in your project. Codex loads it when a task matches its description.
Can I use Snowflake Snowpark Dbt in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Mindrally/skills --skill snowflake-snowpark-dbt -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/snowflake-snowpark-dbt, .gemini/skills/snowflake-snowpark-dbt, .github/skills/snowflake-snowpark-dbt and .opencode/skills/snowflake-snowpark-dbt in your project.
What does Snowflake Snowpark Dbt need to run?
Going by SKILL.md and its folder, Snowflake Snowpark Dbt needs the command-line tools its instructions call (dbt and pip) and credentials named SNOWFLAKE_PASSWORD. Our summary lists: Python 3.
Does Snowflake Snowpark Dbt access the network?
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Snowflake Snowpark Dbt safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Snowflake Snowpark Dbt use?
Snowflake Snowpark Dbt is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Snowflake Snowpark Dbt use?
About 2.5k tokens (SKILL.md is roughly 9.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Snowflake Snowpark Dbt?
Skills that share tags, products or a category with Snowflake Snowpark Dbt: Snowflake Development (sickn33/agentic-awesome-skills, 47k stars), Snowflake Development (alirezarezvani/claude-skills, 28k stars), Data Warehouse Experimentation (rampstackco/claude-skills, 945 stars) and Airflow State Store (astronomer/agents, 451 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Snowflake Snowpark Dbt?
Mindrally (a GitHub organization) maintains it in Mindrally/skills, which has 271 GitHub stars. The repository holds 34 skills in this directory. The repository was last updated on October 8, 2026.
Source: Mindrally/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.