# Cursor using high CPU or draining your Mac’s battery? How to find the cause

Canonical page: https://vitalsmac.com/cursor-high-cpu-mac

By Atta Ur Rehman Shah, maker of Vitals. Published October 3, 2026.

**Short answer:** Cursor is built like a browser, so Activity Monitor shows it as several processes: Cursor, Cursor Helper (Renderer) for each window, Cursor Helper (Plugin) for extensions, and Cursor Helper (GPU). High CPU nearly always comes from one of three places: an extension, indexing or file watching in a large project, or a tool the agent started and left running, such as a dev server or a linter. In Cursor, choose Help → Open Process Explorer to see which it is. Vitals, a system monitor for the Mac, shows Cursor as one app split into windows, extensions and graphics, and lists every process working in each project folder.

## How to find what Cursor is doing

1. Open Activity Monitor, click CPU, and type Cursor in the search field. Note which row is busy: Cursor Helper (Plugin) is your extensions, Cursor Helper (Renderer) is a window, Cursor Helper (GPU) is drawing.
2. In Cursor, choose Help → Open Process Explorer. It lists Cursor’s own processes by name, with CPU and memory, so you can see whether it is the extension host, a window, the file watcher or a search.
3. If extensions are the cause, open the Command Palette (⇧⌘P) and run `Help: Start Extension Bisect`. Cursor turns extensions off in halves until it finds the one responsible.
4. Clear Activity Monitor’s search field and sort by % CPU again. Look for `node`, `next-server`, `biome` and similar tools near the top: these are not Cursor itself but things it or its agent started.
5. Quit Cursor completely with ⌘Q and watch for a minute. Anything from the last step that is still running was left behind; select it and click the stop button in Activity Monitor’s toolbar.

To rule extensions in or out in one go, quit Cursor and start it from Terminal with `cursor --disable-extensions`. If the Mac stays cool, an extension is the cause.

Cursor is a fork of Visual Studio Code, and both are Electron apps: a browser engine, a Node.js service that runs extensions, and a process per window. On top of that Cursor indexes your project so its AI can search it, and its agent runs commands in a terminal on your behalf. Each of these can keep the CPU busy, each shows up under a different name, and each has a different fix. The table matches the name you see to what it is.

## What Cursor’s processes are

| What you see | What it is | What to do |
|---|---|---|
| Cursor Helper (Plugin) at high CPU | The extension host: every extension runs in it | Extension Bisect, or start with extensions disabled |
| Cursor Helper (Renderer) at high CPU | One window, its editor and chat | Close long chats and unused windows; reload the window |
| `rg` processes at high CPU | Search and indexing reading the project’s files | Exclude large folders from search and indexing |
| Cursor Helper (GPU) busy | Drawing the interface | Usually brief; update Cursor if it stays high |
| `node`, `tsc`, `biome` running hot | A dev server, type checker or linter started from Cursor | Stop it in Cursor’s terminal, or quit it in Activity Monitor |

## Extensions: the most common cause

Every extension runs inside one process, Cursor Helper (Plugin), so one busy extension makes the whole process look guilty. Linters, formatters and language servers that re-check a large project on every keystroke are the usual ones. Extension Bisect finds the one responsible in a few restarts, which is quicker than turning them off one at a time.

Extensions that came over from Visual Studio Code when you first set Cursor up are worth a look too: some overlap with what Cursor already does. Remove what you do not use; a disabled extension costs nothing.

## Large projects: indexing and file watching

When you open a project, Cursor indexes it for its AI, and watches its files for changes. In a large repository, or one with big generated folders, that can keep several cores busy for a long time, and people on Cursor’s forum report `rg` search processes that never settle in very large projects.

Keep generated and vendored folders out of it. Add them to a `.cursorignore` file in the project’s root, and to `files.watcherExclude` and `search.exclude` in Settings. Build output, dependency folders and caches are the ones that matter. Then check Cursor Settings → Indexing & Docs to see whether indexing has finished.

## What the agent leaves running

Cursor’s agent runs commands for you: a dev server to check its work, a type checker, a test watcher. When the task ends, or the chat is closed, those processes do not always stop. They are ordinary processes with no window, so nothing on screen says they are there, and a stuck linter or a dev server holding several gigabytes can run for days.

