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

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for devit_cli-0.1.9.tar.gz
Algorithm Hash digest
SHA256 135069b7f5162907980de6d1463bd07d08aec4f644dc43aa39ce1e5510fd78dd
MD5 79fa45500e6d5f6d4d1742caa99b07c6
BLAKE2b-256 b6581a4766dafb59a0550c6d61843990acad6be84323d26b7bd4b28a4afd1aec

See more details on using hashes here.

File details

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

File metadata

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

File hashes

Hashes for devit_cli-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d134216522aa609d6087944d03c0ce49db121a4f6205a555af9a54f08a2a1bf7
MD5 fc41de4d07b32e5337d8d943acc1ea96
BLAKE2b-256 e5d797f228292a11d9c3beda05775ec1a1fd1af441fa733744acbae3907108da

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