# CLI tool for data-science: 891 downloads in 7dy.

> Source: <https://dev.to/sumit_gavali_947a37c8a795/cli-tool-for-data-science-891-downloads-in-7dy-1lif>
> Published: 2026-09-02 04:53:58+00:00

Every data science project starts the same way. You download a dataset, open a Jupyter notebook, and write the same 50+ lines of code you've written hundreds of times before:

``` python
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

df = pd.read_csv('data.csv')
df.head()
df.info()
df.describe()
df.isnull().sum()
# ... 30 more lines of boilerplate
```

For a professional data scientist, this ritual takes **45-60 minutes**. For a student or junior analyst, it's easily **2-3 hours** of wrestling with syntax, debugging import errors, and googling "how to plot correlation matrix in seaborn" for the 47th time.

**I did this 47 times. I lost my mind.**

So I built something that does it in **one command**.

As a data science student and ML intern, I realized the friction wasn't in the *analysis*—it was in the **setup**. Every project demanded:

This isn't "work." It's **tax**. A tax you pay before you can do anything interesting.

The professional paradox: senior data scientists spend *less* time on EDA because they have their own scripts, templates, and muscle memory. Juniors spend *more* time—just when they need to focus on learning the actual data science.

**I was in the second group. So I optimized.**

I built `kaggle-prep`

– a CLI tool that automates the entire EDA workflow from dataset download to production-ready notebook.

```
pip install kaggle-prep
# Full EDA pipeline
kaggle-prep uciml/iris --all

# Quick profile only
kaggle-prep uciml/iris --profile

# Generate starter notebook
kaggle-prep uciml/iris --notebook
```

Here's the actual output from running `kaggle-prep uciml/iris --all`

:

```
PS D:\Projects\kaggle> kaggle-prep uciml/iris --all
No local data found in 'data'. Initiating download...
Downloading 'uciml/iris' via kagglehub (Zero-Config mode)...
Download complete! Files saved to: data
Loaded: Iris.csv (150 rows, 6 columns)

===========================================================
DATA PROFILE SUMMARY
===========================================================

Dataset: uciml/iris
Shape: 150 rows x 6 columns
Memory: 0.01 MB
Duplicates: 0
Missing: 0 (0.00%)
Numeric: 5 | Categorical: 1
```

Within seconds, you have a complete data profile.

The tool generates:

**9 EDA Visualizations** (automatically generated):

**Here's the actual correlation matrix generated:**

**Key insights from the data:**

```
   # A complete, production-ready preprocessing script
   # Includes scaling, encoding, and split logic
```

I quietly released this on PyPI without any marketing push. Here's the organic growth:

| Metric | Value |
|---|---|
Monthly Downloads |
891 |
Last 7 Days |
282 |
Yesterday |
216 |
Python Versions |
3.10, 3.11, 3.12, 3.13, 3.14 |
Platforms |
Windows, macOS, Linux |

**Platform Distribution:**

| OS | Usage |
|---|---|
| Windows | ~45% |
| Linux | ~35% |
| macOS | ~20% |

**Python Version Distribution:**

| Version | Usage |
|---|---|
| Python 3.11 | ~40% |
| Python 3.12 | ~30% |
| Python 3.10 | ~15% |
| Python 3.13+ | ~10% |

**User Base Demographics:**

```
Dataset URL → Download via KaggleHub → Load & Validate → 
  → Profile Generation →
    → Statistical Analysis →
      → Visualization Generation →
        → Preprocessing Script Generation →
          → Notebook Generation →
            → All Outputs Saved
```

`kagglehub`

to handle authentication automaticallyI added a `--feedback`

command that:

```
kaggle-prep --feedback
```

I'm actively building the Pro version based on user feedback:

| Feature | Status | Expected |
|---|---|---|
| Automated PDF Reports | In Development | October 2026 |
| Auto-ML Baseline | In Development | November 2026 |
| Competition Optimization | Planned | December 2026 |
| Custom Visualization Config | Planned | January 2027 |

```
pip install kaggle-prep
kaggle-prep uciml/iris --all
```

**GitHub:** [Link to your repo]

**PyPI:** [Link to your package]

**Issues/Feature Requests:** [Link to your issues page]

I built this to solve my own frustration. But the response tells me the frustration is **universal**.

The last month validated three things:

**This is my first open-source project that actually serves a real user base.** And I'm just getting started.

I'm building in public. If you want to:

`pip install kaggle-prep`

*Built by a student, for the data science community.*

*891 monthly downloads and counting.*

**Downloads last month: 891** | **Stars: [Your count]** | **Contributors: [Your count]**

## Command Output

*If this tool saved you time, please star the repo. It helps more than you know.*
