Files
cursor-nixos-flake/README.md
T
2025-12-24 20:28:12 -04:00

117 lines
3.0 KiB
Markdown

# Self-Updating Cursor Flake
A Nix flake that provides the Cursor code editor with automatic daily updates via CI (GitHub Actions-compatible workflows, e.g. GitHub Actions or Gitea Actions).
This fork includes **native `aarch64-linux` (linux-arm64) support** in addition to `x86_64-linux`.
## Features
- 🚀 **Self-updating**: Automatically checks for new Cursor versions daily
- 🔧 **Manual updates**: Local script for immediate updates
- 🛡️ **Robust**: Proper error handling and fallbacks
- 📦 **AppImage-based**: Uses Cursor's official AppImage for maximum compatibility
- 🎯 **Linux x86_64 + aarch64**: Supports both AMD64 and ARM64 (aarch64) Linux
## Quick Start
### Method 1: Direct Installation
```bash
# Install Cursor directly
nix profile install git+https://git.chiasson.cloud/Olivier/cursor-nixos-flake
# Run Cursor
cursor --version
```
### Method 2: Add to Your Flake
Add to your `flake.nix` inputs:
```nix
inputs.cursor.url = "git+https://git.chiasson.cloud/Olivier/cursor-nixos-flake";
```
Then use in your configuration:
```nix
# For NixOS system configuration
environment.systemPackages = with pkgs; [
cursor.packages.${pkgs.system}.cursor
];
# For home-manager
home.packages = with pkgs; [
cursor.packages.${pkgs.system}.cursor
];
# For devShell
devShells.default = pkgs.mkShell {
packages = with pkgs; [
cursor.packages.${pkgs.system}.cursor
];
};
```
### Method 3: Temporary Run
```bash
# Run without installing
nix run git+https://git.chiasson.cloud/Olivier/cursor-nixos-flake
# Build and run
nix build git+https://git.chiasson.cloud/Olivier/cursor-nixos-flake
./result/bin/cursor
```
## Manual Update
To manually update Cursor to the latest version:
```bash
./update-cursor.sh
```
To update to a specific version:
```bash
./update-cursor.sh 1.8.0
```
## How It Works
### Automatic Updates
The CI workflow in `.github/workflows/update-cursor.yml` runs daily and:
1. Checks Cursor's API for the latest version
2. Only updates if a new version is available
3. Downloads the AppImage and calculates SHA256 hash
4. Updates `cursor-release.nix` with the new version and **per-architecture hashes** (`x86_64-linux` + `aarch64-linux`)
5. Tests the build and commits changes
6. Pushes the update back to the repository
### Manual Updates
The `update-cursor.sh` script provides:
- Version checking and comparison
- Safe updates with backups
- Build validation
- Interactive confirmation prompts
## API Endpoints
- **x86_64 AppImage Download**: `https://api2.cursor.sh/updates/download/golden/linux-x64/cursor/{version}`
- **aarch64 AppImage Download**: `https://api2.cursor.sh/updates/download/golden/linux-arm64/cursor/{version}`
## Testing
```bash
# Test flake syntax
nix flake check
# Test building
nix build '.#cursor' --dry-run
```
## Development
### Customization
- **Update frequency**: Modify cron schedule in `.github/workflows/update-cursor.yml`
- **API endpoints**: Update URLs in workflow and update script
- **Build options**: Modify the `buildCursor` function in `flake.nix`
## License
MIT License - see [LICENSE](LICENSE) file for details.