yalc is a local package development tool that replaces remote npm dependencies with local copies, enabling iterative testing and development of unpublished packages across multiple projects without publishing to a remote registry. It manages a global flat-file store of package copies and uses symlinks to inject those copies into a project's node_modules for real-time development workflows.
The tool operates through a copy-on-publish workflow, where publishable files from a local package are copied into the global store, mimicking a registry publish locally. It tracks installed packages via a lock file for rollback and restoration, directly manipulates package.json to add or remove local package references, and supports push-based update propagation to broadcast package updates from the central store to all consuming projects.
yalc provides a full lifecycle of local package operations, including adding, linking, publishing, updating, removing, and restoring packages. It also supports temporarily replacing a local package with the remote registry version and later restoring it, as well as publishing sub-projects within a monorepo. The tool's documentation covers installation and usage through its command-line interface.