
To uninstall Node on a Mac, first find out which Node.js you have, because each kind comes off a different way. The installer from nodejs.org puts its files in / and has no uninstaller, so they come off in Finder, with an administrator's password.
Homebrew's Node comes off with Homebrew, and nvm's versions come off one folder at a time, or all together with nvm itself. Both tools are command-line only, so this post describes what their commands do rather than spelling them out. Many Macs used for programming have two or three kinds at once.
Before you remove anything, check what's built on it. Command-line tools you installed globally with npm, including several AI coding tools, live inside the Node.js that installed them and disappear with it. Your projects and their node_modules folders stay, but won't run until a Node.js is back.
npm's cache doesn't go with Node.js either. It sits in your home folder and can be larger than Node.js itself, so it's worth a look once Node.js is gone.
Which Node.js do you have?
Every way of installing Node.js puts it somewhere different, and none of them removes another. They sit side by side, and the one that runs when you type node is the first your shell finds in its list of folders.
| Where it came from | Where it lives | How it comes off |
|---|---|---|
| The nodejs.org installer | /usr/local/bin and /usr/local/lib/node_modules | Finder, with an administrator's password |
| Homebrew | /opt/homebrew/Cellar on Apple silicon, /usr/local/Cellar on Intel | Homebrew's uninstall |
| nvm | ~/.nvm/versions/node | nvm, or one folder per version in Finder |
| fnm | ~/.fnm, or ~/Library/Application Support/fnm | Its folder and its shell lines |
| Volta | ~/.volta | Its folder and its shell lines |
| mise and asdf | ~/.local/share/mise/installs/node, ~/.asdf/installs/nodejs | The version manager's own commands |
| Inside an app | The app's own bundle | Only by uninstalling the app |
Why does a Mac end up with more than one?
Each route installs its own Node.js without asking about the others. Node.js's own download page for macOS now suggests nvm first, and offers the macOS Installer and a standalone binary below it. A tutorial may have sent you to the installer years ago, and a Homebrew package may have pulled Node.js in as a dependency.
In October 2026 that page listed Node.js 24.22.1 as the latest LTS release and 26.12.1 as the latest release. A Mac set up a few years ago may still carry an installer copy from version 16 or 18, next to a newer one from nvm.
How do you find each one in Finder?
Choose Go › Go to Folder in Finder, type a path from the table above, and press Return. Apple's guide notes that a tilde stands for your home folder, so ~/ opens nvm's folder even though it's hidden. If a folder doesn't exist, Finder says so and you can move on.
/: an item named node, with npm and npx next to it, usually means the installer, or Homebrew on an Intel Mac.usr/ local/ bin /: a folder called node, or node@22 or node@24 for an older line, is Homebrew's.opt/ homebrew/ Cellar ~/: one folder per version, such as v24.21.0..nvm/ versions/ node ~/and.volta ~/: Volta's and fnm's folders..fnm
Select any folder and choose File › Get Info to see its size. That tells you which removals are worth the effort.
Which one runs when you type node?
The first one your shell finds. Your shell looks through a list of folders in order, and nvm, fnm and Volta move their own folder to the front by adding lines to a hidden settings file such as .zshrc in your home folder.
So removing the Node.js that runs today usually hands the node command to the next one in line. That might be an old installer copy you'd forgotten, which is why a removal can seem to do nothing.
Is there a Node.js inside your apps?
Often, yes. Code editors and some AI apps include a Node.js of their own inside the app bundle. On one Mac measured in October 2026, ChatGPT's Mac app carried a 272 MB folder with Node.js 24 inside it, and Cursor carried 215 MB of its own.
Those copies belong to the apps. Removing your own Node.js doesn't touch them, and they go only when you uninstall the app. The post on what ChatGPT, Claude and Gemini keep on a Mac looks at those apps' folders.
Before you uninstall Node: what depends on it
Removing Node.js itself is quick. What takes thought is the software that was installed into it, or that expects it.
Which global packages will go with it?
npm's documentation explains where global packages go: into the folder where Node.js is installed, under lib/node_modules, with their commands linked into the bin folder next to node. So a global package belongs to one particular Node.js.
That means removing the installer's Node.js removes everything in /, and removing an nvm version removes the global packages installed while that version was active. Their commands stop working at the same moment.
Which AI coding tools does this affect?
Several AI coding tools offer npm as one way to install them. OpenAI's Codex CLI and Google's Gemini CLI both list a global npm install in their read-me files, next to Homebrew and other routes. Anthropic's documentation offers the same for Claude Code, with its own installer as the main route.
Anthropic notes that its npm package installs the same native program as its standalone installer, which doesn't use Node.js to run. But the package still lives in npm's global folder, so removing that Node.js removes the command. The post on the space AI coding tools take covers their own folders.
How do you see which global packages you have?
Open the global folder in Finder. For the installer, that's /. For nvm, it's lib/node_modules inside each version's folder. Every folder there is a global package; names starting with an at sign hold a group of related packages.
npm and corepack are always there, because they come with Node.js. Anything else is something you or a setup guide installed. Write the names down before you remove the Node.js, so you can install the ones you still use again.
Do your projects ask for a particular version?
Projects often name the Node.js version they need. Look in a project's folder for a file named .nvmrc or .node-version, or a .tool-versions file for mise and asdf, and for an engines entry in package.json.
If a project you still work on asks for Node.js 22, removing your last 22 means installing it again before the project runs. A version manager can do that in a minute, so it's an inconvenience, not a loss.
| What's built on Node.js | Where it lives | After Node.js goes | The fix |
|---|---|---|---|
| Global command-line tools | That Node.js's lib/node_modules | Their commands stop working | Install them again with the Node.js you keep |
| AI coding tools installed with npm | Same, as global packages | The command disappears | Reinstall, or use the tool's own installer |
| Project dependencies | Each project's node_modules | They stay, but can't run | Install Node.js again, then reinstall if versions differ |
| Your editor | Its own Node.js inside the app | Usually nothing | Point its settings at the Node.js you keep, if it asked for one |
| Shell settings | .zshrc, .zprofile, .bash_profile | Errors in new Terminal windows | Remove the tool's lines |
| npm's cache | ~/.npm | It stays | Keep it, or move it to the Trash |
Uninstall Node on a Mac when it came from nodejs.org
The installer asks for an administrator's password, because it installs Node.js for every account on the Mac. Node.js's build files show it's made of two parts, Node.js and npm, both installed into /, and it adds no uninstall app.
What did the installer put on your Mac?
- The node program in
/, next to links named npm and npx, and corepack in versions that include it.usr/ local/ bin - npm itself in
/, with corepack next to it where included. Your global packages land in the same folder.usr/ local/ lib/ node_modules/ npm - Header files in
/, used when packages compile native code.usr/ local/ include/ node - Documentation in
/and a manual page, node.1, inusr/ local/ share/ doc/ node /.usr/ local/ share/ man/ man1
The program, npm and the header files are nearly all of the space. In a Node.js 24 release measured on one Mac, the node program was 116 MB, the header files 64 MB and npm 17 MB.
How do you remove it in Finder?
- Quit your editor, Terminal and any app you started from Terminal, so nothing is running from Node.js.
- Note your global packages in
/, as described above.usr/ local/ lib/ node_modules - Choose Go › Go to Folder, enter
/and press Return. Move npm, corepack and your global packages to the Trash, entering an administrator's password when asked.usr/ local/ lib/ node_modules - Go to
/and move the node folder to the Trash.usr/ local/ include - Go to
/and move the node folder to the Trash, then node.1 fromusr/ local/ share/ doc /.usr/ local/ share/ man/ man1 - Go to
/and move node to the Trash, then the npm, npx and corepack links and your global packages' links, as the next section explains.usr/ local/ bin
Leave the Trash full for now. If something you need stops working, File › Put Back returns each item to its place.
Which items in /usr/local/bin are Node's?
The node program, and links. Finder treats the links there like aliases: select one and choose File › Show Original to see where it points. Links that point into / belong to npm or a global package and can go.
On an Intel Mac, Homebrew keeps its own links in the same folder, and other tools put programs there too. Never move / itself, or anything you can't trace to Node.js. A link whose original is gone does nothing, so when in doubt, leave it.
Is there an uninstaller for Node.js?
No. The installer adds no uninstall app, and Node.js's site documents none. Scripts shared online read the installer's records and delete the files in Terminal, but they delete outright instead of using the Trash, so a wrong path can't be undone.
The Finder route takes a few more minutes and keeps every step reversible. It also lets you see what you're removing, which matters in a folder that other tools share.
What about the folders the installer leaves empty?
Moving Node.js's items out of /, / and / can leave those folders empty. Leave them. They're part of a standard layout that other installers use, and an empty folder takes no space.
Removing Homebrew's Node
Homebrew's Node.js is often there because another Homebrew package needed it, not because you asked for it. Homebrew's formula page lists about twenty libraries it depends on, such as libuv, openssl and icu4c, which Homebrew installed alongside it.
How do you uninstall Homebrew's Node?
With Homebrew. It's a command-line tool, so there's no app or menu for this. Its uninstall removes the formula's folder from the Cellar along with the links it made in Homebrew's bin folder.
Homebrew's manual describes a separate cleanup for what's left: it removes formulae that were only installed as a dependency of another formula and aren't needed anymore. That's how Node.js's libraries go once nothing else uses them.
Why might Homebrew refuse?
Because other installed formulae depend on it. Homebrew won't uninstall a formula that another one needs, unless it's told to ignore dependencies, which leaves those formulae unable to start. Uninstall them first, or keep Node.js.
The catalog's entry for the Homebrew Cellar rates it Review first and leaves removal to Homebrew. Deleting a folder there in Finder leaves Homebrew's links pointing at nothing, and the packages that needed it fail with confusing errors. The Homebrew cleanup post explains what Homebrew removes on its own.
What happens to global packages installed with Homebrew's npm?
They live with Homebrew's Node.js, in / on Apple silicon, following npm's rule that global packages go next to the Node.js that runs them. They aren't Homebrew formulae, so Homebrew doesn't track them.
Check that folder after uninstalling. If anything is left there, it's packages you installed with npm, and they can go to the Trash once you've noted the ones to install again.
What are node@22 and node@24?
Homebrew's formulae for older release lines, kept next to the main one, which follows the newest release. Each is a separate formula with its own folder in the Cellar, removed the same way. They don't replace each other, so a Mac can have several.
Removing nvm versions, or nvm itself
nvm is a set of shell scripts, so it has no app or menu either. It keeps each Node.js version in a folder of its own, which makes removing one version simple, and removing everything only slightly harder.
How do you remove one nvm version?
nvm has its own uninstall command for a version. You can also do it in Finder: choose Go › Go to Folder, enter ~/, and move the folder named after the version, such as v22.14.0, to the Trash.
The catalog rates Node.js versions installed with nvm as Review first. The folder holds that version's global packages as well as Node.js, and if it's nvm's default version, node isn't available in new Terminal windows until another default is chosen.
How much space does an old nvm version take?
It depends on its global packages. On the Mac measured for this post, Node.js 24.21 with only npm and corepack took 200 MB. Node.js 22.14, with about ten global command-line tools installed into it, took 1.1 GB.
So an old version is worth removing if you've moved on, but only after moving its tools. nvm's read-me describes an option, when installing a new version, that reinstalls the global packages from an old one, which makes the move painless.

