Skip to main content

One short CLI for pip/npm/node/python chores

Project description

Crystal Dependency Manager (crys)

One short command instead of remembering different pip/npm invocations.

Install

cd crystal-dependency-manager
pip install .

This registers a crys command on your PATH (via Python's normal console-scripts mechanism).

Why

crys doesn't reinvent pip/npm/apt/brew/choco — it just remembers the long command for you and runs it. A few examples of what's actually happening behind the scenes:

You type crys runs (depending on your OS/tools)
crys update pip python -m pip install --upgrade pip
crys update npm npm install -g npm@latest
crys update py sudo apt update && sudo apt install --only-upgrade python3 (or brew upgrade python, choco upgrade python, ...)
crys update node sudo apt install --only-upgrade nodejs (or brew upgrade node, choco upgrade nodejs, ...)
crys remove py sudo apt remove python3 (or brew uninstall python, choco uninstall python, ...) — with a confirmation prompt first
crys remove node brew uninstall node / apt remove nodejs / choco uninstall nodejs — with a confirmation prompt first
crys lib install req py pip install -r requirements.txt
crys lib install req node npm install

Every run also prints the exact command it's about to execute (the cyan $ ... line), so you can see what actually happened and learn the "real" command if you ever need it without crys.

Commands

crys lib install req py            install from requirements.txt (pip)
crys lib install req node          install from package.json (npm)

crys update pip                    upgrade pip itself
crys update npm                    upgrade npm itself
crys update py                     upgrade the Python interpreter
crys update node                   upgrade the Node.js runtime

crys update py lib <name>          pip install --upgrade <name>
crys update node lib <name>        npm install <name>@latest

crys remove py                     uninstall Python (asks to confirm)
crys remove node                   uninstall Node.js (asks to confirm)

crys version py                    print the Python version
crys version node                  print the Node.js version

crys uninstall                     remove Crystal Dependency Manager
crys help                          show help text

Notes on the risky commands

  • crys update node / crys update py try, in order: nvm/pyenv (if present, they just print the right follow-up command since those are shell functions, not real executables), then brew on macOS, then apt/dnf/pacman on Linux, then choco/winget on Windows.
  • crys remove node / crys remove py always ask for confirmation first. crys remove py on Linux refuses to run automatically, since removing the system Python package can break the OS — it prints the manual command instead.
  • Everything shells out to the real tool (pip, npm, brew, apt, etc.) rather than reimplementing package management, so crys stays a thin, predictable wrapper.

Uninstalling

crys uninstall

or manually: pip uninstall crystal-dependency-manager

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

crys-0.1.0.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

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

crys-0.1.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file crys-0.1.0.tar.gz.

File metadata

  • Download URL: crys-0.1.0.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for crys-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4c6ddca056049d528ce500a0dfa387b13bfe40b932883b017ba06b0ab5bea57c
MD5 2ef111e1b5924c801de5db0b2f4084d7
BLAKE2b-256 1a00b7730232751af4cee2f6382ecec897541942ff20e9bbc8ee04141dc3f758

See more details on using hashes here.

File details

Details for the file crys-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: crys-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.14

File hashes

Hashes for crys-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4889f44bbf586cf80aa5e0114c599e73dbb16ed8c3e5b8509042c22e53c78a2
MD5 e918974f7d1620d136134b529ad749cc
BLAKE2b-256 691450049d3ff5cec42a57fa6b0022f90de028411de2aa1e21fd63830c3b9ac6

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