<!doctype html>
<html>
  <title>npm-adduser</title>
  <meta http-equiv="content-type" value="text/html;utf-8">
  <link rel="stylesheet" type="text/css" href="../../static/style.css">

  <body>
    <div id="wrapper">
<h1><a href="../cli/npm-adduser.html">npm-adduser</a></h1> <p>Add a registry user account</p>

<h2 id="SYNOPSIS">SYNOPSIS</h2>

<pre><code>npm adduser</code></pre>

<h2 id="DESCRIPTION">DESCRIPTION</h2>

<p>Create or verify a user named <code>&lt;username&gt;</code> in the npm registry, and
save the credentials to the <code>.npmrc</code> file.</p>

<p>The username, password, and email are read in from prompts.</p>

<p>You may use this command to change your email address, but not username
or password.</p>

<p>To reset your password, go to <a href="http://admin.npmjs.org/">http://admin.npmjs.org/</a></p>

<p>You may use this command multiple times with the same user account to
authorize on a new machine.</p>

<h2 id="CONFIGURATION">CONFIGURATION</h2>

<h3 id="registry">registry</h3>

<p>Default: http://registry.npmjs.org/</p>

<p>The base URL of the npm package registry.</p>

<h2 id="SEE-ALSO">SEE ALSO</h2>

<ul><li><a href="../misc/npm-registry.html">npm-registry(7)</a></li><li><a href="../cli/npm-config.html">npm-config(1)</a></li><li><a href="../misc/npm-config.html">npm-config(7)</a></li><li><a href="../files/npmrc.html">npmrc(5)</a></li><li><a href="../cli/npm-owner.html">npm-owner(1)</a></li><li><a href="../cli/npm-whoami.html">npm-whoami(1)</a></li></ul>
</div>
<p id="footer">npm-adduser &mdash; npm@1.3.21</p>
<script>
;(function () {
var wrapper = document.getElementById("wrapper")
var els = Array.prototype.slice.call(wrapper.getElementsByTagName("*"), 0)
  .filter(function (el) {
    return el.parentNode === wrapper
        && el.tagName.match(/H[1-6]/)
        && el.id
  })
var l = 2
  , toc = document.createElement("ul")
toc.innerHTML = els.map(function (el) {
  var i = el.tagName.charAt(1)
    , out = ""
  while (i > l) {
    out += "<ul>"
    l ++
  }
  while (i < l) {
    out += "</ul>"
    l --
  }
  out += "<li><a href='#" + el.id + "'>" +
    ( el.innerText || el.text || el.innerHTML)
    + "</a>"
  return out
}).join("\n")
toc.id = "toc"
document.body.appendChild(toc)
})()
</script>