Can you delete nvm's download cache?
Yes. When nvm installs a version, it keeps the download in ~/. The catalog rates nvm download cache as Safe: installed versions don't depend on it, and reinstalling a version just downloads it again. nvm also has an option of its own to empty it.
How do you remove nvm completely?
nvm's read-me lists two parts. Remove its folder, ~/, which deletes every Node.js version it installed and their global packages. Then remove the lines nvm's installer added to your shell's startup file.
- Quit Terminal and your editor.
- In Finder, choose Go › Home, then press Shift-Command-Period to show hidden files. Move the .nvm folder to the Trash.
- In the same window, duplicate .zshrc as a backup, then open the original in TextEdit.
- Delete only the lines that mention NVM_DIR, nvm.sh and bash_completion, and save.
- Open a new Terminal window. It should start without errors.
nvm's installer may have used .bash_profile, .bashrc or .profile instead of .zshrc. Check each one that exists. Skip this step and every new Terminal window complains that nvm can't be found.
What if you installed nvm with Homebrew?
nvm's read-me says Homebrew installation isn't supported, and asks people with problems to uninstall Homebrew's nvm and use nvm's own installer. If you have it, uninstall it with Homebrew, then remove ~/ and the shell lines as above.
fnm, Volta, mise and asdf
Other version managers work the same way: a folder of versions, plus lines in your shell's startup file. Removing one means removing both.
How do you remove fnm?
fnm's read-me says to delete the .fnm folder in your home folder and remove the references to fnm from your shell settings. On a Mac, fnm's install script defaults to ~/ instead, so check both places.
Its read-me also notes that Homebrew is fnm's default installation method on macOS. If that's how it came, uninstall fnm itself with Homebrew.
How do you remove Volta?
Volta's documentation lists two steps: remove the whole ~/ folder, which holds its Node.js versions and tools, and remove the two lines that mention Volta from your shell's profile files, such as .zshrc, .zshenv or .bash_profile. It adds that you may need a new Terminal window afterwards.
What about mise and asdf?
They manage many languages, not only Node.js, and keep records of what they installed. The catalog explains mise tool versions and asdf tool versions as Review first and leaves their removal to the tools' own commands, which remove one version at a time. Removing their folders in Finder leaves those records out of step.
The Python uninstall post walks through the same version managers for Python, if you're clearing out more than Node.js. Java is the other runtime developers' Macs tend to collect several of, and the post on uninstalling Java and old JDKs covers SDKMAN and the rest.
| Version manager | Where versions live | Remove one version | Remove the tool |
|---|---|---|---|
| nvm | ~/.nvm/versions/node | nvm's uninstall, or its folder in Finder | Remove ~/.nvm and its shell lines |
| fnm | ~/.fnm or ~/Library/Application Support/fnm | fnm's own command | Remove its folder and shell lines |
| Volta | ~/.volta | Volta's own command | Remove ~/.volta and its two shell lines |
| mise | ~/.local/share/mise/installs/node | mise's own commands | mise's own steps |
| asdf | ~/.asdf/installs/nodejs | asdf's own commands | asdf's own steps |
npm's cache and the other package managers' caches
Uninstalling Node.js doesn't touch the package managers' caches. They live in your home folder, outside every Node.js installation, and on a developer's Mac they're often bigger than Node.js itself.
What's in the hidden .npm folder?
npm's documentation says its cache lives in ~/ on a Mac. Inside, _cacache holds every package npm has downloaded, _npx holds packages fetched to run one-off commands, and _logs holds npm's logs. On the Mac measured for this post, _cacache took 933 MB and _npx 1.0 GB, while the logs were tiny.
Is it safe to delete npm's cache?
Yes. The catalog rates npm cache as Safe: npm downloads anything it needs again, so projects that are already installed keep working. The next installs take longer and need an internet connection.
npm expects to manage _cacache itself, and has its own cache command for it. If you're removing Node.js for good, moving the whole .npm folder to the Trash is fine too, since no npm is left to use it.
What about the npx cache?
npx cache is Safe too. It holds the packages behind commands you ran with npx without installing them, such as project generators. Running one again downloads its package again. A tool that's running from that folder when it's removed can stop until it's started again.
And node-gyp, pnpm, Yarn and Bun?
- node-gyp keeps Node.js header files for building native packages in
~/, one folder per version. The catalog rates the node-gyp headers cache as Safe.Library/ Caches/ node-gyp - pnpm keeps one shared store in
~/. The pnpm store is Safe, with pnpm's own cleanup removing only what no project uses.Library/ pnpm/ store - Yarn Classic caches packages in
~/, rated Safe.Library/ Caches/ Yarn - Bun keeps its cache in
~/, also Safe, emptied with Bun's own command..bun/ install/ cache
The post on npm, Yarn, pnpm and Bun caches goes through each one in detail, with what it costs to clear them.
- pnpm store3.9 GB · Safe
- Node.js 22.14 with global tools, nvm1.1 GB · Review first
- npx cache1 GB · Safe
- npm cache0.9 GB · Safe
- Node.js 24.21 alone, nvm0.2 GB · Review first
Measured on one developer's Mac in October 2026, by space used on disk. pnpm's store shares space with projects' node_modules folders, so clearing it frees less than its size. Yours will differ.
Do Node.js versions keep anything else?
A little. Node.js keeps the history of its interactive prompt in a file named .node_repl_history in your home folder, according to its documentation. npm keeps its settings in .npmrc, if you made one, which may also hold a sign-in token for a package registry. Both are small; remove them if you're done with Node.js for good.
Other language toolchains keep caches the same way, outside the runtime itself. If you also build mobile apps, the post on Flutter's pub cache covers Dart's.
What breaks after you remove Node.js
Most of it comes back with a reinstall. Knowing what to expect makes the first day after a removal less confusing.
Commands you installed globally
Any command from a global package stops working at once: a deploy tool, a project generator, an AI coding tool. The shell says the command can't be found. Install the ones you use again with the Node.js you kept, or with the tool's own installer where it has one.
Projects and their node_modules folders
They stay exactly as they were. A project won't run or build until a Node.js is available, and if you install a different major version, packages with native code may need to be installed again.
If you're leaving projects behind for good, their node_modules folders are where the space is. The post on deleting every node_modules folder explains how to find them and what's safe. The catalog rates node_modules as Usually safe.
Shell settings
Lines that nvm, fnm or Volta added to .zshrc keep running after the tool is gone. New Terminal windows then print errors, or a command not found message, every time. Removing the lines, as described above, stops it.
Editors and apps
Editors that run their own Node.js keep working. Editors set to use a particular Node.js for running or debugging your code ask you to pick another. Apps that carry their own Node.js, such as the ones measured above, aren't affected at all.
What if an app won't let you delete it?
That's an app question, not a Node.js one. Some apps refuse to go to the Trash while a helper is running, and the post on apps that won't delete covers each cause.

