# Instalacja Cursora i migracja z VS Code

URL: https://developertoolkit.ai/pl/cursor-ide/quick-start/installation-setup/
Description: Zainstaluj Cursora na macOS, Windows lub Linuksie menedżerem pakietów, przenieś konfigurację VS Code i sprawdź, czy agent widzi twój projekt.

Instalacja Cursora to jedno polecenie menedżera pakietów na każdej platformie: `brew install --cask cursor` na macOS i Linuksie albo `winget install Anysphere.Cursor` na Windows. Cursor jest zbudowany na VS Code, więc rozszerzenia, ustawienia i skróty klawiszowe przechodzą razem z nim. Instalacja jest skończona dopiero wtedy, gdy działa polecenie `cursor`, a agent odpowiada na podstawie prawdziwych plików projektu.

Instalujesz Cursora w piątek po południu, okno się otwiera, agent odpowiada na „cześć”. W poniedziałek okazuje się, że `cursor .` nie ma w `PATH`, połowa rozszerzeń nie przeszła, a agent przez cały ten czas odpowiadał na pytania o katalog piętro wyżej niż twoje repozytorium. Pierwszego dnia każdą z tych rzeczy naprawisz w dwie minuty, później stracisz godzinę na szukanie przyczyny.

Ta strona jest dla **dewelopera**, który pierwszy raz instaluje Cursora na służbowym komputerze, zwykle przechodząc z VS Code. Kończy się trzema testami, które dowodzą, że instalacja działa, bez ręcznego przeglądania czegokolwiek.

**Co sprawdziliśmy**

