Cursor hijacks MAKE variable breaking all recursive Makefiles

Where does the bug appear (feature/product)?

Cursor IDE

Describe the Bug

Cursor sets the MAKE environment variable to point to cursor.AppImage instead of the system make command. This breaks all projects using recursive makefiles.

When a Makefile uses the standard $(MAKE) pattern to invoke sub-makefiles, Cursor launches itself instead of make, causing builds to hang and creating phantom files.

This makes Cursor unusable for any project using standard GNU Make patterns.

Steps to Reproduce

  1. Create test directory structure:
    mkdir -p test-project/sub

  2. Create test-project/Makefile:
    all:
    cd sub && $(MAKE)

  3. Create test-project/sub/Makefile:
    all:
    @echo “Success”

  4. Run make in Cursor terminal

  5. Expected: Should print “Success”
    Actual: Hangs and/or launches Cursor AppImage

  6. Run echo $MAKE in Cursor terminal
    Shows: /path/to/cursor.AppImage (WRONG - should be empty or make)

  7. Workaround: Use external terminal where MAKE is not hijacked and the command will actually work correctly

Environment: Linux, Cursor 0.44+, affects all projects using $(MAKE)
Related: #2846 issue on github

Operating System

Linux

Version Information

Version: 2.4.21
VSCode Version: 1.105.1
Commit: dc8361355d709f306d5159635a677a571b277bc0
Date: 2026-01-22T16:57:59.675Z
Build Type: Stable
Release Track: Default
Electron: 39.2.7
Chromium: 142.0.7444.235
Node.js: 22.21.1
V8: 14.2.231.21-electron.0
OS: Linux x64 6.9.3-76060903-generic

Does this stop you from using Cursor

No - Cursor works, but with this issue

Hey, thanks for the detailed report. This is a real bug. The Cursor AppImage really shouldn’t be setting the MAKE variable to itself.

A similar environment pollution issue has come up before: Cursor interfering with terminal commands in Linux

I’ll pass this to the team. It’s important to fix since it breaks the standard GNU Make workflow. Your report with clear repro steps helps a lot.

For now, the workaround is using an external terminal, like you noticed. You can also try running unset MAKE at the start of your terminal session, or add this to your .bashrc or .zshrc:

unset MAKE

Let me know if you find anything else, or if unset doesn’t help.

Thanks for mentioning my post! it’s been a while → I’ve since moved to the .DEB package and that makes things better.

1 Like

This topic was automatically closed 22 days after the last reply. New replies are no longer allowed.