They are also why Cursor seems to drain the battery after you close it: Cursor has quit, and what it started has not. Check Activity Monitor after quitting, as in the steps above. A process whose parent has gone is called an orphan, and it is usually what people mean when they ask about a [zombie process](https://vitalsmac.com/glossary/zombie-process).

## Battery: what to expect

An Electron editor with an AI model answering as you type uses more energy than a plain text editor, and that part is the price of the tool. What is not normal is high CPU while you are not typing. If Activity Monitor’s Energy tab shows Cursor near the top while it sits idle, work through the steps above. For the wider picture, see [what is draining your Mac’s battery](https://vitalsmac.com/mac-battery-draining-fast).

## What Vitals adds

Vitals shows Cursor as one app with its parts named, and the processes it started grouped by project.

- Cursor as one row with its total memory, CPU and energy; click it to see windows, extensions and graphics separately
- A Projects tab: every process working in a project folder, whichever app started it, with its memory, CPU and the ports it listens on
- Dev servers left running idle are pointed out, with an offer to stop them
- A notification when an app holds the CPU for minutes or its memory keeps growing
- Which app used the most energy, hour by hour, so you can see whether it was Cursor or what it started

Good to know:

- Vitals shows the extensions’ process, not which extension inside it is busy. Cursor’s Extension Bisect finds that.
- Vitals never quits anything by itself. Quit and Stop act only when you click them.

Vitals is $9 during the launch, $29 after it, once: [vitalsmac.com](https://vitalsmac.com/).

## Questions people ask

### Why is Cursor using so much CPU on my Mac?

Usually an extension, indexing in a large project, or a tool the agent started and left running. Choose Help → Open Process Explorer in Cursor to see which of its processes is busy.

### What is Cursor Helper (Plugin)?

The process that runs every Cursor extension. When it uses high CPU, one extension is busy. Run `Help: Start Extension Bisect` from the Command Palette to find which.

### What is Cursor Helper (Renderer)?

One Cursor window: its editor, panels and chat. Each window has its own. Closing long chats and reloading the window brings its memory and CPU down.

### Why does Cursor drain my MacBook’s battery?

Cursor is an Electron app with an AI model working as you type, which costs more than a plain editor. Heavy drain while idle points to an extension, indexing, or a dev server or build tool left running.

### Why is my Mac still hot after I quit Cursor?

Something Cursor started is still running: a dev server, a type checker or a linter. Sort Activity Monitor by % CPU and look for `node`, `tsc` or `biome`.

### How do I stop Cursor from indexing a folder?

Add the folder to a `.cursorignore` file in the project’s root. Build output and dependency folders are the ones worth excluding.

### Is there an app that shows what Cursor is using on a Mac?

Vitals shows Cursor as one app split into windows, extensions and graphics, and its Projects tab lists every process running in each project folder and points out dev servers left idle.

In the glossary: [Helper processes](https://vitalsmac.com/glossary/helper-processes), [% CPU](https://vitalsmac.com/glossary/cpu-percent), [Energy Impact](https://vitalsmac.com/glossary/energy-impact), [Zombie process](https://vitalsmac.com/glossary/zombie-process), [Listening port](https://vitalsmac.com/glossary/listening-port).

More guides: [Why is my Mac so slow](https://vitalsmac.com/why-is-my-mac-so-slow), [What’s draining my Mac’s battery](https://vitalsmac.com/mac-battery-draining-fast), [Which app is using my CPU or memory](https://vitalsmac.com/check-cpu-memory-usage-mac), [Why won’t my Mac sleep](https://vitalsmac.com/mac-wont-sleep), [Chrome using too much memory](https://vitalsmac.com/chrome-using-too-much-memory-mac), [Why are my Mac’s fans so loud](https://vitalsmac.com/mac-fan-loud), [How to control fan speed on a Mac](https://vitalsmac.com/mac-fan-control), [How to free up RAM on a Mac](https://vitalsmac.com/free-up-ram-mac), [Docker using too much memory](https://vitalsmac.com/docker-using-too-much-memory-mac), [How to stop Docker containers](https://vitalsmac.com/stop-docker-containers-mac), [Volume mixer for Mac](https://vitalsmac.com/mac-volume-mixer), [Claude Code using too much memory](https://vitalsmac.com/claude-code-memory-usage-mac), [Claude app using high CPU](https://vitalsmac.com/claude-desktop-high-cpu-mac), [Codex using high CPU](https://vitalsmac.com/codex-high-cpu-mac), [Ollama using too much memory](https://vitalsmac.com/ollama-memory-usage-mac), [Activity Monitor alternatives](https://vitalsmac.com/best-activity-monitor-alternatives), [iStat Menus alternatives](https://vitalsmac.com/best-istat-menus-alternatives), [Stats alternatives](https://vitalsmac.com/best-stats-alternatives), [Task Manager for Mac](https://vitalsmac.com/task-manager-for-mac), [Best system monitors for Mac](https://vitalsmac.com/best-system-monitor-for-mac), [Best menu bar monitors for Mac](https://vitalsmac.com/best-menu-bar-system-monitor-for-mac), [Best volume mixers for Mac](https://vitalsmac.com/best-volume-mixer-for-mac).
