# Rozwiązywanie problemów z Claude Code, Codex i Cursorem

URL: https://developertoolkit.ai/pl/resources/troubleshooting/
Description: Ustal, która warstwa zawiodła w Claude Code, Codex lub Cursorze: instalacja, logowanie, limity, reguły, kontekst, MCP, utracona praca. Potem udowodnij poprawkę.

Rozwiązywanie problemów z Claude Code, Codex i Cursorem zaczyna się od ustalenia, która warstwa zawiodła, zanim ponowisz próbę: instalacja, logowanie i rozliczenia, limity użycia, konfiguracja (instrukcje, uprawnienia, serwery MCP), kontekst rozmowy albo sam wynik. Każde narzędzie ma test kondycji dla pierwszych warstw, a poprawka liczy się dopiero wtedy, gdy własne testy repozytorium znów przechodzą.

Ta strona jest dla programistów, którzy codziennie pracują z jednym lub kilkoma z tych agentów, i dla tech leada, do którego trafiają zgłoszenia „przestało działać”. Agent zatrzymał się w połowie refaktoryzacji z błędem, którego nigdy nie widziałeś. Albo uparcie ignoruje regułę, która czarno na białym stoi w `AGENTS.md`, albo sesja kolegi z zespołu rozlicza stary klucz API zamiast planu zespołowego. Ponawianie tego samego promptu z większym naciskiem nie naprawi żadnej z tych rzeczy, za to zużyje twój limit.

Szczegóły dla poszczególnych narzędzi są gdzie indziej: [rozwiązywanie problemów z sesją Claude Code](/pl/claude-code/operate/troubleshooting/), [odzyskiwanie po błędach w Codex](/pl/codex/quick-start/error-recovery/), [obsługa błędów w Cursorze](/pl/cursor-ide/quick-start/error-handling/) oraz [problemy z połączeniem MCP](/pl/ecosystem/mcp/mcp-connection-issues/). Ta strona to wspólna dla wszystkich narzędzi diagnoza, która wskaże, której z nich potrzebujesz.

## Co daje ci ten przewodnik po rozwiązywaniu problemów

- Tabelę diagnozy z sześcioma warstwami, która w niecałe dwie minuty wskazuje, gdzie leży usterka
- Polecenia testów kondycji dla każdego narzędzia, sprawdzone na Claude Code 2.1.283 (kanał `latest`) i codex-cli 0.157.1 26 września 2026
- Poprawki dla usterek, które generują najwięcej pytań: `command not found`, niewłaściwe poświadczenia, limity użycia, ignorowane instrukcje, dryf kontekstu i utracona praca
- Trzy prompty do skopiowania: diagnoza przed ponowieniem, czyste przekazanie pracy do nowej sesji i dowód, że odzyskany stan jest poprawny
- Listę kontrolną zgłoszenia błędu, z którym opiekunowie narzędzia mogą coś zrobić

## Która warstwa zawiodła? Diagnoza przed ponowieniem

Dopasuj objaw do warstwy, uruchom pierwsze sprawdzenie i zatrzymaj się na pierwszym, które wypadnie źle. Najwięcej godzin marnuje się na poprawianie promptu, gdy problemem były poświadczenia, albo na reinstalację, gdy problemem był kontekst.

| Warstwa | Typowy objaw | Pierwsze sprawdzenie |
| --- | --- | --- |
| Instalacja | `command not found`, stara wersja, brak funkcji z changelogu | `claude --version` / `codex --version`, potem test kondycji poniżej |
| Logowanie i rozliczenia | Pętla logowania, 401, użycie rozliczane na złe konto | `/status` lub `claude auth status`; `codex login status` |
| Limity i przepustowość | „usage limit reached”, 429, „overloaded” | `/usage` w Claude Code lub Codex |
| Konfiguracja | Reguły z `CLAUDE.md` lub `AGENTS.md` ignorowane, reguła uprawnień, która „nie działa”, brak narzędzi MCP | `/memory` i `/permissions` (Claude Code); `/debug-config` (Codex); ustawienia Rules i MCP (Cursor) |
| Kontekst | Powtarza pracę, wraca do podjętych decyzji, zapomina ograniczenie sprzed godziny | `/context` (Claude Code); `/status` (Codex) |
| Wynik | Diff za duży, nie na temat albo psujący build | `git diff --stat`, potem polecenia testów i sprawdzania typów |

