Skip to main content

snowcap - Snowflake infrastructure as code

PyPI Python 3.10+ License

Brought to you by Datacoves

Datacoves

Snowcap helps you provision, deploy, and secure resources in Snowflake. Datacoves takes it further: a managed DataOps platform for dbt and Airflow where governance and best practices are built into every layer.

  • Private cloud or SaaS – your data, your choice
  • Managed dbt + Airflow – production-ready from day one
  • In-browser VS Code – onboard developers in minutes
  • Bring your own tools – integrates with your existing stack, no lock-in
  • AI-assisted development – connect your organization's approved LLM (Anthropic, OpenAI, Azure, Gemini, and more)
  • Built-in governance – CI/CD, guardrails, and best practices included

Snowcap is the power tools. Datacoves is the workshop.

Explore the platform →


Why Snowcap?

Snowcap replaces Terraform, Schemachange, or Permifrost with a single, purpose-built tool for Snowflake.

Feature Snowcap Terraform SnowDDL Permifrost
Snowflake-native ✅ ❌ ✅ ✅
No state file ✅ ❌ ✅ ✅
YAML + Python ✅ HCL only YAML only YAML only
Speed 50%+ faster Baseline Fast Slow
60+ resource types ✅ Most Most Grants only
Templating / loops ✅ ✅ Limited ❌
Export existing resources ✅ Import only ❌ ❌
Actively maintained ✅ Datacoves ✅ Snowflake ⚠️ Single maintainer ⚠️ Infrequent

Key Features

  • Declarative — Generates the right SQL to make your config match your account
  • Comprehensive — 60+ Snowflake resource types supported
  • Flexible — Write configuration in YAML or Python
  • Fast — 50%+ faster than Terraform and Permifrost
  • Migration-friendly — Export existing resources with the CLI

Quick Start

Run with uv (no install needed):

uvx snowcap plan --config snowcap.yml

Or install from PyPI:

pip install snowcap

Create snowcap.yml:

warehouses:
  - name: analytics
    warehouse_size: xsmall
    auto_suspend: 60

Run:

# Set credentials
export SNOWFLAKE_ACCOUNT=my-account
export SNOWFLAKE_USER=my-user
export SNOWFLAKE_PASSWORD=my-password
export SNOWFLAKE_ROLE=SYSADMIN

# Preview changes
snowcap plan --config snowcap.yml

# Apply changes
snowcap apply --config snowcap.yml

Documentation

Full documentation, examples, and resource reference at snowcap.datacoves.com

Development

Contributor setup uses uv. One command creates .venv, installs snowcap editable, and installs the pinned dev dependencies from uv.lock:

make install-dev

This removes stale pip install -e . metadata (which would shadow the uv-managed install) and runs uv sync. Run tools through uv so the environment can never drift from the checkout:

uv run pytest          # unit tests
make lint              # black --check, codespell, ruff
make typecheck         # mypy

See TESTING.md for integration test setup.

Background

Snowcap is a fork of Titan Core. The original project appeared unmaintained, so Datacoves forked it to continue active development, fix bugs, and add new features. We're grateful to the Titan Systems team for creating and open-sourcing the original project under the Apache 2.0 license.

Support

Metadata

Release files for snowcap 1.0.33

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for snowcap 1.0.33
File Size Uploaded
snowcap-1.0.33.tar.gz 1.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for snowcap 1.0.33
File Interpreter ABI Platform
snowcap-1.0.33-py3-none-any.whl Python 3 none any Details

Total release size: 2.1 MB

Release files / snowcap-1.0.33.tar.gz

Download URL snowcap-1.0.33.tar.gz
Size 1.8 MB
Tags Source
SHA-256 checksum
How to use checksums
b3df46351e023e8b47c05f1abeda4dad5c0a2c4a471db4cb33a47187daa2933a
BLAKE2b-256 checksum
How to use checksums
b4c81ee4ba0ec64d942e52089afb368f7b4111f70c07a25df03dd8e17f73765b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / snowcap-1.0.33-py3-none-any.whl

Download URL snowcap-1.0.33-py3-none-any.whl
Size 289.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
657c50488fb69c86446d911b5ae28d9150f670b37a1958874c423da25cb6f12e
BLAKE2b-256 checksum
How to use checksums
10639ad0f36cf63cd1040d33fad2360a9117a7ed78447b4bc89d4cc9e2eef3cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

1.0.33 This release

2 release files

1.0.29

2 release files

1.0.28

2 release files

1.0.27

2 release files

1.0.26

2 release files

1.0.25

2 release files

1.0.23

2 release files

1.0.22

2 release files

1.0.21

2 release files

1.0.20

2 release files

1.0.19

2 release files

1.0.17

2 release files

1.0.16

2 release files

1.0.15

2 release files

1.0.12

2 release files

1.0.11

2 release files

1.0.10

2 release files

1.0.9

2 release files

1.0.8

2 release files

1.0.7

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page