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.2.tar.gz (21.6 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.2-py3-none-any.whl (28.2 kB view details)

Uploaded Python 3

File details

Details for the file degen_cli-0.7.2.tar.gz.

File metadata

  • Download URL: degen_cli-0.7.2.tar.gz
  • Upload date:
  • Size: 21.6 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.2.tar.gz
Algorithm Hash digest
SHA256 a5193fe1dd4ac052c7cd4e1c7d3f69e48caa0fe79f42ba88231050d395a824e4
MD5 51d28dadea79e48a54d513de2532e2fb
BLAKE2b-256 7099dfc5ba5f55ad8fc047c5d3f413dc9267323de4ab47c6f723583a35cbf46e

See more details on using hashes here.

File details

Details for the file degen_cli-0.7.2-py3-none-any.whl.

File metadata

  • Download URL: degen_cli-0.7.2-py3-none-any.whl
  • Upload date:
  • Size: 28.2 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 52e14ecb8ded17ba9ae3c88e530772b49d01c6b85bd804add0319d381900f6a6
MD5 5df7b1554db4577e9e05bf753d1a8ec8
BLAKE2b-256 04de91f400a6b4e40d489425b885a7580f30423b0207c765a69abaaa75d786e6

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