Skip to Content
DocsutooOverview

utoo

utoo (ut) is a fast, modern package manager for JavaScript projects, providing npm-compatible package management with performance optimizations.

utoo is a drop-in replacement for npm with better performance.

Installation

No Node.js required. Install with a single command:

Terminal
curl -fsSL https://utoo.land/install | bash

Quick Start

1. Install dependencies

Terminal
ut install

2. Add a package

Terminal
ut install lodash ut install -D typescript

3. Run scripts

Terminal
ut build ut dev

4. Execute remote packages

Terminal
utx create-react-app my-app

Commands

All Commands

CommandAliasDescription
installiInstall dependencies
uninstallunRemove dependencies
runrRun package.json scripts
executexExecute npm package binaries
viewv, info, showView package information
listlsList dependency tree
linklnLink local packages
depsdGenerate package-lock.json
updateuUpdate dependencies
rebuildrbRebuild script hooks
cleancClean package cache
pm-packpkCreate a tarball from a package
pingpgPing npm registry
loginlgLogin to npm registry
logoutloLogout from npm registry
whoamiwhoDisplay npm username
configcfgManage configuration
initcreateCreate a package.json file
publishpubPublish a package to the registry
completionscmpGenerate shell completion scripts

Global Options

OptionDescription
--verboseEnable debug logging
--registry <url>Override npm registry
--cache-dir <path>Specify cache directory
--legacy-peer-depsLegacy peer dependency handling
--manifests-concurrency-limit <n>Max concurrent manifest fetches (default: 64)
-h, --helpShow help
-v, --versionShow version

Features

Global Cache

Installed packages are cached by package/version in ~/.cache/nm/. Subsequent installs hard-link directly from the cache, skipping download and extraction. Each version is stored only once on disk, shared across projects.

~/.cache/nm/ ├── lodash/4.17.21.tgz ├── react/18.3.0.tgz └── typescript/5.6.0.tgz

npmmirror Acceleration

When using npmmirror as the default registry, utoo provides two additional optimizations:

  • Binary mirror — Prebuilt binaries for native modules (e.g., esbuild, swc, cypress) are downloaded from the npmmirror CDN, avoiding GitHub Releases and other overseas sources
  • Semver requests — Supports passing version ranges directly in the URL (e.g., /lodash/^4), letting the registry resolve versions server-side to reduce client-side requests
Terminal
# Check if a registry supports semver requests ut ping # → PONG 15ms (supports-semver: yes)

Migrate from pnpm

One command to migrate from a pnpm project, automatically converting workspaces, overrides, and catalog configuration from pnpm-workspace.yaml:

Terminal
ut install --from pnpm

See Migrating from pnpm for details.

Shortcut Execution

You can run package.json scripts directly without run:

Terminal
ut build # same as: ut run build ut dev # same as: ut run dev ut test # same as: ut run test
Last updated on