rudder-cli-setup
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or authenticating with RudderStack
Manages RudderStack resources via the terraform-provider-rudderstack. Use when configuring the provider, authoring HCL for sources, destinations, connections, running init/plan/apply, importing existing resources, or organizing multi-workspace Terraform modules.
$ npx -y skills add rudderlabs/rudder-agent-skills --skill rudder-terraform-workflow --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/rudder-terraform-workflowContext preview
The summary Claude sees to decide when to auto-load this skill.
Manages RudderStack resources via the terraform-provider-rudderstack. Use when configuring the provider, authoring HCL for sources, destinations, connections, running init/plan/apply, importing existing resources, or organizing multi-workspace Terraform modules.
name: rudder-terraform-workflow description: Manages RudderStack resources via the terraform-provider-rudderstack. Use when configuring the provider, authoring HCL for sources, destinations, connections, running init/plan/apply, importing existing resources, or organizing multi-workspace Terraform modules. allowed-tools: "Bash(terraform *), Read, Write, Edit"
The [`rudderlabs/rudderstack`](https://github.com/rudderlabs/terraform-provider-rudderstack) Terraform provider manages a RudderStack workspace as infrastructure-as-code: sources, destinations, and connections.
The user is authoring HCL for RudderStack, running `terraform plan/apply` against a workspace, migrating from UI-managed to Terraform-managed resources, importing existing resources, or organizing multi-env setups.
terraform {
required_providers {
rudderstack = {
source = "rudderlabs/rudderstack"
version = "~> 4.4"
}
}
}
provider "rudderstack" {
# access_token = "..." # or set RUDDERSTACK_ACCESS_TOKEN env var
# api_url = "https://api.rudderstack.com"
}| Category | Count | Examples | |----------|-------|----------| | **Connection** | 1 | `rudderstack_connection` — links source to destination | | **Sources** | ~50 | SDK sources (JS, Android, iOS, Python, Go, etc.), webhooks, SaaS integrations | | **Destinations** | ~46 | Warehouses, analytics, marketing, ad platforms, infrastructure |
No data sources are currently exposed — the provider is resource-centric.
terraform {
required_providers {
rudderstack = {
source = "rudderlabs/rudderstack"
version = "~> 4.4"
}
}
}
provider "rudderstack" {} # uses RUDDERSTACK_ACCESS_TOKEN from env
resource "rudderstack_source_javascript" "web" {
name = "my-web-app"
}
resource "rudderstack_destination_webhook" "logs" {
name = "event-logger"
config {
webhook_url = "https://logs.example.com/events"
webhook_method = "POST"
}
}
resource "rudderstack_connection" "main" {
source_id = rudderstack_source_javascript.web.id
destination_id = rudderstack_destination_webhook.logs.id
}terraform init # fetches the provider terraform fmt # canonicalize HCL terraform validate # schema check terraform plan # preview; review diff with the user terraform apply # apply to the workspace
The provider includes bootstrap scripts to generate Terraform code from existing RudderStack resources:
# Generate Terraform configuration RUDDERSTACK_ACCESS_TOKEN=token ./scripts/bootstrap-terraform.sh > rudderstack.tf # Generate import commands RUDDERSTACK_ACCESS_TOKEN=token ./scripts/bootstrap-terraform-import.sh # Import resource state terraform import rudderstack_source_javascript.web <source-id> terraform import rudderstack_destination_redshift.warehouse <destination-id>
**Note:** Sensitive credentials (API keys, secrets) are not exposed via the API and must be added manually after import.
Warehouse destinations (BigQuery, Redshift, Snowflake) support sync scheduling:
resource "rudderstack_destination_bigquery" "warehouse" {
name = "my-bigquery"
config {
project = "gcp-project-id"
bucket_name = "gcs-bucket"
credentials = base64encode(file("service-account.json"))
location = "us-east1"
prefix = "rudder_"
sync {
frequency = "30" # minutes
start_at = "10:00"
exclude_window_start_time = "11:00"
exclude_window_end_time = "12:00"
}
}
}Some destinations support `connection_mode` for web integrations:
config {
# ... destination config ...
connection_mode {
web = "cloud" # or "device"
}
}Destinations support multiple consent providers per platform:
config {
# ... destination config ...
consent_management {
web = [
{
provider = "oneTrust"
consents = ["analytics", "marketing"]
resolution_strategy = ""
},
{
provider = "ketch"
consents = ["analytics"]
resolution_strategy = ""
},
{
provider = "custom"
consents = ["custom_consent"]
resolution_strategy = "and" # or "or"
}
]
android = [{ provider = "ketch", consents = ["mobile"], resolution_strategy = "" }]
ios = [{ provider = "custom", consents = ["ios"], resolution_strategy = "or" }]
}
}**Supported platforms:** `web`, `android`, `ios`, `unity`, `reactnative`, `flutter`, `cordova`, `amp`, `cloud`, `cloud_source
A Claude Code plugin marketplace and Agent Skills collection that teaches your AI coding agent how to drive every programmatic RudderStack surface — CLI, MCP server, Terraform, and Profiles — with the right preflight checks, commands, and recovery paths.
Installs and authenticates rudder-cli. Use when installing rudder-cli, setting up rudder cli, rudder-cli command not found, or authenticating with RudderStack
Validates, previews, and applies RudderStack resource changes via YAML specs. Use when iterating on RudderStack resources with rudder-cli - validates specs,…
Imports existing RudderStack workspace resources into YAML files for git-based management. Use when importing existing RudderStack resources to CLI management…
Creates and manages RudderStack transformations and libraries with local testing. Use when creating, editing, or managing RudderStack transformations and…
Generates type-safe SDKs (Swift/Kotlin) from tracking plans with compile-time validation. Use when generating type-safe event tracking code from tracking plans…
Derives tracking plans from existing codebase types and structures. Use when instrumenting an existing product that wasn't well-instrumented or restructuring…