Cursor: edytor z agentem, który czyta cały projekt i sam wprowadza zmiany
Jak zacząć pracę z Cursorem: właściwy plik instalacyjny dla Windows, macOS i Linuksa, logowanie, import ustawień z VS Code i pułapka rejestru Open VSX, tryby uruchamiania i piaskownica poleceń opisana tylko dla dwóch systemów, pliki ignorowania i lista globalna, tryb planowania, punkty kontrolne, reguły projektowe wraz z ich precedencją, prywatność, plany od darmowego Hobby po zespołowe oraz praktyczne ćwiczenie z listą zadań w przeglądarce.
Zmiana rozsypana po ośmiu plikach, w kodzie, którego nikt już nie pamięta - to moment, w którym wklejanie fragmentów do czatu przestaje działać. Trzeba przekleić kontekst, dostać odpowiedź opartą na połowie obrazu, ręcznie wprowadzić poprawki i sprawdzić, czy nic się nie posypało. Cursor został pomyślany do tego problemu: agent siedzi w edytorze, przeszukuje repozytorium, czyta pliki, wprowadza zmiany i uruchamia polecenia, a wynik ląduje w widoku różnic do zatwierdzenia. (Cursor Agent - Cursor Docs)
Poniżej ścieżka od zera: wybór właściwego pliku instalacyjnego dla Windows, macOS i Linuksa, logowanie, przeniesienie ustawień z VS Code, pierwszy projekt, praktyczne ćwiczenie z kryteriami odbioru, tryb planowania, reguły, ustawienia uprawnień agenta, prywatność, koszty i odinstalowanie.
Materiał opiera się na dokumentacji, pomocy i cenniku producenta w serwisie cursor.com oraz na jego publicznym punkcie końcowym pobierania. Instalacja i przebieg zadań nie zostały wykonane na maszynie testowej w ramach tego opracowania; nazwy przycisków i skróty pochodzą z dokumentacji.
Co powstanie na koniec
Zainstalowany i zalogowany edytor z otwartym prawdziwym projektem, przeniesionymi ustawieniami z VS Code, ustawionym trybem zatwierdzania działań agenta, jednym plikiem reguł oraz jedną wykonaną i sprawdzoną zmianą w małej aplikacji webowej. To narzędzie do pracy nad kodem, którego się rozumie na tyle, żeby ocenić różnice - nie zastępuje przeglądu zmian ani testów.
Czym Cursor jest, a czym nie
Cursor to agent kodujący osadzony w edytorze, przeznaczony do rozumienia repozytorium, planowania i budowania funkcji, znajdowania i naprawiania błędów, przeglądania zmian oraz pracy z narzędziami, których zespół już używa. (Cursor Documentation) Interfejs jest bliski VS Code i dzieli z nim domyślne skróty klawiszowe oraz sposób pracy z rozszerzeniami (Migrate from VS Code - Cursor Docs) - z jednym istotnym zastrzeżeniem opisanym dalej. Producent nie opisuje w przeczytanej dokumentacji relacji technicznej między oboma edytorami, więc nie ma tu twierdzenia o forku.
Warto od razu oddzielić kilka pojęć, które mieszają się w opisach.
Agent to asystent uruchamiany w panelu bocznym skrótem Cmd + I albo Ctrl + I. Zbudowany jest z trzech elementów: instrukcji, czyli podpowiedzi systemowej i reguł kierujących jego zachowaniem, zestawu narzędzi oraz wybranego modelu. (Cursor Agent - Cursor Docs)
Tab to uzupełnianie kodu w trakcie pisania, akceptowane klawiszem Tab. (Keyboard Shortcuts - Cursor Docs)
Cloud Agents to agenci uruchamiani w chmurze z przeglądarki pod adresem cursor.com/agents. (Your first project - Cursor Docs) Nie korzystają z opisanych dalej trybów uruchamiania, bo działają na własnej maszynie i nigdy nie proszą o zatwierdzenie działania. (Run Modes - Cursor Docs)
Grok Bot to osobny produkt xAI, który uwierzytelnia się kontem Cursor i ma własną dokumentację po obu stronach. Nie jest to funkcja edytora i nie ma z tym poradnikiem wspólnego procesu instalacji.
Narzędzia dostępne agentowi to wyszukiwanie plików po nazwie, czytanie struktury katalogów i szukanie wzorców w plikach, wyszukiwanie w sieci, pobieranie reguł, inteligentne czytanie plików łącznie z obrazami w formatach PNG, JPG, GIF, WebP i SVG, proponowanie i automatyczne stosowanie zmian w plikach, wykonywanie poleceń terminala z podglądem wyniku, sterowanie przeglądarką w celu robienia zrzutów i sprawdzania zmian wizualnych, generowanie obrazów zapisywanych domyślnie do folderu assets/ projektu oraz zadawanie pytań doprecyzowujących w trakcie pracy. Liczba wywołań narzędzi w jednym zadaniu nie jest ograniczona. (Cursor Agent - Cursor Docs)
Instalacja: trzy systemy
Procedura producenta jest krótka: wejść na stronę pobierania, kliknąć przycisk dla swojego systemu, otworzyć pobrany plik i przejść przez kroki instalacji - na Macu przeciągnąć Cursor do folderu Aplikacje, na Windows uruchomić instalator, na Linuksie zainstalować pakiet menedżerem apt lub dnf, jeżeli jest dostępny, albo rozpakować AppImage bądź archiwum i uruchomić. Potem otworzyć aplikację i zalogować się kontem Cursor. Konto zakłada się bezpłatnie. (Download and install Cursor - Cursor Docs)
Ta instrukcja nie mówi jednak, który wariant pobrać, a wyborów jest sporo. Publiczny punkt końcowy pobierania producenta zwraca dla każdej platformy dokładny plik. Sprawdzenie wykonane 8 września 2026 zwróciło wersję 3.19.13 i następujący układ:
| System | Wariant | Format pliku |
|---|---|---|
| macOS | Apple silicon | Cursor-darwin-arm64.dmg |
| macOS | Intel | Cursor-darwin-x64.dmg |
| macOS | uniwersalny | Cursor-darwin-universal.dmg |
| Windows | x64, instalacja użytkownika | CursorUserSetup-x64-<wersja>.exe |
| Windows | Arm64, instalacja użytkownika | CursorUserSetup-arm64-<wersja>.exe |
| Linux | x64 | .AppImage, pakiet .deb, pakiet .rpm |
| Linux | Arm64 | .AppImage, pakiet .deb, pakiet .rpm |
(Cursor API pobierania, platforma darwin-arm64) (Cursor API pobierania, platforma win32-x64-user) (Cursor API pobierania, platforma linux-x64)
Trzy praktyczne wnioski z tej tabeli.
Na macOS wybór między wariantem dla Apple silicon a dla Intela sprowadza się do sprawdzenia procesora w menu Apple, w pozycji „Ten Mac”. Wariant uniwersalny działa na obu, kosztem większego pliku.
Na Windows zapytanie o wariant instalacji systemowej zwróciło komunikat o niepowodzeniu pobrania odnośnika, a punkt końcowy dostarczył plik instalatora użytkownika o nazwie CursorUserSetup-x64-<wersja>.exe. (Cursor API pobierania, platforma win32-x64-user) Jeden nieudany wynik nie dowodzi, że wariant systemowy nie istnieje - dowodzi tylko, że tą drogą się go nie pobrało. Nazwa „user setup” w rodzinie edytorów opartych na tej samej bazie oznacza instalację do profilu użytkownika, więc zwykle obchodzi się bez uprawnień administratora; producent tego nigdzie nie potwierdza, więc na komputerze firmowym z ograniczeniami trzeba to po prostu sprawdzić przy uruchomieniu instalatora.
Na Linuksie dostępne są trzy formaty naraz. Pakiet .deb pasuje do Debiana i Ubuntu, pakiet .rpm do Fedory i RHEL, a AppImage do pozostałych dystrybucji i do pracy bez instalacji. Producent wskazuje pakiet z menedżera jako ścieżkę preferowaną, gdy jest dostępny. (Download and install Cursor - Cursor Docs)
Nadanie prawa wykonywania plikowi AppImage i uruchomienie go, w katalogu z pobranym plikiem:
chmod +x ./Cursor-<wersja>-x86_64.AppImage
./Cursor-<wersja>-x86_64.AppImage
Dokładną nazwę pliku trzeba odczytać z katalogu pobierania - numer wersji i oznaczenie architektury zmieniają się przy każdym wydaniu.
Instalacja pakietu na Debianie i Ubuntu, po pobraniu pliku .deb:
sudo apt install ./cursor_<wersja>_amd64.deb
Na Fedorze i RHEL, po pobraniu pliku .rpm:
sudo dnf install ./cursor-<wersja>.el8.x86_64.rpm
Warto zwrócić uwagę na człon .el8 w nazwie pliku RPM - punkt końcowy zwraca właśnie taką postać, na przykład cursor-3.19.13.el8.x86_64.rpm. Na Arm64 nazwy wyglądają analogicznie: Cursor-<wersja>-aarch64.AppImage, cursor_<wersja>_arm64.deb i cursor-<wersja>.el8.aarch64.rpm.
Instalacja lokalnego pliku pakietu przez menedżer, a nie przez dpkg czy rpm bezpośrednio, załatwia przy okazji zależności.
Architekturę systemu na Linuksie sprawdza polecenie:
uname -m
Wynik x86_64 oznacza wariant x64, aarch64 wariant Arm64.
Aktualizacje i kanały wydań
Aktualizację z poziomu aplikacji uruchamia się przez paletę poleceń: Cmd + Shift + P albo Ctrl + Shift + P, potem polecenie próby aktualizacji i restart po monicie. Dostępne są dwa kanały: stabilny, domyślny i zalecany dla większości, oraz wczesnego dostępu z kompilacjami przedpremierowymi, które mogą być mniej stabilne. Kanał przełącza się w ustawieniach Cursor. (Installation and startup - Cursor Docs)
Przeniesienie ustawień z VS Code
Import ustawień, skrótów i rozszerzeń robi się jednym kliknięciem: otworzyć ustawienia Cursor skrótem Cmd + Shift + J albo Ctrl + Shift + J, przejść do sekcji ogólnej i konta, a tam w części importu z VS Code kliknąć przycisk importu. Przenosi to rozszerzenia, motywy, ustawienia i przypisania klawiszy. Cursor dzieli domyślne skróty z VS Code, a własne przypisania przechodzą razem z ustawieniami. Oba programy działają jako osobne aplikacje i można ich używać na tym samym projekcie równolegle. (Migrate from VS Code - Cursor Docs)
Jest tu jednak różnica, którą lepiej poznać przed importem niż po. Cursor korzysta z rejestru Open VSX, a nie z Marketplace VS Code. Większość popularnych rozszerzeń jest w Open VSX dostępna, ale nie każde rozszerzenie z Marketplace Microsoftu tam trafiło, a ta sama nazwa wydawca.rozszerzenie może w Open VSX wskazywać na innego wydawcę lub inny kod - producent radzi traktować identyfikatory rozszerzeń jak zależności i instalować od zaufanych wydawców. Dla części szeroko używanych rozszerzeń niedostępnych w Open VSX Cursor publikuje własne zamienniki pod marką Anysphere. (Extensions - Cursor Docs)
Producent opisuje przy tym warstwy ograniczania ryzyka: wyszukiwanie i pobieranie rozszerzeń idzie przez własne pośrednictwo marketplace, a nie bezpośrednio do Open VSX, i przed pokazaniem rozszerzenia w wynikach lub udostępnieniem go do pobrania uruchamiana jest automatyczna analiza pod kątem złośliwego oprogramowania i ataków na łańcuch dostaw; rozszerzenia, które nie przejdą kontroli, są blokowane. (Extensions - Cursor Docs)
Praktyczna kolejność: przed importem sprawdzić, bez którego rozszerzenia praca się zatrzyma. Utrata motywu to drobiazg, utrata debuggera to powód do pozostania przy VS Code. Ponieważ obie aplikacje mogą działać równolegle, nie trzeba tego rozstrzygać z góry.
Rozszerzenia instaluje się w panelu otwieranym skrótem Cmd + Shift + X albo Ctrl + Shift + X. (Extensions - Cursor Docs)
Pierwsze uruchomienie i otwarcie projektu
Projekt otwiera się przez menu Plik i polecenie otwarcia folderu. (Your first project - Cursor Docs) Agent jest najbardziej użyteczny na prawdziwym repozytorium, a nie w pustym edytorze.
Producent proponuje na start prośbę o wyjaśnienie kodu, zanim cokolwiek się zmieni. Po otwarciu folderu otwiera się Agenta skrótem Cmd + I albo Ctrl + I i pyta o objaśnienie projektu wraz ze wskazaniem głównych punktów wejścia i kluczowych modułów. Cursor przeszuka repozytorium, przeczyta istotne pliki i podsumuje, jak projekt się składa - to jeden z najszybszych sposobów na odnalezienie się w nieznanym kodzie. (Quickstart - Cursor Docs)
Potem przychodzi pierwsza zmiana i tu producent formułuje zasadę wprost: dobre pierwsze zadania są niskiego ryzyka, jak poprawienie tekstów albo naprawienie drobnych usterek interfejsu. (Quickstart - Cursor Docs) Zmiany agenta wprowadzane są w trakcie pracy, a przegląda się je w widoku różnic i odrzuca to, czego się nie chce. (Your first project - Cursor Docs)
Kontekst agent zbiera samodzielnie, ale można go wskazać ręcznie znakiem @ w polu rozmowy, na przykład @auth.ts albo @src/components/. (Your first project - Cursor Docs)
Uprawnienia agenta: co uruchamia się bez pytania
Tę sekcję warto skonfigurować przed pierwszym poważniejszym zadaniem, bo dotyczy poleceń wykonywanych na własnej maszynie.
Tryby uruchamiania sterują tym, jak agent wywołuje narzędzia i kiedy przerywa pracę, żeby zapytać o zgodę. Ustawia się je w aplikacji desktopowej w ustawieniach, w sekcji agentów, w części zatwierdzeń i wykonywania. Dostępne są trzy: (Run Modes - Cursor Docs)
Auto-review - producent wskazuje go jako najbezpieczniejszy użyteczny wariant dla większości. Wywołania z listy dozwolonych uruchamiają się natychmiast, pozostałe polecenia powłoki idą w miarę możliwości do piaskownicy, a te, które nie mogą do niej trafić, sprawdzane są przez klasyfikator. (Run Modes - Cursor Docs)
Allowlist - bez pytania uruchamiają się tylko działania z własnej listy dozwolonych, a przy włączonej izolacji obsługiwane polecenia powłoki mogą działać w piaskownicy. Wariant dla tych, którzy chcą zachowania deterministycznego przy niewielkim zestawie zaufanych, powtarzalnych działań. (Run Modes - Cursor Docs)
Run Everything - każde wywołanie narzędzia uruchamia się automatycznie, bez piaskownicy i bez klasyfikatora. Dla tych, którzy akceptują ryzyko i nie chcą żadnych monitów. (Run Modes - Cursor Docs)
Jedno zastrzeżenie producenta jest w tej sprawie kategoryczne: automatyczne sprawdzanie nie jest granicą bezpieczeństwa. Klasyfikator może się mylić - przepuścić wywołanie, które zostałoby zablokowane, albo zablokować takie, które byłoby dopuszczone. (Run Modes - Cursor Docs)
Piaskownica pozwala uruchamiać polecenia terminala bez pełnego dostępu do maszyny: polecenie w niej działa w obrębie projektu, ale nie może swobodnie czytać plików chronionych, zapisywać poza zatwierdzonymi ścieżkami ani łączyć się z dowolnymi adresami w sieci. Domyślnie w piaskownicy jest odczyt i zapis w przestrzeni roboczej, ochrona ścieżek takich jak .git/config, .git/hooks, .vscode, .cursorignore i wrażliwe pliki konfiguracyjne Cursor, zablokowana sieć otwierana potem przez tryb sieciowy i plik sandbox.json oraz zapisywalne katalogi tymczasowe. Część poleceń wymaga pełnego dostępu do systemu i omija piaskownicę - Cursor sygnalizuje wtedy, że polecenie działa poza nią, i pyta o zgodę. (Run Modes - Cursor Docs)
Tu przydaje się jedna rzecz, którą łatwo przeoczyć: producent opisuje mechanizm piaskownicy tylko dla dwóch systemów. Sekcja o działaniu piaskownicy na poszczególnych platformach ma zakładki macOS i Linux i żadnej dla Windows. Na macOS jest to Seatbelt uruchamiany przez sandbox-exec, na Linuksie mechanizm jądra Landlock z awaryjnym bubblewrap. Tabela zmiennych środowiskowych wstrzykiwanych do procesów w piaskownicy - CURSOR_SANDBOX, CURSOR_ORIG_UID, CURSOR_ORIG_GID, CURSOR_SANDBOX_LANDLOCK_STATUS - w kolumnie platform również wymienia wyłącznie macOS i Linuksa. (Run Modes - Cursor Docs)
Nie znaczy to, że na Windows piaskownica nie działa - znaczy, że producent nie opisuje tam jej mechanizmu, więc nie da się z dokumentacji ustalić zakresu izolacji. Praktyczny wniosek dla pracy na Windows: nie zakładać, że polecenia agenta są ograniczone technicznie, i traktować tryb Auto-review ostrożniej, bo polecenie, które nie trafi do piaskownicy, ocenia klasyfikator - o którym producent sam mówi, że nie jest granicą bezpieczeństwa. Kto chce zachowania przewidywalnego, powinien na tym systemie zacząć od trybu Allowlist z krótką listą znanych poleceń i dopiero ją poszerzać.
Osobna uwaga dla Linuksa, przydatna przy skryptach i kontenerach: piaskownica tworzy przestrzeń nazw użytkownika i przemapowuje proces na UID 0, więc id -u i $UID wewnątrz polecenia zwracają zero, a nie identyfikator konta. Skrypty, które potrzebują prawdziwego identyfikatora - na przykład do ustawienia właściciela pliku albo do --user w Dockerze - mają czytać CURSOR_ORIG_UID i CURSOR_ORIG_GID. (Run Modes - Cursor Docs)
Konfiguracja jest opcjonalna, a najprostszy sposób jej wprowadzenia to poproszenie agenta zwykłym zdaniem, na przykład o to, żeby każde polecenie AWS CLI wymagało zgody - agent edytuje wtedy plik permissions.json samodzielnie. Plik czytany jest z dwóch miejsc: ~/.cursor/permissions.json obowiązuje we wszystkich katalogach projektów na maszynie, a <katalog-projektu>/.cursor/permissions.json w jednym projekcie i można go zatwierdzić w repozytorium, gdy zespół ma dzielić te same wytyczne. Gdy istnieją oba, Cursor je łączy. Zawartość to zdania w zwykłym języku w dwóch grupach: instrukcje skłaniające do przepuszczania i instrukcje skłaniające do blokowania. (Run Modes - Cursor Docs)
Oddzielnie działają trzy zabezpieczenia, które mogą wymusić zgodę nawet wtedy, gdy tryb pozwalałby na automatyczne uruchomienie: ochrona przeglądarki, blokująca automatyczne użycie narzędzi przeglądarki, ochrona przed usuwaniem plików, obejmująca także polecenia rm, oraz ochrona plików spoza przestrzeni roboczej, blokująca automatyczne tworzenie, zmienianie i usuwanie plików poza projektem. (Run Modes - Cursor Docs)
Warto też ustawić, czego agent w ogóle nie ma widzieć. Plik .cursorignore w katalogu głównym, o składni takiej jak .gitignore, blokuje dostęp do wskazanych plików z poziomu agenta, uzupełniania w edytorze i edycji w linii oraz z odwołań przez @. Producent podaje przy tym dwa ograniczenia wprost: terminal i narzędzia serwerów MCP używane przez agenta nie mogą zablokować dostępu do kodu objętego tym plikiem, a pełna ochrona nie jest gwarantowana ze względu na nieprzewidywalność modeli. (Ignore file - Cursor Docs)
Dla plików z sekretami wygodniejszy bywa jednak inny mechanizm. Poza plikiem w repozytorium Cursor ma globalną listę ignorowania w ustawieniach użytkownika, domyślnie pustą, działającą we wszystkich projektach bez konfigurowania każdego z osobna. To właśnie przy niej producent podaje typowe wzorce warte dopisania: pliki środowiskowe **/.env i **/.env.*, pliki poświadczeń **/credentials.json i **/secrets.json oraz klucze **/*.key, **/*.pem, **/id_rsa. (Ignore file - Cursor Docs) Składnia jest ta sama co w .cursorignore, więc te same wzorce działają w obu miejscach - różnica dotyczy zasięgu, nie zapisu. Praktyczny podział: sekrety, które pojawiają się wszędzie, na listę globalną; wykluczenia specyficzne dla jednego repozytorium do .cursorignore, gdzie da się je zatwierdzić razem z kodem.
Przydaje się też opcja hierarchiczna: włączenie ustawienia szukania plików .cursorignore w katalogach nadrzędnych sprawia, że wykluczenie zdefiniowane wyżej w drzewie obowiązuje w podkatalogach - w Cursor 3.11 ustawienie przeniosło się z sekcji edytora do sekcji indeksowania. (Ignore file - Cursor Docs)
Osobny plik .cursorindexingignore wyłącza pliki wyłącznie z indeksowania - pozostają dostępne dla funkcji AI, ale nie pojawiają się w wynikach przeszukiwania repozytorium. Nadaje się do dużych plików generowanych i wendorowanych zależności. (Ignore file - Cursor Docs)
Tryb planowania: dla zmian większych niż jedno miejsce
Tryb planowania tworzy szczegółowy plan wdrożenia przed napisaniem jakiegokolwiek kodu: agent bada repozytorium, zadaje pytania doprecyzowujące i generuje plan do przejrzenia i edycji przed budowaniem. Przełącza się do niego klawiszami Shift + Tab z pola rozmowy; Cursor sam go też sugeruje, gdy w treści polecenia pojawią się słowa wskazujące na złożone zadanie. (Plan Mode - Cursor Docs)
Przebieg ma pięć kroków: pytania doprecyzowujące, badanie repozytorium w celu zebrania kontekstu, utworzenie planu, przegląd i edycja planu przez rozmowę albo pliki markdown, a na końcu uruchomienie budowania. Plany zapisywane są domyślnie w katalogu domowym; opcja zapisania do przestrzeni roboczej przenosi je do projektu, co przydaje się do dokumentacji i dzielenia z zespołem. (Plan Mode - Cursor Docs)
Producent wskazuje, kiedy ten tryb ma sens: przy złożonych funkcjach z wieloma poprawnymi podejściami, przy zadaniach dotykających wielu plików lub systemów, przy niejasnych wymaganiach, gdzie trzeba najpierw rozpoznać zakres, oraz przy decyzjach architektonicznych. Przy szybkich zmianach i rzeczach robionych wielokrotnie wcześniej wystarczy zwykły tryb agenta. (Plan Mode - Cursor Docs)
Jest też zalecenie, które oszczędza najwięcej czasu, a bywa pomijane: gdy agent zbuduje coś niezgodnego z oczekiwaniem, zamiast naprawiać to kolejnymi wiadomościami, lepiej wrócić do planu - cofnąć zmiany, doprecyzować plan i uruchomić go ponownie. Producent opisuje to jako podejście często szybsze i dające czystszy wynik niż poprawianie agenta w trakcie pracy. (Plan Mode - Cursor Docs)
Punkty kontrolne i sterowanie pracującym agentem
Punkty kontrolne zapisują migawki repozytorium w trakcie sesji agenta; tworzone są automatycznie przed istotnymi zmianami i obejmują stan wszystkich zmodyfikowanych plików. Kliknięcie punktu na osi rozmowy pozwala podejrzeć pliki z tamtego momentu i przywrócić do niego stan. Zastrzeżenie producenta jest jednoznaczne: punkty kontrolne są przechowywane lokalnie i oddzielnie od Gita, służą wyłącznie do cofania zmian agenta, a do trwałej kontroli wersji należy używać Gita. (Cursor Agent - Cursor Docs)
Pracującego agenta można sterować dwoma sposobami: kolejkowaniem wiadomości, która poczeka na zakończenie bieżącego zadania, albo wysłaniem od razu, gdy trzeba przekierować bieżącą turę. Wiadomość wysłana natychmiast dołączana jest do ostatniej wiadomości użytkownika i przetwarzana bez czekania w kolejce. Wysłanie w trybie sterowania dostarcza wiadomość przy następnym wywołaniu narzędzia, zamiast przerywać pracę w połowie działania, co zachowuje wykonaną już robotę. (Cursor Agent - Cursor Docs)
Do zadań długodystansowych służy polecenie /goal, nadające agentowi trwały cel, do którego ma dążyć aż do pełnego ukończenia - agent traktuje bowiem każdą zwykłą wiadomość jako nowe zlecenie. (Cursor Agent - Cursor Docs)
Najprzydatniejsze skróty: panel boczny - Cmd + I lub Ctrl + I; ustawienia Cursor - Cmd + Shift + J lub Ctrl + Shift + J; przełączanie trybów agenta - Shift + Tab; przerwanie generowania - Cmd + Shift + Backspace lub Ctrl + Shift + Backspace; przyjęcie wszystkich zmian - Cmd + Enter lub Ctrl + Enter; odrzucenie wszystkich zmian - Cmd + Backspace lub Ctrl + Backspace; edycja w linii - Cmd + K lub Ctrl + K; dodanie zaznaczonego kodu do rozmowy - Cmd + Shift + L lub Ctrl + Shift + L. Pełną listę pokazuje paleta poleceń po wyszukaniu skrótów klawiszowych, a wszystkie przypisania da się zmienić. (Keyboard Shortcuts - Cursor Docs)
Praktyczny projekt: lista zadań w przeglądarce
Poniżej ćwiczenie o sprawdzalnym wyniku - propozycja do wykonania, nie relacja z przeprowadzonego testu.
Przygotowanie. Utworzyć pusty folder lista-zadan, zainicjować w nim repozytorium i zrobić pusty commit startowy:
git init
git commit --allow-empty -m "punkt startowy"
Powód jest praktyczny. Punkty kontrolne Cursor są lokalne i oddzielone od Gita, a producent wskazuje Gita jako właściwe narzędzie trwałej kontroli wersji. (Cursor Agent - Cursor Docs) Commit przed każdą turą agenta sprawia, że git diff pokazuje dokładnie jego pracę.
Otworzyć folder przez menu Plik i polecenie otwarcia folderu, a potem ustawić tryb uruchamiania na Auto-review albo Allowlist w ustawieniach agentów. (Run Modes - Cursor Docs)
Zadanie pierwsze - działający szkielet. W panelu agenta:
Zbuduj lokalną listę zadań w trzech plikach:
index.html,styles.cssiapp.js. Bez frameworków, bez zależności zewnętrznych, bez zaplecza serwerowego. Funkcje: dodawanie zadania, oznaczanie jako wykonane, usuwanie, licznik pozostałych zadań. Stan zapisuj wlocalStoragepod jednym kluczem i wczytuj przy starcie. Zwykły JavaScript, bez modułów wymagających serwera, tak żebyindex.htmldziałał otwarty wprost z dysku. Nie uruchamiaj żadnych poleceń instalujących pakiety.
Kryteria odbioru. Sprawdzane samodzielnie w przeglądarce, bez ufania podsumowaniu agenta: powstały dokładnie trzy zapowiedziane pliki; otwarcie index.html daje działającą stronę bez błędów w konsoli przeglądarki; dodanie trzech zadań, oznaczenie jednego i usunięcie innego działa; po odświeżeniu strony stan pozostaje ten sam; licznik zgadza się z liczbą zadań nieoznaczonych. Brak zachowania stanu po odświeżeniu oznacza zwykle, że zapis do localStorage działa, a odczyt przy starcie nie - i tak warto to zgłosić w kolejnej wiadomości, precyzyjniej niż „nie działa”.
Po akceptacji zatwierdzić stan:
git add -A
git commit -m "lista zadan: wersja podstawowa"
Zadanie drugie - zmiana na istniejącym kodzie, z planem. Tu warto włączyć tryb planowania klawiszami Shift + Tab, bo zmiana dotyka kilku miejsc naraz: (Plan Mode - Cursor Docs)
Dodaj filtrowanie zadań: wszystkie, aktywne, wykonane. Wybrany filtr ma się zachowywać po odświeżeniu strony. Nie zmieniaj struktury danych zapisywanej w
localStoragei zachowaj zgodność z istniejącymi zapisami - kto ma już zapisane zadania, po zmianie ma je nadal widzieć. Dodaj obsługę uszkodzonego zapisu: przy nieprawidłowej zawartości klucza aplikacja startuje z pustą listą zamiast rzucać błędem.
Kryteria odbioru drugiego zadania: trzy filtry działają i przełączają widok; po odświeżeniu aktywny pozostaje ostatnio wybrany filtr; zadania zapisane przed zmianą są nadal widoczne; ręczne wpisanie nieprawidłowej wartości pod klucz w localStorage z konsoli przeglądarki i odświeżenie daje pustą listę, a nie zablokowaną aplikację. Ostatni punkt jest najczęściej pomijany i najlepiej pokazuje, czy warunek został zrealizowany, czy tylko opisany.
Zadanie trzecie - weryfikacja. Po zakończeniu pracy producent zaleca przejrzenie różnic i poproszenie Cursor o uruchomienie kontroli, których projekt już używa: testów, sprawdzania typów, lintera albo lokalnego budowania. (Quickstart - Cursor Docs) W tym minimalnym projekcie nie ma jeszcze żadnej z nich, więc naturalnym trzecim krokiem jest ich dodanie:
Dodaj kilka testów jednostkowych dla logiki filtrowania i wczytywania stanu z
localStorage. Wydziel logikę do osobnego pliku tak, żeby dała się testować bez przeglądarki. Nie zmieniaj zachowania widocznego dla użytkownika. Przed instalacją czegokolwiek pokaż mi, jakie pakiety chcesz dodać, i poczekaj na zgodę.
Ostatnie zdanie ma znaczenie niezależnie od ustawionego trybu uruchamiania - w trybie Auto-review część wywołań może przejść bez pytania, a instalowanie zależności to decyzja projektowa, nie techniczna. (Run Modes - Cursor Docs)
Reguły: jak nie powtarzać tych samych uwag
Gdy ta sama poprawka wraca w kolejnych rozmowach, jej miejsce jest w regułach. Reguły dostarczają agentowi instrukcji na poziomie systemowym, a ich treść trafia na początek kontekstu modelu. (Rules - Cursor Docs)
Cursor obsługuje cztery rodzaje: reguły projektowe w katalogu .cursor/rules, wersjonowane i związane z repozytorium; reguły użytkownika, globalne dla środowiska; reguły zespołu, zarządzane z panelu w planach zespołowych i firmowych; oraz plik AGENTS.md jako prosta alternatywa w zwykłym markdownie. (Rules - Cursor Docs)
Kolejność ich stosowania jest ustalona i warto ją znać, zanim reguła zacznie „nie działać”: reguły zespołu, potem projektowe, na końcu użytkownika. Wszystkie pasujące reguły są łączone, ale przy sprzecznych wskazówkach pierwszeństwo ma źródło wcześniejsze z tej listy, więc reguła zespołu przebija projektową, a projektowa - użytkownika. (Rules - Cursor Docs) W zespołach dochodzi jeszcze wymuszanie: regułę oznaczoną jako wymagana administrator blokuje do wyłączenia, a regułę niewymuszaną członek zespołu może sam odznaczyć w panelu dostosowań. (Rules - Cursor Docs)
Reguły projektowe to pliki .mdc z nagłówkiem, dowolnie nazwane. Rozszerzenie ma znaczenie: zwykły plik .md w katalogu .cursor/rules jest ignorowany, bo nie ma nagłówka określającego pola description, globs i alwaysApply; kto woli zwykły markdown, powinien użyć pliku AGENTS.md. (Rules - Cursor Docs)
Sposób włączania reguły wynika z kombinacji trzech pól nagłówka: alwaysApply ustawione na prawdę włącza regułę zawsze i ignoruje pozostałe pola; przy wartości fałsz i podanych wzorcach glob reguła dołącza się automatycznie, gdy pasujący plik jest w kontekście; przy podanym opisie bez wzorców agent czyta opis i sam decyduje o użyciu; przy braku obu reguła włącza się tylko po przywołaniu znakiem @ w rozmowie. (Rules - Cursor Docs)
Regułę tworzy się dwoma sposobami: poleceniem /create-rule w rozmowie z opisem tego, co ma zawierać - agent wygeneruje plik z poprawnym nagłówkiem i zapisze go w .cursor/rules - albo z panelu dostosowań, w sekcji reguł, przyciskiem dodania reguły. (Rules - Cursor Docs)
Reguła pasująca do opisywanego projektu, w pliku .cursor/rules/lista-zadan.mdc:
---
alwaysApply: true
---
- Bez frameworków i bez zależności zewnętrznych w tym projekcie
- Kod ma działać po otwarciu index.html wprost z dysku, bez serwera
- Nie zmieniaj struktury danych w localStorage bez wyraźnego polecenia
- Przed instalacją jakiegokolwiek pakietu zapytaj i poczekaj na zgodę
- Po zmianie w app.js napisz, co dokładnie kliknąć w przeglądarce, żeby to sprawdzić
Zalecenia producenta co do dobrych reguł: trzymać je poniżej pięciuset wierszy, dzielić duże reguły na mniejsze składane, podawać konkretne przykłady albo odwołania do plików, unikać ogólników i pisać je jak jasną dokumentację wewnętrzną, a zamiast kopiować treść plików odwoływać się do nich, żeby reguły nie rosły i nie dezaktualizowały się razem z kodem. (Rules - Cursor Docs)
Wyliczone jest też wprost, czego w regułach nie umieszczać: całych przewodników po stylu - do tego służy linter, a agent zna typowe konwencje; dokumentacji wszystkich możliwych poleceń - agent zna popularne narzędzia; instrukcji do rzadkich przypadków brzegowych; oraz powielania tego, co już jest w repozytorium - lepiej wskazać kanoniczne przykłady. Producent radzi zaczynać prosto i dopisywać reguły dopiero wtedy, gdy agent powtarza ten sam błąd. (Rules - Cursor Docs)
Prywatność i dane
Tryb prywatności zapewnia, że kod nie jest wykorzystywany do trenowania modeli ani przez Cursor, ani przez dostawców modeli. Włącza się go w ustawieniach Cursor, otwieranych skrótem Cmd + Shift + J albo Ctrl + Shift + J, w sekcji ogólnej. W zespołach tryb prywatności jest domyślnie włączony dla wszystkich członków, a administratorzy mogą wymusić go w całej organizacji z panelu, tak by nie dało się go wyłączyć. (Privacy and data - Cursor Docs)
Granica jest tu jednak węższa, niż sugeruje nazwa. Przy korzystaniu z funkcji AI Cursor wysyła zapytania i kontekst kodu do dostawców modeli, takich jak OpenAI, Anthropic i Google; tryb prywatności oznacza, że kod nie posłuży do trenowania, a nie że pozostaje na maszynie. (Privacy and data - Cursor Docs) Wszyscy podprocesorzy mają umowy powierzenia przetwarzania danych. (Privacy and data - Cursor Docs)
Są też wyjątki od zerowej retencji. Nie obowiązuje ona przy korzystaniu z własnych kluczy API - wtedy przetwarzanie danych podlega polityce prywatności danego dostawcy. Część modeli wymaga retencji po stronie dostawcy i pozostaje poza umowami zerowej retencji Cursor; takie modele są domyślnie wyłączone i wymagają zgody administratora. (Privacy and data - Cursor Docs)
Praktyczny wniosek dla kodu objętego poufnością jest ten sam co przy każdym narzędziu z modelem w chmurze: decyzję o tym, co trafia do agenta, podejmuje się przed pierwszym zadaniem. Pomaga tu .cursorignore z wpisami na pliki środowiskowe i klucze, z pamięcią o zastrzeżeniu producenta, że terminal i serwery MCP nie egzekwują tego pliku. (Ignore file - Cursor Docs)
Koszty i limity
Zacząć da się bez płacenia. Cennik producenta wymienia jako pierwszą pozycję plan Hobby: bezpłatny, bez podawania karty, z ograniczoną liczbą żądań do agenta i dostępem do Composera. (Pricing - Cursor) To wystarczy, żeby przejść opisane wyżej ćwiczenie z listą zadań i samodzielnie ocenić, czy narzędzie się przydaje - z zastrzeżeniem, że przy ograniczonej puli żądań dłuższa sesja agenta może się skończyć wcześniej, niż zadanie. Warto wiedzieć, że dokumentacyjna strona cen tego planu nie wymienia i zaczyna od planów płatnych; obie strony są publikacjami producenta i różnią się zakresem.
W planach płatnych Cursor rozdziela zużycie na dwie pule odnawiane wraz z miesięcznym cyklem rozliczeniowym. Pula modeli Cursor obejmuje modele Cursor Grok 4.6, Grok 4.5 i Composer 2.5 ze znacznie większym wliczonym zużyciem. Pula pozostałych modeli dotyczy modeli firm trzecich rozliczanych według cen ich API. Obie pule widać w ustawieniach edytora i na panelu zużycia. (Models & Pricing - Cursor Docs)
Ceny planów indywidualnych: Pro 20 USD miesięcznie, Pro Plus 60 USD, Ultra 200 USD. W tabeli planów producent opisuje obie pule wyłącznie słowem „wliczone”, bez podania kwoty wliczonego zużycia - tej liczby nie da się więc odczytać z cennika i nie warto jej sobie dopowiadać. Realny stan pokazuje panel zużycia po zalogowaniu. Osobno istnieje plan Start dostępny wyłącznie w Indiach za 649 rupii miesięcznie z podatkiem, obejmujący pulę modeli Cursor i agentów w chmurze, ale bez puli modeli firm trzecich, bez zużycia na żądanie, bez Bugbota i bez trybu Auto. Plany zespołowe mają dwa rodzaje miejsc: Standard 40 USD oraz Premium 120 USD za użytkownika miesięcznie, przy czym Premium daje pięciokrotnie wyższe limity agenta. (Models & Pricing - Cursor Docs)
W planach Teams i Enterprise dochodzi składnik, którego nie da się odgadnąć z cennika modeli: Cursor Token Rate, czyli 0,25 USD za milion tokenów doliczane do ceny API przy każdym żądaniu do modelu firmy trzeciej. Narzut obowiązuje przy zużyciu wliczonym, przy zużyciu na żądanie i przy własnych kluczach API, a także wtedy, gdy tryb Auto sam skieruje żądanie do modelu firmy trzeciej. Modele własne Cursora, w tym Grok i Composer, są z niego zwolnione. (Models & Pricing - Cursor Docs)
Producent podaje własne szacunki rzeczywistego zużycia: codzienne korzystanie z uzupełniania Tab zazwyczaj mieści się w zużyciu wliczonym w plan, a ograniczone używanie agenta często również. Nie jest to gwarancja ani wskazanie konkretnej kwoty wliczonego zużycia. Codzienne korzystanie z agenta to według tych szacunków zazwyczaj 60-100 USD miesięcznie łącznego zużycia, a praca z wieloma agentami i automatyzacjami często ponad 200 USD. (Models & Pricing - Cursor Docs)
Po przekroczeniu wliczonego zużycia można dokupić zużycie na bieżąco po tych samych stawkach albo przejść na wyższy plan; żądania nie są przy tym obniżane jakościowo ani spowalniane. (Models & Pricing - Cursor Docs)
Jedna rzecz przesądza o rachunku bardziej niż plan: wybór modelu. Ponieważ modele mają różne koszty API, to on decyduje o tempie zużywania wliczonego limitu. (Models & Pricing - Cursor Docs)
Błędy i sposoby ich rozwiązania
Puste okno po uruchomieniu. Zamknąć i uruchomić Cursor ponownie; na Macu przenieść aplikację do kosza i zainstalować ponownie z oficjalnej strony pobierania; na Windows uruchomić jako administrator; z palety poleceń wykonać czyszczenie historii edytora, żeby zresetować stan z pamięci podręcznej. (Installation and startup - Cursor Docs)
Komunikat macOS o uszkodzonej aplikacji. To problem systemu, nie uszkodzone pobranie. Najpierw zamknąć Cursor i wymusić zakończenie pozostałych procesów w Monitorze aktywności, odczekać minutę i uruchomić ponownie. Gdy ostrzeżenie wraca: przenieść aplikację do kosza, opróżnić kosz i pobrać ponownie, a jeżeli to nie pomoże, uruchomić Maca ponownie i spróbować jeszcze raz. (Installation and startup - Cursor Docs)
Cursor zajmuje dużo miejsca na dysku. Usunąć nieużywane rozszerzenia i wykonać czyszczenie historii edytora z palety poleceń. (Installation and startup - Cursor Docs)
Rozszerzenia z VS Code nie ma na liście. Cursor korzysta z Open VSX i nie każde rozszerzenie z Marketplace Microsoftu tam trafiło; dla części z nich istnieją zamienniki publikowane przez producenta. (Extensions - Cursor Docs)
Rozszerzenie psuje pracę edytora. Wyłączyć je w panelu rozszerzeń, globalnie albo tylko dla bieżącej przestrzeni roboczej, i sprawdzić, czy problem znika. (Extensions - Cursor Docs)
Opcja Auto-review jest wyszarzona. W zespołach klasyfikator wymaga dostępności odpowiedniego małego modelu zarządzanego przez Cursor; zablokowanie ich wszystkich wyłącza tę opcję, nawet gdy tryby zespołu ją obejmują, i pozostaje wtedy tryb listy dozwolonych. Rozwiązanie: włączyć te modele w ustawieniach modeli zespołu, całkowicie zamknąć i uruchomić Cursor ponownie, a potem sprawdzić sekcję zatwierdzeń i wykonywania. (Run Modes - Cursor Docs)
Agent zbudował coś zupełnie innego. Zamiast poprawiać kolejnymi wiadomościami, wrócić do planu: cofnąć zmiany, doprecyzować plan i uruchomić go ponownie. (Plan Mode - Cursor Docs)
Reguła nie działa. Najczęstsza przyczyna to złe rozszerzenie pliku - plik .md w katalogu .cursor/rules jest ignorowany, reguły projektowe muszą mieć rozszerzenie .mdc. (Rules - Cursor Docs) Druga przyczyna to sposób włączania: przy alwaysApply: false bez wzorców glob i bez opisu reguła wchodzi wyłącznie po przywołaniu przez @. Trzecia, typowa w zespole: reguła jest wczytana, ale przegrywa konflikt, bo pierwszeństwo idzie w kolejności reguły zespołu, projektowe, użytkownika - własna reguła użytkownika nie nadpisze sprzecznej reguły zespołu ani projektowej. (Rules - Cursor Docs) Aktualny stan wszystkich reguł, razem z tym, które są wymuszone przez administratora, pokazuje panel dostosowań w sekcji reguł. (Rules - Cursor Docs)
Wzorzec w pliku ignorowania nie działa. Wzorce warto sprawdzać poleceniem git check-ignore -v <plik>. (Ignore file - Cursor Docs) Osobne ograniczenie dotyczy wzorców negujących: nie da się z powrotem włączyć pliku, gdy katalog nadrzędny został wykluczony gwiazdką - obejściem jest jawne wykluczenie zagnieżdżonego katalogu i dopiero potem negacja konkretnego pliku. (Ignore file - Cursor Docs)
Sprzątanie i cofnięcie zmian
Zmiany wprowadzone przez agenta cofa się w widoku różnic przez odrzucenie albo przez przywrócenie punktu kontrolnego z osi rozmowy - z pamięcią, że punkty kontrolne są lokalne i oddzielone od Gita. (Cursor Agent - Cursor Docs) Trwałe cofnięcie to Git: git checkout -- . dla niezatwierdzonych zmian albo powrót do wcześniejszego commita.
Miejsce na dysku odzyskuje się przez usunięcie nieużywanych rozszerzeń i wyczyszczenie historii edytora. (Installation and startup - Cursor Docs) Samą aplikację odinstalowuje się standardowo dla danego systemu: na Windows przez listę zainstalowanych programów, na macOS przez przeniesienie z folderu Aplikacje do kosza, na Linuksie przez menedżer pakietów albo usunięcie pliku AppImage. Pliki konfiguracyjne zapisane w projekcie - .cursor/rules, .cursor/permissions.json, .cursor/sandbox.json, .cursorignore - zostają w repozytorium i usuwa się je jak zwykłe pliki projektu; pliki globalne ~/.cursor/permissions.json i ~/.cursor/sandbox.json trzeba sprawdzić osobno. (Run Modes - Cursor Docs)
Zakres tego materiału
Opis powstał na podstawie dokumentacji, pomocy i cennika producenta oraz jego publicznego punktu końcowego pobierania, odpytanego 8 września 2026. Instalacja i przebieg zadań nie zostały wykonane na maszynie testowej w ramach tego opracowania na żadnym z trzech systemów; nazwy przycisków, skróty i ścieżki pochodzą z dokumentacji. Ćwiczenie z listą zadań jest propozycją do samodzielnego wykonania wraz z kryteriami odbioru, a nie relacją z przeprowadzonego przebiegu. Informacje o planach pochodzą z dwóch stron producenta - dokumentacyjnej strony cen i publicznego cennika - które różnią się zakresem opisanych planów, co zaznaczono w sekcji o kosztach. Numer wersji, ceny, limity i lista modeli zmieniają się i przed decyzją trzeba je sprawdzić na aktualnych stronach producenta.
Źródła
- Cursor Documentation
- Quickstart - Cursor Docs
- Download and install Cursor - Cursor Docs
- Your first project - Cursor Docs
- Migrate from VS Code - Cursor Docs
- Installation and startup - Cursor Docs
- Extensions - Cursor Docs
- Cursor Agent - Cursor Docs
- Plan Mode - Cursor Docs
- Run Modes - Cursor Docs
- Rules - Cursor Docs
- Ignore file - Cursor Docs
- Keyboard Shortcuts - Cursor Docs
- Models & Pricing - Cursor Docs
- Pricing - Cursor
- Privacy and data - Cursor Docs
- Cursor API pobierania, platforma darwin-arm64
- Cursor API pobierania, platforma win32-x64-user
- Cursor API pobierania, platforma linux-x64