Documentation
OpenSnow CLI
opensnow-pp-cli
Install
npx -y @mvanhorn/printing-press-library install opensnowInstalls the CLI binary and the agent skill for Claude Code, Codex, Cursor, Gemini CLI, Copilot, and more. Add --cli-only or --skill-only for one half. Requires Node.
Documentation
Every OpenSnow forecast, snow report, and Daily Snow post — plus powder scoring, storm tracking, and historical trends no other tool has.
The OpenSnow CLI puts the same hyper-local mountain forecasts trusted by millions of skiers directly into your terminal. Sync resort data to a local SQLite store, then score powder days, rank resorts, and track storms offline. The Daily Snow digest brings expert meteorologist forecasts to your terminal without opening a browser.
Created by @davemorin (Dave Morin).
Authentication
OpenSnow API access is partnership-only. Set your API key with opensnow-pp-cli auth set-token <key>. The key is stored locally and passed as a query parameter on every request. Access level 5 covers point-based forecasts; level 10 unlocks named locations, snow reports, and Daily Snow.
Alternatively, set the environment variable:
export OPENSNOW_API_KEY=your-api-key
Contact hello@opensnow.com to request API partnership access.
Quick Start
# Set your OpenSnow API key (partnership access required)
opensnow-pp-cli auth set-token YOUR_API_KEY
# Verify API key is valid and API is reachable
opensnow-pp-cli doctor
# Get the 5-day forecast for Alta
opensnow-pp-cli forecast get-detail alta
# Get Steamboat's latest snow report
opensnow-pp-cli snow-report steamboat
# Read the Colorado Daily Snow forecast
opensnow-pp-cli daily-reads content get-daily-snow colorado
# Save your favorite resorts
opensnow-pp-cli favorites add alta steamboat telluride
# See your dashboard
opensnow-pp-cli dashboard
Unique Features
These capabilities aren't available in any other tool for this API.
Powder intelligence
-
powder-score— Rate upcoming days 1-10 for powder quality by combining forecast snow totals, wind, temperature, and historical averagesWhen an agent needs to recommend the single best day to ski this week, this command gives a scored ranking instead of raw forecast numbers
opensnow-pp-cli powder-score alta --days 5 --agent -
powder-rank— Rank all synced resorts by powder potential, combining expected snowfall, base depth, and terrain opennessWhen an agent needs to answer 'where should I ski this weekend in Colorado', this gives a ranked list with scores
opensnow-pp-cli powder-rank --slugs vail,aspen,telluride --agent -
storm-track— Show storm progression — when snow starts, peaks, and ends — by correlating rolling hourly forecasts over timeWhen planning travel around a storm, this shows exactly when to arrive and when the storm window closes
opensnow-pp-cli storm-track telluride --agent -
overnight— Check the semi-daily forecast for the overnight period at favorited resorts — the powder hunter's morning ritualThe first question every skier asks: 'How much snow fell overnight?' This answers it for all favorites in one call
opensnow-pp-cli overnight --agent
Local state that compounds
-
dashboard— One-command view of all favorited locations with current temp, 24h snow, 5-day total, and operating statusReplaces opening the OpenSnow app — one command shows everything an agent needs about the user's preferred mountains
opensnow-pp-cli dashboard --agent -
diff— Compare current snow report against the last-synced version to see what changed: new snow, lifts opened or closed, status changesAgents monitoring resort conditions can detect meaningful changes without parsing raw reports
opensnow-pp-cli diff alta --agent -
history— Show snowfall trends, season totals vs averages, and base depth progression from cached report snapshotsWhen planning a trip weeks out, historical context shows whether the mountain is trending up or down
opensnow-pp-cli history steamboat --days 30 --agent
Agent-native plumbing
-
digest— Pull all Daily Snow posts for favorited regions, strip HTML to clean text, and show a summary digestExpert forecasts from OpenSnow meteorologists, rendered for agents and terminals instead of requiring a browser
opensnow-pp-cli digest --region colorado --agent
Commands
Forecasts
| Command | Description |
|---|---|
forecast get-by-point | Forecast for any lng,lat coordinate and elevation (access level 5) |
forecast get-detail | 5-day forecast for a named location with current, hourly, and daily periods (access level 10) |
forecast get-snow-detail | 5-day day + night snowfall forecast split into 6am-6pm and 6pm-6am segments (access level 10) |
Snow Reports
| Command | Description |
|---|---|
snow-report | Latest resort-reported snowfall, base depth, operating status, and conditions (access level 10) |
Daily Snow
| Command | Description |
|---|---|
daily-reads content get-daily-snow | Most recent Daily Snow post by an OpenSnow meteorologist for a region |
Powder Intelligence
| Command | Description |
|---|---|
powder-score | Rate upcoming days 1-10 for powder quality at a resort |
powder-rank | Rank multiple resorts by best powder day potential |
storm-track | Track storm progression: start, peak, and end times |
overnight | Overnight snow forecast for all favorited resorts |
Dashboard and Comparison
| Command | Description |
|---|---|
dashboard | Summary view of all favorites: temp, snow, base depth, status |
compare | Side-by-side metrics for multiple resorts |
diff | What changed since last sync: new snow, lift status |
history | Snowfall trends and base depth from cached snapshots |
digest | Daily Snow posts for favorite regions as clean text |
Utilities
| Command | Description |
|---|---|
doctor | Check API key validity and connectivity |
auth set-token | Save API key to config |
auth status | Show current authentication status |
sync | Sync resort data to local SQLite for offline use |
favorites add | Add resort slugs to favorites list |
favorites list | List all favorited resorts |
favorites remove | Remove a resort from favorites |
Output Formats
# Human-readable table (default in terminal, JSON when piped)
opensnow-pp-cli snow-report alta
# JSON for scripting and agents
opensnow-pp-cli snow-report alta --json
# Filter to specific fields
opensnow-pp-cli snow-report alta --json --select status_display,precip_snow_24h,base_depth
# CSV for spreadsheets
opensnow-pp-cli snow-report alta --csv
# Dry run — show the request without sending
opensnow-pp-cli snow-report alta --dry-run
# Agent mode — JSON + compact + no prompts in one flag
opensnow-pp-cli snow-report alta --agent
Agent Usage
This CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--jsonoutput to stdout, errors to stderr - Filterable -
--select id,namereturns only fields you need - Previewable -
--dry-runshows the request without sending - Read-only by default - this CLI does not create, update, delete, publish, send, or mutate remote resources
- Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendlyis set
Exit codes: 0 success, 2 usage error, 3 not found, 4 auth error, 5 API error, 7 rate limited, 10 config error.
Cookbook
# Morning powder check — what fell overnight at all favorites
opensnow-pp-cli overnight
# Best powder day this week at Alta
opensnow-pp-cli powder-score alta --days 5
# Rank Colorado resorts for this weekend
opensnow-pp-cli powder-rank --slugs vail,aspen,telluride,steamboat
# Is a storm coming to Telluride?
opensnow-pp-cli storm-track telluride
# Side-by-side comparison of Vail vs Aspen vs Breckenridge
opensnow-pp-cli compare vail aspen breckenridge
# What changed at Alta since last check?
opensnow-pp-cli diff alta
# Read the Colorado Daily Snow expert forecast
opensnow-pp-cli daily-reads content get-daily-snow colorado
# Get a forecast for an exact GPS coordinate
opensnow-pp-cli forecast get-by-point -111.5838,40.5884 --elev 8530
# Show day + night snowfall detail for Steamboat
opensnow-pp-cli forecast get-snow-detail steamboat
# Sync data locally for offline use
opensnow-pp-cli sync
# Snowfall trends over the last month
opensnow-pp-cli history steamboat --days 30
# Pipeline: get Alta forecast as JSON, extract snow totals
opensnow-pp-cli forecast get-detail alta --json --select precip_snow
# Agent workflow: dashboard for all favorites as compact JSON
opensnow-pp-cli dashboard --agent
Health Check
opensnow-pp-cli doctor
Verifies configuration, credentials, and connectivity to the OpenSnow API. Reports API key status, access level, and reachability.
Configuration
Config file: ~/.config/opensnow-pp-cli/config.toml
Environment variables:
| Name | Required | Description |
|---|---|---|
OPENSNOW_API_KEY | Yes | OpenSnow API key (partnership access) |
OPENSNOW_BASE_URL | No | Override API base URL (default: https://api.opensnow.com) |
OPENSNOW_CONFIG | No | Override config file path |
Troubleshooting
Authentication errors (exit code 4)
- Run
opensnow-pp-cli doctorto check credentials - Verify the environment variable is set:
echo $OPENSNOW_API_KEY - Set your key:
opensnow-pp-cli auth set-token <key>
Not found errors (exit code 3)
- Check the resort slug is correct (case-sensitive)
- Try common slugs: alta, steamboat, vail, aspen, telluride, aspenhighlands
API-specific
- 401 Unauthorized on every request — Run
opensnow-pp-cli auth set-token <key>— the API key must be set before any request - 403 Forbidden on /forecast/detail — Your API key has access level 5 — named-location endpoints require level 10. Contact hello@opensnow.com to upgrade.
- Empty snow report (all nulls) — Resort may be closed for the season. Check status_display field — 'Closed' or 'Summer Operations' means no active snow data.
- No results for a location slug — Slugs are case-sensitive and specific. Try common names: alta, steamboat, aspenhighlands. Email hello@opensnow.com for the full slug list.
Sources & Inspiration
This CLI was built by studying these projects and resources:
- jwise/snow — Python (15 stars)
- meccaLeccaHi/snow_scraper — Python (8 stars)
Generated by CLI Printing Press
For agents: pass /documentation/opensnow/agents.md to install this CLI from a prompt.