Cursor - Kompletny przewodnik po AI-first IDE, które zmienia sposób programowania
Czym jest Cursor i dlaczego programiści masowo się na niego przerzucają?
Cursor to edytor kodu nowej generacji, który został zbudowany od podstaw z myślą o programowaniu wspomaganym sztuczną inteligencją. Bazując na VS Code (a więc zachowując wszystkie ulubione rozszerzenia i skróty), Cursor dodaje głęboko zintegrowane funkcje AI, które fundamentalnie zmieniają sposób pisania kodu.
W przeciwieństwie do GitHub Copilot, który jest dodatkiem do istniejącego edytora, Cursor został zaprojektowany tak, aby AI był pierwszorzędnym obywatelem całego środowiska programistycznego. To nie jest po prostu autouzupełnianie - to pełnoprawny partner programistyczny, który rozumie kontekst twojego projektu, może edytować wiele plików jednocześnie i prowadzi z tobą rozmowę o kodzie.
Kluczowe cechy wyróżniające Cursor
| Cecha | Opis |
|---|---|
| Composer | Wieloplikowa edycja z jednego promptu |
| Codebase Indexing | Pełna indeksacja projektu dla lepszego kontekstu |
| @ Mentions | Dodawanie plików, folderów, dokumentacji do kontekstu |
| Cursor Rules | Instrukcje dla AI w pliku .cursorrules |
| Privacy Mode | Kod nie jest używany do treningu |
| Multi-model | Wybór między GPT-4, Claude, i innymi |
Historia i rozwój Cursor
Cursor został stworzony przez Anysphere, startup założony przez absolwentów MIT - Michaela Truella, Sualeh Asifa, Arveeda Cheema i Amana Sanger. Pierwsza wersja pojawiła się w marcu 2023 roku i szybko zdobyła uznanie w społeczności programistów.
Kamienie milowe rozwoju
2023:
- Marzec: Pierwsza publiczna wersja
- Czerwiec: Dodanie funkcji Chat
- Sierpień: Integracja z Claude od Anthropic
- Październik: Wprowadzenie Composer (beta)
- Grudzień: 100,000+ aktywnych użytkowników
2024:
- Luty: Cursor Composer w wersji stabilnej
- Kwiecień: Wprowadzenie @ mentions i kontekstu dokumentacji
- Czerwiec: $60M rundy finansowania Series A
- Sierpień: Cursor Rules i zaawansowane indeksowanie
- Październik: 1M+ aktywnych użytkowników
- Grudzień: Integracja z Claude 3.5 Sonnet
2025:
- Styczeń: Cursor Agent Mode (beta)
- Luty: Wprowadzenie Cursor Tab z predykcją wieloliniową
- Marzec: 3M+ aktywnych użytkowników
Kluczowym momentem była integracja z modelami Claude od Anthropic, która znacząco poprawiła jakość generowanego kodu i zrozumienie kontekstu projektów. W 2024 roku Cursor stał się jednym z najszybciej rosnących narzędzi deweloperskich.
Dlaczego Cursor? Kluczowe zalety
1. Głęboka integracja AI
Cursor nie dodaje AI jako dodatku - AI jest wbudowane w każdy aspekt edytora:
- Autouzupełnianie rozumie twój projekt
- Chat zna strukturę twojego kodu
- Composer może edytować wiele plików naraz
- Indeksowanie całego codebase dla lepszego kontekstu
2. Pełna kompatybilność z VS Code
Wszystko, co kochasz w VS Code, działa w Cursor:
- Rozszerzenia z VS Code Marketplace
- Motywy i ikony
- Skróty klawiszowe
- Ustawienia i konfiguracja
- Debugger i terminal
3. Wybór modeli AI
Nie jesteś ograniczony do jednego dostawcy:
- GPT-4 Turbo - OpenAI
- GPT-4o - Szybszy, multimodalny
- Claude 3.5 Sonnet - Świetny do kodu
- Claude 3 Opus - Najpotężniejszy
- cursor-small - Szybki, oszczędny
4. Prywatność i bezpieczeństwo
Cursor oferuje Privacy Mode, który gwarantuje, że twój kod nie jest używany do trenowania modeli. Dla firm dostępne są opcje enterprise z dodatkowymi zabezpieczeniami.
5. Aktywny rozwój
Nowe wersje pojawiają się co 1-2 tygodnie z nowymi funkcjami i poprawkami.
Instalacja i pierwsze kroki
Pobieranie i instalacja
Cursor jest dostępny na wszystkie główne platformy:
# macOS (Homebrew)
brew install --cask cursor
# Windows
# Pobierz instalator ze strony cursor.com
winget install Anysphere.Cursor
# Linux (AppImage)
# Pobierz AppImage ze strony cursor.com
chmod +x cursor.AppImage
./cursor.AppImageWymagania systemowe
| Platforma | Minimalne | Zalecane |
|---|---|---|
| macOS | 10.15+, 4GB RAM | 12.0+, 8GB RAM |
| Windows | Win10, 4GB RAM | Win11, 8GB RAM |
| Linux | Ubuntu 18.04+, 4GB RAM | Ubuntu 22.04+, 8GB RAM |
Migracja z VS Code
Jeśli używasz VS Code, migracja jest praktycznie bezbolesna:
- Przy pierwszym uruchomieniu Cursor zapyta o import ustawień
- Wybierz "Import from VS Code"
- Wszystkie rozszerzenia, motywy i ustawienia zostaną automatycznie zaimportowane
// Twoje ustawienia VS Code będą w ~/.cursor/settings.json
{
"editor.fontSize": 14,
"editor.fontFamily": "JetBrains Mono, Fira Code, monospace",
"editor.fontLigatures": true,
"workbench.colorTheme": "One Dark Pro",
"editor.minimap.enabled": false,
"editor.formatOnSave": true
}Konfiguracja modeli AI
Cursor oferuje wybór modeli AI. Przejdź do Settings > Models:
| Model | Zastosowanie | Szybkość | Jakość |
|---|---|---|---|
| GPT-4 Turbo | Złożone zadania | Średnia | Wysoka |
| GPT-4o | Multimodalne zadania | Szybka | Wysoka |
| Claude 3.5 Sonnet | Kodowanie (zalecany) | Szybka | Najwyższa |
| Claude 3 Opus | Skomplikowane problemy | Wolna | Najwyższa |
| cursor-small | Proste zadania | Błyskawiczna | Dobra |
Zalecenie: Claude 3.5 Sonnet dla większości zadań programistycznych - świetny balans między jakością a szybkością.
Kluczowe funkcje Cursor - szczegółowy przewodnik
1. Tab Autocomplete - Inteligentne uzupełnianie
To nie jest zwykłe autouzupełnianie. Cursor przewiduje wieloliniowe fragmenty kodu na podstawie kontekstu:
// Zacznij pisać funkcję...
function validateEmail(email: string) {
// Cursor przewidzi całą implementację:
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
return emailRegex.test(email)
}
// Lub bardziej zaawansowane przypadki:
async function fetchUserData(userId: string) {
// Cursor wie, że używasz Prisma i wygeneruje:
const user = await prisma.user.findUnique({
where: { id: userId },
include: {
posts: true,
profile: true,
comments: {
orderBy: { createdAt: 'desc' },
take: 10
}
},
})
if (!user) {
throw new Error('User not found')
}
return user
}Jak działa Tab Autocomplete
- Analiza kontekstu - Cursor analizuje otaczający kod, importy, typy
- Indeksacja projektu - Rozumie strukturę twojego projektu
- Uczenie się ze wzorców - Uczy się z twojego stylu kodowania
- Wieloliniowa predykcja - Przewiduje całe bloki kodu
Skróty dla Tab Autocomplete
| Skrót | Akcja |
|---|---|
Tab | Zaakceptuj całą sugestię |
Ctrl+→ | Zaakceptuj słowo po słowie |
Esc | Odrzuć sugestię |
Ctrl+Space | Wymuś sugestię |
2. Cmd+K - Inline Edit (Edycja w miejscu)
Zaznacz fragment kodu i naciśnij Cmd+K (Mac) lub Ctrl+K (Windows/Linux):
// Zaznacz tę funkcję i wpisz: "dodaj obsługę błędów i logowanie"
function processPayment(amount: number) {
return stripe.charges.create({ amount })
}
// Cursor przekształci to w:
async function processPayment(amount: number): Promise<PaymentResult> {
const logger = getLogger('payments')
try {
logger.info(`Processing payment for amount: ${amount}`)
if (amount <= 0) {
throw new PaymentError('Amount must be positive')
}
const charge = await stripe.charges.create({
amount,
currency: 'usd',
})
logger.info(`Payment successful: ${charge.id}`)
return { success: true, chargeId: charge.id }
} catch (error) {
logger.error(`Payment failed: ${error.message}`, { amount, error })
throw new PaymentError('Payment processing failed', { cause: error })
}
}Przykłady użycia Cmd+K
| Polecenie | Efekt |
|---|---|
| "dodaj typy TypeScript" | Dodaje pełne typy do funkcji |
| "zrefaktoruj na async/await" | Przekształca Promise chains |
| "dodaj JSDoc" | Generuje dokumentację |
| "obsłuż edge cases" | Dodaje walidację i obsługę błędów |
| "zoptymalizuj wydajność" | Sugeruje optymalizacje |
3. Cmd+L - Chat z kontekstem
Otwórz panel czatu z Cmd+L. Chat ma pełen kontekst twojego projektu:
Ty: Jak zaimplementować autentykację JWT w tym projekcie?
Cursor: Na podstawie twojego projektu Next.js z Prisma, oto
implementacja JWT:
1. Najpierw zainstaluj zależności:
npm install jsonwebtoken bcryptjs
2. Stwórz lib/auth.ts:
[pokazuje kod dostosowany do twojego projektu]
3. Dodaj API route w app/api/auth/login/route.ts:
[pokazuje kod używający twojego schematu Prisma]
4. Stwórz middleware w middleware.ts:
[pokazuje kod dopasowany do twojej struktury]Zaawansowane użycie chatu
# Debugging
Ty: Dostaję błąd "Cannot read property 'map' of undefined"
w komponencie UserList.tsx na linii 23
Cursor: [Analizuje plik i znajduje problem]
Widzę, że `users` może być undefined zanim dane się załadują.
Oto poprawka z proper loading state...
# Code review
Ty: Przejrzyj ten PR pod kątem security vulnerabilities
@file src/api/auth.ts
Cursor: [Analizuje kod i wskazuje potencjalne problemy]
Znalazłem kilka potencjalnych problemów:
1. SQL injection w linii 45...
2. Brak rate limiting...
3. Token expiration zbyt długi...
# Architektura
Ty: Jak powinienem zorganizować state management dla tej aplikacji?
@codebase
Cursor: [Analizuje całą aplikację]
Na podstawie struktury twojej aplikacji rekomendowałbym:
1. Zustand dla globalnego stanu UI...
2. React Query dla server state...
3. Context dla auth state...4. Composer - Wieloplikowa edycja (Cmd+I)
To najbardziej zaawansowana funkcja Cursor. Composer może edytować wiele plików jednocześnie:
Ty (Cmd+I): Stwórz system zarządzania użytkownikami z CRUD operations,
walidacją Zod, i obsługą błędów
Composer analizuje projekt i tworzy:
├── app/api/users/route.ts (GET all, POST)
├── app/api/users/[id]/route.ts (GET one, PUT, DELETE)
├── components/UserForm.tsx (Formularz z walidacją)
├── components/UserTable.tsx (Lista z akcjami)
├── components/UserModal.tsx (Modal do edycji)
├── hooks/useUsers.ts (React Query hooks)
├── types/user.ts (TypeScript types)
├── lib/validations/user.ts (Zod schemas)
└── prisma/schema.prisma (Aktualizacja schematu)Workflow z Composer
- Otwarcie -
Cmd+Ilub kliknij ikonę Composer - Opisanie zadania - Szczegółowy opis tego, co chcesz osiągnąć
- Przegląd zmian - Composer pokazuje diff dla każdego pliku
- Akceptacja/Odrzucenie - Możesz zaakceptować lub odrzucić zmiany per plik
- Iteracja - Dopytaj o poprawki jeśli potrzeba
Przykłady użycia Composer
# Dodawanie nowej funkcji
"Dodaj dark mode do aplikacji używając next-themes,
z przełącznikiem w navbar i zapisem preferencji w localStorage"
# Refaktoryzacja
"Przenieś logikę autentykacji z app/api/auth do osobnego
modułu w lib/auth z proper error handling i typami"
# Integracja
"Zintegruj Stripe checkout z naszą aplikacją.
Stwórz endpoint do tworzenia sesji, webhook dla zdarzeń,
i komponent przycisku zakupu"
# Testowanie
"Dodaj testy jednostkowe w Jest dla wszystkich funkcji
w lib/utils z minimum 80% code coverage"5. @ Mentions - Kontekst w czacie
W czacie możesz używać @ do dodawania kontekstu:
| Mention | Opis | Przykład |
|---|---|---|
@file | Pojedynczy plik | @file src/components/Button.tsx |
@folder | Cały folder | @folder src/utils |
@codebase | Cała baza kodu | @codebase |
@docs | Dokumentacja | @docs https://nextjs.org/docs |
@web | Wyszukiwanie | @web react 19 new features |
@git | Historia git | @git diff from last commit |
@symbols | Symbole | @symbols UserService class |
# Przykład złożonego promptu z @ mentions
Ty: @file src/components/Cart.tsx
@file src/hooks/useCart.ts
@docs https://stripe.com/docs/payments/accept-a-payment
Zaimplementuj integrację z Stripe Checkout używając
istniejącej logiki koszykaZaawansowane funkcje
Cursor Rules - Instrukcje dla AI
Stwórz plik .cursorrules w katalogu głównym projektu:
# Project: E-commerce Platform
## Tech Stack
- Next.js 14 App Router
- TypeScript (strict mode)
- Prisma with PostgreSQL
- TailwindCSS
- Shadcn/ui components
- Zustand for state management
- React Query for server state
## Code Style
- Use functional components with hooks
- Prefer server components where possible
- Keep components under 200 lines
- Use named exports, not default exports
- Prefer early returns over nested conditionals
## Naming Conventions
- Components: PascalCase (UserProfile.tsx)
- Hooks: camelCase with 'use' prefix (useUserData.ts)
- Utils: camelCase (formatDate.ts)
- Types: PascalCase with 'I' prefix for interfaces (IUser)
- Constants: UPPER_SNAKE_CASE
## Architecture
- App Router for routing
- API routes in app/api
- Shared components in components/ui
- Feature components in components/features
- Hooks in hooks/
- Types in types/
- Utils in lib/
## Database
- ORM: Prisma
- All queries through repository pattern
- Use transactions for multi-step operations
- Soft delete with deletedAt field
## Testing
- Jest for unit tests
- Playwright for E2E
- Test files co-located with components
- Minimum 80% coverage for utils
## Performance
- Use React.memo for expensive renders
- Implement virtualization for long lists
- Lazy load below-the-fold components
- Optimize images with next/image
## Security
- Validate all inputs with Zod
- Sanitize user-generated content
- Use parameterized queries
- Implement rate limiting on API routesCursor Rules dla różnych typów projektów
Backend (NestJS)
# NestJS Backend Rules
## Architecture
- Follow NestJS module structure
- Use dependency injection
- Implement repository pattern
- DTOs for all inputs/outputs
## API Design
- RESTful endpoints
- Swagger documentation required
- Proper HTTP status codes
- Consistent error responses
## Validation
- Use class-validator decorators
- Transform DTOs with class-transformer
- Validate at controller levelFrontend (React)
# React Frontend Rules
## Component Structure
- Smart components in features/
- Dumb components in ui/
- Hooks for all side effects
- Props interface above component
## State Management
- Local state: useState
- Form state: react-hook-form
- Server state: React Query
- Global state: Zustand
## Styling
- Tailwind CSS only
- No inline styles
- Use cn() for conditional classesCodebase Indexing
Cursor indeksuje cały twój codebase dla lepszego kontekstu. W Settings > Features > Codebase Indexing możesz skonfigurować:
| Opcja | Opis |
|---|---|
| Index on startup | Indeksuj przy uruchomieniu |
| Index frequency | Jak często re-indeksować |
| Max file size | Maksymalny rozmiar pliku do indeksacji |
| Ignore patterns | Pliki do pominięcia |
Dodaj .cursorignore dla plików, które AI powinien ignorować:
# Dependencies
node_modules/
.pnpm-store/
# Build outputs
dist/
build/
.next/
out/
# Generated files
*.min.js
*.min.css
*.lock
*.log
# Large files
*.mp4
*.zip
*.tar.gz
# Sensitive
.env*
*.pem
*.key
# Test coverage
coverage/
.nyc_output/
# IDE
.idea/
.vscode/Privacy Mode
Dla wrażliwych projektów w Settings > Privacy:
| Opcja | Opis |
|---|---|
| Privacy Mode | Kod nie jest wysyłany do trenowania |
| Local Embeddings | Lokalne indeksowanie (bez chmury) |
| Telemetry | Wyłączenie telemetrii |
| Self-hosted | Własne modele (Enterprise) |
Cursor Tab - Zaawansowane autouzupełnianie
Cursor Tab to ulepszona wersja autouzupełniania:
// Cursor Tab przewiduje kontekstowo
interface User {
id: string
email: string
// Tab: name: string
// Tab: createdAt: Date
// Tab: updatedAt: Date
// Tab: role: 'admin' | 'user'
}
// Automatyczne importy
// Zacznij pisać nazwę funkcji, Cursor doda import
// formatDate( <- Tab doda: import { formatDate } from '@/lib/utils'Skróty klawiszowe - Kompletna ściągawka
Podstawowe skróty AI
| Skrót (Mac) | Skrót (Win/Linux) | Funkcja |
|---|---|---|
Tab | Tab | Zaakceptuj autocomplete |
Cmd+K | Ctrl+K | Inline edit |
Cmd+L | Ctrl+L | Otwórz czat |
Cmd+I | Ctrl+I | Composer |
Cmd+Shift+K | Ctrl+Shift+K | Inline edit z instrukcją |
Cmd+Enter | Ctrl+Enter | Wyślij w czacie |
Cmd+N | Ctrl+N | Nowa konwersacja w czacie |
Skróty nawigacji
| Skrót (Mac) | Skrót (Win/Linux) | Funkcja |
|---|---|---|
Cmd+P | Ctrl+P | Quick open |
Cmd+Shift+P | Ctrl+Shift+P | Command palette |
Cmd+B | Ctrl+B | Toggle sidebar |
Cmd+J | Ctrl+J | Toggle terminal |
Cmd+\ | Ctrl+\ | Split editor |
Cmd+W | Ctrl+W | Zamknij tab |
Skróty edycji
| Skrót (Mac) | Skrót (Win/Linux) | Funkcja |
|---|---|---|
Cmd+D | Ctrl+D | Zaznacz następne wystąpienie |
Cmd+Shift+L | Ctrl+Shift+L | Zaznacz wszystkie wystąpienia |
Option+↑/↓ | Alt+↑/↓ | Przenieś linię |
Option+Shift+↑/↓ | Alt+Shift+↑/↓ | Kopiuj linię |
Cmd+/ | Ctrl+/ | Toggle komentarz |
Cmd+Shift+F | Ctrl+Shift+F | Szukaj w projekcie |
Praktyczne scenariusze użycia
Scenariusz 1: Tworzenie nowej funkcji od zera
1. Użyj Cmd+I (Composer)
2. Wpisz szczegółowy prompt:
"Stwórz system komentarzy z:
- Nested replies (max 3 poziomy)
- Reakcje emoji (like, love, laugh, sad, angry)
- Real-time updates przez WebSocket
- Moderacja (soft delete, report)
- Infinite scroll
Stack: Next.js 14, Prisma, Pusher, React Query"
3. Przejrzyj wygenerowane pliki:
- Sprawdź typy i interfejsy
- Zweryfikuj logikę biznesową
- Upewnij się o obsłudze błędów
4. Zaakceptuj lub zmodyfikuj poszczególne zmiany
5. Testuj i iteruj:
"Dodaj jeszcze pagination do listy komentarzy
i cache'owanie z React Query"Scenariusz 2: Refaktoryzacja legacy code
1. Zaznacz kod do refaktoryzacji (Cmd+K)
2. Wpisz konkretne wymagania:
"Zrefaktoruj ten komponent klasowy na funkcyjny z:
- Wszystkie lifecycle methods jako hooks
- TypeScript strict types
- Rozbij na mniejsze komponenty
- Dodaj error boundaries
- Zoptymalizuj rerenders z useMemo/useCallback"
3. Przejrzyj diff:
- Sprawdź czy logika została zachowana
- Zweryfikuj typy
- Upewnij się o poprawności hooks
4. Testuj zrefaktoryzowany kodScenariusz 3: Debugowanie błędu
1. Skopiuj błąd do czatu (Cmd+L)
2. Dodaj kontekst z @:
"@file src/components/Checkout.tsx
@file src/hooks/usePayment.ts
Dostaję ten błąd przy submit formularza:
TypeError: Cannot read property 'price' of undefined
Stack trace:
[wklej stack trace]"
3. Cursor przeanalizuje:
- Znajdzie źródło problemu
- Wyjaśni przyczynę
- Zaproponuje rozwiązanie z kodem
4. Zastosuj poprawkę i zweryfikujScenariusz 4: Code review
1. W czacie (Cmd+L):
"@git diff from main
Przejrzyj te zmiany pod kątem:
- Bezpieczeństwa
- Wydajności
- Best practices
- Potencjalnych bugów
- Czytelności kodu"
2. Cursor zwróci szczegółową analizę z:
- Lista problemów z priorytetami
- Sugestie poprawek z kodem
- Rekomendacje usprawnieńScenariusz 5: Generowanie testów
1. Użyj Composer (Cmd+I):
"@folder src/lib/utils
Wygeneruj testy jednostkowe dla wszystkich funkcji:
- Framework: Jest + Testing Library
- Minimum 90% coverage
- Edge cases
- Error scenarios
- Mocks dla external dependencies"
2. Przejrzyj wygenerowane testy:
- Sprawdź pokrycie przypadków
- Zweryfikuj asercje
- Upewnij się o izolacji testówCursor vs GitHub Copilot - Szczegółowe porównanie
Funkcjonalność
| Funkcja | Cursor | GitHub Copilot |
|---|---|---|
| Autocomplete | Wieloliniowe, kontekstowe | Dobre, głównie pojedyncze linie |
| Chat | Wbudowany z @ mentions | Osobne okno, ograniczony kontekst |
| Wieloplikowa edycja | Composer | Brak |
| Modele AI | GPT-4, Claude, własne | GPT-4 tylko |
| Indeksowanie codebase | Pełne, konfigurowalne | Ograniczone |
| Custom rules | .cursorrules | Brak |
| Dokumentacja online | @docs mention | Brak |
| Git integration | @git mention | Ograniczone |
| Privacy mode | Dostępny | Enterprise only |
Jakość kodu
| Aspekt | Cursor | GitHub Copilot |
|---|---|---|
| TypeScript | Doskonały | Bardzo dobry |
| React/Next.js | Doskonały | Dobry |
| Backend | Bardzo dobry | Dobry |
| Kontekst projektu | Rozumie cały projekt | Lokalne pliki |
| Konsystencja | Wysoka | Średnia |
Cena
| Plan | Cursor | GitHub Copilot |
|---|---|---|
| Free | 2000 completions/mies | Brak |
| Pro | $20/miesiąc | $19/miesiąc |
| Business | $40/user/miesiąc | $39/user/miesiąc |
Cursor vs inne narzędzia AI
Cursor vs Windsurf (Codeium)
| Aspekt | Cursor | Windsurf |
|---|---|---|
| Baza | VS Code fork | VS Code fork |
| AI Models | GPT-4, Claude | Własne + GPT-4 |
| Composer | Tak (zaawansowany) | Cascade (podobny) |
| Cena | $20/miesiąc | $15/miesiąc |
| Indeksowanie | Doskonałe | Dobre |
| Privacy | Privacy Mode | Privacy Mode |
Cursor vs Aider
| Aspekt | Cursor | Aider |
|---|---|---|
| Typ | IDE | CLI tool |
| Interface | GUI | Terminal |
| Wieloplikowa edycja | Composer | Wbudowane |
| Git integration | @ mention | Automatyczne commity |
| Cena | $20/miesiąc | Darmowe (własny API key) |
Cursor vs Claude Code
| Aspekt | Cursor | Claude Code |
|---|---|---|
| Typ | IDE | CLI tool |
| Interface | GUI | Terminal |
| Autonomia | Asystent | Bardziej autonomiczne |
| Modele | Wiele | Tylko Claude |
| Cena | $20/miesiąc | Wliczone w API |
Cennik i plany (2025)
Free (Hobby)
Cena: $0/miesiąc
| Funkcja | Limit |
|---|---|
| Tab completions | 2000/miesiąc |
| Premium requests | 50 slow |
| Modele | GPT-3.5, cursor-small |
| Chat | Podstawowy |
| Composer | 10 użyć/miesiąc |
Pro
Cena: $20/miesiąc (lub $192/rok - $16/miesiąc)
| Funkcja | Limit |
|---|---|
| Tab completions | Unlimited |
| Premium requests | 500 fast |
| Modele | GPT-4, GPT-4o, Claude 3.5 |
| Chat | Pełny z @ mentions |
| Composer | Unlimited |
| Privacy mode | Tak |
| Priority support | Tak |
Business
Cena: $40/użytkownika/miesiąc
| Funkcja | Limit |
|---|---|
| Wszystko z Pro | Tak |
| Centralized billing | Tak |
| Admin dashboard | Tak |
| SSO/SAML | Tak |
| Usage analytics | Tak |
| Priority support | Dedicated |
| Custom models | Na życzenie |
Porównanie planów
| Funkcja | Free | Pro | Business |
|---|---|---|---|
| Tab completions | 2000/mies | ∞ | ∞ |
| Fast requests | 50 | 500 | Custom |
| GPT-4/Claude | ❌ | ✅ | ✅ |
| Composer | 10/mies | ∞ | ∞ |
| Privacy Mode | ❌ | ✅ | ✅ |
| Admin dashboard | ❌ | ❌ | ✅ |
| SSO | ❌ | ❌ | ✅ |
Najlepsze praktyki
1. Używaj precyzyjnych promptów
❌ Zbyt ogólne:
"Napraw ten kod"
✅ Precyzyjne:
"Ten endpoint zwraca 500 przy pustym body.
Dodaj walidację z Zod, zwróć 400 z opisem błędu,
i zaloguj attempt do Sentry"2. Buduj kontekst stopniowo
❌ Zbyt ambitne:
"Stwórz całą aplikację e-commerce"
✅ Iteracyjne:
1. "Stwórz model Product z Prisma"
2. "Dodaj CRUD API dla produktów"
3. "Stwórz komponent ProductCard"
4. "Dodaj koszyk z Zustand"
5. "Zintegruj Stripe checkout"3. Weryfikuj wygenerowany kod
AI może generować:
- Nieaktualne API
- Nieoptymalne rozwiązania
- Brakujące edge cases
- Błędne importy
Zawsze przeglądaj i testuj.
4. Iteruj z feedbackiem
Ty: [generowany kod]
Cursor: [kod]
Ty: "Dobry początek, ale:
1. Brakuje obsługi loading state
2. Dodaj optimistic updates
3. Użyj React.memo dla listy"
Cursor: [poprawiony kod]5. Używaj .cursorrules
Zdefiniuj styl i konwencje raz, a Cursor będzie je przestrzegał w całym projekcie.
6. Korzystaj z @ mentions
Zamiast kopiować kod do czatu, użyj:
@filedla pojedynczych plików@folderdla folderów@codebasedla całego projektu@docsdla dokumentacji
Troubleshooting
Problem: Cursor nie widzi moich zmian
Rozwiązanie:
- Sprawdź czy indeksowanie jest włączone
- Re-indeksuj projekt: Cmd+Shift+P > "Cursor: Reindex"
- Sprawdź .cursorignore
Problem: Wolne odpowiedzi
Rozwiązanie:
- Sprawdź limit fast requests
- Użyj cursor-small dla prostych zadań
- Zmniejsz kontekst (mniej @ mentions)
Problem: Kod nie kompiluje się
Rozwiązanie:
- Zawsze testuj wygenerowany kod
- Dodaj do .cursorrules informacje o wersjach
- Użyj @docs dla aktualnej dokumentacji
Problem: AI nie rozumie projektu
Rozwiązanie:
- Stwórz szczegółowy .cursorrules
- Użyj @codebase dla kontekstu
- Opisz architekturę w komentarzach lub README
Integracje
Cursor z różnymi frameworkami
| Framework | Wsparcie | Uwagi |
|---|---|---|
| React | ⭐⭐⭐⭐⭐ | Doskonałe |
| Next.js | ⭐⭐⭐⭐⭐ | Doskonałe |
| Vue | ⭐⭐⭐⭐ | Bardzo dobre |
| Angular | ⭐⭐⭐ | Dobre |
| Svelte | ⭐⭐⭐⭐ | Bardzo dobre |
| Node.js | ⭐⭐⭐⭐⭐ | Doskonałe |
| NestJS | ⭐⭐⭐⭐ | Bardzo dobre |
| Python | ⭐⭐⭐⭐ | Bardzo dobre |
| Go | ⭐⭐⭐ | Dobre |
| Rust | ⭐⭐⭐ | Dobre |
Rozszerzenia zalecane
{
"recommendations": [
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"bradlc.vscode-tailwindcss",
"prisma.prisma",
"ms-vscode.vscode-typescript-next",
"formulahendry.auto-rename-tag",
"christian-kohler.path-intellisense"
]
}Często zadawane pytania (FAQ)
Czy moje dane są bezpieczne?
W Privacy Mode kod nie jest używany do trenowania modeli. Enterprise oferuje dodatkowo self-hosted options i SOC 2 compliance.
Czy mogę używać własnych kluczy API?
Tak, możesz dodać własne klucze OpenAI/Anthropic w Settings > Models > API Keys. Płacisz wtedy bezpośrednio dostawcy.
Czy rozszerzenia VS Code działają?
Tak, Cursor jest w pełni kompatybilny z rozszerzeniami VS Code. Możesz instalować z VS Code Marketplace.
Jak często są aktualizacje?
Cursor jest aktywnie rozwijany - nowe wersje pojawiają się co 1-2 tygodnie z nowymi funkcjami i poprawkami.
Czy Cursor działa offline?
Podstawowa funkcjonalność edytora tak, ale funkcje AI wymagają połączenia z internetem.
Jak Cursor wypada w porównaniu do Copilot?
Cursor oferuje głębszą integrację z projektem (Composer, @ mentions, .cursorrules) i wybór modeli AI. Copilot jest prostszy i lepiej integruje się z ekosystemem GitHub.
Czy mogę używać Cursor do pracy komercyjnej?
Tak, wszystkie plany (w tym Free) pozwalają na użycie komercyjne.
Jak zrezygnować z subskrypcji?
W Settings > Subscription > Cancel Subscription. Możesz kontynuować korzystanie do końca opłaconego okresu.
Podsumowanie
Cursor to prawdopodobnie najbardziej zaawansowane narzędzie do programowania wspomaganego AI dostępne na rynku w 2025 roku. Głęboka integracja z edytorem, wieloplikowa edycja przez Composer i inteligentne indeksowanie codebase sprawiają, że praca z kodem staje się znacznie szybsza i przyjemniejsza.
Kluczowe zalety
- Composer do wieloplikowych zmian
- Chat z pełnym kontekstem projektu
- Wybór modeli AI (GPT-4, Claude)
- Pełna kompatybilność z VS Code
- Privacy Mode dla wrażliwych projektów
- Aktywny rozwój i społeczność
Dla kogo jest Cursor?
| Profil | Rekomendacja |
|---|---|
| Początkujący programista | ✅ Plan Free na start |
| Frontend developer | ✅✅ Plan Pro |
| Fullstack developer | ✅✅✅ Plan Pro |
| Tech lead/Architekt | ✅✅✅ Plan Pro/Business |
| Enterprise team | ✅✅✅ Plan Business |
Jeśli jeszcze nie wypróbowałeś Cursor, darmowy plan pozwala przekonać się o jego możliwościach. Dla profesjonalnych programistów plan Pro to inwestycja, która szybko się zwraca w zaoszczędzonym czasie.