Change:
<ins> { lib, stdenvNoCC, fetchurl, appimageTools, makeWrapper, writeShellApplication, curl, yq, common-updater-scripts, }: let pname = "cursor"; version = "0.40.4"; appKey = "230313mzl4w4u92"; src = fetchurl { url = "https://download.todesktop.com/${appKey}/cursor-0.40.4-build-2409052yfcjagw2-x86_64.AppImage"; hash = "sha256-ZURE8UoLPw+Qo1e4xuwXgc+JSwGrgb/6nfIGXMacmSg="; }; appimageContents = appimageTools.extractType2 { inherit version pname src; }; in stdenvNoCC.mkDerivation { inherit pname version; src = appimageTools.wrapType2 { inherit version pname src; }; nativeBuildInputs = [ makeWrapper ]; installPhase = '' runHook preInstall mkdir -p $out/ cp -r bin $out/bin mkdir -p $out/share/cursor cp -a ${appimageContents}/locales $out/share/cursor cp -a ${appimageContents}/resources $out/share/cursor cp -a ${appimageContents}/usr/share/icons $out/share/ install -Dm 644 ${appimageContents}/cursor.desktop -t $out/share/applications/ substituteInPlace $out/share/applications/cursor.desktop --replace-fail "AppRun" "cursor" wrapProgram $out/bin/cursor  --add-flags "''${NIXOS_OZONE_WL:+''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations}} --no-update" runHook postInstall ''; passthru = { updateScript = lib.getExe (writeShellApplication { name = "update-cursor"; runtimeInputs = [ curl yq common-updater-scripts ]; text = '' set -o errexit latestLinux="$(curl -s https://download.todesktop.com/${appKey}/latest-linux.yml)" version="$(echo "$latestLinux" | yq -r .version)" filename="$(echo "$latestLinux" | yq -r '.files[] | .url | select(. | endswith(".AppImage"))')" update-source-version cursor "$version" "" "https://download.todesktop.com/${appKey}/$filename" --source-key=src.src ''; }); }; meta = { description = "AI-powered code editor built on vscode"; homepage = "https://cursor.com"; license = lib.licenses.unfree; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; maintainers = with lib.maintainers; [ sarahec ]; platforms = [ "x86_64-linux" ]; mainProgram = "cursor"; }; } </ins>

Discussion:
Project description This is Code OSS fork with builtin AI code generator Metadata homepage URL: source URL: (I haven't idea how to get direct link from it) license: mit, unfree (I guess) platforms: linux, darwin Add a :+1: [reaction] to [issues you find important]. [reaction]: [issues you find important]:
They only distribute cursor editor as Appimage. It would really be great to have this packaged for Nix. The Appimage is updated very frequently. So the nix package name should include the version number, sth like
heres a start if u wanna try it if it complains change the hash to the thing it expects idk if there are versioned urls for this thing so that the hash is not a problem on another note this thing is so slow like no extensions (except the builtin vim mode) and it is slow and stutters on my machine and idk why vscode works fast compared to it but idk mby im doing something wrong
Thank you for the suggestion. I've gone another route to avoid the hash thing because the AppImage is being updated quite frequently. I have a module with a shell script: and in my I install it: When I get prompted for an update in the cursor app, I download the latest AppImage and the shell script takes care of the rest. Still a manual download step involved. But imo better than having to rebuild twice because of the hash error.
yea makes sense - im not using it actively and just wanted to quickly check it out
any updates on this? i cant for the love of god get a desktop entry working with the appimage </3
Any update on this ? Using : actually, i think this is a good start but i'm looking a way to deal with downloading the latest and breaking the sha256 all times at every cursor updates EDIT : using the network tab on cursor site i think there is some specified links for version like : For the actual version, idk if this is expiring
I a PR. You may want to upvote or review it.
P.S. I'm also looking for co-maintainers
I wrote the derivation with an that checks for a new version and requests an update. The bot updates the derivation with the new version number and hash automatically. Could you give a thumbs-up reaction please?

These upvotes will expedite getting it reviewed and into nixpkgs.
Update: I've had one reviewer go over the code and I'm awaiting a second who can also commit it. Once this is done, I can issue a backport to stable.
Thanks for your help,
Sorry friends, we're just waiting on it to be merged.
Quick note here: please don't add additional comments to the PR unless you are a reviewer. Long conversation trails make PRs are much harder to review and significantly reduce the odds they'll get merged. I've tried moving the request up to get higher visibility, and I suspect the large number of comments are scaring off the committers.
Finally, it's merged! Enjoy, and please remember that application bugs should be reported on the cursor forum.
One more note: It will take 3-4 days to show up on , the package search, etc. You can track its progress at
If anyone has problems with the merged flake, you can try . It also works for arm!
FYI: We are up on the unstable channel. Enjoy!