Skip to main content

Data Engineering Architecture Composer CLI

Project description

DEGEN — Data Engineering Project Generator

Python License Version

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 degen command
  • 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

degen_cli-0.7.1.tar.gz (21.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

degen_cli-0.7.1-py3-none-any.whl (28.1 kB view details)

Uploaded Python 3

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

Hashes for degen_cli-0.7.1.tar.gz
Algorithm Hash digest
SHA256 b55a0d9a5cceddf4c7a601e11edf35d00887cee71c6edeb5ff42eb3113fcf161
MD5 8b5cacb51289aa5312b8627ecb0b3560
BLAKE2b-256 76112d6fc3c47a270df3d985996b5526d4163f740dbfe3f6fd7fdd4eb63d45c4

See more details on using hashes here.

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

Hashes for degen_cli-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b7d109baf0d9d45dde52c0bb3e5acfa27d37fe0333afaff0f32726a0c3bb529c
MD5 faeb08f38f07e1b8fffd06abfb0bdc34
BLAKE2b-256 9fc7005227c909571800ffb4c05dfcfc8f9ade2633bc81c1260c038ab63cc412

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page