**Prompt do skopiowania: diagnoza przed ponowieniem**

```text
Stop. Do not edit any file in this turn. Help me find which layer is failing.
1. Configuration: list the instruction files (CLAUDE.md, AGENTS.md, rules) you
   loaded for this repository and any permission rule, hook or MCP server that
   affected your last action.
2. Context: state in three sentences what you believe the task is, which files
   matter, and which earlier decision from this conversation you are relying on.
3. Output: run `git diff --stat` and name the one change you are least sure of.
End with the single command I should run to confirm which layer it is.
```

## Uruchom wbudowane testy kondycji

Każde CLI ma test kondycji, który niczego nie zmienia. Uruchom go, zanim ruszysz jakiekolwiek ustawienie, i ponownie po poprawce.

**Claude Code**

```bash
# Terminal
claude --version       # latest and stable channels differ by about a week
claude doctor          # installation health and problems in the settings files
claude auth status     # which account and method are active
```

W sesji `/doctor` wykonuje pełniejszy przegląd, który potrafi też naprawić to, co znajdzie, a `/status` pokazuje wersję, model, konto, łączność z API i stan narzędzi. Żeby sprawdzić, czy problem powodują twoje własne dostosowania, uruchom raz `claude --safe-mode`, który na tę sesję wyłącza `CLAUDE.md`, skille, pluginy, hooki i serwery MCP.

**Codex**

```bash
# Terminal
codex --version
codex doctor           # installation, config, auth and runtime health
codex doctor --json    # redacted machine-readable report for a bug report
codex login status
```

W TUI `/status` pokazuje konfigurację sesji i zużycie tokenów, a `/debug-config` pokazuje warstwy konfiguracji i źródła wymagań — tak znajdziesz plik, który nadpisuje twój. `codex --strict-config` sprawia, że Codex kończy działanie na kluczach w `config.toml`, których ta wersja nie rozpoznaje, zamiast po cichu je ignorować.

**Cursor**

Cursor to edytor desktopowy, więc jego diagnostyka jest w interfejsie, a nie w poleceniu typu doctor. Otwórz ustawienia MCP, żeby zobaczyć stan każdego serwera, ustawienia Rules, żeby sprawdzić, które reguły obowiązują, oraz **Help > Toggle Developer Tools**, żeby zobaczyć błędy w konsoli stojące za nieudanym żądaniem.

