nrm -- npm registry manager

NPM 注册表管理器,在不同注册表之间快速切换:NPM、CNPM、NJ、淘宝。「NPM registry manager, fast switch between different registries: npm, cnpm, nj, taobao」

Github stars Tracking Chart

nrm -- npm registry manager

nrm can help you switch different npm registries easily and quickly. It supports
npm, cnpm, taobao, yarn, tencent, npmMirror and huawei.

Install

# npm
npm install -g nrm

# yarn 
yarn global add nrm

# pnpm
pnpm add -g nrm

Example

$ nrm ls

* npm ---------- https://registry.npmjs.org/
  yarn --------- https://registry.yarnpkg.com/
  tencent ------ https://mirrors.tencent.com/npm/
  cnpm --------- https://r.cnpmjs.org/
  taobao ------- https://registry.npmmirror.com/
  npmMirror ---- https://skimdb.npmjs.com/registry/
  huawei ------- https://repo.huaweicloud.com/repository/npm/

$ nrm use taobao

SUCCESS The registry has been changed to 'taobao'.

Usage

[!TIP]
The lowest node version is 18 from v1.4.0.

Usage: nrm [options] [command]

  Commands:

    ls                                    List all the registries
    current                               Show current registry name
      -u  --show-url                        Show the registry URL instead of the name
    use [registry]                        Change registry to registry
      -l  --local                           Switch local registry
    add <registry> <url> [home]           Add one custom registry
    login <registry> [value]              Set authorize information for a registry with a base64 encoded string or username and password
      -a  --always-auth                     Set is always auth
      -u  --username <username>             Your user name for this registry
      -p  --password <password>             Your password for this registry
      -e  --email <email>                   Your email for this registry
    set-hosted-repo <registry> <value>    Set hosted npm repository for a custom registry to publish packages
    set-scope <scopeName> <value>         Associating a scope with a registry
    del-scope <scopeName>                 Remove a scope
    set <registryName>                    Set custom registry attribute
      -a  --attr <attr>                    Set custom registry attribute
      -v  --value <value>                  Set custom registry value
    del [registry]                        Delete one custom registry
    rename <registryName> <newName>       Set custom registry name
    home <registry> [browser]             Open the homepage of registry with optional browser
    publish [<tarball>|<folder>]          Publish package to current registry if current registry is a custom registry. The field 'repository' of current custom registry is required running this command. If you're not using custom registry, this command will run npm publish directly
      -t  --tag [tag]                        Add tag
      -a  --access <public|restricted>       Set access
      -o  --otp [otpcode]                    Set otpcode
      -dr --dry-run                          Set is dry run
    test [registry]                       Show the response time for one or all registries
    help [command]                        Display help for command

  Options:

    -h  --help     output usage information
    -V  --version  output the version number

Registries

How to configure yarn to use private registry ?

just add .yarnrc in your project’s directory and write there:
registry "http://your.registry"

Or you can configure it in your HOME directory's .yarnrc

TODO

  1. Add more registries: github, sonatype

Notice

When you are using preset registries the publish command will proxy to the npm official registry.

When you are using a custom registry you will need to run the set-hosted-repo to set a url to publish packages to your hosted registry.

Maintainer is wanted

If you find nrm is useful and are an experienced node.js developer, then you can help maintain nrm.

If you have the interest, you can reach me through email: pana.wang@outlook.com

Contributors

LICENSE

MIT

Main metrics

Overview
Name With OwnerPana/nrm
Primary LanguageTypeScript
Program languageJavaScript (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2014-02-28 06:41:32
Pushed At2025-07-13 02:08:58
Last Commit At2025-07-13 10:08:58
Release Count10
Last Release Namev2.1.0 (Posted on 2025-07-12 05:54:58)
First Release Name0.1 (Posted on 2014-03-08 22:58:01)
用户参与
Stargazers Count3k
Watchers Count41
Fork Count252
Commits Count329
Has Issues Enabled
Issues Count110
Issue Open Count26
Pull Requests Count73
Pull Requests Open Count5
Pull Requests Close Count38
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private