dlt Skill
description: "Build data ingestion pipelines with dlt (data load tool) -- extract from APIs, databases, and files, then load to any destination."
Want an agent-native computer in the browser? Try HappyCapy.
Cloud sandbox for AI agents · No setup · Run autonomous workflows from your browser
Affiliate link — we may earn a commission at no extra cost to you.
Why use this skill
dlt is most useful when you want an agent workflow that is more structured than an ad-hoc prompt. Instead of restating the same expectations every time, a dedicated SKILL.md file gives the assistant a repeatable brief. In this case, the core value is clarity: the repo already frames the workflow around devops skills tasks, and the skill source gives you a portable starting point you can evaluate, adapt, and reuse. The inferred platform for this skill is OpenClaw Skills, which helps you judge whether it is likely to feel native in your current agent ecosystem or whether it is better treated as a general reference.
That matters because AI assistants are better when the operating context is explicit. A good skill turns hidden team expectations into visible instructions. It can name preferred tools, describe failure modes, define what “done” looks like, and reduce the amount of corrective prompting you need after the first draft. For developers exploring the wider SKILL.md ecosystem, this page helps answer the practical question: is this skill specific and maintained enough to be worth trying?
How to evaluate and use it
Start with the source repo and the preview below. The preview tells you whether the instructions are actionable or just aspirational. Strong skills usually describe triggers, recommended tools, steps, and known pitfalls. Weak skills tend to stay generic. This one lives in clawdata/clawdata, which gives you a concrete repo context, update history, and direct ownership trail.
Once you confirm the scope looks right, test it on a small task before making it part of a larger workflow. If it improves consistency, keep it. If it is too broad, outdated, or conflicts with your own process, treat it as a reference rather than a drop-in rule. That is the healthiest way to use directory-discovered skills: not as magic plugins, but as reusable operational knowledge that still deserves judgment.
SKILL.md preview
Previewing the source is one of the fastest ways to judge whether a skill is truly useful. This snippet comes from the public file in the linked repository.
---
name: dlt
description: "Build data ingestion pipelines with dlt (data load tool) -- extract from APIs, databases, and files, then load to any destination."
metadata: {"openclaw": {"emoji": "🔄", "requires": {"bins": ["dlt"]}, "tags": ["ingestion", "dlt", "etl", "elt", "pipeline", "data"]}}
---
# dlt (data load tool)
You help build data ingestion pipelines using **`dlt`**.
Use this when the user wants to extract data from APIs, databases, or files and load it into a warehouse or lakehouse.
## Commands
### Initialise a new pipeline
```bash
dlt init <source_name> <destination_name>
```
Example:
```bash
dlt init sql_database duckdb
```
### Run a pipeline
```bash
python <pipeline_script>.py
```
### Check pipeline status
```bash
dlt pipeline <pipeline_name> info
```
### List loaded tables
```bash
dlt pipeline <pipeline_name> show
```
## Pipeline Patterns
### Basic API source
```python
import dlt
@dlt.source
def my_api_source(api_key=dlt.secrets.value):
@dlt.resource(write_disposition="replace")
def customers():
response = requests.get("https://api.example.com/customers",
headers={"Authorization": f"Bearer {api_key}"})
yield response.json()
return customers
pipeline = dlt.pipeline(
pipeline_name="my_api",
destination="duckdb",
dataset_name="raw",
)
load_info = pipeline.run(my_api_source())
print(load_info)
```
### Incremental loading
```python
@dlt.resource(write_disposition="merge", primary_key="id")
def orders(updated_at=dlt.sources.incremental("updated_at")):
params = {"since":
...