What is node_modules cache?
An API service for reusing previously built node_modules archives. Instead of reinstalling on every CI run, your pipeline requests an archive and extracts it when the same dependency set was processed before.
How does it work?
- Call
POST /api/v2/npm/ciwith your manifests in anapplication/jsonbody. - We compute a deterministic hash from your user, image digest, architecture, and payload.
- Cache hit:
302to an existing archive. Cache miss: we runnpm ci, store it, then return302. - Your client follows the redirect, downloads
node_modules.tar.gz, and extracts it.
What CI/CD systems are supported?
Any CI system that can make HTTP requests — GitHub Actions, GitLab CI, Jenkins, CircleCI, Bitbucket Pipelines, etc. The API is platform-agnostic.
Is there a CLI client?
Yes. The nmc CLI is an open-source Go binary that handles the full flow — request, extraction, retries, and automatic npm ci fallback. Drop it into any CI runner and set four environment variables. Pre-built binaries are available for Linux and Windows (amd64 / arm64).
How long are cached archives kept?
Archives are retained for 3 months from the last request that matched them. If no request hits a cached archive within that window, it expires and the next request for the same dependency set is treated as a cache miss — we run npm ci again and store a fresh archive as usual.
Because of this, always keep an npm ci fallback in your pipeline or use the nmc CLI , which handles retries and fallback automatically.