Strony cursor.com nie dało się pobrać 26 września 2026. Polecenia instalacji, pliki pobierane przez każdy menedżer pakietów, minimalną wersję macOS i to, skąd bierze się polecenie `cursor`, sprawdziliśmy tego dnia w casku Homebrew (`Casks/c/cursor.rb`) i w manifeście winget (`manifests/a/Anysphere/Cursor`) na GitHubie, a tego sprawdzenia nie powtarzaliśmy 2026-10-12. Na 2026-10-12 notatki o wydaniach Cursora wskazują jako aktualne wydanie Cursor 3.24 (2026-10-09), a dokumentacja CLI Cursora podaje instalację agenta CLI w sekcji [Zainstaluj agenta CLI Cursora](#zainstaluj-agenta-cli-cursora). Etykiety w menu zmieniają się między wydaniami Cursora, więc ta strona nazywa ustawienia po tym, co robią, a nie po ich dokładnym miejscu w interfejsie.

## Co daje zakończona instalacja Cursora

- Cursora z linii 3.x, zainstalowanego kanałem, który sprawdza skrót SHA-256 pobranego pliku.
- Polecenie powłoki `cursor`, dzięki któremu `cursor .` otwiera dowolne repozytorium z terminala.
- Twoje rozszerzenia, ustawienia, skróty i snippety z VS Code oraz listę tego, co się nie przeniosło.
- Zapisaną odpowiedź agenta, która cytuje prawdziwe pliki projektu i uruchamia jego testy. To dowód, że edytor, terminal i widok agenta na bazę kodu działają.

## Którym kanałem instalować Cursora?

Używaj menedżera pakietów, chyba że twój komputer na to nie pozwala. Zarówno cask Homebrew, jak i manifest winget przypinają skrót SHA-256 każdego pliku do pobrania, więc uszkodzony lub podmieniony instalator kończy się błędem, zamiast się uruchomić. Ręczne pobranie nie przechodzi takiej kontroli.

| Kanał | Platformy | Instaluje polecenie `cursor` | Aktualizacje |
| --- | --- | --- | --- |
| Cask Homebrew `cursor` | macOS 12 (Monterey) lub nowszy; Linux x86_64 i arm64 (jako AppImage) | macOS: tak. Linux: nie, linkujesz je sam | macOS: Cursor aktualizuje się sam; cask ma oznaczenie `auto_updates`, więc `brew upgrade` go pomija. Linux: `brew upgrade --cask cursor` |
| winget `Anysphere.Cursor` | Windows x64 i arm64 | Sprawdź po instalacji (niżej) | `winget upgrade Anysphere.Cursor` albo wbudowany mechanizm aktualizacji Cursora |
| Ręczne pobranie ze [strony Cursora](https://www.cursor.com/) | Wszystkie | macOS i Linux: nie, dodajesz je sam | Wbudowany mechanizm aktualizacji Cursora |

**Menedżery pakietów mają różne opóźnienia**

26 września 2026 manifest winget był o trzy wersje minor za caskiem Homebrew. Jeśli kolega na Windows zgłasza funkcję, której nie widzisz, najpierw porównajcie wynik `cursor --version`, a dopiero potem debugujcie cokolwiek innego. Wbudowany mechanizm aktualizacji Cursora zwykle wyrównuje różnicę po pierwszym uruchomieniu.

## Zainstaluj Cursora na swojej platformie

**macOS**

    Uruchom w terminalu:

    ```bash
    brew install --cask cursor
    ```

    Cask instaluje `Cursor.app` w `/Applications` i tworzy link do jego launchera wiersza poleceń pod nazwą `cursor`. Otwórz nowy terminal i sprawdź:

    ```bash
    cursor --version
    ```

    Bez Homebrew pobierz instalator dla macOS ze [strony Cursora](https://www.cursor.com/), przeciągnij Cursora do folderu **Aplikacje** i dodaj polecenie `cursor` zgodnie z sekcją [Dodaj polecenie powłoki `cursor`](#dodaj-polecenie-powłoki-cursor).

    Jeśli macOS odmawia otwarcia ręcznie pobranej kopii, bo „nie można zweryfikować dewelopera”, otwórz **Ustawienia systemowe** > **Prywatność i ochrona**, przewiń do sekcji **Ochrona** i wybierz **Otwórz mimo to**. Rób to tylko dla pliku, który sam pobrałeś z cursor.com.

**Windows**

    Uruchom w PowerShellu:

    ```powershell
    winget install Anysphere.Cursor
    ```

    Manifest zawiera dwa instalatory dla każdej architektury: instalator dla bieżącego użytkownika, który nie wymaga uprawnień administratora, i instalator dla całego komputera. Żeby wybrać jawnie, dodaj `--scope user` albo `--scope machine`. Większość deweloperów chce `user`; komputery zarządzane przez dział IT często `machine`.

    Otwórz **nowe** okno PowerShella, żeby wczytało zaktualizowany `PATH`, i sprawdź polecenie:

    ```powershell
    where.exe cursor
    cursor --version
    ```

    Jeśli `where.exe` nic nie znajduje, dodaj polecenie z poziomu Cursora zgodnie z sekcją [Dodaj polecenie powłoki `cursor`](#dodaj-polecenie-powłoki-cursor).

**Linux**

    Z Homebrew na Linuksie ten sam cask instaluje AppImage:

    ```bash
    brew install --cask cursor
    ```

    Na Linuksie cask nie tworzy polecenia `cursor`. Przenosi AppImage do `~/Applications/Cursor.AppImage` i nadaje mu prawo wykonywania; jeśli zmieniłeś katalog przez opcję Homebrew `--appimagedir`, ścieżkę pokaże `brew info --cask cursor`. Dodaj link do `PATH` samodzielnie:

    ```bash
    mkdir -p ~/.local/bin
    ln -sf ~/Applications/Cursor.AppImage ~/.local/bin/cursor
    cursor --version
    ```

    Bez Homebrew pobierz AppImage dla swojej architektury (`x86_64` lub `aarch64`) ze [strony Cursora](https://www.cursor.com/). Plik nazywa się na przykład `Cursor-<version>-x86_64.AppImage`. Umieść go w stałym miejscu i dodaj link `cursor` do `PATH`:

    ```bash
    mkdir -p ~/Applications ~/.local/bin
    mv ~/Downloads/Cursor-*-"$(uname -m)".AppImage ~/Applications/Cursor.AppImage
    chmod +x ~/Applications/Cursor.AppImage
    ln -sf ~/Applications/Cursor.AppImage ~/.local/bin/cursor
    cursor --version
    ```

    Jeśli powłoka nie znajduje polecenia `cursor`, katalogu `~/.local/bin` nie ma w `PATH`; dopisz `export PATH="$HOME/.local/bin:$PATH"` do `~/.bashrc` albo `~/.zshrc`.

    Żeby Cursor pojawił się w menu aplikacji, utwórz plik `.desktop`. `EOF` bez cudzysłowów pozwala powłoce rozwinąć `$HOME`, bo pliki `.desktop` nie rozwijają `~`:

    ```bash
    cat > ~/.local/share/applications/cursor.desktop << EOF
    [Desktop Entry]
    Name=Cursor
    Exec=$HOME/Applications/Cursor.AppImage %F
    Terminal=false
    Type=Application
    StartupWMClass=Cursor
    Categories=Development;IDE;
    EOF
    ```

    Jeśli AppImage się nie uruchamia, zajrzyj do sekcji [Kiedy instalacja Cursora się psuje](#kiedy-instalacja-cursora-się-psuje): dwie typowe przyczyny to brak biblioteki FUSE 2 i ograniczenie przestrzeni nazw użytkownika w Ubuntu.

## Dodaj polecenie powłoki `cursor`

Pomiń tę sekcję, jeśli `cursor --version` już wypisuje wersję. Polecenie jest ważne, bo każdy dalszy workflow opisany w tym serwisie zaczyna się od terminala w repozytorium: `cursor .`, `cursor path/to/file.ts` i zarządzanie rozszerzeniami przez `cursor --install-extension`.

1. Otwórz Cursora i paletę poleceń: `Cmd+Shift+P` na macOS, `Ctrl+Shift+P` na Windows i Linuksie, tak jak w VS Code.

2. Wpisz `shell command` i uruchom pozycję, która instaluje polecenie `cursor` w `PATH`.

3. Zamknij wszystkie okna terminala i otwórz nowe. Uruchomiona powłoka trzyma stary `PATH`.

4. Sprawdź, który plik wykonywalny się uruchamia: `which -a cursor` na macOS i Linuksie, `where.exe cursor` na Windows. Pierwsza linia powinna wskazywać na instalację Cursora, a nie na stary skrypt czy alias.

Jeśli na macOS pozycja z palety zawiedzie, utwórz link samodzielnie. To ten sam plik, który linkuje cask Homebrew:

```bash
sudo mkdir -p /usr/local/bin
sudo ln -sf "/Applications/Cursor.app/Contents/Resources/app/bin/code" /usr/local/bin/cursor
```

## Zainstaluj agenta CLI Cursora

Polecenie `cursor` otwiera edytor. Agent Cursora działa też w terminalu przez osobne CLI, którego polecenie to `agent` (dokumentacja CLI Cursora, sprawdzone 2026-10-12). Pomiń tę sekcję, jeśli używasz tylko edytora. Na macOS, Linuksie i WSL uruchom:

```bash
curl https://cursor.com/install -fsS | bash
```

Na Windows uruchom w PowerShellu:

```powershell
irm 'https://cursor.com/install?win32=true' | iex
```

Instalację sprawdzisz przez `agent --version`, interaktywną sesję uruchomisz poleceniem `agent`, a aktualizację przez `agent update`. Buildy CLI są wersjonowane datą, a najnowszy 2026-10-12 to v2026.10.08.

## Przenieś konfigurację VS Code do Cursora

Przy pierwszym uruchomieniu Cursor proponuje import rozszerzeń, ustawień i skrótów klawiszowych z VS Code. Przyjmij go. Jeśli pominąłeś ten ekran, wyszukaj „VS Code” w ustawieniach Cursora (Cursor Settings), żeby znów znaleźć opcję importu.

Potem udowodnij, że import zadziałał, zamiast mu ufać. Gdy `code` i `cursor` są w `PATH`, porównaj listy rozszerzeń:

**macOS i Linux**

    ```bash
    diff <(code --list-extensions | sort) <(cursor --list-extensions | sort)
    ```

    Linie zaczynające się od `<` to rozszerzenia, które ma VS Code, a nie ma Cursor. Składnia `<(...)` wymaga basha albo zsh.

**Windows**

    ```powershell
    Compare-Object (code --list-extensions) (cursor --list-extensions)
    ```

    Wiersze oznaczone `<=` to rozszerzenia, które ma VS Code, a nie ma Cursor.

Brak wyniku oznacza pełny import.

### Migruj ręcznie, gdy import coś pominie

Import potrafi coś pominąć przy przenośnej instalacji VS Code, przy VS Code Insiders albo przy profilu innym niż domyślny. Skopiuj wtedy pliki samodzielnie. Najpierw zamknij Cursora.

**macOS**

    ```bash
    SRC="$HOME/Library/Application Support/Code/User"
    DST="$HOME/Library/Application Support/Cursor/User"
    mkdir -p "$DST"
    cp "$SRC/settings.json" "$SRC/keybindings.json" "$DST/"
    cp -R "$SRC/snippets" "$DST/"
    code --list-extensions | xargs -n1 cursor --install-extension
    ```

**Linux**

    ```bash
    SRC="$HOME/.config/Code/User"
    DST="$HOME/.config/Cursor/User"
    mkdir -p "$DST"
    cp "$SRC/settings.json" "$SRC/keybindings.json" "$DST/"
    cp -r "$SRC/snippets" "$DST/"
    code --list-extensions | xargs -n1 cursor --install-extension
    ```

**Windows**

    ```powershell
    $src = "$env:APPDATA\Code\User"
    $dst = "$env:APPDATA\Cursor\User"
    New-Item -ItemType Directory -Force $dst | Out-Null
    Copy-Item "$src\settings.json", "$src\keybindings.json" $dst
    Copy-Item "$src\snippets" $dst -Recurse -Force
    code --list-extensions | ForEach-Object { cursor --install-extension $_ }
    ```

Rozszerzenie, którego nie ma w marketplace rozszerzeń Cursora, kończy się błędem, a pętla idzie dalej. Te linie z błędami to twoja lista do przejrzenia: znajdź odpowiednik albo uznaj, że rozszerzenie nie jest potrzebne. Powtarzaj powyższe porównanie, aż jedyne różnice będą tymi, które wybrałeś świadomie.

**Ustawienia, które wskazują na VS Code**

Skopiowany `settings.json` może zawierać ścieżki i identyfikatory, które mają sens tylko w VS Code, na przykład ścieżkę interpretera Pythona w katalogu specyficznym dla VS Code albo ustawienie rozszerzenia, które się nie zainstalowało. Nieznane klucze dostają tylko ostrzegawcze podkreślenie w edytorze `settings.json`, więc w działaniu nic nie zgłasza problemu; funkcji po prostu brakuje bez komunikatu. Wychwycą to testy z następnej sekcji.

## Udowodnij, że instalacja działa, bez ręcznego czytania czegokolwiek

Agent, który odpowiada na „cześć”, dowodzi tylko tego, że jesteś zalogowany. Działająca instalacja oznacza trzy rzeczy: agent widzi otwarte repozytorium, potrafi uruchomić polecenia projektu w zintegrowanym terminalu i mówi, kiedy czegoś nie wie. Każdy prompt poniżej daje wynik, który porównujesz z faktem, który już znasz, więc nie musisz czytać kodu, żeby go ocenić.

Otwórz prawdziwe repozytorium, a nie pusty katalog czy katalog domowy. Agent indeksuje folder, który otworzysz, a jego odpowiedzi są tylko tak dobre jak ten folder:

```bash
cd ~/src/your-service
cursor .
```

Zaloguj się, gdy Cursor o to poprosi. Indeksowanie rusza w tle i nie musisz czekać na jego koniec.

**Prompt do skopiowania: dowód, że agent widzi to repozytorium**

```text
Do not edit any file. Answer from this repository only.
1. List the top-level directories and, for each, cite one file inside it by its relative path.
2. Name the command that runs this project's tests, and quote the exact line of the file where you found it (package.json, Makefile, pyproject.toml, or similar).
3. Name one thing you could not determine from the files, and say which file would have told you.
If a path you cite does not exist, say so instead of guessing.
```

Porównaj odpowiedź z tym, co wiesz: każda zacytowana ścieżka powinna istnieć (w razie wątpliwości zrób `ls`), a zacytowane polecenie testów powinno zgadzać się z plikiem. Zmyślone ścieżki oznaczają, że agent nie opiera się na tym folderze; zobacz [Kiedy instalacja Cursora się psuje](#kiedy-instalacja-cursora-się-psuje).

**Prompt do skopiowania: dowód, że agent uruchamia narzędzia twojego projektu**

```text
Run this project's test command in the integrated terminal. Do not modify any file and do not install anything.
Report, in this order:
- the exact command you ran
- its exit code
- the last 20 lines of output
- whether the failure (if any) is an environment problem (missing runtime, missing dependency, wrong version) or a real test failure
Stop after reporting. Do not attempt a fix.
```

Jeśli Cursor poprosi o zgodę przed uruchomieniem polecenia, zatwierdź ją. Dowodem jest kod wyjścia. Porównaj go z wynikiem tego samego polecenia uruchomionego przez ciebie w zwykłym terminalu: jeśli u ciebie przechodzi, a u agenta nie, terminal Cursora łapie inne środowisko uruchomieniowe albo inny `PATH`. To problem instalacji, który trzeba naprawić teraz, a nie problem w kodzie, którego będziesz szukać później.

Na koniec zapisz, na czym pracujesz. Wklej ten wynik do notatek onboardingowych zespołu albo do zgłoszenia dotyczącego twojej konfiguracji, żeby następna rozmowa w stylu „u mnie działa” zaczynała się od faktów:

```bash
cursor --version
cursor --list-extensions | wc -l
```

Uprawnienia agenta do samodzielnego uruchamiania poleceń i to, czego nie wolno mu czytać, to temat następnej strony: [podstawowa konfiguracja Cursora do pracy z agentem](/pl/cursor-ide/quick-start/essential-configuration/). Idea sprawdzania wyniku względem znanych faktów zamiast czytania każdej linii jest opisana w artykule [dowody zamiast czytania kodu](/pl/ladder/evidence-not-diffs/).

## Kiedy instalacja Cursora się psuje

**`cursor: command not found`.** Powłoka jest starsza niż instalacja, więc otwórz nowy terminal. Na macOS uruchom pozycję z palety poleceń albo utwórz link pokazany wyżej. Na Linuksie sprawdź, czy `~/.local/bin` jest w `PATH`; jeśli instalowałeś przez Homebrew, sprawdź też, czy utworzyłeś link `~/.local/bin/cursor` z zakładki Linux, bo cask go nie tworzy. Na Windows wyloguj się i zaloguj ponownie, jeśli nowe okno PowerShella nadal nie widzi polecenia.

**`cursor .` otwiera VS Code albo starą wersję Cursora.** Inny `cursor` jest wcześniej w `PATH`, często pozostały alias albo kopia z poprzedniej ręcznej instalacji. `which -a cursor` (lub `where.exe cursor`) wypisuje wszystkie trafienia po kolei. Usuń nieaktualne albo sprawdź `alias cursor` w profilu powłoki.

**macOS twierdzi, że Cursor „jest uszkodzony i nie można go otworzyć”.** Pobrany plik trafił do kwarantanny, często po skopiowaniu z innego komputera lub z załącznika na czacie. Usuń go i zainstaluj ponownie przez `brew install --cask cursor` albo pobierz jeszcze raz z cursor.com. Usunięcie atrybutu kwarantanny przez `xattr` też działa, ale wyłącza kontrolę Gatekeepera dla tej kopii, więc rób to tylko dla pliku, który sam pobrałeś z cursor.com.

**AppImage na Linuksie kończy się błędem `dlopen(): error loading libfuse.so.2`.** AppImage potrzebuje biblioteki FUSE 2. Zainstaluj ją: `sudo apt install libfuse2t64` na Ubuntu 24.04 i nowszym, `sudo apt install libfuse2` na starszym Ubuntu i Debianie, `sudo dnf install fuse-libs` na Fedorze albo `sudo pacman -S fuse2` na Archu.

**AppImage na Linuksie kończy się błędem sandboksa na Ubuntu 23.10 lub nowszym.** Ubuntu ogranicza nieuprzywilejowane przestrzenie nazw użytkownika, których aplikacje Electron potrzebują do sandboksa renderera. `sysctl kernel.apparmor_restrict_unprivileged_userns` wypisuje `1`, gdy ograniczenie jest aktywne. Jednorazowe uruchomienie `cursor --no-sandbox` potwierdza przyczynę, ale nie zostawiaj tej flagi w pliku `.desktop`: wyłącza sandbox dla każdej strony, którą renderuje Cursor. Zamiast tego nadaj uprawnienie profilem AppArmor dla AppImage, tak jak opisuje to dokumentacja twojej dystrybucji.

**Okno otwiera się puste albo migocze.** Zacznij od `cursor --disable-gpu`. Jeśli to pomaga, zaktualizuj sterownik karty graficznej albo używaj tej flagi tylko w sesjach zdalnego pulpitu.

**Po imporcie brakuje rozszerzeń.** Porównaj listy rozszerzeń jak w sekcji [Przenieś konfigurację VS Code do Cursora](#przenieś-konfigurację-vs-code-do-cursora), a brakujące zainstaluj przez `cursor --install-extension PUBLISHER.NAME`. Rozszerzenie, które tu się nie instaluje, nie jest dostępne w marketplace Cursora; poszukaj alternatywy.

**Agent cytuje nieistniejące pliki albo opisuje inny projekt.** Otworzyłeś zły folder (katalog nadrzędny albo domowy) albo pliki potrzebne agentowi są wyłączone z indeksowania. Otwórz projekt ponownie przez `cursor .` z katalogu głównego repozytorium, a potem sprawdź stan indeksowania w ustawieniach Cursora. Wykluczenia i pliki ignore opisuje strona [zarządzanie kontekstem w Cursorze](/pl/cursor-ide/quick-start/context-management/).

**Agent zatrzymuje się z komunikatem o limicie użycia.** Wyczerpałeś limit swojego planu. Wybór modelu wpływa na tempo jego zużycia; zobacz [wybór modelu](/pl/cursor-ide/quick-start/model-selection/). Inne błędy agenta opisuje strona [obsługa błędów w Cursorze](/pl/cursor-ide/quick-start/error-handling/).

## Dokąd iść po instalacji Cursora

- [Podstawowa konfiguracja Cursora do pracy z agentem](/pl/cursor-ide/quick-start/essential-configuration/) — Polecenie verify, tryb uruchamiania, reguły projektu i hook stop, żeby agent sam uruchamiał twoje kontrole.
- [Reguły projektu](/pl/cursor-ide/quick-start/project-rules/) — Przekaż agentowi konwencje raz, w repozytorium, zamiast w każdym prompcie.
- [Szybki start z Cursorem](/pl/cursor-ide/quick-start/) — Cała ścieżka szybkiego startu, od instalacji po pierwszą wdrożoną funkcję.
- [Zainstaluj zamiast tego Claude Code](/pl/claude-code/quick-start/installation/) — Alternatywa z terminala, jeśli chcesz pracować z agentem poza edytorem.

Jeśli używasz też Codexa, jego konfigurację opisuje strona [instalacja Codexa](/pl/codex/quick-start/installation/).