26 września 2026 cursor.com był nieosiągalny podczas sprawdzania tej strony, więc aktualne nazwy menu potwierdź w [dokumentacji Cursora](https://cursor.com/docs). Każdy krok odzyskiwania z tej strony działa też z samym gitem.

## Napraw „command not found” po instalacji

Świeża instalacja, której powłoka nie widzi, to prawie zawsze problem z `PATH` albo dwie konkurujące binarki.

**Claude Code**

1. Otwórz **nowy** terminal. Ten, z którego instalowałeś, wciąż ma stary `PATH`.
2. Sprawdź duplikaty: `which -a claude` musi wypisać dokładnie jedną ścieżkę. Dwie ścieżki zwykle oznaczają starą instalację z npm obok natywnej.
3. Jeśli `~/.local/bin/claude` istnieje, ale nie jest znajdowany, dodaj katalog do `PATH` w profilu powłoki:
   ```bash
   echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
   ```
4. Zainstaluj ponownie natywnym instalatorem, `curl -fsSL https://claude.ai/install.sh | bash`, i potwierdź wynik poleceniem `claude doctor`.

Nigdy nie używaj `sudo npm install -g`. Na natywnym Windowsie Claude Code korzysta z Git Bash, gdy zainstalowany jest Git for Windows, a w przeciwnym razie z narzędzia PowerShell, więc brak Gita nie blokuje już instalacji. [Przewodnik instalacji Claude Code](/pl/claude-code/quick-start/installation/) omawia wszystkie metody instalacji i kanały wydań.

**Codex**

1. Otwórz nowy terminal i uruchom `which -a codex`. Powinna pojawić się jedna ścieżka.
2. Jeśli instalowałeś przez npm i dostajesz `EACCES`, popraw prefiks npm albo użyj menedżera wersji Node zamiast `sudo`.
3. Zainstaluj ponownie tylko jedną metodą: `npm install -g @openai/codex` albo `brew install --cask codex` na macOS.
4. Potwierdź wynik poleceniami `codex --version` i `codex doctor`.

[Przewodnik instalacji Codex](/pl/codex/quick-start/installation/) omawia skrypt instalacyjny i Windowsa.

**Cursor**

Cursor instaluje się jako aplikacja desktopowa. Jeśli po aktualizacji nie chce wystartować, zamknij go całkowicie i uruchom z wyłączonymi rozszerzeniami, a potem włączaj je po jednym, żeby znaleźć to, które psuje start. Zobacz [instalację i konfigurację Cursora](/pl/cursor-ide/quick-start/installation-setup/).

## Napraw pętle logowania i użycie rozliczane na złym koncie

Większość problemów z logowaniem to dwa konkurujące poświadczenia, a nie zepsute logowanie.

- **Claude Code rozlicza klucz API zamiast planu.** Wyeksportowany `ANTHROPIC_API_KEY` może wygrać z logowaniem subskrypcyjnym. Uruchom `/status` albo `claude auth status --text`, żeby zobaczyć aktywną metodę, usuń zmienną z profilu powłoki i uruchom `claude auth login`. [Przewodnik uwierzytelniania Claude Code](/pl/claude-code/quick-start/authentication/) podaje pełną kolejność pierwszeństwa.
- **Codex używa klucza, którego się nie spodziewasz.** `codex login status` czyta zapisane logowanie w `~/.codex/auth.json`; wiersz `auth` w `codex doctor` wskazuje także klucze pochodzące ze środowiska. Usuń nieaktualne wartości `OPENAI_API_KEY` lub `CODEX_API_KEY`, zanim zalogujesz się ponownie.
- **Maszyna bez przeglądarki (SSH, kontener).** W Codex użyj `codex login --device-auth`. Dla Claude Code zajrzyj do sekcji o SSH i CI w jego przewodniku uwierzytelniania.
- **Zadanie CI zatrzymuje się na monicie logowania.** CI nigdy nie korzysta z sesji konkretnej osoby. Daj zadaniu klucz API z magazynu sekretów CI, tak jak pokazuje [przewodnik uwierzytelniania Codex](/pl/codex/quick-start/authentication/) dla `codex exec`.

Nigdy nie wklejaj klucza do wiersza poleceń ani do promptu; czytaj go ze zmiennej środowiskowej albo z menedżera sekretów.

## Dlaczego trafiłem na limit użycia albo błąd „overloaded”?

Komunikaty o „limicie” mają trzy różne źródła i każde wymaga innej poprawki.

| Komunikat | Co oznacza | Co zrobić |
| --- | --- | --- |
| Osiągnięto limit użycia planu | Subskrypcje Claude Code i Codex liczą użycie w kroczących oknach pięciogodzinnych i tygodniowych | Uruchom `/usage` w dowolnym z narzędzi: Claude Code pokazuje, co składa się na zużycie limitu, Codex pokazuje użycie konta i dostępny reset limitu, który możesz wykorzystać |
| 429 lub rate limit na kluczu API | Własny limit zapytań konta API, niezależny od okien subskrypcji | Spowolnij równoległe zadania albo podnieś tier w konsoli dostawcy |
| „Overloaded” lub 529 | Dostawca nie nadąża z obciążeniem; z twoją konfiguracją wszystko w porządku | Odczekaj i ponów raz. W Claude Code `--fallback-model` wskazuje model zapasowy na wypadek, gdy domyślny jest przeciążony |

Najwięcej limitu marnujesz sam, wpadając w pętlę ponowień: każde ponowienie wysyła całą rozmowę od nowa. Zanim ponowisz długą sesję, uruchom `/compact` albo zacznij od zera z promptem przekazania pracy poniżej. Wybór modelu i poziomu effort omawia [hub modeli](/pl/ecosystem/models/), a kontrolę wydatków [kontrola kosztów Claude Code](/pl/claude-code/operate/cost-control/) i [zarządzanie kosztami Codex](/pl/codex/operate/cost-management/).

## Dlaczego agent ignoruje moje instrukcje lub uprawnienia?

Gdy agent ignoruje regułę, najpierw udowodnij, że reguła się załadowała, a potem, że dotyczy tej akcji.

**Claude Code**

- `/memory` pokazuje używane pliki `CLAUDE.md`. Claude Code czyta `AGENTS.md` tylko wtedy, gdy projekt nie ma `CLAUDE.md` (od v2.1.277, oba kanały wydań, stan na 2026-10-12).
- `/permissions` pokazuje każdą regułę i plik ustawień, z którego pochodzi. Reguła deny w pliku, który się nie ładuje, nic nie robi.
- Jeśli `claude --safe-mode` usuwa problem, przyczyną jest któreś z twoich dostosowań; zawężaj je po kolei. [Strona o rozwiązywaniu problemów z Claude Code](/pl/claude-code/operate/troubleshooting/) omawia pułapki reguł uprawnień.

**Codex**

- Od wersji 0.150.0 niezaufany projekt nie dostarcza projektowego `AGENTS.md`. Jeśli Codex ignoruje plik z repozytorium, sprawdź, czy oznaczyłeś projekt jako zaufany.
- `/debug-config` pokazuje, która warstwa konfiguracji ustawiła każdą wartość, łącznie z ograniczeniami administratora z `requirements.toml`.
- `/permissions` pokazuje, co Codex może robić. [Przewodnik po AGENTS.md w Codex](/pl/codex/quick-start/agents-md/) omawia wykrywanie plików i ich długość.

**Cursor**

- Otwórz ustawienia Rules i potwierdź, że reguła jest na liście i obejmuje pliki, o które chodzi.
- Pisz reguły krótkie i konkretne. Reguła, której agent nie może sprawdzić („pisz czysty kod”), nie jest regułą.
- [Przewodnik po regułach projektu w Cursorze](/pl/cursor-ide/quick-start/project-rules/) omawia zakres reguł.

Reguła, której nigdy nie wolno złamać, należy do hooka, reguły uprawnień albo bramki CI, a nie tylko do prozy. [Uprawnienia i sandboxing](/pl/workflows/harness/permissions-and-sandboxing/) pokazują, jak przenieść regułę z „proszę” do „nie da się”.

## Dlaczego agent zapomina wcześniejsze decyzje?

Długie sesje psują się po cichu. Gdy kontekst się zapełnia, narzędzie kompaktuje starsze tury do podsumowania, a decyzja sprzed godziny może z niego wypaść. Objawy to powtarzana praca, powrót do zamkniętych decyzji i ignorowane ograniczenia.

| Narzędzie | Podgląd zużycia | Podsumowanie | Czysty start |
| --- | --- | --- | --- |
| Claude Code | `/context` | `/compact` | `/clear` |
| Codex | `/status` | `/compact` | `/new` |

W Cursorze zacznij nowy czat. W każdym narzędziu czysty start sprawdza się lepiej niż kompaktowanie, gdy zmieniło się zadanie, pod warunkiem że przeniesiesz decyzje notatką przekazania z promptu poniżej. O tym, jak od początku utrzymywać małe sesje, przeczytasz w [oknach kontekstu](/pl/workflows/context/context-windows/).

**Prompt do skopiowania: przekazanie pracy do nowej sesji**

```text
We are about to start a fresh session. Write a hand-off note to HANDOFF.md with:
1. The goal in one sentence and the acceptance check that proves it is done.
2. Every decision we made, each with its reason, including approaches we rejected.
3. Files changed so far (from `git diff --stat`) and the state of the tests.
4. The exact next step.
Do not include anything you are unsure about; mark open questions as OPEN.
```

Nową sesję zacznij od polecenia „Read `HANDOFF.md` and continue from the next step.”

## Napraw serwer MCP, który nie chce się połączyć

Trzy sprawdzenia poniżej znajdują większość przyczyn. Wykonaj je po kolei.

1. Wypisz wpis, którego klient faktycznie używa: `claude mcp get <name>`, `codex mcp get <name> --json` albo blok w `.cursor/mcp.json`.
2. Uruchom `command` i `args` z tego wpisu w terminalu. Jeśli proces kończy się błędem, klient zawiedzie tak samo.
3. Sprawdź, czy każda zmienna, której serwer potrzebuje, jest ustawiona w `env` wpisu i czy OAuth dla serwera zdalnego został dokończony (`/mcp` w Claude Code, `codex mcp login <name>` w Codex).

Timeouty, `spawn ENOENT`, błędy 401 na serwerach zdalnych i flagi CLI, które zapisują zepsuty wpis, omawiają [problemy z połączeniem MCP](/pl/ecosystem/mcp/mcp-connection-issues/).

## Odzyskaj pracę nadpisaną przez agenta

Najpierw zatrzymaj agenta, żeby nie „naprawiał” szkód dalej. Potem wybierz najmniejsze cofnięcie, które je obejmuje.

1. Naciśnij Esc, żeby przerwać bieżącą turę, i uruchom `git status` oraz `git diff --stat`, żeby zobaczyć, co się zmieniło.
2. Cofnij zmiany w narzędziu, jeśli szkoda jest świeża:
   - **Claude Code:** `/rewind` albo dwukrotne Esc przywraca kod, rozmowę lub jedno i drugie do wcześniejszego checkpointu.
   - **Cursor:** przywróć checkpoint sprzed odpowiedzi, która wszystko zepsuła. Checkpointy obejmują zmiany plików w jednym czacie (strony Cursora o checkpointach nie dało się ponownie sprawdzić 26 września 2026).
   - **Codex:** wersja 0.157.1 nie ma polecenia cofania, więc cofaniem jest git. `/diff` pokazuje zmiany w drzewie roboczym, łącznie z nieśledzonymi plikami.
3. Cofnij gitem to, czego narzędzie nie cofnie: `git restore <path>` dla jednego pliku, `git stash`, żeby odłożyć wszystko na bok, albo `git reset --hard <commit>`, żeby wrócić do znanego commita.
4. Odzyskaj zgubiony commit poleceniem `git reflog`. Zapisuje ono, gdzie wskazywał `HEAD`, więc ratuje commity, a nie zmiany, których nigdy nie zacommitowałeś.
5. Skutki uboczne cofnij ręcznie. Żaden checkpoint nie obejmuje tego, co agent zrobił przez terminal: zastosowanej migracji, zainstalowanego pakietu, wypchniętej gałęzi.

Zapobieganie kosztuje jedno polecenie. Zrób commit przed każdym większym zadaniem agenta albo uruchom agenta w osobnym worktree (`claude --worktree`, `codex --worktree`), żeby cofnięcie zawsze było `git reset` do tego commita. Strony o odzyskiwaniu dla poszczególnych narzędzi idą dalej: [odzyskiwanie po błędach w Claude Code](/pl/claude-code/quick-start/error-recovery/), [odzyskiwanie po błędach w Codex](/pl/codex/quick-start/error-recovery/) i [obsługa błędów w Cursorze](/pl/cursor-ide/quick-start/error-handling/).

## Jak udowodnić, że poprawka naprawdę działa?

Poprawka jest skończona, gdy mówią tak dowody, a nie agent. Nie musisz czytać każdej zmienionej linii, żeby to wiedzieć.

1. **Uruchom ponownie to, co zawiodło.** To samo polecenie, ten sam test kondycji, to samo wywołanie narzędzia MCP. Zielony wynik zastępuje „teraz powinno działać”.
2. **Przepuść zmiany przez bramki repozytorium.** Testy, sprawdzanie typów i lint, te same, które uruchamia CI. Odzyskanie, które je pomija, tylko przesunęło usterkę.
3. **Sprawdź zakres.** `git diff --stat` względem ostatniego dobrego commita powinien pokazywać tylko pliki, których poprawka potrzebowała. Nieoczekiwane pliki to następny incydent.
4. **Zapisz to.** Jedna linia w pull requeście lub na kanale zespołu: objaw, warstwa, poprawka, dowód. Zatwierdza programista, który wykonał poprawkę; za każdą zmianę we wspólnych plikach ustawień odpowiada tech lead.

**Prompt do skopiowania: dowód, że odzyskany stan jest poprawny**

```text
We just recovered from a broken change. Prove the working tree is sound, without editing files:
1. Run the test suite, the type check and the linter this repository uses
   (read package.json, Makefile or CI config to find them) and report pass or fail for each.
2. Run `git diff --stat` against the last commit on the main branch and list any file
   that the fix did not need to touch.
3. Re-run the command that originally failed and paste its output.
If anything fails, stop and report it. Do not fix it in this turn.
```

Jeśli ta sama usterka wraca, to problem z otoczeniem agenta (harness), a nie gorszy dzień. [Taksonomia awarii](/pl/workflows/operate/failure-taxonomy/) pokazuje, jak ją sklasyfikować i dobrać kontrolę, która złapie ją wcześniej.

## Co idzie źle podczas rozwiązywania problemów z agentami?

Poprawka potrafi narobić więcej szkód niż sama usterka. Te pułapki pojawiają się najczęściej.

| Pułapka | Dlaczego szkodzi | Zrób zamiast tego |
| --- | --- | --- |
| Ponawianie tego samego promptu w pętli | Każde ponowienie wysyła cały kontekst i drenuje okno użycia | Najpierw diagnoza; przed ponowieniem kompaktowanie lub przekazanie pracy |
| Wyciszanie monitów o uprawnienia przez `--dangerously-skip-permissions` lub `--dangerously-bypass-approvals-and-sandbox` | Usuwa jedyną barierę między agentem a twoją maszyną | Dodaj konkretną regułę allow; pełne obejście tylko w jednorazowym sandboxie z ograniczoną siecią |
| Usuwanie `~/.claude`, `~/.codex` lub `.cursor/`, żeby „zresetować” | Tracisz ustawienia, poświadczenia, historię sesji i wpisy MCP (w przypadku `.cursor/`: reguły projektu i konfigurację MCP) | Użyj `claude --safe-mode` lub `codex doctor`, żeby wyizolować przyczynę; zrób kopię, zanim cokolwiek usuniesz |
| Reinstalacja drugą metodą | Zostawia dwie binarki w `PATH`; stara wciąż wygrywa | `which -a`, usuń nadmiarową, zostań przy jednej metodzie instalacji |
| Dołączanie surowych logów debugowania do publicznego zgłoszenia | Logi mogą zawierać ścieżki, prompty i tokeny | Użyj `codex doctor --json` (zredagowany) i przeczytaj każdy log, zanim go udostępnisz |
| Osierocone worktree po przerwanym równoległym przebiegu | Gałęzie zostają zablokowane, a dysk się zapełnia | `git worktree list`, potem `git worktree prune` |

## Jak zgłosić błąd, z którym opiekunowie coś zrobią?

Gdy test kondycji jest zielony, konfiguracja minimalna, a usterka nadal się powtarza, zgłoś ją.

- **Claude Code:** `/feedback` albo `/bug` wysyła zgłoszenie z poziomu sesji; możesz też otworzyć issue w [anthropics/claude-code](https://github.com/anthropics/claude-code/issues).
- **Codex:** `/feedback` wysyła logi do opiekunów; możesz też otworzyć issue w [openai/codex](https://github.com/openai/codex/issues).
- **Cursor:** zgłoś problem z poziomu aplikacji albo na [forum Cursora](https://forum.cursor.com).

Dołącz wersję, system operacyjny, dokładny tekst błędu, minimalne kroki reprodukcji (najlepiej z `claude --safe-mode` albo gołym `config.toml`) i to, co już wykluczyłeś za pomocą tabeli diagnozy.

## Dokąd dalej po rozwiązaniu problemu

- [Rozwiązywanie problemów z sesją Claude Code](/pl/claude-code/operate/troubleshooting/): reguły uprawnień, `CLAUDE.md`, przerośnięte diffy
- [Odzyskiwanie po błędach w Codex](/pl/codex/quick-start/error-recovery/) i [obsługa błędów w Cursorze](/pl/cursor-ide/quick-start/error-handling/): decyzje o cofaniu i restarcie w każdym narzędziu
- [Problemy z połączeniem MCP](/pl/ecosystem/mcp/mcp-connection-issues/): każda usterka MCP w szczegółach
- [Uprawnienia i sandboxing](/pl/workflows/harness/permissions-and-sandboxing/): zamiana powtarzającego się „proszę, nie rób” w egzekwowane reguły
- [Najczęściej zadawane pytania](/pl/resources/faq/): krótkie odpowiedzi o planach, modelach i konfiguracji
