From keboola-cli
Use this skill when working with Keboola project configurations, understanding JSON config files, editing transformations, or analyzing Keboola project structure. Triggers on questions about Keboola configs, transformations, orchestrations, extractors, writers, or .keboola directories.
npx claudepluginhub keboola/ai-kit --plugin keboola-cliThis skill uses the workspace's default tool permissions.
Provide expertise on Keboola project structure, configuration formats, and best practices for managing data pipelines.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Provide expertise on Keboola project structure, configuration formats, and best practices for managing data pipelines.
A Keboola project pulled locally has this structure:
project-root/
├── .keboola/
│ └── manifest.json # Project metadata and branch info
├── .env.local # API token (never commit)
├── .env.dist # Template for .env.local
├── .gitignore
└── [branch-name]/ # One directory per branch
└── [component-id]/ # e.g., keboola.snowflake-transformation
└── [config-name]/ # Configuration directory
├── config.json # Main configuration
├── meta.json # Metadata (name, description)
└── rows/ # Configuration rows (if applicable)
Located in .keboola/manifest.json, contains:
The main configuration file for each component. Structure varies by component type but typically includes:
parameters - Component-specific settingsstorage - Input/output table mappingsprocessors - Pre/post processing stepsMetadata about the configuration:
{
"name": "Configuration Name",
"description": "What this configuration does",
"isDisabled": false
}
SQL or Python/R transformations for data processing.
Snowflake Transformation (keboola.snowflake-transformation):
{
"parameters": {
"blocks": [
{
"name": "Block Name",
"codes": [
{
"name": "Script Name",
"script": ["SELECT * FROM table"]
}
]
}
]
},
"storage": {
"input": {
"tables": [
{
"source": "in.c-bucket.table",
"destination": "table"
}
]
},
"output": {
"tables": [
{
"source": "output_table",
"destination": "out.c-bucket.result"
}
]
}
}
}
Components that pull data from external sources (databases, APIs, files).
Common extractors:
keboola.ex-db-snowflake - Snowflake extractorkeboola.ex-google-analytics-v4 - Google Analyticskeboola.ex-generic-v2 - Generic HTTP API extractorComponents that push data to external destinations.
Common writers:
keboola.wr-db-snowflake - Snowflake writerkeboola.wr-google-sheets - Google Sheets writerWorkflow definitions that run multiple configurations in sequence.
Located in keboola.orchestrator/ with:
kbc diff before and after changeskbc validate to check configuration validityIn config.json, add to storage.input.tables:
{
"source": "in.c-bucket.new_table",
"destination": "new_table",
"columns": [] // Empty = all columns
}
In config.json, add to storage.output.tables:
{
"source": "result_table",
"destination": "out.c-bucket.result",
"primary_key": ["id"]
}
Edit the script array in the relevant block/code section. Each array element is a SQL statement.