Guide for initializing and setting up new Keboola Python components using cookiecutter template. Use when starting a new component project from scratch.
Before writing any code, check whether the component has already been initialized.
Check for signs of an existing cookiecutter setup:
ls src/component.py component_config/ pyproject.toml 2>/dev/null
@develop-component immediatelyYou may already know the component details from the conversation. If not, ask:
ex-salesforce, not salesforce-extractor)vendor.component-name format (e.g. keboola.ex-salesforce)extractor, writer, or applicationNaming rules:
ex- for extractors, wr- for writers# 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.
# 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").
git add -A
git commit -m "feat: initialize component from cookiecutter template"
Once initialized, pass to @develop-component to start the implementation. Share what you know about the component's purpose so it has context.
gh:keboola/cookiecutter-python-component