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
test-component
>
13debug-component
Expert skill for debugging Keboola Python components. Use when a component is failing,
12dataapp-deployment
Use when deploying any web app to Keboola Data Apps, setting up keboola-config directory, configuring Nginx/Supervisord for Docker, handling SSE or WebSocket streaming through Nginx, mapping secrets to environment variables, or debugging Keboola Data App deployment issues like POST to root errors, 500s from missing env vars, or buffered streams.
11tester
Expert agent for writing and maintaining tests for Keboola Python components. Specializes in datadir tests, unit tests, and integration tests with proper mocking and assertions.
8debugger
Expert agent for debugging Keboola Python components using Keboola MCP tools, Datadog logs, and local testing. Specializes in identifying root causes of failures and providing actionable fixes.
7