get-started

Installation
SKILL.md

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-component immediately
  • 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, not salesforce-extractor)
  • Component IDvendor.component-name format (e.g. keboola.ex-salesforce)
  • Typeextractor, writer, or application
  • 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

Related skills
Installs
21
Repository
keboola/ai-kit
GitHub Stars
10
First Seen
Jan 26, 2026