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

Performance comparison

utoo is optimized around dependency resolution, download reuse, and global package-cache reuse. The table below shows the ant-design phased install benchmark measured on 2026-08-27 in a Linux China x86_64 environment connected directly to https://registry.npmmirror.com. Lower is better.

ScenarioutooBunpnpm 10pnpm 12aube
Full cold (p0)12.04s ± 1.25s19.63s ± 1.32s33.88s ± 0.64s18.50s ± 6.22s26.47s ± 7.65s
Lock-only cold (p3)22.28s ± 12.71s31.75s ± 15.11s40.70s ± 11.64s31.67s ± 10.09s
Warm (p4)1.22s ± 0.07s4.58s ± 0.32s9.86s ± 0.48s2.60s ± 0.09s

Utoo has the fastest mean in all three valid install states. Variance is high in p0 / p3, so those are directional results; the low-variance p4 signal is the strongest. Aube’s p3 / p4 cells were rejected because the expected lockfile was missing. See performance benchmarks for the full GitHub Actions npmjs results.

Commands

All Commands

CommandAliasDescription
installiInstall project dependencies
uninstallunUninstall spec dependencies
runrRun scripts defined in package.json
executexRun a command from a local or remote npm package
viewv, info, showView package information
listlsList dependencies like npm list
linklnLink a package like npm link
depsdGenerate package-lock.json only
updateuRemove node_modules and reinstall
rebuildrbRebuild scripts hooks in all packages
cleancClean package cache in global storage
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
*Any unknown name falls through to ut run *

Per-command options are listed in each command’s section; run ut <command> --help to see them in the terminal.

Global Options

OptionDescription
-h, --helpPrint help information
-v, --versionPrint version information

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

Registry Acceleration

When the configured registry is cnpm-compatible (registry.npmmirror.com and similar), utoo automatically enables two optimizations: semver query acceleration (server-side version resolution) and binary mirror (native-module downloads redirected to a CDN). Both are off on the official npm registry.

See Registry Acceleration for how each works, and ut ping to probe a registry from the CLI.

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