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 update rust |
rustup update (or brew upgrade rust, choco upgrade rust, ...) |
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 remove rust |
rustup self uninstall -y (or brew uninstall rust, choco uninstall rust, ...) — with a confirmation prompt first |
crys install node |
brew install node / sudo apt install nodejs npm / choco install nodejs / winget install OpenJS.NodeJS — only if Node isn't already there |
crys install rust |
the official curl | sh installer from rustup.rs — only if Rust isn't already there |
crys install py |
nothing — prints why crys can't bootstrap its own interpreter, and where to get Python |
crys lib install req py |
pip install -r requirements.txt |
crys lib install req node |
npm install |
crys lib install req rust |
cargo fetch |
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 install node install Node.js if it's missing
crys install rust install Rust (via rustup) if missing
crys install go install Go if it's missing
crys install ruby install Ruby if it's missing
crys install php install PHP if it's missing
crys install py explains why crys can't do this one
crys lib install req py install from requirements.txt (pip)
crys lib install req node install from package.json (npm)
crys lib install req rust fetch deps from Cargo.toml (cargo)
crys lib install req go fetch deps from go.mod (go)
crys lib install req ruby install from Gemfile (bundler)
crys lib install req php install from composer.json (composer)
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 rust upgrade the Rust toolchain
crys update go upgrade the Go toolchain
crys update ruby upgrade the Ruby interpreter
crys update php upgrade the PHP interpreter
crys update py lib <name> pip install --upgrade <name>
crys update node lib <name> npm install <name>@latest
crys update rust lib <name> cargo update -p <name>
crys update go lib <name> go get -u <name>
crys update ruby lib <name> gem update <name>
crys update php lib <name> composer update <name>
crys remove py uninstall Python (asks to confirm)
crys remove node uninstall Node.js (asks to confirm)
crys remove rust uninstall Rust (asks to confirm)
crys remove go uninstall Go (asks to confirm)
crys remove ruby uninstall Ruby (asks to confirm)
crys remove php uninstall PHP (asks to confirm)
crys version print the crys version
crys version py print the Python version
crys version node print the Node.js version
crys version rust print the Rust version
crys version go print the Go version
crys version ruby print the Ruby version
crys version php print the PHP version
crys uninstall remove Crystal Dependency Manager
crys help show help text
Notes on the risky commands
crys update node/crys update pytry, in order:nvm/pyenv(if present, they just print the right follow-up command since those are shell functions, not real executables), thenbrewon macOS, thenapt/dnf/pacmanon Linux, thenchoco/wingeton Windows.crys remove node/crys remove pyalways ask for confirmation first.crys remove pyon 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, socrysstays 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file crys-0.1.6.tar.gz.
File metadata
- Download URL: crys-0.1.6.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
637f9f198c12a6ccdb2283255c1d93e4eaf586b029fcd80ad869220a51f05962
|
|
| MD5 |
4a66ed5d0752228a3dc32aa9d3f94346
|
|
| BLAKE2b-256 |
eac1b340b4666303ce744d08b9926fc7bcd6b7264e9396e4303f6afa273fee0a
|
File details
Details for the file crys-0.1.6-py3-none-any.whl.
File metadata
- Download URL: crys-0.1.6-py3-none-any.whl
- Upload date:
- Size: 12.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
617faaf05fc78cb6820bf88717627b3ec6fe98533613ce02dbf4eb2de29f8548
|
|
| MD5 |
c7a725f265095d9a08a67240bb2f2f03
|
|
| BLAKE2b-256 |
2c37602ff138d57f29fa9cccd5f845a85703f1012a7ee92072ad38c7e85c0697
|