Data Engineering Architecture Composer CLI
Project description
DEGEN — Data Engineering Project Generator
Scaffold production-ready data pipelines in minutes, not hours.
DEGEN is a CLI framework for data engineers. Answer three questions about your architecture, and DEGEN generates a complete, working project — Docker services, dependencies, configuration, pipeline scripts, and a unified degen command to run everything.
Install
pipx install degen-cli
Requires Python 3.12+ and Docker.
Quick start
degen init # interactive project scaffold
cd my_project
degen install # install dependencies
degen docker-up # start services (Kafka, Postgres, etc.)
degen run # execute the pipeline
degen ui # list all web interfaces
degen status # project health check
Architecture Patterns
Batch ETL
Extract data, transform with dbt, store in DuckDB or Postgres.
degen init # select Batch ETL → Python + dbt + DuckDB
degen install
degen run # extract → dbt run
degen seed # load seed data
degen test # dbt data quality tests
degen notebook # Jupyter Lab at http://localhost:8888
degen docs # dbt docs at http://localhost:8081
Analytics
Orchestrate with Prefect or Airflow, visualize with Grafana or Metabase.
degen init # select Analytics → Prefect + dbt + Postgres + Grafana
degen install
degen docker-up # Postgres + pgAdmin + Grafana
degen prefect-server # Prefect UI at http://localhost:4200
degen run # run Prefect flow
degen docs # dbt docs at http://localhost:8081
Streaming
Real-time event processing with Kafka and PySpark.
degen init # select Streaming → Kafka + PySpark
degen install
degen docker-up # Kafka + Kafka UI at http://localhost:8082
degen create-topic # create Kafka topic
degen produce # send 100 events to Kafka
degen stream # PySpark consumer + Spark UI at http://localhost:4040
Every tool has a web UI
| Tool | Interface | Port |
|---|---|---|
| Kafka | Kafka UI | :8082 |
| Postgres | pgAdmin 4 | :5050 |
| ClickHouse | ClickHouse Play | :8123/play |
| DuckDB | Jupyter Lab (degen notebook) |
:8888 |
| dbt | dbt Docs (degen docs) |
:8081 |
| PySpark | Spark UI (auto) | :4040 |
| Airflow | Airflow UI | :8080 |
| Prefect | Prefect UI | :4200 |
| Metabase | Metabase | :3000 |
| Grafana | Grafana | :3001 |
What DEGEN generates
Every project includes:
my_project/
├── degen.yaml # project manifest — pattern, tools, commands
├── docker-compose.yml # all services, pre-wired and ready
├── requirements.txt # pinned dependencies
├── .env # environment variables with sensible defaults
├── Makefile # for CI/CD and power users
├── profiles.yml # dbt connection config (when applicable)
├── src/
│ └── extract.py # pipeline scripts
└── my_project/ # dbt project (when applicable)
├── dbt_project.yml
└── models/
Every command you'd normally wire up manually — python -m venv, pip install, dbt init, docker compose up, dbt run, jupyter lab — becomes a single degen command with real-time Rich output.
degen.yaml
The project manifest defines all available commands:
project: my_project
pattern: Batch ETL
tools:
- Python
- dbt
- DuckDB
ui:
Jupyter Lab: http://localhost:8888
dbt docs: http://localhost:8081
commands:
install:
steps:
- python -m venv .venv
- .venv/bin/pip install -r requirements.txt
- .venv/bin/dbt init my_project --skip-profile-setup
run:
steps:
- .venv/bin/python src/extract.py
- cd my_project && ../.venv/bin/dbt run --profiles-dir ..
seed:
steps:
- cd my_project && ../.venv/bin/dbt seed --profiles-dir ..
test:
steps:
- cd my_project && ../.venv/bin/dbt test --profiles-dir ..
Add custom commands and run them with degen exec <command>.
CLI reference
| Command | Description |
|---|---|
degen init |
Scaffold a new project interactively |
degen status |
Project health + available commands + UI URLs |
degen ui |
List all web interface URLs |
degen install |
Install dependencies |
degen docker-up |
Start Docker services |
degen docker-down |
Stop Docker services |
degen run |
Execute the pipeline end-to-end |
degen stream |
Start PySpark streaming consumer |
degen produce |
Send 100 synthetic events to Kafka |
degen create-topic |
Create Kafka topic |
degen seed |
Load dbt seed data |
degen test |
Run dbt tests |
degen docs |
Serve dbt documentation |
degen notebook |
Start Jupyter Lab |
degen prefect-server |
Start Prefect backend |
degen exec <cmd> |
Run any custom command from degen.yaml |
degen version |
Print installed version |
Supported tools
| Phase | Tools |
|---|---|
| Extract | Python (pandas + requests) |
| Transform | dbt · PySpark |
| Store | DuckDB · Postgres · ClickHouse |
| Orchestrate | Prefect · Airflow |
| Serve | Grafana · Metabase |
| Stream | Kafka (KRaft, no Zookeeper) |
All tools are 100% open source.
Design philosophy
- Opinionated: clear defaults, no analysis paralysis
- Complete: every tool comes with Docker, config, UI, and a
degencommand - Practical: generates working code you can run immediately and customize from there
- Open source only: every dependency is freely available and self-hostable
Documentation
Full hands-on guides at the documentation site:
Development
git clone https://github.com/FB-castro/degen.git
cd degen
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
License
MIT
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file degen_cli-0.7.1.tar.gz.
File metadata
- Download URL: degen_cli-0.7.1.tar.gz
- Upload date:
- Size: 21.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b55a0d9a5cceddf4c7a601e11edf35d00887cee71c6edeb5ff42eb3113fcf161
|
|
| MD5 |
8b5cacb51289aa5312b8627ecb0b3560
|
|
| BLAKE2b-256 |
76112d6fc3c47a270df3d985996b5526d4163f740dbfe3f6fd7fdd4eb63d45c4
|
File details
Details for the file degen_cli-0.7.1-py3-none-any.whl.
File metadata
- Download URL: degen_cli-0.7.1-py3-none-any.whl
- Upload date:
- Size: 28.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b7d109baf0d9d45dde52c0bb3e5acfa27d37fe0333afaff0f32726a0c3bb529c
|
|
| MD5 |
faeb08f38f07e1b8fffd06abfb0bdc34
|
|
| BLAKE2b-256 |
9fc7005227c909571800ffb4c05dfcfc8f9ade2633bc81c1260c038ab63cc412
|