Build and deploy Streamlit apps natively in Snowflake. Covers snowflake.yml scaffolding, Snowpark sessions, multi-page structure, and Marketplace publishing as Native Apps. Use when building data apps on Snowflake, deploying SiS, or fixing package channel errors, authentication issues.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/jezweb/claude-skills/blob/main/skills/streamlit-snowflake/SKILL.md -a claude-code --skill streamlit-snowflakeInstallation paths:
.claude/skills/streamlit-snowflake/# Streamlit in Snowflake Skill
Build and deploy Streamlit apps natively within Snowflake, including Marketplace publishing as Native Apps.
## Quick Start
### 1. Initialize Project
Copy the templates to your project:
```bash
# Create project directory
mkdir my-streamlit-app && cd my-streamlit-app
# Copy templates (Claude will provide these)
```
### 2. Configure snowflake.yml
Update placeholders in `snowflake.yml`:
```yaml
definition_version: 2
entities:
my_app:
type: streamlit
identifier: my_streamlit_app # ← Your app name
stage: my_app_stage # ← Your stage name
query_warehouse: my_warehouse # ← Your warehouse
main_file: streamlit_app.py
pages_dir: pages/
artifacts:
- common/
- environment.yml
```
### 3. Deploy
```bash
# Deploy to Snowflake
snow streamlit deploy --replace
# Open in browser
snow streamlit deploy --replace --open
```
## When to Use This Skill
**Use when:**
- Building data apps that run natively in Snowflake
- Need Snowpark integration for data access
- Publishing apps to Snowflake Marketplace
- Setting up CI/CD for Streamlit in Snowflake
**Don't use when:**
- Hosting Streamlit externally (use Streamlit Community Cloud)
- Building general Snowpark pipelines (use a Snowpark-specific skill)
- Need custom Streamlit components (not supported in SiS)
## Runtime Environments
Snowflake offers **two runtime options** for Streamlit apps:
### Warehouse Runtime (Default)
- Creates a **personal instance** for each viewer
- Uses `environment.yml` with Snowflake Anaconda Channel
- Python 3.9, 3.10, or 3.11
- Streamlit 1.22.0 - 1.35.0
- Best for: Sporadic usage, isolated sessions
### Container Runtime (Preview)
- Creates a **shared instance** for all viewers
- Uses `requirements.txt` or `pyproject.toml` with **PyPI packages**
- Python 3.11 only
- Streamlit 1.49+
- **Significantly lower cost** (~$2.88/day vs ~$48/day for equivalent compute)
- Best for: Frequent usage, cost optim