A worked example
Say a Mac has the installer's Node.js 18 from an old tutorial, nvm with versions 22 and 24, and a pnpm store. Its owner wants one Node.js, managed by nvm.
What stays and what goes
nvm's version 24 stays and becomes the default. Version 22 holds ten global tools, two of them still in use. Its owner installs those two into version 24 first, then moves the v22 folder to the Trash.
The installer's Node.js 18 has no global packages of its own. Its node program, its npm, corepack and links, its header files and its documentation go to the Trash, with an administrator's password. Afterwards, node in a new Terminal window runs nvm's 24.
The caches
npm's cache and the npx folder stay, because nvm's Node.js still uses npm. The owner checks node-gyp's cache: it has folders for 18, 22 and 24, and the first two go. The pnpm store stays too, because pnpm's own cleanup handles it better than the Trash.
The order that avoids surprises
- List what you have, with the folders in the first table.
- Pick what stays: usually one version manager, or one installer copy.
- Note global packages in each Node.js you're removing.
- Reinstall the tools you use into the Node.js you keep.
- Remove from the top down: tools first, then Node.js, then its shell lines.
- Open a new Terminal window: it should start without errors. Then build or run a project the way you normally do.
- Empty the Trash after a day or two of normal use.
Mistakes to avoid
Most problems after uninstalling Node.js come from removing a little too much, or too little.
Moving whole shared folders
/, /, / and / hold other software too, Homebrew's among them on Intel Macs. Remove only Node.js's items inside them, never the folders.
Removing a Node.js that Homebrew packages need
Homebrew refuses for a reason. Forcing it leaves every package that needed Node.js broken until you reinstall it.
Forgetting the shell lines
Removing ~/ or ~/ without its lines in .zshrc leaves errors in every new Terminal window. Remove both.
Expecting the space in the wrong place
Node.js itself is a couple of hundred megabytes. The gigabytes are usually in global tools, npm's and pnpm's caches, and node_modules folders, so check those before deciding a removal didn't help.
Pasting removal scripts from the web
Commands that delete files skip the Trash, so a typo in a path can't be undone. Everything in this post works in Finder and TextEdit, except where a tool only offers a command, and this post says where.
Emptying the Trash straight away
If a tool or project breaks a day later, File › Put Back fixes it while the Trash is still full. After it's emptied, only a backup can. If you're comparing ways to remove whole apps instead, the post on choosing an uninstaller covers that.

