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

Uploaded Python 3

File details

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

File metadata

  • Download URL: crys-0.1.1.tar.gz
  • Upload date:
  • Size: 7.2 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.1.tar.gz
Algorithm Hash digest
SHA256 588ee1a337f03ef642c8da90b705306358352c4cc7c2e0c59b7392ced07af575
MD5 002b0bdeb709efc2a3c4e91926345a36
BLAKE2b-256 f2ac31bc94642d4e18765b734dec88129a1a133f5903f480c4f4dbfa369b8c6c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: crys-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4030df257f7590244096bbf15f257ff345f3b998b09a79c23e89cdbd4ec9b805
MD5 17c80cd378b4ce94d55c00ff2a598008
BLAKE2b-256 f2440d4dfd52ad08385b97dbea65c23affae6611f9938c5bebc1e8788d6df2c1

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