danneu/code-cursor-nix
Always-up-to-date Nix package for Cursor with daily automated updates
{ "createdAt": "2025-11-25T23:50:52Z", "defaultBranch": "master", "description": "Always-up-to-date Nix package for Cursor with daily automated updates", "fullName": "danneu/code-cursor-nix", "homepage": "", "language": "Nix", "name": "code-cursor-nix", "pushedAt": "2026-01-08T01:32:00Z", "stargazersCount": 2, "topics": [], "updatedAt": "2026-01-08T01:32:03Z", "url": "https://github.com/danneu/code-cursor-nix"}code-cursor-nix
Section titled “code-cursor-nix”Always up-to-date Nix package for Cursor - the AI-powered code editor.
Automatically updated hourly to check for a new Cursor release.
Why this package?
Section titled “Why this package?”code-cursorin nixpkgs is always very out of date.- The other projects that try to offer automatic Cursor updates for Nix seem unmaintained or too complicated.
| Feature | nixpkgs | This Flake |
|---|---|---|
| Update frequency | Delayed (days/weeks) | Hourly automated checks |
| Platforms | x86_64 + aarch64 Linux | x86_64 + aarch64 Linux |
Quick Start
Section titled “Quick Start”Run directly (try it now!)
Section titled “Run directly (try it now!)”nix run github:danneu/code-cursor-nixIntegration
Section titled “Integration”Using Nix Flakes
Section titled “Using Nix Flakes”Add to your flake.nix:
{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; code-cursor.url = "github:danneu/code-cursor-nix"; };
outputs = { self, nixpkgs, code-cursor, ... }: { nixosConfigurations.myhost = nixpkgs.lib.nixosSystem { modules = [ { nixpkgs.overlays = [ code-cursor.overlays.default ]; environment.systemPackages = [ pkgs.code-cursor ]; } ]; }; };}Using Home Manager
Section titled “Using Home Manager”{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; home-manager.url = "github:nix-community/home-manager"; code-cursor.url = "github:danneu/code-cursor-nix"; };
outputs = { self, nixpkgs, home-manager, code-cursor, ... }: { homeConfigurations."username" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ code-cursor.overlays.default ]; }; modules = [ ({ pkgs, ... }: { home.packages = [ pkgs.code-cursor ]; }) ]; }; };}With VS Code Extensions
Section titled “With VS Code Extensions”Use programs.vscode to declaratively manage extensions (works with any VS Code-compatible extensions):
{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; home-manager.url = "github:nix-community/home-manager"; code-cursor.url = "github:danneu/code-cursor-nix"; };
outputs = { self, nixpkgs, home-manager, code-cursor, ... }: { homeConfigurations."username" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ code-cursor.overlays.default ]; }; modules = [ ({ pkgs, ... }: { programs.vscode = { enable = true; package = pkgs.code-cursor; profiles.default.extensions = with pkgs.vscode-extensions; [ vscodevim.vim jnoortheen.nix-ide mads-hartmann.bash-ide-vscode golang.go rust-lang.rust-analyzer esbenp.prettier-vscode ]; }; }) ]; }; };}With Declarative Settings (Home Manager Module)
Section titled “With Declarative Settings (Home Manager Module)”Use the included Home Manager module for declarative settings management.
The ~/.config/Cursor/User/settings.json remains writable by Cursor.
- On first run: creates
~/.config/Cursor/User/settings.jsonwith your nix settings - On rebuild: merges nix settings into existing file based on
mergeStrategy
{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; home-manager.url = "github:nix-community/home-manager"; code-cursor.url = "github:danneu/code-cursor-nix"; };
outputs = { self, nixpkgs, home-manager, code-cursor, ... }: { homeConfigurations."username" = home-manager.lib.homeManagerConfiguration { pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ code-cursor.overlays.default ]; }; modules = [ code-cursor.homeManagerModules.default { programs.code-cursor = { enable = true;
# (Default) Existing keyvals in settings.json take precedence # mergeStrategy = "file-wins";
# The keyvals here take precedence on collision with settings.json # mergeStrategy = "nix-wins";
settings = { "vim.useSystemClipboard" = true; "editor.fontSize" = 14; "editor.fontFamily" = "'JetBrains Mono', monospace"; "editor.formatOnSave" = true; "editor.formatOnPaste" = true; "editor.minimap.enabled" = true; "workbench.colorTheme" = "Visual Studio Dark"; }; }; } ]; }; };}Development
Section titled “Development”# Clone the repositorygit clone https://github.com/danneu/code-cursor-nixcd code-cursor-nix
# Build the packagenix build
# Check for version updates./scripts/update-version.sh --check
# Update to latest version./scripts/update-version.sh
# Enter development shellnix develop
nix runHow Updates Work
Section titled “How Updates Work”This repository uses GitHub Actions to automatically check for new Cursor versions every hour:
- Checks the Cursor download API for new versions
- Creates a pull request with updated version and hashes
- Builds and tests the package
- Auto-merges if all checks pass
New Cursor versions are typically available in this flake within 1 hour of release.