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

Uploaded Python 3

File details

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

File metadata

  • Download URL: devit_cli-0.1.7.tar.gz
  • Upload date:
  • Size: 31.7 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.7.tar.gz
Algorithm Hash digest
SHA256 04a63f322cb85e0911941b5c5b2a0520594f722b2e3773926b7891226ec47366
MD5 c262246902f31619ab2437cc775c1c56
BLAKE2b-256 e22aa4997333035e2c3a8b093b84df8b7eb63d6d474c8e9c30ae3f7e69b04f92

See more details on using hashes here.

File details

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

File metadata

  • Download URL: devit_cli-0.1.7-py3-none-any.whl
  • Upload date:
  • Size: 43.7 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.7-py3-none-any.whl
Algorithm Hash digest
SHA256 aefe010e25c8d04809592fdb394f06c7154a72501cd818cecadce48ac3ad183a
MD5 73d3da782a8d1e3c7323ff5f69f91d66
BLAKE2b-256 c80f5ced13ab4b4144b17c58814f713d9d2817c6ec26e61dab7e4762749059b9

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