Skip to main content

A full-featured CLI framework for professional Python developers

Project description

devit-cli

A full-featured CLI toolkit for professional Python developers.
Scaffold projects  ·  Clean builds  ·  Inspect system  ·  Search files  ·  Manage archives & env vars  ·  Track & rollback dependencies

PyPI version Monthly downloads Python versions License


Installation

pip install devit-cli

Requires Python 3.10+. Works on Windows · Linux · macOS.


Quick Start

devit           # show help + logo
devit init      # interactive project wizard
devit info      # system snapshot
devit clean     # remove caches & build artifacts
devit dev       # start dev server / install in dev mode
devit test      # run tests (auto-detects pytest / django)
devit deps      # manage, snapshot & rollback dependencies

Commands

devit init — Project wizard

Interactively scaffold a new project. Asks for:

Question Options
Project type Python Package · FastAPI · Django · AWS Scripts
Environment New venv · Existing Python interpreter · New conda · Existing conda env · Skip
Python version e.g. 3.11
devit init                          # fully interactive
devit init my-api --type fastapi --env venv
devit init my-lib --type package --env conda --python 3.12
devit init my-app -y                # skip confirmation prompt

Generated structures

Python Package

my-lib/
├── my_lib/
│   ├── __init__.py
│   └── core.py
├── tests/
│   └── test_core.py
├── docs/
├── pyproject.toml
├── README.md
└── .gitignore

FastAPI

my-api/
├── main.py
├── app/
│   └── routers/
│       └── health.py
├── tests/
│   └── test_api.py
├── requirements.txt
├── README.md
└── .gitignore

Django

my-site/
├── manage.py
├── my_site/
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
├── apps/
│   └── core/
│       ├── views.py
│       └── urls.py
├── requirements.txt
└── .gitignore

AWS Scripts

my-aws/
├── scripts/
│   ├── main.py
│   ├── s3.py
│   └── ec2.py
├── tests/
├── requirements.txt
└── .gitignore

devit dev / run / build / test — Unified task runner

Auto-detects project type and runs the right command:

Command Package FastAPI Django AWS
devit dev pip install -e .[dev] uvicorn main:app --reload manage.py runserver sam local start-api
devit run python -m <module> uvicorn main:app manage.py runserver 0.0.0.0 python -m scripts.main
devit build python -m build pip install -r requirements.txt pip install -r requirements.txt sam build
devit test pytest -v pytest -v manage.py test pytest -v
devit dev
devit test
devit build
devit run -- --port 9000    # extra args forwarded

devit clean — Remove artifacts

devit clean                  # clean cwd
devit clean ./my-project     # clean specific dir
devit clean --dry-run        # preview only
devit clean --include-venv   # also remove .venv
devit clean -y               # skip confirmation

Removes: __pycache__, *.pyc, .pytest_cache, build/, dist/, *.egg-info, .DS_Store, *.log, node_modules, .coverage, and more.


devit info — System snapshot

devit info
devit info --json

Shows: OS, hostname, Python version + executable, active venv/conda env, CPU count + frequency, RAM usage, disk usage.


devit find — Fast file search

devit find "*.py"
devit find "config" -e toml -e ini
devit find "*" --min-size 1mb --newer-than 7    # >1 MB, modified in last 7 days
devit find --dirs-only "src"
devit find "*" -l 500                           # show up to 500 results

devit zip / devit unzip — Archive utilities

devit zip dist.zip src/ README.md
devit zip dist.zip . -x __pycache__ -x "*.pyc" -l 9
devit unzip dist.zip ./output
devit unzip dist.zip --list     # show contents without extracting

devit env — Environment variable management

devit env list                        # list all env vars
devit env list --filter AWS           # filter by keyword
devit env list --json                 # JSON output

devit env export                      # save to .env  (dotenv format)
devit env export vars.json --format json
devit env export activate.sh  --format shell       # bash / zsh
devit env export activate.ps1 --format powershell  # Windows PowerShell
devit env export activate.bat --format cmd         # Windows CMD

