get-started
Initialize New Keboola Component
Before writing any code, check whether the component has already been initialized.
Step 1: Detect state
Check for signs of an existing cookiecutter setup:
ls src/component.py component_config/ pyproject.toml 2>/dev/null
- If all present → skip initialization, hand off to
@develop-componentimmediately - If missing or empty repo → proceed with initialization below
Step 2: Gather component info
You may already know the component details from the conversation. If not, ask:
- Component name — kebab-case, no type suffix (e.g.
ex-salesforce, notsalesforce-extractor) - Component ID —
vendor.component-nameformat (e.g.keboola.ex-salesforce) - Type —
extractor,writer, orapplication - Short description — one sentence of what it does
Naming rules:
- Never include "extractor", "writer", or "application" in the name itself
- Use prefix convention:
ex-for extractors,wr-for writers
Step 3: Run cookiecutter
# Install if missing
which cookiecutter || pip install --user cookiecutter
cookiecutter gh:keboola/cookiecutter-python-component
Run interactively so the user can confirm the values. The template creates src/, component_config/, tests/, .github/workflows/, Dockerfile, pyproject.toml, and data/ with example files.
Step 4: Clean up and configure
# Remove the generic example files that come with the template
find data -type f -delete
# Recreate the expected directory structure
mkdir -p data/in/tables data/in/files data/out/tables data/out/files
Then create data/config.json with realistic example parameters based on what the component actually does — not a generic placeholder. Read component_config/configSchema.json if it already has content, and mirror the required fields with plausible example values. Use # prefix for sensitive fields (e.g. "#api_key").
Step 5: Initial commit
git add -A
git commit -m "feat: initialize component from cookiecutter template"
Step 6: Hand off
Once initialized, pass to @develop-component to start the implementation. Share what you know about the component's purpose so it has context.
Key resources
- Cookiecutter template:
gh:keboola/cookiecutter-python-component - Developer Portal: https://components.keboola.com/
- Component tutorial: https://developers.keboola.com/extend/component/tutorial/
More from keboola/ai-kit
dataapp-dev
Expert for developing Streamlit data apps for Keboola deployment. Activates when building, modifying, or debugging Keboola data apps, Streamlit dashboards, adding filters, creating pages, or fixing data app issues. Validates data structures using Keboola MCP before writing code, tests implementations with Playwright browser automation, and follows SQL-first architecture patterns.
26gh-process-review
Process GitHub PR review comments by fetching them to local JSON, implementing fixes, and tracking progress. Use when user invokes /gh-process-review command. Fetches reviews to file to avoid context pollution, uses jq for parsing, commits each fix separately. Starts in planning mode by default. Supports optional "continue" argument to skip fetching and resume with existing reviews file.
21keboola configuration
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.
16build-component-ui
Expert in Keboola configuration schemas, conditional fields (options.dependencies), UI elements, sync actions, and schema testing. Can launch schema-tester and run Playwright tests. Specialized for configSchema.json and configRowSchema.json development.
15migrate-to-uv
Migrate Keboola Python components to modern uv build system with deterministic dependencies and ruff linting.
14test-component
>
14