markdown
🛠️ DevKit CLI
A modern CLI toolkit for developers — organize files, scaffold projects, and inspect git repositories. All in one command.
Stop wasting time on repetitive tasks.
devkithandles the boring stuff so you can focus on writing code.
🎬 Quick Start (60 seconds)
# 1. Clone and install
git clone https://github.com/dzopensource-lab/devkit-cli.git
cd devkit-cli
pip install -e .
# 2. Try it immediately
devkit organize ~/Downloads --dry-run
devkit scaffold my-new-project --type web
devkit git-stats
That's it. You're ready to go. 🚀
📖 What is DevKit?
devkit is a command-line toolkit that solves three daily problems every developer faces:
Problem Solution Command
🗂️ "My Downloads folder is a mess" Auto-sort files into categories devkit organize
🧱 "I waste 10 minutes setting up every new project" Generate project structure instantly devkit scaffold
📊 "I forget my repo's commit count and current branch" See git stats in one command devkit git-stats
✨ Features
📂 Smart file organizer — Sorts files into Images/, Documents/, Code/, Audio/, Videos/, Archives/ automatically
🧱 Project scaffolder — Creates ready-to-use templates for web and python-cli projects
📊 Git inspector — Quick overview: branch, commit count, last author, last commit message
🎨 Beautiful terminal output — Colors, tables, and clear feedback powered by rich
🛡️ Safe by default — --dry-run mode lets you preview changes before executing
🧪 Tested — Fully covered by pytest and GitHub Actions CI
⚡ Fast — No dependencies beyond click and rich
🚀 Installation
Option 1: Install from source (recommended for now)
bash
git clone https://github.com/dzopensource-lab/devkit-cli.git
cd devkit-cli
pip install -e .
Option 2: Install from PyPI (coming soon)
bash
pip install devkit-cli
Verify installation
bash
devkit --version
# devkit-cli, version 0.1.0
devkit --help
# Usage: devkit [OPTIONS] COMMAND [ARGS]...
📚 Commands Reference
📂 devkit organize — Sort files into folders
Syntax:
bash
devkit organize <PATH> [--dry-run]
What it does:
Scans the folder <PATH> and moves files into categorized subfolders based on their extension.
Categories:
Folder Extensions
Images/ .jpg, .jpeg, .png, .gif, .svg, .webp, .bmp
Documents/ .pdf, .doc, .docx, .txt, .md, .odt, .xlsx, .pptx
Videos/ .mp4, .mkv, .avi, .mov, .webm
Audio/ .mp3, .wav, .flac, .ogg, .m4a
Archives/ .zip, .rar, .7z, .tar, .gz
Code/ .py, .js, .ts, .html, .css, .json, .yml, .yaml, .sh
Other/ Everything else
Example:
Before:
text
Downloads/
├── photo.jpg
├── report.pdf
├── song.mp3
├── project.zip
└── script.py
Run:
bash
devkit organize ~/Downloads
After:
text
Downloads/
├── Images/
│ └── photo.jpg
├── Documents/
│ └── report.pdf
├── Audio/
│ └── song.mp3
├── Archives/
│ └── project.zip
└── Code/
└── script.py
Safe preview:
bash
devkit organize ~/Downloads --dry-run
Shows what would happen without moving anything. Always use this first!
🧱 devkit scaffold — Create a new project
Syntax:
bash
devkit scaffold <NAME> [--type web|python-cli]
What it does:
Creates a new folder <NAME> with a ready-to-use starter template.
Available templates:
Template 1: web (default)
Creates:
index.html — Starter HTML5 page
style.css — Basic styles
script.js — Starter JS file
bash
devkit scaffold my-website
Output:
text
my-website/
├── index.html
├── style.css
└── script.js
Template 2: python-cli
Creates:
main.py — CLI starter using click
requirements.txt — Dependencies
bash
devkit scaffold my-tool --type python-cli
Output:
text
my-tool/
├── main.py
└── requirements.txt
📊 devkit git-stats — Inspect a git repository
Syntax:
bash
devkit git-stats [PATH]
What it does:
Displays key statistics about a git repository in a formatted table.
Example:
bash
devkit git-stats
Output:
text
Git Stats — devkit-cli
┏━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ Metric ┃ Value ┃
┡━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩
│ Branch │ main │
│ Total commits │ 5 │
│ Last commit │ feat: add clean command │
│ Last author │ Oussama Boudinar │
└───────────────┴──────────────────────────────┘
On another repo:
bash
devkit git-stats /path/to/any/repo
💡 Use Cases
Use Case 1: Monthly Downloads cleanup
bash
devkit organize ~/Downloads
Use Case 2: Start a new web project instantly
bash
devkit scaffold my-landing-page
cd my-landing-page
# Open in browser, start coding!
Use Case 3: Quick repo status before a standup meeting
bash
devkit git-stats
🗂️ Project Structure
text
devkit-cli/
├── devkit/
│ ├── __init__.py # Package metadata
│ ├── cli.py # Main entry point (Click group)
│ └── commands/
│ ├── organize.py # File organizer command
│ ├── scaffold.py # Project scaffolder command
│ └── git_stats.py # Git stats command
├── tests/
│ └── test_cli.py # Basic tests
├── .github/
│ └── workflows/
│ └── test.yml # CI pipeline
├── docs/
│ ├── quickstart.md # 60-second guide
│ ├── commands.md # Full command reference
│ └── examples.md # Real-world examples
├── pyproject.toml # Package config
├── README.md # This file
├── CONTRIBUTING.md # How to contribute
├── CHANGELOG.md # Version history
└── LICENSE # MIT License
🛡️ Safety Notes
⚠️ Warning Reason
Always run --dry-run first on organize To preview before moving files
Don't organize system folders (C:\Windows, Program Files) May require permissions and break the system
Backup important folders before organizing Though safe, always be careful
🤝 Contributing
See CONTRIBUTING.md for guidelines.
Quick version:
Fork the repo
Create a branch: git checkout -b feature/my-feature
Make changes + add tests
Push and open a Pull Request
🧪 Testing
bash
pytest
pytest -v
🗺️ Roadmap
☑
organize — Sort files into categories
☑
scaffold — Create project templates
☑
git-stats — Show repository statistics
☑
GitHub Actions CI
☑
clean command — Remove node_modules, __pycache__, .venv
☑
organize --recursive — Support subfolders
☑
Custom categories from devkit.toml
☑
More scaffold templates (react, fastapi, vue)
☑
Publish to PyPI
📄 License
MIT © 2026 Oussama Boudinar lionweb01@gmail.com — dzopensource-lab
⭐ Show your support
If devkit helped you, please give it a ⭐ on GitHub — it means a lot!
Metadata
Release files for dz-devkit-cli 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| dz_devkit_cli-0.1.0.tar.gz | 11.4 kB | Without provenance | Details for dz_devkit_cli-0.1.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| dz_devkit_cli-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for dz_devkit_cli-0.1.0-py3-none-any.whl |
Total release size: 21.3 kB
Release files / dz_devkit_cli-0.1.0.tar.gz
| Download URL | dz_devkit_cli-0.1.0.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
13302db20e79e32aac4bf88d92e65e50870d461582257e4fe19a63a0878c1e24
|
|
BLAKE2b-256 checksum How to use checksums |
da445fa058f928ff227a0ae00bce07680585d49a85a63079ba0ced5b274f2960
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.2
|
Release files / dz_devkit_cli-0.1.0-py3-none-any.whl
| Download URL | dz_devkit_cli-0.1.0-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
41eeb43046b4e3363330ca997801b55fcf40c3be01e1be24146b58865a3d76ba
|
|
BLAKE2b-256 checksum How to use checksums |
5e877fd072a1eb4128d0e11685d7e3c2d2e077a2433e7b5a843835dd70b3dfea
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.15.2
|
Security for dz-devkit-cli 0.1.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.