kley-cli
v0.3.0
Published
Fast and reliable local package manager for npm (JS/TS)
Readme
📦 kley
English | Русский
A simple local package manager for npm (JS/TS)
Like
npm link, but with a more convenient workflow. Likeyalc, but without the dependency on Node.js.
kley is a command-line tool that simplifies local development of npm packages. It provides a robust alternative to npm link by managing a local package store, allowing you to "publish" packages to a central cache on your machine and "add" them to your projects via direct file copying. This avoids the common pitfalls of symbolic links.
Key Features
- Node.js Independent: Publish and install packages even if the library and the host project use different Node.js versions.
- Fast, Efficient, and Safe: Written in Rust for memory safety, security, and maximum performance.
- Reliable: Avoids symlink issues by copying files directly.
- Simple API: Four core commands to get started:
publish,add,link, andremove. - Cross-Platform: Works on macOS, Linux, and Windows.
Installation
Quick Install (recommended)
You can install kley with a single command using the installer script:
# Linux / macOS
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/sumbad/kley/releases/latest/download/kley-installer.sh | sh# Windows
powershell -ExecutionPolicy Bypass -c "irm https://github.com/sumbad/kley/releases/latest/download/kley-installer.ps1 | iex"Manual Installation
Alternatively, you can install kley by downloading a pre-compiled binary from the Releases page.
- Download the appropriate archive for your system (e.g.,
kley-x86_64-apple-darwin.tar.gz). - Unpack the archive.
- Move the
kleybinary to a directory in your system'sPATH(e.g.,/usr/local/binon macOS/Linux).
Install via Cargo (crates.io)
If you have Rust and Cargo installed, you can install kley directly from crates.io:
cargo install kleyInstall via npm (kley-cli)
You can install kley-cli globally. Use it only if you have the same Node.js versions for your library and host a project, otherwise you should install it to all Node.js versions:
npm install -g kley-cliUsage
1. kley publish
Run this command in the directory of the package you want to share locally. Kley copies all necessary files to a central store at ~/.kley/packages/<your-package-name>.
2. kley add <package-name>
Run this command in the project where you want to use your local package. Kley copies the package into a local ./.kley/ directory, then automatically updates your package.json and kley.lock.
- Use the
--devflag to add the package todevDependencies.
3. kley link <package-name>
This command provides a lightweight alternative to add. It first copies the package to a local .kley directory and then creates a symbolic link from ./.kley/<your-package-name> to your project's node_modules directory. This is faster than a full add and does not modify your package.json.
4. kley remove <package-name>
Run this command to cleanly remove a kley-managed dependency from your project. It will update package.json and kley.lock, and delete the package files from the ./.kley/ directory.
- Use the
--allflag to remove all kley-managed packages from the project.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
About
This project is inspired by great tools like yalc. The main advantage of kley is that it is a single, self-contained binary with no dependency on Node.js. This means you can manage packages regardless of your current Node.js version or any issues with npm itself.
Note: This project is in active development and currently supports only the basic commands. More features are coming soon!
License
This project is licensed under the MIT License - see the LICENSE file for details.