devit env diff .env .env.production   # show what changed

devit deps — Dependency manager with history & rollback

Wraps pip with a clean interface, tracks dependency snapshots, and lets you roll back when an upgrade breaks things.

Install & uninstall

devit deps add requests                   # install + save to requirements.txt
devit deps add "flask>=3.0" sqlalchemy    # multiple packages
devit deps add numpy --no-save           # install without touching requirements.txt
devit deps remove flask                  # uninstall + remove from requirements.txt

Inspect

devit deps list                # list all installed packages in the project env
devit deps list --json         # JSON output
devit deps outdated            # show packages that have newer versions available
devit deps outdated --json

Upgrade all at once

devit deps add .               # upgrade every outdated package & update requirements.txt

Snapshot history

Save the current working state before making changes:

devit deps snapshot                        # save current packages
devit deps snapshot -m "works with v3.0"  # save with a label
devit deps history                         # list all saved snapshots

Example output of devit deps history:

┏━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━
┃ ID  ┃ Message                   ┃ Packages ┃ Saved At
┡━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━
│ #2  │ works with v3.0           │       14 │ 2026-04-03T12:00:00
│ #1  │ Snapshot #1               │       12 │ 2026-04-01T09:30:00

Diff — see what changed and spot issues

devit deps diff        # compare current env to latest snapshot
devit deps diff 1      # compare to snapshot #1

Example output when an upgrade broke something:

 Diff: current  vs  Snapshot #1
┏━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━┳━━━━━━━━━━━━━
┃ Package  ┃ Snapshot ┃ Current  ┃ Status
┡━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━╇━━━━━━━━━━━━━
│ flask    │ 2.3.3    │ 3.1.0    │ ~changed
│ werkzeug │ 2.3.7    │ —        │ -removed

Issues detected:
  • flask version changed  2.3.3 → 3.1.0
  • werkzeug was removed (snapshot had 2.3.7)

  Run devit deps rollback 1 to restore this snapshot.

Rollback — restore exact pinned versions

devit deps rollback        # restore latest snapshot
devit deps rollback 1      # restore snapshot #1
devit deps rollback 1 -y   # skip confirmation

Snapshots are stored in .devit/dep_snapshots.json inside your project directory.


Tech Stack

Library Purpose
click CLI framework
rich Beautiful terminal output, progress bars, tables
questionary Interactive prompts
psutil System metrics (CPU, RAM, disk)

Contributing

git clone https://github.com/dipenpadhiyar/devit-cli
cd devit-cli
pip install -e ".[dev]"
pytest

Pull requests are welcome!


License

MIT — see LICENSE for details.

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

devit_cli-0.1.8.tar.gz (32.9 kB view details)

Uploaded Source

Built Distribution

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

devit_cli-0.1.8-py3-none-any.whl (44.9 kB view details)

Uploaded Python 3

File details

Details for the file devit_cli-0.1.8.tar.gz.

File metadata

  • Download URL: devit_cli-0.1.8.tar.gz
  • Upload date:
  • Size: 32.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for devit_cli-0.1.8.tar.gz
Algorithm Hash digest
SHA256 a1f505d7164781df79477ff43ac8879bf8290560fe539706c92b35301cccaba3
MD5 c3e0e63c2c6410cbaeabfc5128f81881
BLAKE2b-256 b9b2784fb84f6afbf088e84866c74b6b9263d664107e8c765430b1d97b7ac2bc

See more details on using hashes here.

File details

Details for the file devit_cli-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: devit_cli-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 44.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.13

File hashes

Hashes for devit_cli-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 ed21b409361a8f9f8edb425fe2f4d691fc2085e79c248ddf3264958a3a7c6f6c
MD5 5728825f3dde2737cf744eaaa9653b56
BLAKE2b-256 ff4377ddcd3fd7ffa27f4d428d3cebc5f610ed40bbbb9ca1cb022c1cbe47c8de

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