How the app does it
Wombit explains Node.js's folders like everything else on the disk. Select one in the map or the list, and the inspector says what it is, how safe it is to remove and what removing it costs, from the catalog's entry. It reads only names, sizes and dates, and file names and paths never leave your Mac.
Cleanup lists them by level:
- npm's cache, the npx cache, node-gyp's cache, nvm's download cache, Yarn Classic's cache, pnpm's store and Bun's cache are Safe and start checked.
- Project node_modules folders are Usually safe and wait for you to check them.
- nvm's Node.js versions are Review first, because each holds global packages.
- Homebrew's Cellar and mise's and asdf's versions are Review first too, explained with each tool's own way to remove them. The app doesn't move them.
Folders go to the Trash, where Put Back works. For npm, pnpm and Bun, the app runs the tool's own cleanup after the review sheet instead. What a command removes can't be put back, and the sheet says so.
What the app runs, after you review itPRO
- npm cache clean --force
- npm's package cache
- pnpm store prune
- Packages in pnpm's store that no project on your Mac uses
- bun pm cache rm
- Bun's global install cache
The installer's files in / have no catalog entry, so they're never offered for removal. On a Mac with Apple Intelligence, the inspector can give a Best guess at what one is, labelled as a guess.
~/
.nvm/ versions/ node/ * Node.js versions installed with nvm
A version of Node.js installed with nvm, along with the global npm packages installed for it.
Review first · Moves it to the Trash
~/
.nvm/ .cache Node.js downloads nvm keeps after it installs a version.
Safe · Moves it to the Trash
~/
.npm/ _cacache Packages and package information npm has downloaded, kept so it doesn't download them again.
Safe · Runs npm cache clean --force
~/
.npm/ _npx Packages npx downloaded to run commands that aren't installed in a project.
Safe · Moves it to the Trash
~/
Library/ Caches/ node-gyp Node.js header files node-gyp downloads to build packages that include native code.
Safe · Moves it to the Trash
/
opt/ homebrew/ Cellar Command-line tools and libraries installed with Homebrew, in one folder for each package and version.
Review first · Explained only: never removed
Seeing all of this is free. Removing it is PRO, one $4.99 payment with lifetime access. Every Pro tool's review is free to open, so you see what would go and why before you buy.
Frequently asked questions
Does the Node.js installer for Mac have an uninstaller?
No. The macOS installer from nodejs.org puts Node.js and npm into folders under /usr/local and adds no uninstall app. You remove those items yourself in Finder, with an administrator's password, and move them to the Trash so you can put them back if something breaks.
Where is Node.js installed on a Mac?
It depends on how it was installed. The nodejs.org installer uses /usr/local/bin and /usr/local/lib/node_modules, Homebrew uses its Cellar in /opt/homebrew on Apple silicon or /usr/local on Intel, and nvm keeps each version in ~/.nvm/versions/node. Apps can also carry their own copy inside the app.
Does uninstalling Node.js remove my global npm packages?
Usually, yes. npm installs global packages next to the Node.js that ran it, so removing that Node.js, or that nvm version, takes its global packages and their commands with it. Note which ones you use before you remove anything, so you can install them again later.
How do I uninstall nvm on a Mac?
nvm's documentation describes two parts: remove its folder, ~/.nvm, which holds every Node.js version it installed, and remove the nvm lines it added to your shell's startup file, usually .zshrc. Both can be done in Finder and TextEdit. Open a new Terminal window afterwards.
Will uninstalling Node.js delete the npm cache?
No. npm keeps its cache in the hidden .npm folder in your home folder, outside every Node.js installation, so it stays after Node.js is gone. If you won't use npm again, you can move that folder to the Trash; everything in it downloads again if you ever need it.
Why is node still there after I uninstalled it?
Because a Mac often has more than one Node.js, and your shell runs the next one it finds. Common leftovers are a Homebrew copy, an nvm version or the nodejs.org installer's files. Open a new Terminal window after each removal, so the shell looks again.
Can I delete the copy of Node.js inside an app?
No. Some apps, such as code editors and AI apps, include their own Node.js inside the app and need it to work. It's removed when you uninstall the app, and removing your own Node.js doesn't affect it.
Sources
- Go directly to a specific folder on Mac · Apple
- Download Node.js · Node.js
- Makefile: the macOS installer (pkg) build · Node.js on GitHub
- Folders · npm Docs
- nvm: Uninstalling / Removal · nvm on GitHub
- brew(1) manual page · Homebrew