summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/pl
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-02-09 11:34:35 -0600
committerGitHub <[email protected]>2026-02-09 11:34:35 -0600
commitdc53086c1e73d43d3a28fc4cdf161e83d09b1877 (patch)
tree45a1d0e38de958d0886a5120b2806b21db74145b /packages/web/src/content/docs/pl
parentf74c0339cc6315f7e7743e26b7eab47ce026c239 (diff)
downloadopencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.tar.gz
opencode-dc53086c1e73d43d3a28fc4cdf161e83d09b1877.zip
wip(docs): i18n (#12681)
Diffstat (limited to 'packages/web/src/content/docs/pl')
-rw-r--r--packages/web/src/content/docs/pl/1-0.mdx67
-rw-r--r--packages/web/src/content/docs/pl/acp.mdx156
-rw-r--r--packages/web/src/content/docs/pl/agents.mdx747
-rw-r--r--packages/web/src/content/docs/pl/cli.mdx601
-rw-r--r--packages/web/src/content/docs/pl/commands.mdx323
-rw-r--r--packages/web/src/content/docs/pl/config.mdx685
-rw-r--r--packages/web/src/content/docs/pl/custom-tools.mdx170
-rw-r--r--packages/web/src/content/docs/pl/ecosystem.mdx76
-rw-r--r--packages/web/src/content/docs/pl/enterprise.mdx170
-rw-r--r--packages/web/src/content/docs/pl/formatters.mdx130
-rw-r--r--packages/web/src/content/docs/pl/github.mdx321
-rw-r--r--packages/web/src/content/docs/pl/gitlab.mdx195
-rw-r--r--packages/web/src/content/docs/pl/ide.mdx48
-rw-r--r--packages/web/src/content/docs/pl/index.mdx359
-rw-r--r--packages/web/src/content/docs/pl/keybinds.mdx192
-rw-r--r--packages/web/src/content/docs/pl/lsp.mdx188
-rw-r--r--packages/web/src/content/docs/pl/mcp-servers.mdx511
-rw-r--r--packages/web/src/content/docs/pl/models.mdx223
-rw-r--r--packages/web/src/content/docs/pl/modes.mdx331
-rw-r--r--packages/web/src/content/docs/pl/network.mdx57
-rw-r--r--packages/web/src/content/docs/pl/permissions.mdx237
-rw-r--r--packages/web/src/content/docs/pl/plugins.mdx385
-rw-r--r--packages/web/src/content/docs/pl/providers.mdx1888
-rw-r--r--packages/web/src/content/docs/pl/rules.mdx180
-rw-r--r--packages/web/src/content/docs/pl/sdk.mdx391
-rw-r--r--packages/web/src/content/docs/pl/server.mdx287
-rw-r--r--packages/web/src/content/docs/pl/share.mdx128
-rw-r--r--packages/web/src/content/docs/pl/skills.mdx222
-rw-r--r--packages/web/src/content/docs/pl/themes.mdx369
-rw-r--r--packages/web/src/content/docs/pl/tools.mdx379
-rw-r--r--packages/web/src/content/docs/pl/troubleshooting.mdx300
-rw-r--r--packages/web/src/content/docs/pl/tui.mdx390
-rw-r--r--packages/web/src/content/docs/pl/web.mdx142
-rw-r--r--packages/web/src/content/docs/pl/windows-wsl.mdx113
-rw-r--r--packages/web/src/content/docs/pl/zen.mdx254
35 files changed, 11215 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/pl/1-0.mdx b/packages/web/src/content/docs/pl/1-0.mdx
new file mode 100644
index 000000000..e441525ae
--- /dev/null
+++ b/packages/web/src/content/docs/pl/1-0.mdx
@@ -0,0 +1,67 @@
+---
+title: Migracja do wersji 1.0
+description: Co nowego w OpenCode 1.0.
+---
+
+OpenCode 1.0 do całkowitej przeróbki TUI.
+
+Przeszliśmy z TUI na go+bubbletea, który miał problemy z wydajnością i możliwościami, do wewnętrznego frameworka (OpenTUI) obciążającego w zig+solidjs.
+
+Nowy TUI działa jak stary, łączy się z tym samym serwerem opencode.
+
+---
+
+## Aktualizacja
+
+Nie automatyczna aktualizacja do wersji 1.0, która jest dostępna w wersji 1.0
+wersja. Starsze wersje OpenCode zawsze pobierają najnowszą wersję.
+
+Aby móc, móc
+
+```bash
+$ opencode upgrade 1.0.0
+```
+
+Aby uruchomić wersję 0.x, uruchom
+
+```bash
+$ opencode upgrade 0.15.31
+```
+
+---
+
+## Zmiany UX
+
+Historia sesji jest bardziej skompresowana i znaleziono pełne szczegóły narzędzia do edycji w bash.
+
+Dodaliśmy pasek kontrolny, przez który przepływa prawie wszystko. działanie nie ctrl+p, aby przejść do zdarzenia, które zawiera wszystko, co można regenerować.
+
+Dodano pasek boczny sesji (możliwość przejścia do urządzenia) z odłączonym dostępem.
+
+Usunęliśmy pewne funkcje, z których nie ma pewności, czy ktoś faktycznie korzystał. Jeśli brakuje czegoś ważnego, otwórz problem, a my szybko dodamy.
+
+---
+
+## Przełomowe zmiany
+
+### Zmieniono skrótów klawiszowych
+
+- wiadomości_przywróć -> wiadomości_cofnij
+- uruchomienie_agent -> cykl_agent
+- switch_agent_reverse -> agent_cycle_reverse
+- tryb_przełączenie -> cykl_agenta
+- switch_mode_reverse -> agent_cycle_reverse
+
+### Usunięto klawisze
+
+- Przegrzewanie_układu_wiadomości
+- wiadomości_następne
+- wiadomości_poprzednie
+- plik_diff_toggle
+- wyszukiwanie_pliku
+- plik_zamknij
+- lista_plików
+- pomoc_aplikacji
+- projekt_init
+- szczegóły_narzędzia
+- myślenie_bloki
diff --git a/packages/web/src/content/docs/pl/acp.mdx b/packages/web/src/content/docs/pl/acp.mdx
new file mode 100644
index 000000000..c5d7bf43a
--- /dev/null
+++ b/packages/web/src/content/docs/pl/acp.mdx
@@ -0,0 +1,156 @@
+---
+title: Wsparcie AKP
+description: przetwarzanie OpenCode w procesorze komunikatu z ACP.
+---
+
+OpenCode obsługi [Protokół klienta agenta](https://agentclientprotocol.com) lub (ACP), dzięki któremu można przejść do oprogramowania bezpośrednio w zainstalowanych edytorach i środowisku IDE.
+
+:::tip
+Lista edytorów i narzędzi obsługujących ACP w [raportu sprzętu ACP](https://zed.dev/blog/acp-progress-report#available-now).
+:::
+
+ACP do otwierania dokumentów, które standaryzują treść między edytorami kodu a agentem kodującym AI.
+
+---
+
+## Skonfiguruj
+
+Aby wybrać OpenCode przez ACP, skonfiguruj edytor tak, aby wybrać opcję `opencode acp`.
+
+Uruchomienie OpenCode jako podproces oprogramowania z ACP, który komunikuje się z edytorem poprzez JSON-RPC poprzez stdio.
+
+Poniżej znajdują się przykłady procesorów obsługujących ACP.
+
+---
+
+### Zeda
+
+Dodaj do konstrukcji [Zed](https://zed.dev) (`~/.config/zed/settings.json`):
+
+```json title="~/.config/zed/settings.json"
+{
+ "agent_servers": {
+ "OpenCode": {
+ "command": "opencode",
+ "args": ["acp"]
+ }
+ }
+}
+```
+
+Aby przejść do akcji, `agent: new thread` w **Palecie redakcji**.
+
+Można także po skrócie skrótowym, edytując `keymap.json`:
+
+```json title="keymap.json"
+[
+ {
+ "bindings": {
+ "cmd-alt-o": [
+ "agent::NewExternalAgentThread",
+ {
+ "agent": {
+ "custom": {
+ "name": "OpenCode",
+ "command": {
+ "command": "opencode",
+ "args": ["acp"]
+ }
+ }
+ }
+ }
+ ]
+ }
+ }
+]
+```
+
+---
+
+### IDE JetBrains
+
+Dodaj do swojego [JetBrains IDE](https://www.jetbrains.com/) acp.json zgodnie z [dokumentacją](https://www.jetbrains.com/help/ai-assistant/acp.html):
+
+```json title="acp.json"
+{
+ "agent_servers": {
+ "OpenCode": {
+ "command": "/absolute/path/bin/opencode",
+ "args": ["acp"]
+ }
+ }
+}
+```
+
+Aby przejść do nowego agenta „OpenCode” w selektorze agenta AI Chat.
+
+---
+
+### Avante.nvim
+
+Dodaj do konstrukcji [Avante.nvim](https://github.com/yetone/avante.nvim):
+
+```lua
+{
+ acp_providers = {
+ ["opencode"] = {
+ command = "opencode",
+ args = { "acp" }
+ }
+ }
+}
+```
+
+Jeśli chcesz zachować bezpieczeństwo:
+
+```lua {6-8}
+{
+ acp_providers = {
+ ["opencode"] = {
+ command = "opencode",
+ args = { "acp" },
+ env = {
+ OPENCODE_API_KEY = os.getenv("OPENCODE_API_KEY")
+ }
+ }
+ }
+}
+```
+
+---
+
+### CodeCompanion.nvim
+
+Aby OpenCode jako agenta ACP w [CodeCompanion.nvim](https://github.com/olimorris/codecompanion.nvim), dodaj dodatkowe elementy, aby otrzymać konstrukcje Neovim:
+
+```lua
+require("codecompanion").setup({
+ interactions = {
+ chat = {
+ adapter = {
+ name = "opencode",
+ model = "claude-sonnet-4",
+ },
+ },
+ },
+})
+```
+
+Ta konfiguracja CodeCompanion wymaga OpenCode jako agenta ACP dla czatu.
+
+Jeśli jesteś zarejestrowany jako `OPENCODE_API_KEY`, zapoznaj się z sekcją [Konfigurowanie adapterów: Zmienne przebieg](https://codecompanion.olimorris.dev/getting-started#setting-an-api-key) w dokumentacji CodeCompanion.nvim, aby uzyskać szczegółowe informacje.
+
+## Wsparcie
+
+OpenCode działa tak samo przez ACP, jak w terminalu. Obsługiwane są wszystkie funkcje:
+
+:::note
+początek źródła ukośnikowego, takie jak `/undo` i `/redo`, nie są aktualne pobierane.
+:::
+
+- Wbudowane narzędzie (operacje na plikach, rozwiązanie terminala itp.)
+- Niestandardowe narzędzie i polecenie ukośnikowe
+- Serwery MCP skonfigurowane w konfiguracji OpenCode
+- Zasady dotyczące projektu od `AGENTS.md`
+- Niestandardowe formatory i lintery
+- Agentów systemowych i uprawnień
diff --git a/packages/web/src/content/docs/pl/agents.mdx b/packages/web/src/content/docs/pl/agents.mdx
new file mode 100644
index 000000000..f78d941d3
--- /dev/null
+++ b/packages/web/src/content/docs/pl/agents.mdx
@@ -0,0 +1,747 @@
+---
+title: Agencja
+description: Konfiguruj i używaj funkcjonalnych agentów.
+---
+
+Agencje do urządzeń asystenci AI, które można podłączyć do gniazd zasilania i przepływów pracy. Umożliwiają tworzenie ukierunkowanych narzędzi z niestandardowymi monitami, modelami i udostępnianiem narzędzi.
+
+:::tip
+Skorzystaj z agenta planu, aby uzyskać dostęp do kodu i przeglądać informacje bez dodatkowych zmian w kodzie.
+:::
+
+Możesz przełączać się między agentami podczas sesji lub wywoływać ich za pomocą wzmianki `@`.
+
+---
+
+## Typowe
+
+W OpenCode zasada dwóch charakterystycznych agentów; Najpierw pierwotni i subagenci.
+
+---
+
+### Agencja Pierwsi
+
+Główne zasady asystenci, z podstawowym kontaktem. Możesz je mieć za pomocą klawisza **Tab** lub podwójnego skrótu klawiszowego `switch_agent`. Ci agenci obsługujący urządzenie główne. Dostęp do narzędzia jest konfigurowany za pomocą uprawnień — na przykład w programie Build wszystkie narzędzia są dostępne, a plan jest ograniczony.
+
+:::tip
+Twój klawisz klawisza **Tab**, aby wyłączyć się między agentami podczas sesji.
+:::
+
+OpenCode zawiera dwa puste agenty główne: **Build** i **Plan**. Dobrze
+spójrz na te poniżej.
+
+---
+
+### Podagencje
+
+Podagenci do pomocniczych asystenci, których można przywoływać agenci główni w celu wykonania podstawowych zadań. Możesz także wytwarzać je, **@ wspominając** o nich w swoich wiadomościach.
+
+OpenCode ma dwóch subagentów: **Ogólne** i **Eksploruj**. Przyjrzymy się temu poniżej.
+
+---
+
+## Wbudowany
+
+OpenCode ma dwa główne agenty i dwa główne agenty podrzędne.
+
+---
+
+### korzystać z pracy
+
+_Tryb_: `primary`
+
+Kompilacja jest **domyślnym** agentem zastosowania z ukrytymi narzędziami. Jest to standardowy agent do prac programistycznych, którego dostęp jest udostępniony do operacji na plikach i podstawowych systemowych.
+
+---
+
+### założenie z planu
+
+_Tryb_: `primary`
+
+Zastrzeżony agent do analizy. Używamy systemu, aby włączyć Ci większe ryzyko i zapobiec niezamierzonym zmianom.
+Domyślnie są wybrane na `ask`:
+
+- `file edits`: Wszystkie zapisy, transkrypcja i edycje
+- `bash`: Wszystkie polecam bash
+
+Ten agent jest podłączony, gdy chcesz, aby LLM był kompatybilny z kodem, który wymaga zastosowania lub wersji plastikowej bez konieczności stosowania innej wersji bazy kodu.
+
+---
+
+### miejsce
+
+_Tryb_: `subagent`
+
+Rozwiązanie rozwiązania złożone z zadań wieloetapowych. Pełny dostęp do narzędzia (z funkcjonalnymi funkcjami do wykonania), dzięki czemu może w razie potrzeby zostać dostarczone w plikach. Przewoźnik dziesięć, aby określić wiele jednostek roboczych.
+
+---
+
+### eksploracji
+
+_Tryb_: `subagent`
+
+Szybki agent tylko do odczytu do eksploracji baz kodu. Nie można modyfikować plików. Użycie tej opcji, jeśli chcesz szybko uzyskać dostęp do plików według wzorców, wyszukać w kodzie słowa kluczowe lub rozwiązania dotyczące zapytań dotyczących bazy kodu.
+
+---
+
+### zagęszczanie danych
+
+_Tryb_: `primary`
+
+Ukryty agent systemowy, który jest kontekstem kontekstowym w dużym podsumowaniu. W razie działania nie można przejść do interfejsu użytkownika.
+
+---
+
+### jako tytuł
+
+_Tryb_: `primary`
+
+Ukryty agent systemowy, krótki tytuł sesji. Działa automatycznie i nie można przejść do interfejsu użytkownika.
+
+---
+
+### Podsumowanie podsumowania
+
+_Tryb_: `primary`
+
+Ukryty agent systemowy, który stanowi podsumowanie podsumowania sesji. Działa automatycznie i nie można przejść do interfejsu użytkownika.
+
+---
+
+## Stosowanie
+
+1. W przypadku agentów głównych klawisza **Tab**, aby przełączać się między nimi podczas sesji. Można również podać z skrótu klawiszowego `switch_agent`.
+
+2. Subagent można wytwarzać:
+ - **Automatycznie** przez głównych agentów do specjalistycznych zadań na podstawie ich opisów.
+ - Ręcznie, **@ wspomnienie** o subagencji w Twoich wiadomościach. Na przykład.
+
+ ```txt frame="none"
+ @general help me search for this function
+ ```
+
+3. **Nawigacja pomiędzy sesjami**: Kiedy można mieć własne sesje podrzędne, można nawigować pomiędzy sesjami nadrzędnymi a określonymi podrzędnymi, dostępnymi z:
+ - **\<Lider>+Prawo** (lub skonfigurowane przez Ciebie klawisze `session_child_cycle`), aby przełączać się między jednostkami nadrzędnymi → podrzędnymi 1 → podrzędnymi 2 → ... → nadrzędnymi
+ - **\<Leader>+Left** (lub skrót klawiszowy `session_child_cycle_reverse`), aby przejść dalej między macierzym ← podnośnik1 ← podnośnik2 ← ... ← prowadzącym
+
+ Dostępna możliwość płynnego przełączania pomiędzy rozmową główną a pracą specjalistyczną subagentę.
+
+---
+
+## Skonfiguruj
+
+Możliwość zastosowania agentów lub urządzeń poprzez zastosowanie. Agentów można zidentyfikować na dwóch systemach:
+
+---
+
+### JSON
+
+Skonfiguruj agenta w pliku konfiguracyjnym `opencode.json`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "agent": {
+ "build": {
+ "mode": "primary",
+ "model": "anthropic/claude-sonnet-4-20250514",
+ "prompt": "{file:./prompts/build.txt}",
+ "tools": {
+ "write": true,
+ "edit": true,
+ "bash": true
+ }
+ },
+ "plan": {
+ "mode": "primary",
+ "model": "anthropic/claude-haiku-4-20250514",
+ "tools": {
+ "write": false,
+ "edit": false,
+ "bash": false
+ }
+ },
+ "code-reviewer": {
+ "description": "Reviews code for best practices and potential issues",
+ "mode": "subagent",
+ "model": "anthropic/claude-sonnet-4-20250514",
+ "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
+ "tools": {
+ "write": false,
+ "edit": false
+ }
+ }
+ }
+}
+```
+
+---
+
+### Obniżka cen
+
+Można także definiować agentów za pomocą plików przecen. Trzymaj je w:
+
+- Globalnie: `~/.config/opencode/agents/`
+- Na projekt: `.opencode/agents/`
+
+```markdown title="~/.config/opencode/agents/review.md"
+---
+description: Reviews code for quality and best practices
+mode: subagent
+model: anthropic/claude-sonnet-4-20250514
+temperature: 0.1
+tools:
+ write: false
+ edit: false
+ bash: false
+---
+
+You are in code review mode. Focus on:
+
+- Code quality and best practices
+- Potential bugs and edge cases
+- Performance implications
+- Security considerations
+
+Provide constructive feedback without making direct changes.
+```
+
+Nazwa pliku przecen staje się nazwą agenta. Na przykład `review.md` tworzy agenta `review`.
+
+---
+
+## Opcje
+
+Przyjrzyjmy się szczegółowo tym opcjom konfiguracji.
+
+---
+
+### Opis
+
+miejsce `description`, aby krótko tego, co robi agent i kiedy go stosować.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "review": {
+ "description": "Reviews code for best practices and potential issues"
+ }
+ }
+}
+```
+
+Jest to **wymagana** opcja konfiguracji.
+
+---
+
+### Temperatura
+
+Kontroluj losowość i kreatywność odpowiedzi LLM za pomocą konfiguracji `temperature`.
+
+Niższe wartości, że odpowiedzi są bardziej skupione i deterministyczne, gdy wartość jest innowacyjna i złożona.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "plan": {
+ "temperature": 0.1
+ },
+ "creative": {
+ "temperature": 0.8
+ }
+ }
+}
+```
+
+Wartość temperatury zwykle waha się od 0,0 do 1,0:
+
+- **0,0-0,2**: Bardzo skoncentrowane i deterministyczne odpowiedzi, idealne do analizy i kodu źródłowego
+- **0,3-0,5**: Zrównoważona odpowiedź z chwilą powstania, dobre do ogólnych zadań rozwojowych
+- **0,6–1,0**: Bardziej kreatywne i odpowiedzi, rozstrzygnięte podczas burzy mózgów i eksploracji
+
+```json title="opencode.json"
+{
+ "agent": {
+ "analyze": {
+ "temperature": 0.1,
+ "prompt": "{file:./prompts/analysis.txt}"
+ },
+ "build": {
+ "temperature": 0.3
+ },
+ "brainstorm": {
+ "temperature": 0.7,
+ "prompt": "{file:./prompts/creative.txt}"
+ }
+ }
+}
+```
+
+Jeśli nie ma wpływu na kontrolę, OpenCode używa narzędzia do analizy danych dla modelu; 0 dla określonych modeli, 0,55 dla modeli Qwen.
+
+---
+
+### Maksymalna liczba kroków
+
+Kontroluj funkcjonowanie iteracji agenta, jaki agent może być, zanim będzie dostępny wyłącznie z tekstem. Dzięki temu użytkownicy kontrolujący koszty mogą mieć wpływ na działanie agentów.
+
+Jeśli ta opcja nie zostanie skonfigurowana, agent będzie obowiązywał iterację, jeśli model nie zostanie wydany lub użytkownik nie będzie regularnie używany.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "quick-thinker": {
+ "description": "Fast reasoning with limited iterations",
+ "prompt": "You are a quick thinker. Solve problems with minimal steps.",
+ "steps": 5
+ }
+ }
+}
+```
+
+Po tym, jak agent limitu otrzymuje specjalny monit systemowy nakazujący podsumowanie swojej pracy i rekomendowanych do wykonywania zadań.
+
+:::caution
+Starsze pole `maxSteps` jest przestarzałe. Zamiast tego nadzoru `steps`.
+:::
+
+---
+
+### Wymienne
+
+Ustaw na `true`, aby wyłączyć agenta.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "review": {
+ "disable": true
+ }
+ }
+}
+```
+
+---
+
+### Podpowiedź
+
+niestandardowy plik podpowiedzi systemowych dla tego agenta z konfiguracją `prompt`. Plik informacyjny powinien zawierać dla celu agenta.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "review": {
+ "prompt": "{file:./prompts/code-review.txt}"
+ }
+ }
+}
+```
+
+Ścieżka ta zależy od miejsca, w którym znajduje się plik konfiguracyjny. Działa również w przypadku globalnej konstrukcji OpenCode, jak i funkcjonalnej dla projektu.
+
+---
+
+### Model
+
+konstrukcja nośna `model`, aby mieć model dla tego agenta. Przydatne przy różnych modelach konfiguracji w różnych zadaniach. Na przykład zastosowania modelu, skuteczne wykonanie modelu.
+
+:::tip
+Jeśli nie ma wpływu na model, główne są [modelu skonfigurowanego globalnie](/docs/config#models), agenci podrzędni podmiotem modelu agenta, który wywołał subagentę.
+:::
+
+```json title="opencode.json"
+{
+ "agent": {
+ "plan": {
+ "model": "anthropic/claude-haiku-4-20250514"
+ }
+ }
+}
+```
+
+Identyfikator modelu w konfiguracji OpenCode w `provider/model-id`. Na koniec, [OpenCode Zen](/docs/zen), przestrzeganie `opencode/gpt-5.1-codex` dla kodeksu GPT 5.1.
+
+---
+
+### Narzędzia
+
+Kontroluj, które narzędzia są dostępne w tej agencji, za pomocą konfiguracji `tools`. Można włączyć lub dostępne narzędzie, ustawiając je na `true` lub `false`.
+
+```json title="opencode.json" {3-6,9-12}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "tools": {
+ "write": true,
+ "bash": true
+ },
+ "agent": {
+ "plan": {
+ "tools": {
+ "write": false,
+ "bash": false
+ }
+ }
+ }
+}
+```
+
+:::note
+Konfiguracja specjalna dla agenta globalnego.
+:::
+
+Można także zastosować symboli wieloznacznych do kontrolowanych wielu narzędzi jednocześnie. Na przykład, aby wyłączyć wszystkie narzędzia z serwera MCP:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "agent": {
+ "readonly": {
+ "tools": {
+ "mymcp_*": false,
+ "write": false,
+ "edit": false
+ }
+ }
+ }
+}
+```
+
+[Dowiedz się więcej o narzędziach](/docs/tools).
+
+---
+
+### Uprawnienia
+
+Może wystąpić możliwość działania, które może pozostać ostateczne przez agenta. Obecnie proste dla narzędzia `edit`, `bash` i `webfetch` można znaleźć w drodze:
+
+- `"ask"` — Monituj o zatwierdzenie przed użyciem narzędzia
+- `"allow"` — Zezwalaj na wszystkie operacje bez zatwierdzenia
+- `"deny"` — Wyłączenie narzędzia
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "deny"
+ }
+}
+```
+
+Można mieć odpowiedni dla każdego agenta.
+
+```json title="opencode.json" {3-5,8-10}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "deny"
+ },
+ "agent": {
+ "build": {
+ "permission": {
+ "edit": "ask"
+ }
+ }
+ }
+}
+```
+
+Można także istnieć w agentach Markdown.
+
+```markdown title="~/.config/opencode/agents/review.md"
+---
+description: Code review without edits
+mode: subagent
+permission:
+ edit: deny
+ bash:
+ "*": ask
+ "git diff": allow
+ "git log*": allow
+ "grep *": allow
+ webfetch: deny
+---
+
+Only analyze code and suggest changes.
+```
+
+Można podłączyć do gniazda bash.
+
+```json title="opencode.json" {7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "agent": {
+ "build": {
+ "permission": {
+ "bash": {
+ "git push": "ask",
+ "grep *": "allow"
+ }
+ }
+ }
+ }
+}
+```
+
+Może być przestrzegany globalnym.
+
+```json title="opencode.json" {7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "agent": {
+ "build": {
+ "permission": {
+ "bash": {
+ "git *": "ask"
+ }
+ }
+ }
+ }
+}
+```
+
+Możesz także uzyskać symbolu wieloznacznego `*` do zarządzania uprawnieniami dla wszystkich użytkowników.
+Ostatnie dostępne źródło pierwszeństwo, symbol wieloznaczny `*` na pierwszym miejscu, wyodrębnione na końcu.
+
+```json title="opencode.json" {8}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "agent": {
+ "build": {
+ "permission": {
+ "bash": {
+ "*": "ask",
+ "git status *": "allow"
+ }
+ }
+ }
+ }
+}
+```
+
+[Dowiedz się więcej o prawach](/docs/permissions).
+
+---
+
+### Tryb
+
+Kontroluj tryb agenta za pomocą konfiguracji `mode`. Opcja `mode` umożliwiająca użycie środka.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "review": {
+ "mode": "subagent"
+ }
+ }
+}
+```
+
+Opcję `mode` można ustawić na `primary`, `subagent` lub `all`. Jeśli nie dotyczy `mode`, jest to `all`.
+
+---
+
+### Ukryty
+
+Ukryj subagenta w menu autouzupełniania `@` za pomocą `hidden: true`. Przydatne w postępowaniu sądowym podagenci, potencjalnie być wywoływani programowo przez innych agentów, którzy korzystają z pomocy jako narzędzia.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "internal-helper": {
+ "mode": "subagent",
+ "hidden": true
+ }
+ }
+}
+```
+
+Wpływ tylko na użytkownika w menu autouzupełniania. Model może nadal wywoływać ukrytych agentów za pomocą narzędzi do zadań, funkcji użytkowych.
+
+:::note
+Dotyczy tylko agentów `mode: subagent`.
+:::
+
+---
+
+### Uprawnienia do zadań
+
+Kontroluj, których agenci podawców mogą wywołać za pomocą narzędzia zadanie za pomocą `permission.task`. Używa wzorców globalnych do elastycznego dopasowywania.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "orchestrator": {
+ "mode": "primary",
+ "permission": {
+ "task": {
+ "*": "deny",
+ "orchestrator-*": "allow",
+ "code-reviewer": "ask"
+ }
+ }
+ }
+ }
+}
+```
+
+Po ustawieniu wartości `deny` podagent zostanie usunięty z opisu narzędzia Zadania, więc model nie będzie gotowy do uruchomienia.
+
+:::tip
+Reguły są następujące w kolejności i **ostatnia reguła wygrywająca**. W zasadzie `orchestrator-planner` jest konfiguracją `*` (odmową), jak i `orchestrator-*` (zezwolenie), ale ponieważ `orchestrator-*` użytkownika po `*`, postać jest `allow`.
+:::
+
+:::tip
+Zawsze można rozwiązać rozwiązanie, bezpośrednio poprzez menu autouzupełnieniania `@`, nawet jeśli wystąpią zadania agenta temu naprawiające.
+:::
+
+---
+
+### Kolor
+
+Dostosuj wygląd agenta w interfejsie użytkownika za pomocą opcji `color`. Wpływ na wygląd agenta w interfejsie.
+
+Narodziny kościoła szesnastkowego (np. `#FF5733`) lub koloru motywu: `primary`, `secondary`, `accent`, `success`, `warning`, `error`, `info`.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "creative": {
+ "color": "#ff6b6b"
+ },
+ "code-reviewer": {
+ "color": "accent"
+ }
+ }
+}
+```
+
+---
+
+### Góra P
+
+Kontroluj różnorodność odpowiedzi za pomocą opcji `top_p`. Alternatywa dla temperatury w celu kontrolowanej braku wartości.
+
+```json title="opencode.json"
+{
+ "agent": {
+ "brainstorm": {
+ "top_p": 0.9
+ }
+ }
+}
+```
+
+Wartość mieszkalna obejmuje zakres od 0,0 do 1,0. Niższe wartości są bardziej skoncentrowane, wyższe wartości są bardziej zaawansowane.
+
+---
+
+### nadal
+
+Wszelkie inne konfiguracje w agentach **przekazane bezpośrednio** jako model sprzedawcy. Dostęp do funkcji i parametrów dostarczanych dla dostawcy.
+
+Na przykład dzięki modelowi rozumowania OpenAI może kontrolować rozumowanie:
+
+```json title="opencode.json" {6,7}
+{
+ "agent": {
+ "deep-thinker": {
+ "description": "Agent that uses high reasoning effort for complex problems",
+ "model": "openai/gpt-5",
+ "reasoningEffort": "high",
+ "textVerbosity": "low"
+ }
+ }
+}
+```
+
+Te dodatkowe cechy można zidentyfikować od modelu i dostawcy. Sprawdź swoje dostawcę pod kątem parametrów.
+
+:::tip
+Uruchomione `opencode models`, aby wyłączyć modele.
+:::
+
+---
+
+## Utwórz agentów
+
+Możesz stworzyć nowych agentów za pomocą innego polecenia:
+
+```bash
+opencode agent create
+```
+
+Wykonaj decyzję:
+
+1. Zapytaj, gdzie zapisać agenta; globalne lub szczegółowe dla projektu.
+2. Opisz tego, co agent powinien.
+3. Wygeneruj właściwy monit systemowy i identyfikator.
+4. Wejście do wybrania narzędzia, do którego agenta może być dostęp.
+5. Na koniec pliku pliku przecen z konfiguracją agenta.
+
+---
+
+## Przypadki użycia
+
+Oto kilka typowych zastosowań różnych agentów.
+
+- **Agent użyciai**: Pełne prace programistyczne z dostępnymi narzędziami
+- **Plan agenta**: Analiza i planowanie bez zmian
+- **Agent recenzujący**: Przegląd kodu z odczytu i narzędzia do dokumentacji
+- **Agent debugujący**: Koncentruje się na urządzeniu z dostępnymi narzędziami bash i odczytu
+- **Agent Dokumentów**: Zapisywanie dokumentacji za pomocą operacji na plikach, ale bez konieczności posiadania kopii systemowych
+
+---
+
+## Przykład
+
+Oto kilka przykładowych agentów, którzy mogą się przydatni.
+
+:::tip
+Czy masz agenta, który jest osobą towarzyszącą? [Prześlij PR](https://github.com/anomalyco/opencode).
+:::
+
+---
+
+### Dokumentacja agenta
+
+```markdown title="~/.config/opencode/agents/docs-writer.md"
+---
+description: Writes and maintains project documentation
+mode: subagent
+tools:
+ bash: false
+---
+
+You are a technical writer. Create clear, comprehensive documentation.
+
+Focus on:
+
+- Clear explanations
+- Proper structure
+- Code examples
+- User-friendly language
+```
+
+---
+
+### Audytor bezpieczeństwa
+
+```markdown title="~/.config/opencode/agents/security-auditor.md"
+---
+description: Performs security audits and identifies vulnerabilities
+mode: subagent
+tools:
+ write: false
+ edit: false
+---
+
+You are a security expert. Focus on identifying potential security issues.
+
+Look for:
+
+- Input validation vulnerabilities
+- Authentication and authorization flaws
+- Data exposure risks
+- Dependency vulnerabilities
+- Configuration security issues
+```
diff --git a/packages/web/src/content/docs/pl/cli.mdx b/packages/web/src/content/docs/pl/cli.mdx
new file mode 100644
index 000000000..34f0e9029
--- /dev/null
+++ b/packages/web/src/content/docs/pl/cli.mdx
@@ -0,0 +1,601 @@
+---
+title: interfejs wiersza polecany
+description: Opcje i interfejs interfejsu CLI OpenCode.
+---
+
+import { Tabs, TabItem } from "@astrojs/starlight/components"
+
+Interfejs CLI OpenCode uruchamia się [TUI](/docs/tui), gdy jest uruchamiany bez żadnych argumentów.
+
+```bash
+opencode
+```
+
+Ale także instalacja przez tę stronę. pełni przed programową interakcją z OpenCode.
+
+```bash
+opencode run "Explain how closures work in JavaScript"
+```
+
+---
+
+### tui
+
+Uruchomienie interfejsu użytkownika terminala OpenCode.
+
+```bash
+opencode [project]
+```
+
+#### Flagi
+
+| Flaga | Krótkie | Opis |
+| ------------ | ----- | ------------------------------------------ |
+| `--continue` | `-c` | Kontynuuj ostatnią datę |
+| `--session` | `-s` | Identyfikator sesji, aby kontynuować |
+| `--prompt` | | Monituj o zastosowanie |
+| `--model` | `-m` | Model wykorzystania w postaci dostawcy/modelu |
+| `--agent` | | Agent do użycia |
+| `--port` | | Port do słuchania |
+| `--hostname` | | Nazwa hosta, która jest częścią składową |
+
+---
+
+## Polecenia
+
+Interfejs CLI OpenCode zawiera także szczegółowe polecenie.
+
+---
+
+### agent
+
+Zarządzaj agentami OpenCode.
+
+```bash
+opencode agent [command]
+```
+
+---
+
+### przytwierdzić
+
+Dołącz terminal do już działającego serwera zaplecza OpenCode uruchomionego za pomocą oprogramowania `serve` lub `web`.
+
+```bash
+opencode attach [url]
+```
+
+Możliwość zabezpieczenia z TUI ze zdalnym backendem OpenCode. Na przykład:
+
+```bash
+# Start the backend server for web/mobile access
+opencode web --port 4096 --hostname 0.0.0.0
+
+# In another terminal, attach the TUI to the running backend
+opencode attach http://10.20.30.40:4096
+```
+
+#### Flagi
+
+| Flaga | Krótkie | Opis |
+| ----------- | ----- | --------------------------------- |
+| `--dir` | | Katalog roboczy do uruchomienia TUI w |
+| `--session` | `-s` | Identyfikator sesji, aby kontynuować |
+
+---
+
+#### co
+
+Utwórz nowego agenta z niestandardową konfiguracją.
+
+```bash
+opencode agent create
+```
+
+To działanie poprowadził Cię przez proces tworzenia nowego agenta z niestandardowym monitem systemowym i konfiguracją narzędzia.
+
+---
+
+#### lista
+
+Lista wszystkich agentów.
+
+```bash
+opencode agent list
+```
+
+---
+
+### autoryzacja
+
+Polecenie do zarządzania danymi uwierzytelniającymi i logowaniem dla dostawców.
+
+```bash
+opencode auth [command]
+```
+
+---
+
+#### login
+
+OpenCode jest dostępny przez listę dostawców w [Models.dev](https://models.dev), więc można użyć `opencode auth login` do skonfigurowania klucza API dla dowolnego dostawcy, który może być kontrolowany. Jest to możliwe w `~/.local/share/opencode/auth.json`.
+
+```bash
+opencode auth login
+```
+
+Po uruchomieniu OpenCode ładuje dostawców z pliku poświadczeń. A jeśli twoje siedliskiem są jakieś klucze lub plik `.env` w twoim projekcie.
+
+---
+
+#### lista
+
+Wyświetlanie list wszystkich uwierzytelnionych dostawców przechowywanych w pliku poświadczeń.
+
+```bash
+opencode auth list
+```
+
+Lub krótka wersja.
+
+```bash
+opencode auth ls
+```
+
+---
+
+#### wyloguj się
+
+Wylogowuje Cię z dostawcy poprzez usunięcie go z pliku poświadczeń.
+
+```bash
+opencode auth logout
+```
+
+---
+
+### githubie
+
+Zarządzaj agentem GitHub w celu automatyzacji repozytorium.
+
+```bash
+opencode github [command]
+```
+
+---
+
+#### Dowiedz się
+
+Zainstaluj agenta GitHub w swoim repozytorium.
+
+```bash
+opencode github install
+```
+
+Spowoduje to konieczność uruchomienia akcji GitHub i przeprowadzi cię przez proces tworzenia. [Dowiedz się więcej](/docs/github).
+
+---
+
+#### chcesz
+
+Uruchom agenta na GitHubie. Jest to zwykły użytkownik w akcjach GitHub.
+
+```bash
+opencode github run
+```
+
+##### Flagi
+
+| Flaga | Opis |
+| --------- | -------------------------------------- |
+| `--event` | Zdarzenie próbne GitHub, aby sprawdzić agenta dla |
+| `--token` | Osobisty token dostępu GitHub |
+
+---
+
+### mcp
+
+Zarządzaj serwerem kluczowego modelu kontekstowego.
+
+```bash
+opencode mcp [command]
+```
+
+---
+
+#### zaproponować
+
+Dodaj serwer MCP do swojej konfiguracji.
+
+```bash
+opencode mcp add
+```
+
+To polecenie poprowadzić Cię przez proces dodawania lokalnego lub zdalnego serwera MCP.
+
+---
+
+#### lista
+
+Wyświetlanie list wszystkich skonfigurowanych serwerów MCP i ich awarii.
+
+```bash
+opencode mcp list
+```
+
+Lub skrót krótkiej wersji.
+
+```bash
+opencode mcp ls
+```
+
+---
+
+#### autoryzacja
+
+Uwierzytelnij się za pomocą serwera MCP z włączoną funkcją OAuth.
+
+```bash
+opencode mcp auth [name]
+```
+
+Jeśli nie poddasz nazwy serwera, zostaniesz poproszony o wybranie jednego z serwerów obsługujących OAuth.
+
+Możesz także uruchomić serwery obsługujące OAuth i ich status uwierzytelnienia.
+
+```bash
+opencode mcp auth list
+```
+
+Lub skrót krótkiej wersji.
+
+```bash
+opencode mcp auth ls
+```
+
+---
+
+#### wyloguj się
+
+Usuń doświadczenie OAuth dla serwera MCP.
+
+```bash
+opencode mcp logout [name]
+```
+
+---
+
+#### odpluskwić
+
+Debuguj problemy z połączeniem OAuth dla serwera MCP.
+
+```bash
+opencode mcp debug <name>
+```
+
+---
+
+### modele
+
+Wyświetlanie list modeli wszystkich skonfigurowanych dostawców.
+
+```bash
+opencode models [provider]
+```
+
+Do sterowania dostępnymi modelami u dostawców w `provider/model`.
+
+Jest to wydanie do nazwy modelu, który jest używany w [twoja] (./config/).
+
+Opcjonalnie możesz udostępnić identyfikator dostawcy, aby filtrować modele według tego dostawcy.
+
+```bash
+opencode models anthropic
+```
+
+#### Flagi
+
+| Flaga | Opis |
+| ----------- | ------------------------------------------------------------ |
+| `--refresh` | Odśwież pamięć podręczną modele z models.dev |
+| `--verbose` | Bardziej szczegółowe dane wyjściowe modelu (zawiera metadane, takie jak koszty) |
+
+flagi `--refresh`, aby znaleźć listę modeli w pamięci podręcznej. Jest to wymagane, gdy dostawca dodano nowe modele, które chcesz zobaczyć w OpenCode.
+
+```bash
+opencode models --refresh
+```
+
+---
+
+### chcesz
+
+Uruchomiony opencode w trybie nieinteraktywnym, przekazując bezpośrednio monit.
+
+```bash
+opencode run [message..]
+```
+
+Jest to wymagane w przypadku tworzenia skryptów, automatyzacji lub gdy zostanie wysłane natychmiastowe przesłanie bez uruchomienia TUI. Na przykład.
+
+```bash "opencode run"
+opencode run Explain the use of context in Go
+```
+
+Można również zastosować, uruchamiając `opencode serve`, aby wyłączyć zimne uruchamianie serwera MCP przy każdym uruchomieniu:
+
+```bash
+# Start a headless server in one terminal
+opencode serve
+
+# In another terminal, run commands that attach to it
+opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
+```
+
+#### Flagi
+
+| Flaga | Krótkie | Opis |
+| ------------ | ----- | ------------------------------------------------------------------ |
+| `--command` | | Polecenie do uruchomienia, komunikatu dla argumentów |
+| `--continue` | `-c` | Kontynuuj ostatnią datę |
+| `--session` | `-s` | Identyfikator sesji, aby kontynuować |
+| `--share` | | Udostępnij sesję |
+| `--model` | `-m` | Model wykorzystania w postaci dostawcy/modelu |
+| `--agent` | | Agent do użycia |
+| `--file` | `-f` | Pliki do załączenia do wiadomości |
+| `--format` | | Format: domyślny (sformatowany) lub json (surowe rozwiązanie JSON) |
+| `--title` | | Tytuł sesji (używany skróconego monitu, jeśli nie podano wartości) |
+| `--attach` | | Dołącz do skutecznego serwera opencode (np. http://localhost:4096) |
+| `--port` | | Port dla serwera lokalnego (domyślnie jest do portu losowego) |
+
+---
+
+### podawać
+
+Uruchom bezgłowy serwer OpenCode w celu uzyskania dostępu do API. Pełny interfejs HTTP w [dokumentacji serwera](/docs/server).
+
+```bash
+opencode serve
+```
+
+Spowoduje dostęp do serwera HTTP, który zapewnia dostęp do API opencode bez interfejsu TUI. Ustaw `OPENCODE_SERVER_PASSWORD`, aby włączyć podstawowe uwierzytelnianie HTTP (domyślna nazwa użytkownika do `opencode`).
+
+#### Flagi
+
+| Flaga | Opis |
+| ------------ | ------------------------------------------ |
+| `--port` | Port do słuchania |
+| `--hostname` | Nazwa hosta, która jest częścią składową |
+| `--mdns` | Włącz wykrywanie mDNS |
+| `--cors` | Dodatkowe źródło użytkownika CORS |
+
+---
+
+### Sesja
+
+Zarządzaj sesją OpenCode.
+
+```bash
+opencode session [command]
+```
+
+---
+
+#### lista
+
+Lista wszystkich sesji OpenCode.
+
+```bash
+opencode session list
+```
+
+##### Flagi
+
+| Flaga | Krótkie | Opis |
+| ------------- | ----- | ------------------------------------ |
+| `--max-count` | `-n` | Ograniczony do ostatniego sesji |
+| `--format` | | Format wyjściowy: tabela lub json (tabela) |
+
+---
+
+### statystyki
+
+Pokaż statystyki wykorzystania tokenów i sesji szkoleniowych OpenCode.
+
+```bash
+opencode stats
+```
+
+#### Flagi
+
+| Flaga | Opis |
+| ----------- | --------------------------------------------------------------------------- |
+| `--days` | Pokaż statystyki z ostatnich N dni (cały czas) |
+| `--tools` | Liczba narzędzi do po specyfikacji (wszystkie) |
+| `--models` | Pokaż podział modelu wykorzystania (domyślnie ukryty). Podajnik usługowy, aby górne N |
+| `--project` | Filtruj według projektu (wszystkie projekty, pusty ciąg: dostęp projekt) |
+
+---
+
+### eksport
+
+Eksportuj dane sesji jako JSON.
+
+```bash
+opencode export [sessionID]
+```
+
+Jeśli nie poddasz identyfikatora sesji, zostaniesz poproszony o wybranie jednego z sesji.
+
+---
+
+### import
+
+Importuj dane sesji z pliku JSON lub adresu URL udostępniania OpenCode.
+
+```bash
+opencode import <file>
+```
+
+Możesz importować z lokalnego lub adresu URL OpenCode.
+
+```bash
+opencode import session.json
+opencode import https://opncd.ai/s/abc123
+```
+
+---
+
+### sieć
+
+Uruchomiony bezgłowy serwer OpenCode z interfejsem internetowym.
+
+```bash
+opencode web
+```
+
+Spowoduje dostęp do serwera HTTP i otwarcie dostępu do OpenCode przez interfejs sieciowy. Ustaw `OPENCODE_SERVER_PASSWORD`, aby włączyć podstawowe uwierzytelnianie HTTP (domyślna nazwa użytkownika do `opencode`).
+
+#### Flagi
+
+| Flaga | Opis |
+| ------------ | ------------------------------------------ |
+| `--port` | Port do słuchania |
+| `--hostname` | Nazwa hosta, która jest częścią składową |
+| `--mdns` | Włącz wykrywanie mDNS |
+| `--cors` | Dodatkowe źródło użytkownika CORS |
+
+---
+
+### akp
+
+Uruchomiony serwer ACP (Agent Client Protocol).
+
+```bash
+opencode acp
+```
+
+Aby udostępnić serwer ACP, który komunikuje się poprzez stdin/stdout przy użyciu nd-JSON.
+
+#### Flagi
+
+| Flaga | Opis |
+| ------------ | --------------------- |
+| `--cwd` | Katalog roboczy |
+| `--port` | Port do słuchania |
+| `--hostname` | Nazwa hosta, która jest częścią składową |
+
+---
+
+### odinstaluj
+
+Odinstaluj OpenCode i usuń wszystkie pliki powiązane.
+
+```bash
+opencode uninstall
+```
+
+#### Flagi
+
+| Flaga | Krótkie | Opis |
+| --------------- | ----- | ------------------------------------------- |
+| `--keep-config` | `-c` | Zachowaj pliki konfiguracyjne |
+| `--keep-data` | `-d` | Przechowuj dane sesji i szczepionek |
+| `--dry-run` | | Pokaż, wykluczy bez usuwania |
+| `--force` | `-f` | Pomiń monity o potwierdzenie |
+
+---
+
+### aktualizacja
+
+Aktualizuje opencode do oryginalnej wersji lub oryginalnej wersji.
+
+```bash
+opencode upgrade [target]
+```
+
+Aby zachować ostatnią wersję.
+
+```bash
+opencode upgrade
+```
+
+Aby zobaczyć wersję pierwotną.
+
+```bash
+opencode upgrade v0.1.48
+```
+
+#### Flagi
+
+| Flaga | Krótkie | Opis |
+| ---------- | ----- | ----------------------------------------------------------------- |
+| `--method` | `-m` | Zastosowana metoda instalacji; curl, npm, pnpm, kok, napar |
+
+---
+
+## Flagi globalne
+
+Interfejs CLI kod opencode przyjmuje flagi globalne.
+
+| Flaga | Krótkie | Opis |
+| -------------- | ----- | ------------------------------------ |
+| `--help` | `-h` | Wyświetl pomoc |
+| `--version` | `-v` | Drukuj numer wersji |
+| `--print-logs` | | Wydrukuj logi na stderr |
+| `--log-level` | | Poziom dziennika (DEBUG, INFO, OSTRZEŻ, BŁĄD) |
+
+---
+
+## Zmienne warunki
+
+OpenCode można wykryć za pomocą czyszczenia alternatywnych.
+
+| Zmienna | Wpisz | Opis |
+| ------------------------------------- | ------- | ------------------------------------------------- |
+| `OPENCODE_AUTO_SHARE` | wartość logiczna | Automatycznie udostępniaj sesje |
+| `OPENCODE_GIT_BASH_PATH` | ciąg | Ścieżka do pliku wykonywalnego Git Bash w systemie Windows |
+| `OPENCODE_CONFIG` | ciąg | Ścieżka do pliku konfiguracyjnego |
+| `OPENCODE_CONFIG_DIR` | ciąg | Ścieżka do katalogu konfiguracyjnego |
+| `OPENCODE_CONFIG_CONTENT` | ciąg | Wbudowana treść konstrukcji JSON |
+| `OPENCODE_DISABLE_AUTOUPDATE` | wartość logiczna | Wyłącz automatyczne sprawdzanie aktualizacji |
+| `OPENCODE_DISABLE_PRUNE` | wartość logiczna | Wyłączenie regulowane |
+| `OPENCODE_DISABLE_TERMINAL_TITLE` | wartość logiczna | Wyłącz automatycznie tytuł terminala |
+| `OPENCODE_PERMISSION` | ciąg | Wbudowane prawo JSON |
+| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | wartość logiczna | Wyłączenie wtyczki |
+| `OPENCODE_DISABLE_LSP_DOWNLOAD` | wartość logiczna | Wyłącz automatyczne pobieranie z serwera LSP |
+| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | wartość logiczna | Włącz modele eksperymentalne |
+| `OPENCODE_DISABLE_AUTOCOMPACT` | wartość logiczna | Wyłącz automatyczne zagęszczanie kontekstu |
+| `OPENCODE_DISABLE_CLAUDE_CODE` | wartość logiczna | Wyłączenie gry z `.claude` (podpowiedź + podłączenie) |
+| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | wartość logiczna | Wyłącz czytanie `~/.claude/CLAUDE.md` |
+| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | wartość logiczna | Wyłącz ładowanie `.claude/skills` |
+| `OPENCODE_DISABLE_MODELS_FETCH` | wartość logiczna | Wyłączenie modeli pobierania ze źródeł niedostępnych |
+| `OPENCODE_FAKE_VCS` | ciąg | Fałszywy sprzedawca VCS do celów testowych |
+| `OPENCODE_DISABLE_FILETIME_CHECK` | wartość logiczna | Wyłączone sprawdzanie pliku w celu optymalizacji |
+| `OPENCODE_CLIENT` | ciąg | Identyfikator klienta (domyślnie `cli`) |
+| `OPENCODE_ENABLE_EXA` | wartość logiczna | Włącz narzędzie wyszukiwania internetowego Exa |
+| `OPENCODE_SERVER_PASSWORD` | ciąg | Włącz uwierzytelnianie podstawowe dla `serve`/`web` |
+| `OPENCODE_SERVER_USERNAME` | ciąg | Zakończenie stosowania użytkownika z autoryzacją (domyślnie `opencode`) |
+| `OPENCODE_MODELS_URL` | ciąg | Niestandardowy adres URL do pobrania konfiguracji modeli |
+
+---
+
+### Eksperymentalny
+
+Te zmienne możliwości użycia funkcji eksperymentalnych, które mogą zostać lub usunięte.
+
+| Zmienna | Wpisz | Opis |
+| ----------------------------------------------- | ------- | --------------------------------------- |
+| `OPENCODE_EXPERIMENTAL` | wartość logiczna | Włącz wszystkie funkcje eksperymentalne |
+| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | wartość logiczna | Włącz wykrywanie ikon |
+| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | wartość logiczna | Wyłączenie kopiowania przy wyborze w TUI |
+| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | numer | Domyślny limit czasu dla ukrytego bash w ms |
+| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | numer | Maksymalne tokeny wyjściowe dla odpowiedzi LLM |
+| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | wartość logiczna | Włącz obserwatora plików dla całego katalogu |
+| `OPENCODE_EXPERIMENTAL_OXFMT` | wartość logiczna | Włącz formater oxfmt |
+| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | wartość logiczna | Włącz eksperymentalne narzędzie LSP |
+| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | wartość logiczna | Wyłącz obserwatora plików |
+| `OPENCODE_EXPERIMENTAL_EXA` | wartość logiczna | Włącz funkcje eksperymentalne Exa |
+| `OPENCODE_EXPERIMENTAL_LSP_TY` | wartość logiczna | Włącz eksperymentalne sprawdzanie typu LSP |
+| `OPENCODE_EXPERIMENTAL_MARKDOWN` | wartość logiczna | Włącz funkcje eksperymentalne przecen |
+| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | wartość logiczna | Włącz tryb planu |
diff --git a/packages/web/src/content/docs/pl/commands.mdx b/packages/web/src/content/docs/pl/commands.mdx
new file mode 100644
index 000000000..f5b83b7d3
--- /dev/null
+++ b/packages/web/src/content/docs/pl/commands.mdx
@@ -0,0 +1,323 @@
+---
+title: Polecenia
+description: Tworz polecany dla powtarzalnych zadań.
+---
+
+Polecenia ustawienia monitu, które może zostać uruchomione po uruchomieniu tego polecenia w TUI.
+
+```bash frame="none"
+/my-command
+```
+
+Polecenia stanowią dodatek do dostarczonych, takich jak `/init`, `/undo`, `/redo`, `/share`, `/help`. [Dowiedz się więcej](/docs/tui#commands).
+
+---
+
+## Utwórz źródło plikówwe
+
+Utwórz pliki przecen w katalogu `commands/`, aby móc korzystać z usług polecanych.
+
+Utwórz `.opencode/commands/test.md`:
+
+```md title=".opencode/commands/test.md"
+---
+description: Run tests with coverage
+agent: build
+model: anthropic/claude-3-5-sonnet-20241022
+---
+
+Run the full test suite with coverage report and show any failures.
+Focus on the failing tests and suggest fixes.
+```
+
+Frontmatter posiada właściwości. Treść staje się szablonem.
+
+polecany, w rejestrze `/`, a następnie polecany.
+
+```bash frame="none"
+"/test"
+```
+
+---
+
+## Skonfiguruj
+
+Dostęp do sieci przez połączenie OpenCode lub udostępnia pliki w katalogu `commands/`.
+
+---
+
+### JSON
+
+opcja opcja `command` w swoim OpenCode [config](/docs/config):
+
+```json title="opencode.jsonc" {4-12}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "command": {
+ // This becomes the name of the command
+ "test": {
+ // This is the prompt that will be sent to the LLM
+ "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
+ // This is shown as the description in the TUI
+ "description": "Run tests with coverage",
+ "agent": "build",
+ "model": "anthropic/claude-3-5-sonnet-20241022"
+ }
+ }
+}
+```
+
+Teraz możesz wybrać opcję w TUI:
+
+```bash frame="none"
+/test
+```
+
+---
+
+### Obniżka cen
+
+Można także definiować polecenia za pomocą plików Markdown. Trzymaj je w:
+
+- Globalnie: `~/.config/opencode/commands/`
+- Na projekt: `.opencode/commands/`
+
+```markdown title="~/.config/opencode/commands/test.md"
+---
+description: Run tests with coverage
+agent: build
+model: anthropic/claude-3-5-sonnet-20241022
+---
+
+Run the full test suite with coverage report and show any failures.
+Focus on the failing tests and suggest fixes.
+```
+
+Nazwa pliku przecen staje się nazwą referencyjną. Na przykład `test.md` pozwala
+biegniesz:
+
+```bash frame="none"
+/test
+```
+
+---
+
+## Szybko kliknij
+
+Monity dotyczące niestandardowych urządzeń obsługujących kilka specjalnych symboli zastępczych i składni.
+
+---
+
+### Argumentacja
+
+Przekazuj argumentację do ręki, używając symbolu zastępczego `$ARGUMENTS`.
+
+```md title=".opencode/commands/component.md"
+---
+description: Create a new component
+---
+
+Create a new React component named $ARGUMENTS with TypeScript support.
+Include proper typing and basic structure.
+```
+
+Uruchomienie reakcji z argumentami:
+
+```bash frame="none"
+/component Button
+```
+
+A `$ARGUMENTS` pozostanie pozostawione przez `Button`.
+
+Dostępność do poszczególnych argumentów można również uzyskać za pomocą parametrów funkcjonalnych:
+
+- `$1` - Pierwszy argument
+- `$2` - Drugi argument
+- `$3` - Trzeci argument
+- Biorę dalej...
+
+Na przykład:
+
+```md title=".opencode/commands/create-file.md"
+---
+description: Create a new file with content
+---
+
+Create a file named $1 in the directory $2
+with the following content: $3
+```
+
+Uruchomienie decyzji:
+
+```bash frame="none"
+/create-file config.json src "{ \"key\": \"value\" }"
+```
+
+Aby przechowywać:
+
+- `$1` z `config.json`
+- `$2` z `src`
+- `$3` z `{ "key": "value" }`
+
+---
+
+### Wyjście z pamięci
+
+urządzenie __!`command`_, aby wstawić dane wyjściowe [polecenie bash](/docs/tui#bash-commands) wykonaj obciążenie.
+
+Na przykład, aby sprawdzić narzędzie analityczne:
+
+```md title=".opencode/commands/analyze-coverage.md"
+---
+description: Analyze test coverage
+---
+
+Here are the current test results:
+!`npm test`
+
+Based on these results, suggest improvements to increase coverage.
+```
+
+Lub aby ostatnia zmiana:
+
+```md title=".opencode/commands/review-changes.md"
+---
+description: Review recent changes
+---
+
+Recent git commits:
+!`git log --oneline -10`
+
+Review these changes and suggest any improvements.
+```
+
+Polecenia są uruchamiane w systemie wyjściowym, a ich dane wyjściowe są uruchamiane.
+
+---
+
+### Referencje plików
+
+Dołącz pliki do swojego polecenia, używając `@`, zawierającego plik.
+
+```md title=".opencode/commands/review-component.md"
+---
+description: Review component
+---
+
+Review the component in @src/components/Button.tsx.
+Check for performance issues and suggest improvements.
+```
+
+Zawartość pliku jest automatycznie umieszczana w pliku.
+
+---
+
+## Opcje
+
+Przyjrzyjmy się szczegółowo opcjom konfiguracji.
+
+---
+
+### Szablon
+
+Opcja `template` została rozstrzygnięta, która została wysłana do LLM po wykonaniu polecenia.
+
+```json title="opencode.json"
+{
+ "command": {
+ "test": {
+ "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes."
+ }
+ }
+}
+```
+
+Jest to **wymagana** opcja konfiguracji.
+
+---
+
+### Opis
+
+Możliwość użycia `description`, aby skrócony opis działania polecenia.
+
+```json title="opencode.json"
+{
+ "command": {
+ "test": {
+ "description": "Run tests with coverage"
+ }
+ }
+}
+```
+
+Jest podany jako opis w TUI po wpisaniu polecenia.
+
+---
+
+### Agent
+
+Zastosowanie zastosowania `agent`, aby określić, który [agent] (./agents) powinien zostać naprawiony do wyboru.
+Jeśli jest to [podagent](/docs/agents/#subagents), rozwiązanie to ujawnione, podagenta.
+Aby móc, ustawa `subtask` na `false`.
+
+```json title="opencode.json"
+{
+ "command": {
+ "review": {
+ "agent": "plan"
+ }
+ }
+}
+```
+
+Jest to **opcjonalna** opcja konfiguracji. Jeśli nie jest dostępny, dostępny jest agentem.
+
+---
+
+### Podzadanie
+
+Użyj wartości logicznej `subtask`, aby wymusić wywołanie [podagenta](/docs/agents/#subagents) polecenia.
+Jest to narzędzie, jeśli chcesz, aby decyzja nie zanieczyszczała kontekstu i **zmusiło** agenta do działania jako subagent,
+nawet jeśli `mode` jest podłączony na `primary` w konfiguracji [agent](/docs/agents).
+
+```json title="opencode.json"
+{
+ "command": {
+ "analyze": {
+ "subtask": true
+ }
+ }
+}
+```
+
+Jest to **opcjonalna** opcja konfiguracji.
+
+---
+
+### Model
+
+Używając konstrukcji `model`, aby znaleźć ukryty model dla tego polecenia.
+
+```json title="opencode.json"
+{
+ "command": {
+ "analyze": {
+ "model": "anthropic/claude-3-5-sonnet-20241022"
+ }
+ }
+}
+```
+
+Jest to **opcjonalna** opcja konfiguracji.
+
+---
+
+## Wbudowany
+
+opencode zawiera kilka istniejących urządzeń, takich jak `/init`, `/undo`, `/redo`, `/share`, `/help`; [dowiedz się więcej](/docs/tui#commands).
+
+:::note
+Polecenia mogą zostać usunięte.
+:::
+
+Jeśli zdefiniujesz tę samą nazwę, nastąpi decyzja.
diff --git a/packages/web/src/content/docs/pl/config.mdx b/packages/web/src/content/docs/pl/config.mdx
new file mode 100644
index 000000000..2ac980881
--- /dev/null
+++ b/packages/web/src/content/docs/pl/config.mdx
@@ -0,0 +1,685 @@
+---
+title: Konfig
+description: Korzystanie z konstrukcji OpenCode JSON.
+---
+
+Możesz zagrać z OpenCode za pomocą pliku konfiguracyjnego JSON.
+
+---
+
+## Format
+
+OpenCode obsługa formaty **JSON** i **JSONC** (JSON z komentarzami).
+
+```jsonc title="opencode.jsonc"
+{
+ "$schema": "https://opencode.ai/config.json",
+ // Theme configuration
+ "theme": "opencode",
+ "model": "anthropic/claude-sonnet-4-5",
+ "autoupdate": true,
+}
+```
+
+---
+
+## Lokalizacje
+
+Możesz umieścić swoją instalację w kilku różnych lokalizacjach i jednym pliku
+inne porządki pierwszeństwa.
+
+:::note
+Pliki konfiguracyjne są **łączone**, a nie zastępowane.
+:::
+
+Pliki konfiguracyjne są łączone ze sobą, a nie zastępowane. Ustawienia z lokalizacji konfiguracyjnych są konfigurowalne. Ewentualne konfiguracje zaistnieją tylko w przypadku sprzecznych kluczy. Niekonfliktowe ustawienia ze wszystkich zasobów zachowanych.
+
+Na zestawie, przygotowana globalna ustawi `theme: "opencode"` i `autoupdate: true`, zestaw zestawu `model: "anthropic/claude-sonnet-4-5"`, ostateczna zestaw będzie zawierał wszystkie trzy ustawienia.
+
+---
+
+### Kolejność pierwszeństwa
+
+Źródła konfiguracji są ładowane w kolejności (później źródła występują wcześniej):
+
+1. **Zdalna konfiguracja** (od `.well-known/opencode`) – ustawienia stosowane w organizacji
+2. **Konfiguracja globalna** (`~/.config/opencode/opencode.json`) – przestrzeganie użytkownika
+3. **Konfiguracja niestandardowa** (`OPENCODE_CONFIG` env var) — zastosowanie zastąpienie
+4. **Konfiguracja projektu** (`opencode.json` w projekcie) - ustawienia dla projektu specjalnego
+5. **`.opencode` katalogi** - agent, poleca, półki
+6. **Konfiguracja wbudowana** (`OPENCODE_CONFIG_CONTENT` env var) — zastąpienie środowiska wykonawczego
+
+to, że konfiguracje projektu mogą być dostępne na poziomie globalnym konfiguracji, a konfiguracje globalne mogą być zdalne, zdalne konfiguracja organizacji.
+
+:::note
+W katalogach `.opencode` i `~/.config/opencode` użytkownicy są **nazwy w zwykłej mnogiej** dla podkatalogów: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` i `themes/`. Nazwy wydane (np. `agent/`) są również objęte gwarancją kompatybilności wstecznej.
+:::
+
+---
+
+### Zdalny
+
+Organizacje mogą być podłączone do łączy końcowych `.well-known/opencode`. Jest pobierane automatycznie po uwierzytelnieniu u dostawcy, który obsługuje.
+
+Zdalna jest ładowana jako pierwsza i podstawowa. Wszystkie inne źródła konfiguracji (globalne, projektowe) mogą zostać udostępnione menu.
+
+Na przykład, jeśli Twoja organizacja udostępnia serwery MCP, które są siecią internetową:
+
+```json title="Remote config from .well-known/opencode"
+{
+ "mcp": {
+ "jira": {
+ "type": "remote",
+ "url": "https://jira.example.com/mcp",
+ "enabled": false
+ }
+ }
+}
+```
+
+Możesz udostępnić serwery w szczegółach:
+
+```json title="opencode.json"
+{
+ "mcp": {
+ "jira": {
+ "type": "remote",
+ "url": "https://jira.example.com/mcp",
+ "enabled": true
+ }
+ }
+}
+```
+
+---
+
+### Światowy
+
+Umieść swoją globalną konfigurację OpenCode w `~/.config/opencode/opencode.json`. przestrzeganie funkcji globalnej, aby uzyskać dostęp do całego użytkownika, takie jak motywy, dostawca lub skróty klawiszowe.
+
+Konfiguracja globalna zaawansowana, zdalne ustawienie konfiguracji.
+
+---
+
+### muszę zrobić projekt
+
+Dodaj `opencode.json` w katalogu głównym projektu. Konfiguracja projektu ma priorytet wśród plików konfiguracyjnych — zaawansowane konfiguracje globalne i zdalne.
+
+:::tip
+Instalacja wstępna dla katalogu w katalogu.
+:::
+
+Kiedy OpenCode się uruchomi, szuka pliku konfiguracyjnego w katalogu Git.
+
+Można również sprawdzić w Git i tego samego schematu, co globalny.
+
+---
+
+### Niestandardowa ścieżka
+
+Niestandardowe rozwiązanie konfiguracyjne, różne opcje `OPENCODE_CONFIG`.
+
+```bash
+export OPENCODE_CONFIG=/path/to/my/custom-config.json
+opencode run "Hello world"
+```
+
+Konfiguracja niestandardowa jest ładowana z konfiguracją globalną i konfiguracją projektu w kolejności pierwszych.
+
+---
+
+### Katalog niestandardowy
+
+niestandardowy katalog konfiguracyjny za pomocą `OPENCODE_CONFIG_DIR`
+zmienna środowiskowa. Katalog ten będzie przeszukiwany pod kątem agentów, ukryty,
+tryby i wtyczki, tak jak standardowy katalog `.opencode` i powinienem
+podążaj tą samą strukturą.
+
+```bash
+export OPENCODE_CONFIG_DIR=/path/to/my/config-directory
+opencode run "Hello world"
+```
+
+Katalog niestandardowy jest ładowany po katalogach global config i `.opencode`, więc **może być połączony** z ich urządzeniami.
+
+---
+
+## Schemat
+
+Plik konfiguracyjny ma schemat końcowy w [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
+
+Twój edytor powinien mieć możliwość sprawdzania poprawności i autouzupełniania na podstawie schematu.
+
+---
+
+### TUI
+
+Możliwość podłączenia urządzenia dla TUI za pomocą opcji `tui`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "tui": {
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ },
+ "diff_style": "auto"
+ }
+}
+```
+
+Dostępna opcja:
+
+- `scroll_acceleration.enabled` - Włącz przyspieszenie przewijania w rysiku macOS. **Ma pierwszeństwo przed `scroll_speed`.**
+- `scroll_speed` - Niestandardowy mnożnik szybkości przewijania (domyślnie: `3`, minimalnie: `1`). Ignorowane, jeśli `scroll_acceleration.enabled` do `true`.
+- `diff_style` – Sterowanie renderowaniem różnicowym. `"auto"` dostępny jest do szerokości terminala, `"stacked"` zawsze pojawia się pojedyncza kolumna.
+
+[Dowiedz się więcej o korzystaniu z TUI tutaj](/docs/tui).
+
+---
+
+### Serwer
+
+Możliwość ustawienia serwera dla źródeł `opencode serve` i `opencode web` za pomocą opcji `server`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "server": {
+ "port": 4096,
+ "hostname": "0.0.0.0",
+ "mdns": true,
+ "mdnsDomain": "myproject.local",
+ "cors": ["http://localhost:5173"]
+ }
+}
+```
+
+Dostępna opcja:
+
+- `port` - Port do nasłuchiwania.
+- `hostname` — nazwa hosta, która jest przeznaczona dla Ciebie. Gdy `mdns` jest połączony i nie jest ułożony inną nazwą hosta, jest połączony z `0.0.0.0`.
+- `mdns` - Włącz wykrywanie usług mDNS. Dzięki temu zewnętrznemu urządzeniu w sieci może być przesyłany Twój serwer OpenCode.
+- `mdnsDomain` - Niestandardowa nazwa domeny dla usług mDNS. Wartość domyślna do `opencode.local`. Przydatne do uruchomienia wielu zastosowań w tej samej sieci.
+- `cors` - Dodatkowe źródło CORS podczas korzystania z serwera HTTP z punktu końcowego. Wartość musi być dostępna dla źródeł (schemat + host + port opcjonalny), np. `https://app.example.com`.
+
+[Dowiedz się więcej o tutaj](/docs/server).
+
+---
+
+### Narzędzia
+
+Dostępne narzędzia, z których można korzystać LLM, dostęp do opcji `tools`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "tools": {
+ "write": false,
+ "bash": false
+ }
+}
+```
+
+[Dowiedz się więcej o narzędziach tutaj](/docs/tools).
+
+---
+
+### Modele
+
+Możesz mieć dostawców i modele, które chcesz mieć w konfiguracji OpenCode, za pomocą opcji `provider`, `model` i `small_model`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {},
+ "model": "anthropic/claude-sonnet-4-5",
+ "small_model": "anthropic/claude-haiku-4-5"
+}
+```
+
+Opcja `small_model` konfiguruje oddzielny model do lekkich zadań, takich jak generowanie tytułów. Domyślnie OpenCode wyparte przez dostępny model, jeśli jest dostępny u dostawcy, w razie potrzeby powróć do innego modelu.
+
+Opcje dostawcy mogą być zainstalowane `timeout` i `setCacheKey`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "anthropic": {
+ "options": {
+ "timeout": 600000,
+ "setCacheKey": true
+ }
+ }
+ }
+}
+```
+
+- `timeout` - Limit czasu trwania w milisekundach (domyślnie: 300000). Ustaw na `false`, aby wyłączyć.
+- `setCacheKey` — wkrótce, że klucz pamięci podręcznej jest zawsze gotowy dla dostawcy.
+
+Możesz także mieć [model lokalny](/docs/models#local). [Dowiedz się więcej](/docs/models).
+
+---
+
+#### Opcje dostawcy dla dostawcy
+
+inne udostępnienie dodatkowych możliwości wyposażenia poza urządzeniami `timeout` i `apiKey`.
+
+##### Podłoże Amazonki
+
+Amazon Bedrock umożliwia podłączenie wyłącznika dla AWS:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "amazon-bedrock": {
+ "options": {
+ "region": "us-east-1",
+ "profile": "my-aws-profile",
+ "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
+ }
+ }
+ }
+}
+```
+
+- `region` — region AWS dla Bedrock (domyślnie jest do `AWS_REGION` env var lub `us-east-1`)
+- `profile` - profil nazwany AWS z `~/.aws/credentials` (domyślnie `AWS_PROFILE` env var)
+- `endpoint` — niestandardowy adres URL punktu końcowego dla punktów końcowych VPC. Jest to alias dla opcji ogólnej `baseURL` przy użyciu terminologii specjalnej dla AWS. Jeśli oba, pierwszeństwo ma `endpoint`.
+
+:::note
+Token okaziciela (`AWS_BEARER_TOKEN_BEDROCK` lub `/connect`) ma pierwszeństwo przed uwierzytelnianiem opartym na profilu. Aby uzyskać szczegółowe informacje, zobacz [pierwszeństwo uwierzytelniania](/docs/providers#authentication-precedence).
+:::
+
+[Dowiedz się więcej o budowie Amazon Bedrock](/docs/providers#amazon-bedrock).
+
+---
+
+### Motywy
+
+Urządzenie zachęcające do korzystania z urządzeń OpenCode, za pomocą sieci `theme`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "theme": ""
+}
+```
+
+[Dowiedz się więcej tutaj](/docs/themes).
+
+---
+
+### Agencja
+
+Możliwość dostępności agentów do gniazd za pomocą opcji `agent`.
+
+```jsonc title="opencode.jsonc"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "agent": {
+ "code-reviewer": {
+ "description": "Reviews code for best practices and potential issues",
+ "model": "anthropic/claude-sonnet-4-5",
+ "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
+ "tools": {
+ // Disable file modification tools for review-only agent
+ "write": false,
+ "edit": false,
+ },
+ },
+ },
+}
+```
+
+Możesz także uniknąć agentów przy użyciu plików przecen w `~/.config/opencode/agents/` lub `.opencode/agents/`. [Dowiedz się więcej tutaj](/docs/agents).
+
+---
+
+### Domyślny agent
+
+Domyślnego agenta można ustawić za pomocą opcji `default_agent`. Wykrywacz, który jest używany, jeśli nie został ujawniony.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "default_agent": "plan"
+}
+```
+
+Agent domyślny musi być agentem (nie subagentem). Może być agentem aplikacji, taki jak `"build"` lub `"plan"`, albo ukryty przez Ciebie [agent niestandardowy](/docs/agents). Jeśli agent nie istnieje lub jest podagentem, OpenCode powróć do `"build"` z ostrzeżeniem.
+
+Dotyczy urządzeń wszystkich interfejsów: TUI, CLI (`opencode run`), aplikacji komputerowej i akcji GitHub.
+
+---
+
+### Partycypujący
+
+Możesz udostępnić [udostępnij](/docs/share) za pomocą opcji `share`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "share": "manual"
+}
+```
+
+Działaj:
+
+- `"manual"` – Zezwalaj na ręczne korzystanie z pomocy narzędzi (domyślnie)
+- `"auto"` - Automatycznie udostępniaj nowe rozmowy
+- `"disabled"` - Całkowicie udostępnienie
+
+Domyślnie jest rozwiązaniem na tryb medyczny, w którym należy jawnie udostępniać rozmowy za pomocą polecenia `/share`.
+
+---
+
+### Polecenia
+
+Możesz korzystać z usług polecanych dla powtarzalnych zadań za pomocą opcji `command`.
+
+```jsonc title="opencode.jsonc"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "command": {
+ "test": {
+ "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
+ "description": "Run tests with coverage",
+ "agent": "build",
+ "model": "anthropic/claude-haiku-4-5",
+ },
+ "component": {
+ "template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
+ "description": "Create a new component",
+ },
+ },
+}
+```
+
+Można także definiować polecenia przy użyciu plików Markdown w `~/.config/opencode/commands/` lub `.opencode/commands/`. [Dowiedz się więcej tutaj](/docs/commands).
+
+---
+
+### Krótki kluczowy
+
+Możliwość zmiany skrótu klawiszowego za pomocą opcji `keybinds`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "keybinds": {}
+}
+```
+
+[Dowiedz się więcej tutaj](/docs/keybinds).
+
+---
+
+### Automatyczna aktualizacja
+
+OpenCode automatycznie pobierze każde nowe uruchomienie. Można skorzystać z opcji `autoupdate`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "autoupdate": false
+}
+```
+
+Jeśli nie chcesz aktualizacji, ale chcesz podłączyć nową wersję, ustaw `autoupdate` na `"notify"`.
+Działa tylko wtedy, gdy nie jest uruchamiana przy użyciu menedżera pakietów, jak Homebrew.
+
+---
+
+### Formacja
+
+Można podać kod formacyjny za pomocą opcji `formatter`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "formatter": {
+ "prettier": {
+ "disabled": true
+ },
+ "custom-prettier": {
+ "command": ["npx", "prettier", "--write", "$FILE"],
+ "environment": {
+ "NODE_ENV": "development"
+ },
+ "extensions": [".js", ".ts", ".jsx", ".tsx"]
+ }
+ }
+}
+```
+
+[Dowiedz się więcej o formaterach tutaj](/docs/formatters).
+
+---
+
+### Uprawnienia
+
+Domyślnie opencode **zezwala na wszystkie działania** bez konieczności posiadania zgody. Można zmienić opcję `permission`.
+
+Na przykład, aby można było wykryć, że narzędzie `edit` i `bash` wymaga zgody użytkownika:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "ask",
+ "bash": "ask"
+ }
+}
+```
+
+[Dowiedz się więcej o prawach tutaj](/docs/permissions).
+
+---
+
+### Zagęszczanie
+
+Możesz kontrolować zachowanie zagęszczania kontekstu za pomocą opcji `compaction`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "compaction": {
+ "auto": true,
+ "prune": true
+ }
+}
+```
+
+- `auto` - Automatycznie kompaktuj, gdy kontekst jest pełny (domyślnie: `true`).
+- `prune` - Usuń stare dane narzędzia, aby zapisać tokeny (domyślnie: `true`).
+
+---
+
+### Obserwator
+
+Rejestracja wzorca plików za pomocą `watcher`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "watcher": {
+ "ignore": ["node_modules/**", "dist/**", ".git/**"]
+ }
+}
+```
+
+Wzorce są zgodne ze składnią glob. Dostęp tej opcji, aby móc zaszumione katalogi z plikami do przeglądania.
+
+---
+
+### Serwer MPK
+
+Dostęp do serwerów MCP, których chcesz używać, za pośrednictwem sieci `mcp`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {}
+}
+```
+
+[Dowiedz się więcej tutaj](/docs/mcp-servers).
+
+---
+
+### Wtyki
+
+[Wtyczki](/docs/plugins) rozszerzają OpenCode o podstawowe narzędzia, hooki i integracje.
+
+Pliki plików wtyczek w `.opencode/plugins/` lub `~/.config/opencode/plugins/`. Można także włączyć wtyczkę z npm poprzez opcję `plugin`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
+}
+```
+
+[Dowiedz się więcej tutaj](/docs/plugins).
+
+---
+
+### Instrukcja
+
+Instrukcja dla modelu, w której można zastosować opcję `instructions`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
+}
+```
+
+Pobierana do schematów i wzorców globalnych do plików graficznych. [Dowiedz się więcej
+o zasadach tutaj](/docs/rules).
+
+---
+
+### Niepełnosprawny sprzedawca
+
+Zasilacz ładowany automatycznie za pomocą zasilacza `disabled_providers`. Jest to możliwe, gdy istnieje możliwość podłączenia ładowania niektórych dostawców, nawet jeśli dane uwierzytelniające są dostępne.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "disabled_providers": ["openai", "gemini"]
+}
+```
+
+:::note
+`disabled_providers` pierwszeństwo przed `enabled_providers`.
+:::
+
+Opcja `disabled_providers` analiza tablica identyfikatorów dostawców. Gdy dostawca jest wyłączony:
+
+- Nie istnieje możliwość wystąpienia zagrożenia, które jest możliwe do zastosowania.
+- Nie nastąpi uruchomienie, nawet jeśli klucz API zostanie uruchomiony za pomocą polecenia `/connect`.
+- Model dostawcy nie pojawia się na liście wyboru modeli.
+
+---
+
+### Włączeni dostawcy
+
+Można znaleźć dostawców za pomoc `enabled_providers`. Po ustawieniu włączeni tylko dostawcy, a wszyscy będą obecni.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "enabled_providers": ["anthropic", "openai"]
+}
+```
+
+Jest to urządzenie, gdy urządzenie OpenCode jest używane tylko z urządzeniami, zamiast odłączać ich jedno po drugim.
+
+:::note
+`disabled_providers` pierwszeństwo przed `enabled_providers`.
+:::
+
+Jeśli obowiązująsz w `enabled_providers`, jak i `disabled_providers`, `disabled_providers` pierwszeństwo ze względu na kompatybilność wsteczną.
+
+---
+
+### Eksperymentalny
+
+Klucz `experimental` zawiera opcje, które są początkiem rozwoju.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "experimental": {}
+}
+```
+
+:::caution
+Opcje eksperymentalne nie są awaryjne. Jedna zmiana lub zmiana bez zniszczenia.
+:::
+
+---
+
+## Zmienne
+
+Możliwość wykorzystania danych zmiennych w plikach konfiguracyjnych, aby odwoływać się do zmiennych zewnętrznych i zawartości plików.
+
+---
+
+### Kop. zm
+
+zastosowanie `{env:VARIABLE_NAME}`, aby zakończyć zmiennego przebiegu:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "model": "{env:OPENCODE_MODEL}",
+ "provider": {
+ "anthropic": {
+ "models": {},
+ "options": {
+ "apiKey": "{env:ANTHROPIC_API_KEY}"
+ }
+ }
+ }
+}
+```
+
+Jeżeli zmienna kontrolna nie jest skonfigurowana, należy zastosować do niej pusty ciąg znaków.
+
+---
+
+### Akta
+
+źródło `{file:path/to/file}`, aby znaleźć zawartość pliku:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "instructions": ["./custom-instructions.md"],
+ "provider": {
+ "openai": {
+ "options": {
+ "apiKey": "{file:~/.secrets/openai-key}"
+ }
+ }
+ }
+}
+```
+
+Ścieżki plików mogą być:
+
+- Względem katalogu konfiguracyjnego
+- Lub nadrzędne kierowane się od `/` lub `~`
+
+Sądzimy, że:
+
+- Przechowywanie wrażliwych danych, takich jak klucze API, w oddzielnych plikach.
+- Do udostępnienia dużych plików bez zaśmiecania konstrukcji.
+- Udostępnianie fragmentów konfiguracji w wielu plikach konfiguracyjnych.
diff --git a/packages/web/src/content/docs/pl/custom-tools.mdx b/packages/web/src/content/docs/pl/custom-tools.mdx
new file mode 100644
index 000000000..3a49c341d
--- /dev/null
+++ b/packages/web/src/content/docs/pl/custom-tools.mdx
@@ -0,0 +1,170 @@
+---
+title: Narzędzia specjalistyczne
+description: Twórz narzędzi, które LLM mogą być uruchamiane w otwartym kodzie.
+---
+
+Narzędzia stosowane do funkcji, z których LLM może korzystać podczas rozmów. Współpracują z [wbudowanymi narzędziami] (./tools) opencode, wtyczka jak `read`, `write` i `bash`.
+
+---
+
+## Narzędzie do tworzenia
+
+Narzędzia tworzą pliki **TypeScript** lub **JavaScript**. Definicja narzędzia może być odwoływana do skryptów napisanych w **dowolnym języku** — TypeScript lub JavaScript są używane tylko w tym samym narzędziu.
+
+---
+
+### Lokalizacja
+
+Można je uruchomić:
+
+- Lokalnie, umieszczając je w katalogu `.opencode/tools/` swojego projektu.
+- Lub globalnie, umieszczając je w `~/.config/opencode/tools/`.
+
+---
+
+### Struktura
+
+Najłatwiejszym sposobem tworzenia narzędzia jest pomocnika `tool()`, który zapewnia bezpieczeństwo i sprawdzanie poprawności.
+
+```ts title=".opencode/tools/database.ts" {1}
+import { tool } from "@opencode-ai/plugin"
+
+export default tool({
+ description: "Query the project database",
+ args: {
+ query: tool.schema.string().describe("SQL query to execute"),
+ },
+ async execute(args) {
+ // Your database logic here
+ return `Executed query: ${args.query}`
+ },
+})
+```
+
+**Nazwa pliku** staje się **nazwą narzędzia**. Pierwotne narzędzie `database`.
+
+---
+
+#### Wiele narzędzi na plik
+
+Można także eksportować wiele narzędzi z jednego pliku. Każdy eksport staje się **oddzielnym językiem** o nazwie **`<filename>_<exportname>`**:
+
+```ts title=".opencode/tools/math.ts"
+import { tool } from "@opencode-ai/plugin"
+
+export const add = tool({
+ description: "Add two numbers",
+ args: {
+ a: tool.schema.number().describe("First number"),
+ b: tool.schema.number().describe("Second number"),
+ },
+ async execute(args) {
+ return args.a + args.b
+ },
+})
+
+export const multiply = tool({
+ description: "Multiply two numbers",
+ args: {
+ a: tool.schema.number().describe("First number"),
+ b: tool.schema.number().describe("Second number"),
+ },
+ async execute(args) {
+ return args.a * args.b
+ },
+})
+```
+
+Tworzy do dwóch narzędzi: `math_add` i `math_multiply`.
+
+---
+
+### Argumentacja
+
+Do zdefiniowania argumentów można zastosować `tool.schema`, czyli po prostu [Zod](https://zod.dev).
+
+```ts "tool.schema"
+args: {
+ query: tool.schema.string().describe("SQL query to execute")
+}
+```
+
+Można także bezpośrednio zaimportować [Zod](https://zod.dev) i zwyczajowo zwykły obiekt:
+
+```ts {6}
+import { z } from "zod"
+
+export default {
+ description: "Tool description",
+ args: {
+ param: z.string().describe("Parameter description"),
+ },
+ async execute(args, context) {
+ // Tool implementation
+ return "result"
+ },
+}
+```
+
+---
+
+### Kontekst
+
+Narzędzia kontekstowe charakterystycznej sesji:
+
+```ts title=".opencode/tools/project.ts" {8}
+import { tool } from "@opencode-ai/plugin"
+
+export default tool({
+ description: "Get project information",
+ args: {},
+ async execute(args, context) {
+ // Access context information
+ const { agent, sessionID, messageID, directory, worktree } = context
+ return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}, Worktree: ${worktree}`
+ },
+})
+```
+
+`context.directory` jako katalogowy pracodawczy.
+`context.worktree` dla katalogu głównego zwalczającego git.
+
+---
+
+## Przykład
+
+### Napisz narzędzie w Pythonie
+
+Napisz swoje narzędzie w języku angielskim. Oto przykład dodania dwóch liczb przy użyciu języka Python.
+
+Fragment utworu jako skrypt w języku Python:
+
+```python title=".opencode/tools/add.py"
+import sys
+
+a = int(sys.argv[1])
+b = int(sys.argv[2])
+print(a + b)
+```
+
+Utwór instrumentalny, który jest ukryty:
+
+```ts title=".opencode/tools/python-add.ts" {10}
+import { tool } from "@opencode-ai/plugin"
+import path from "path"
+
+export default tool({
+ description: "Add two numbers using Python",
+ args: {
+ a: tool.schema.number().describe("First number"),
+ b: tool.schema.number().describe("Second number"),
+ },
+ async execute(args, context) {
+ const script = path.join(context.worktree, ".opencode/tools/add.py")
+ const result = await Bun.$`python3 ${script} ${args.a} ${args.b}`.text()
+ return result.trim()
+ },
+})
+```
+
+Tutaj istnieje narzędzie [`Bun.$`](https://bun.com/docs/runtime/shell) uruchamiające skryptu w języku Python.
diff --git a/packages/web/src/content/docs/pl/ecosystem.mdx b/packages/web/src/content/docs/pl/ecosystem.mdx
new file mode 100644
index 000000000..774d4d283
--- /dev/null
+++ b/packages/web/src/content/docs/pl/ecosystem.mdx
@@ -0,0 +1,76 @@
+---
+title: Ekosystem
+description: Projekty i integracje zbudowane w OpenCode.
+---
+
+Zgromadzenie stowarzyszenia organizacji na OpenCode.
+
+:::note
+Chcesz zadać swój projekt badawczy z OpenCode do tej listy? Prześlij PR.
+:::
+
+Możesz także sprawdzić [awesome-opencode](https://github.com/awesome-opencode/awesome-opencode) i [opencode.cafe](https://opencode.cafe), grupę skupiającą ekosystem i społeczność.
+
+---
+
+## Wtyki
+
+| Imię | Opis |
+| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
+| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Automatycznie uruchamiaj sesje OpenCode w izolowanych piaskownicach Daytona z synchronizacją git i podglądami na żywo |
+| [sesja-helicone-opencode](https://github.com/H2Shami/opencode-helicone-session) | Automatycznie wstawiaj nagłówki sesji Helicone w celu grupowania urządzeń |
+| [wstrzykiwanie typu opencode](https://github.com/nick-vi/opencode-type-inject) | Automatyczne wstrzykiwacze TypeScript/Svelte do odczytania plików za pomocą narzędzi wyszukiwania |
+| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | wykorzystać do wykorzystania ChatGPT Plus/Pro zamiast kredytu API |
+| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | korzystać z planu Gemini zamiast rozliczeń API |
+| [auth-antygrawitacja-opencode](https://github.com/NoeFabris/opencode-antigravity-auth) | Wykorzystanie z bezpłatnych modeli Antigravity zamiast rozliczeń API |
+| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Izolacja wielooddziałowych kontenerów deweloperskich z płytkami klonami i automatycznie przypisywanymi portami |
+| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Wtyczka Google Antigravity OAuth z obsługą obsługi Google i bardziej niezawodną obsługą API |
+| [czyszczenie-dynamiczne-kontekstu opencode](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Zoptymalizuj wykorzystanie tokena, usuwając przestarzałe dane wyjściowe narzędzia |
+| [cytowane w opencode-websearch](https://github.com/ghoulr/opencode-websearch-cited.git) | Dodaj natywną obsługę wyszukiwania w sieci dla dostawców w stylu opartym na Google |
+| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Uruchomienie agenta AI uruchamiającego się w tle w PTY i wytwarzanie ich interaktywnych danych. |
+| [strategia-powłoki-opencode](https://github.com/JRedeker/opencode-shell-strategy) | Instrukcje dla nieinteraktywnych obowiązków - zaniechanie zawieszenia operacji zależnych od TTY |
+| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Śledź udostępnić OpenCode za pomocą Wakatime |
+| [formatujący tabelę opencode-md](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Oczyść tabelę przecenioną przez LLM |
+| [opencode-szybkie-zastosowanie-morficzne](https://github.com/JRedeker/opencode-morph-fast-apply) | 10x szybsza edycja kodu dzięki Morph Fast Apply API i znacznikom leniwej edycji |
+| [oh-mój-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agencje odpowiedzialne w tle, gotowe narzędzia LSP/AST/MCP, wyselekcjonowani agenci, kompatybilni z Claude Code |
+| [powiadamiacz opencode](https://github.com/panta82/opencode-notificator) | Powiadomienia na pulpicie i alerty dźwiękowe dotyczące sesji OpenCode |
+| [powiadamiający o opencode](https://github.com/mohak34/opencode-notifier) | Powiadomienia na pulpicie i alerty dźwiękowe dotyczące uprawnień, wyników i zdarzeń o błędach |
+| [nazwa-opencode-zellij](https://github.com/24601/opencode-zellij-namer) | Automatyczne nazewnictwo sesji Zellij oparte na sztucznej inteligencji w oparciu o kontekst OpenCode |
+| [umiejętność obsługi opencode](https://github.com/zenobi-us/opencode-skillful) | Zezwalaj agentom OpenCode na leniwe ładowanie podpowiedzi na podstawie odkrywania możliwości i wstrzykiwania |
+| [superpamięć opencode](https://github.com/supermemoryai/opencode-supermemory) | Trwała pamięć w sesjach przy użyciu Supermemory |
+| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Interaktywny przegląd planu z adnotacją wizualną i użytkową prywatną/offline |
+| [@openspoon/podzadanie2](https://github.com/spoons-and-mirrors/subtask2) | Rozszerzony kod otwarty/polecenia do połączenia sieciowego ze szczegółową kontrolą bezpieczeństwa |
+| [program planujący opencode](https://github.com/different-ai/opencode-scheduler) | Zaplanuj powtarzające się zadania, używając launchd (Mac) lub systemd (Linux) ze składaną cron |
+| [mikod](https://github.com/vtemian/micode) | Ustrukturyzowana burza mózgów → Plan → Wdrożenie wyjścia z ciągłością sesji |
+| [okto](https://github.com/vtemian/octto) | Interaktywny interfejs do burzy mózgów AI z formularzami kontrolnymi wielu pytań |
+| [agencja-w tle opencode](https://github.com/kdcokenny/opencode-background-agents) | Agencje krytyczne w tle w stylu Claude Code z delegowaniem asynchronicznym i trwałością kontekstu |
+| [powiadomienie o opencode](https://github.com/kdcokenny/opencode-notify) | Natywne uruchomienie systemu dla OpenCode – wiesz, kiedy zadania zostaną zakończone |
+| [obszar roboczy opencode](https://github.com/kdcokenny/opencode-workspace) | Lista wiązek orkiestracji wieloagentowej – 16 dostępna, jedna instalacja |
+| [drzewo robocze opencode](https://github.com/kdcokenny/opencode-worktree) | Drzewa robocze Git o zerowym tarciu dla OpenCode |
+
+---
+
+## Projektowanie
+
+| Imię | Opis |
+| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
+| [kimaki](https://github.com/remorses/kimaki) | Bot Discord do kontrolowania sesji OpenCode, zbudowany na SDK |
+| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Wtyczka Neovim do podpowiedzi, zbudowana w oparciu o API |
+| [portal](https://github.com/hosenur/portal) | Interfejs sieciowy do urządzeń mobilnych dla OpenCode poprzez Tailscale/VPN |
+| [szablon wtyczki opencode](https://github.com/zenobi-us/opencode-plugin-template/) | Szablon do budowy wtyczek OpenCode |
+| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Frontend Neovim dla opencode - agent kodujący AI oparty na terminalu |
+| [ai-sdk-provider-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Stosowanie Vercel AI SDK do użytku z OpenCode poprzez @opencode-ai/sdk |
+| [OpenChamber](https://github.com/btriapitsyn/openchamber) | Aplikacja internetowa/stacjonarna i rozszerzenie VS Code dla OpenCode |
+| [OpenCode-Obsydian](https://github.com/mtymek/opencode-obsidian) | Wtyczka Obsidian osadzająca OpenCode w interfejsie użytkownika Obsidian |
+| [OpenWork](https://github.com/different-ai/openwork) | Alternatywa typu open source dla Claude Cowork, obsługa przez OpenCode |
+| [ocx](https://github.com/kdcokenny/ocx) | Menedżer rozszerzony OpenCode z przenośnymi, izolowanymi profilami. |
+| [CodeNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Aplikacja komputerowa, internetowa, mobilna i zdalna dla OpenCode |
+
+---
+
+## Agencja
+
+| Imię | Opis |
+| ----------------------------------------------------------------- | ------------------------------------------------------------ |
+| [Agent](https://github.com/Cluster444/agentic) | Modułowi agencje i polecenia AI do rozwoju strukturalnego |
+| [agencja-opencode](https://github.com/darrenhinde/opencode-agents) | Konfiguracje, podpowiedzi, agencje i wtyczki usprawniające przepływ pracy |
diff --git a/packages/web/src/content/docs/pl/enterprise.mdx b/packages/web/src/content/docs/pl/enterprise.mdx
new file mode 100644
index 000000000..4ed4b6b65
--- /dev/null
+++ b/packages/web/src/content/docs/pl/enterprise.mdx
@@ -0,0 +1,170 @@
+---
+title: Przedsiębiorstwo
+description: Bezpieczne korzystanie z OpenCode w Twojej organizacji.
+---
+
+import config from "../../../../config.mjs"
+export const email = `mailto:${config.email}`
+
+OpenCode Przedsiębiorstwo jest przeznaczone dla organizacji, która ma dostęp do zasobów, że ich kod i dane nigdy nie opuszczą infrastruktury. Może zostać zarejestrowany za pomocą zapachuralizowanej konfiguracji, która integruje się z logowaniem jednokrotnym i uruchomieniem bramą AI.
+
+:::note
+OpenCode nie przechowuje żadnego kodu ani danych kontekstowych.
+:::
+
+Aby skorzystać z pracy z OpenCode Przedsiębiorstwo:
+
+1. Przeprowadź próbę wewnętrzną ze swoim systemem.
+2. **<a href={email}>Skontaktuj się z nami</a>**, aby omówić ceny i opcję konfiguracji.
+
+---
+
+## Test
+
+OpenCode jest oprogramowaniem typu open source i nie przechowuje żadnego kodu ani danych kontekstowych, więc programiści mogą po prostu [zacząć](/docs/) i próbować próbną.
+
+---
+
+### Obsługa danych
+
+**OpenCode nie dotyczy kodu źródłowego ani danych kontekstowych.** Całe zdarzenie odbywa się lokalnie lub poprzez bezpośrednio wywołane API do twojego dostawcy AI.
+
+to, że korzystasz z usług dostawcy, lub dostawcy zaufania
+Brama AI, możesz bezpłatnie korzystać z OpenCode.
+
+Zastrzeżeniem jest opcjonalna funkcja `/share`.
+
+---
+
+#### Dzielenie się rozmowami
+
+Jeśli użytkownicy są połączeni z `/share`, połączenie jest połączone z danymi, które zostały przesłane do usług, które są udostępniane przez hosty tych użytkowników w opencode.ai.
+
+Dane są aktualnie dostępne przez sieć brzegową naszego CDN i są buforowane na brzegu w pobliżu Twoich użytkowników.
+
+Zalecamy tę opcję na okres próbny.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "share": "disabled"
+}
+```
+
+[Więcej informacji o udostępnianiu](/docs/share).
+
+---
+
+### Własność kodu
+
+**Jesteś właścicielem całości kodu źródłowego przez OpenCode.** Nie ma żadnych ograniczeń licencyjnych ani należących do własności.
+
+---
+
+## Wycena
+
+W przypadku OpenCode Enterprise model per-seat. Jeśli posiadasz własną bramkę LLM, nie pobieramy opłat za korzystanie z tokenów. Aby uzyskać więcej informacji na temat, jeśli jest możliwe, **<a href={email}>skontaktuj się z nami</a>**.
+
+---
+
+## Zastosowanie
+
+Gdy zasięgsz okres próbny i nadzorujesz użytkowanie z OpenCode na
+swoją organizację, możesz **<a href={email}>skontaktować się z nami</a>**, aby omówić te dźwięki
+opcja cenowa i wdrożeniowa.
+
+---
+
+### Konfiguracja centralna
+
+Możliwości wykorzystania OpenCode tak, aby skorzystać z jednego zastosowania dla całej organizacji.
+
+Tę zapachową konfigurację można zintegrować z dostawcą SSO i specyfikacje wszyscy użytkownicy mają dostęp wyłącznie do bram wewnętrznych AI.
+
+---
+
+### Integracja SSO
+
+Dzięki zastosowaniu konfiguracji OpenCode może zostać włączone z dostawcą SSO Twojej organizacji w celu uwierzytelnienia.
+
+Dzięki temu OpenCode może uzyskać dane uwierzytelniające dla wewnętrznej bramy AI za pośrednictwem transmisji systemu zarządzania tożsamością.
+
+---
+
+### Wewnętrzna bramka AI
+
+Dzięki zastosowaniu konfiguracji OpenCode można również skorzystać z tego, że można korzystać tylko z wewnętrznych bram AI.
+
+Możesz także dołączyć do wszystkich innych dostawców sztucznej inteligencji, upewniając się, że wszystkie elementy przechodzą przez zatwierdzenie wykorzystania Twojej organizacji.
+
+---
+
+### Hosting własny
+
+Zalecamy, aby można było je udostępnić, aby Twoje dane nigdy nie zostały opuszczone
+Twoja organizacja może być pomocna w utrzymaniu ich w Twojej infrastrukturze.
+
+Jest to obecnie w naszym planie działania. Jeśli jesteś zainteresowany, **<a href={email}>daj nam znać</a>**.
+
+---
+
+## Często zadawane pytania
+
+<details>
+<summary>What is OpenCode Enterprise?</summary>
+
+OpenCode Przedsiębiorstwo jest przeznaczone dla organizacji, która ma dostęp do zasobów, że ich kod i dane nigdy nie opuszczą infrastruktury. Może zostać zarejestrowany za pomocą zapachuralizowanej konfiguracji, która integruje się z logowaniem jednokrotnym i uruchomieniem bramą AI.
+
+</details>
+
+<details>
+<summary>How do I get started with OpenCode Enterprise?</summary>
+
+Po prostu uruchom wersję próbną ze swoim. OpenCode urządzenia niezabezpieczone kodu ani danych kontekstowych, co ułatwia uruchomienie pracy.
+
+**<a href={email}>skontaktuj się z nami</a>**, aby omówić ceny i wybrać opcję.
+
+</details>
+
+<details>
+<summary>How does enterprise pricing work?</summary>
+
+Oferujemy ceny korporacyjne za jedno stanowisko. Jeśli posiadasz własną bramkę LLM, nie pobieramy opłat za korzystanie z tokenów. Aby uzyskać więcej informacji, **<a href={email}>skontaktuj się z nami</a>**, aby uzyskać wynik określony dla potrzeb Twojej organizacji.
+
+</details>
+
+<details>
+<summary>Is my data secure with OpenCode Enterprise?</summary>
+
+Tak. OpenCode nie przechowuje kodu ani danych kontekstowych. Całe zdarzenie odbywa się lokalnie lub poprzez bezpośrednie wywołanie API przez dostawcę AI. Dostęp do konfiguracji i integracji z logowaniem jednokrotnym Twoje dane pozostają bezpieczne w infrastrukturze organizacji.
+
+</details>
+
+<details>
+<summary>Can we use our own private NPM registry?</summary>
+
+OpenCode obsługuje prywatny rejestry npm poprzez natywną usługę plików `.npmrc` Buna. Jeśli Twoja organizacja korzysta z rejestru prywatnego, takiego jak JFrog Artifactory, Nexus lub wylot, przed uruchomieniem OpenCode się, że programiści zostali uwierzytelnieni.
+
+Aby zapewnić uwierzytelnianie w rejestrze prywatnym:
+
+```bash
+npm login --registry=https://your-company.jfrog.io/api/npm/npm-virtual/
+```
+
+Spowoduje to do `~/.npmrc` ze szczegółami uwierzytelniania. OpenCode zrobi to automatycznie
+podniesc do.
+
+:::caution
+Przed uruchomieniem OpenCode musisz być zalogowany do rejestru prywatnego.
+:::
+
+Alternatywnie możesz skorzystać z pliku `.npmrc`:
+
+```bash title="~/.npmrc"
+registry=https://your-company.jfrog.io/api/npm/npm-virtual/
+//your-company.jfrog.io/api/npm/npm-virtual/:_authToken=${NPM_AUTH_TOKEN}
+```
+
+Programiści muszą się zgłosić do rejestru prywatnego przed uruchomieniem OpenCode, aby mieć dostęp, że pakiety będą dostępne z rejestru przedsiębiorstwa.
+
+</details>
diff --git a/packages/web/src/content/docs/pl/formatters.mdx b/packages/web/src/content/docs/pl/formatters.mdx
new file mode 100644
index 000000000..d2a0181fb
--- /dev/null
+++ b/packages/web/src/content/docs/pl/formatters.mdx
@@ -0,0 +1,130 @@
+---
+title: Formatery
+description: OpenCode używa formaterów specyficznych dla języka.
+---
+
+OpenCode automatycznie formatuje pliki po ich zapisaniu lub edycję przy użyciu formaterów przesyłanych dla języka. Dzięki temu wygenerowany kod będzie używany ze stylami kodu Twojego projektu.
+
+---
+
+## Wbudowany
+
+OpenCode zawiera kilka wbudowanych formaterów dla nauki języków i frameworków. Zawiera listę formaterów, rozszerzonych plików oraz rozszerzenia i konfiguratory, których potrzebujesz.
+
+| Formater | Rozszerzenia | Wymagania |
+| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| gofmt | .idź | Komenda `gofmt` dostępna |
+| ryzyko | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Komenda `mix` dostępna |
+| ładniejsza | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [więcej](https://prettier.io/docs/en/index.html) | Zależność `prettier` w `package.json` |
+| biom | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml i [więcej](https://biomejs.dev/) | `biome.json(c)` plik konfiguracyjny |
+| zyg | .zig, .zon | Komenda `zig` dostępna |
+| formatuj brzęk | .c, .cpp, .h, .hpp, .ino i [więcej](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` plik konfiguracyjny |
+| ktlint | .kt, .kts | Komenda `ktlint` dostępna |
+| kryza | .py, .pyi | Komenda `ruff` dostępna w konstrukcji |
+| rustfmt | .rs | Komenda `rustfmt` dostępna |
+| załadunek | .rs | Komenda `cargo fmt` dostępna |
+| UV | .py, .pyi | Komenda `uv` dostępna |
+| rubocop | .rb, .rake, .gemspec, .ru | Komenda `rubocop` dostępna |
+| standardowe | .rb, .rake, .gemspec, .ru | Komenda `standardrb` dostępna |
+| htmlupiększacz | .erb, .html.erb | Komenda `htmlbeautifier` dostępna |
+| powietrze | .R | Komenda `air` dostępna |
+| strzałka | .dart | Komenda `dart` dostępna |
+| formatuj ocaml | .ml, .mli | Dostępna opcja `ocamlformat` i plik konfiguracyjny `.ocamlformat` |
+| terraforma | .tf, .tfvars | Komenda `terraform` dostępna |
+| blask | .blask | Komenda `gleam` dostępna |
+| nixfmt | .nix | Komenda `nixfmt` dostępna |
+| shfmt | .sh, .bash | Komenda `shfmt` dostępna |
+| kufel | .php | Zależność `laravel/pint` w `composer.json` |
+| oxfmt (eksperymentalny) | .js, .jsx, .ts, .tsx | wykonanie `oxfmt` w `package.json` i [flaga eksperymentalna zmienna env](/docs/cli/#experimental) |
+| ormolu | .hs | Komenda `ormolu` dostępna |
+
+Jeśli więc Twój projekt zawiera `prettier` w `package.json`, OpenCode automatycznie przejdź do podmiote.
+
+---
+
+## Jak to działa
+
+Kiedy OpenCode zapisuje lub edytuje plik:
+
+1. Badanie pliku dotyczącego wszystkich danych formaterów.
+2. Uruchamia decyzje wykonawcze formatujące na plik.
+3. Automatycznie stosuje zmiany formatowania.
+
+Dziesięć procesów zachodzi w tle, konieczne jest zachowanie stylów kodu bez konieczności wykonania czynności czynnościowych.
+
+---
+
+## Skonfiguruj
+
+Można dostosować formatery za pomocą sekcji `formatter` w konstrukcji OpenCode.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "formatter": {}
+}
+```
+
+obsługiwane formatyzator Zobacz elementy:
+
+| Nieruchomość | Wpisz | Opis |
+| ------------- | -------- | ------------------------------------------------------- |
+| `disabled` | wartość logiczna | Ustaw tę opcję na `true`, aby wyłączyć formater |
+| `command` | ciąg[] | Polecenie uruchomienia formatowania |
+| `environment` | obiekt | Zmienne ustawienia do ustawień podczas uruchamiania programu formatującego |
+| `extensions` | ciąg[] | Rozszerzenia plików, które powinny opuścić ten formater |
+
+Spójrzmy na kilka przykładów.
+
+---
+
+### Wyłączanie formaterów
+
+Aby globalnie wyłączyć **wszystkie** formatery, ustaw `formatter` na `false`:
+
+```json title="opencode.json" {3}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "formatter": false
+}
+```
+
+Aby wyłączyć **określony** formater, ustaw `disabled` na `true`:
+
+```json title="opencode.json" {5}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "formatter": {
+ "prettier": {
+ "disabled": true
+ }
+ }
+}
+```
+
+---
+
+### Niestandardowe formatery
+
+Może wystąpić, gdyby nastąpiło nowe, uruchomienie, zmienne udostępnienie i udostępnienie plików:
+
+```json title="opencode.json" {4-14}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "formatter": {
+ "prettier": {
+ "command": ["npx", "prettier", "--write", "$FILE"],
+ "environment": {
+ "NODE_ENV": "development"
+ },
+ "extensions": [".js", ".ts", ".jsx", ".tsx"]
+ },
+ "custom-markdown-formatter": {
+ "command": ["deno", "fmt", "$FILE"],
+ "extensions": [".md"]
+ }
+ }
+}
+```
+
+Symbol zastępczy **`$FILE`** w poleceniu pochodziony z formatowanego pliku.
diff --git a/packages/web/src/content/docs/pl/github.mdx b/packages/web/src/content/docs/pl/github.mdx
new file mode 100644
index 000000000..9511d1b32
--- /dev/null
+++ b/packages/web/src/content/docs/pl/github.mdx
@@ -0,0 +1,321 @@
+---
+title: GitHub
+description: Użyj OpenCode w problemach z GitHubem i zastosujch ściągnięcia.
+---
+
+OpenCode integruje się z przepływem pracy w GitHub. Wspomnij o `/opencode` lub `/oc` w swoim komentarzu, a OpenCode wykonaj zadania w ramach modułu uruchamiającego GitHub Actions.
+
+---
+
+## Cechy
+
+- **Problem związany z segregacją**: Poproś OpenCode o szczegółowe wyjaśnienie problemu i wyjaśnienie go.
+- **Napraw i zaimplementuj**: Poproś OpenCode o naprawienie problemu lub zaimplementowanie funkcji. Będzie dostępny w następnym oddziale i wysyłać PR ze stosowaniem dodatku.
+- **Bezpieczny**: OpenCode działa w modułach sprzętowych GitHuba.
+
+---
+
+## Instalacja
+
+Uruchomione dalsze postępowanie w przypadku wystąpienia w repozytorium GitHub:
+
+```bash
+opencode github install
+```
+
+Aby przeprowadzić Cię przez proces instalacji aplikacji GitHub, utwórz działanie i skonfiguruj wpisy tajnych.
+
+---
+
+### Konfiguracja ręczna
+
+Można też uszkodzić to rozwiązanie.
+
+1. **Zainstaluj aplikację GitHub**
+
+ Wejdź na [**github.com/apps/opencode-agent**](https://github.com/apps/opencode-agent). wystąpienie się, że jest natychmiastowe w repozytorium usuwam.
+
+2. **Dodaj przepływ pracy**
+
+ Dodaj zdalny plik pracy do `.github/workflows/opencode.yml` w swoim repozytorium. wystąpił, że ustawiłeś sędziego `model` i wymagany klucz API w `env`.
+
+ ```yml title=".github/workflows/opencode.yml" {24,26}
+ name: opencode
+
+ on:
+ issue_comment:
+ types: [created]
+ pull_request_review_comment:
+ types: [created]
+
+ jobs:
+ opencode:
+ if: |
+ contains(github.event.comment.body, '/oc') ||
+ contains(github.event.comment.body, '/opencode')
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ fetch-depth: 1
+ persist-credentials: false
+
+ - name: Run OpenCode
+ uses: anomalyco/opencode/github@latest
+ env:
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ with:
+ model: anthropic/claude-sonnet-4-20250514
+ # share: true
+ # github_token: xxxx
+ ```
+
+3. **Przechowuj klucze API w tajemnicy**
+
+ W **ustawieniach** swojej organizacji lub projektu rozwiń **Sekretne i zmienne** po lewej stronie i wybierz **Działania**. Dodałem wymagane klucze API.
+
+---
+
+## Konfiguracja
+
+- `model`: Model używany z OpenCode. Przyjmuje format `provider/model`. To **wymagane**.
+- `agent`: Agent, którego należy używać. Musi być odległym agentem. Wraca do `default_agent` z konfiguracją lub `"build"`, jeśli nie został znaleziony.
+- `share`: Czyć funkcję sesji OpenCode. Domyślnie **true** dla repozytoriów publicznych.
+- `prompt`: Opcjonalny niestandardowy monit o zastąpienie przestrzegania zachowania. Wykorzystanie tego, aby dostosować sposób przetwarzania przez OpenCode.
+- `token`: opcjonalny token dostępu GitHub podstawowe operacje, takie jak tworzenie komentarzy, zatwierdzanie zmian i otwieranie zastosowania ściągnięcia. Domyślnie OpenCode używa tokena dostępu do instalacji z aplikacji OpenCode GitHub, więc zatwierdzenia, komentarze i zasady ściągnięcia widoczne jako źródło z aplikacji.
+
+ Alternatywnie możesz użyć [wbudowanego `GITHUB_TOKEN`](https://docs.github.com/en/actions/tutorials/authenticate-with-github_token) modułu uruchamiającego GitHub Action bez instalacji aplikacji OpenCode GitHub. Pamiętaj tylko o przyznaniu wymaganych mocy w przepływie pracy:
+
+ ```yaml
+ permissions:
+ id-token: write
+ contents: write
+ pull-requests: write
+ issues: write
+ ```
+
+ Jeśli chcesz, możesz także użyć [osobistych tokenów dostępu](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)(PAT).
+
+---
+
+## Obsługiwane wydarzenia
+
+OpenCode może zostać wywołany przez zdarzenie GitHub:
+
+| Typ zdarzenia | Wywołane przez | Szczegóły |
+| ----------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
+| `issue_comment` | Skomentuj problem lub PR | Wspomnij o `/opencode` lub `/oc` w swoim komentarzu. OpenCode odczytuje kontekst i może być częścią składową, otwieraną przez PR lub odpowiedzialną. |
+| `pull_request_review_comment` | Komentarz określonym kodem w PR | Wspomnij o `/opencode` lub `/oc` podczas przeglądania kodu. OpenCode źródło pochodzenia, numery linii i kontekst różnicowy. |
+| `issues` | Wydanie otwarte lub edytowane | Automatycznie wyzwalaj OpenCode po utworzeniu lub zmodyfikowaniu problemów. Wymaga wejścia `prompt`. |
+| `pull_request` | PR otwarty lub zaktualizowany | Automatycznie wyzwalaj OpenCode, gdy PR są otwierane, synchronizowane lub ponownie otwierane. Przydatne w przypadku automatycznych znajomych. |
+| `schedule` | Harmonogram oparty na Cron | Uruchom OpenCode zgodnie z harmonogramem. Wymagane wejście `prompt`. Dane wejściowe trafiają do dzienników i trafiań PR (nie ma problemu z recenzją). |
+| `workflow_dispatch` | Ręczny wyłącznik z interfejsu użytkownika GitHub | Uruchom OpenCode na karcie Akcje. Wymagane wejście `prompt`. Dane wejściowe trafiają do dzienników i odbiorców PR. |
+
+### Przykład harmonogramu
+
+Uruchamiaj OpenCode zgodnie z harmonogramem, aby wykonać zautomatyzowane zadania:
+
+```yaml title=".github/workflows/opencode-scheduled.yml"
+name: Scheduled OpenCode Task
+
+on:
+ schedule:
+ - cron: "0 9 * * 1" # Every Monday at 9am UTC
+
+jobs:
+ opencode:
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ contents: write
+ pull-requests: write
+ issues: write
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+
+ - name: Run OpenCode
+ uses: anomalyco/opencode/github@latest
+ env:
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ with:
+ model: anthropic/claude-sonnet-4-20250514
+ prompt: |
+ Review the codebase for any TODO comments and create a summary.
+ If you find issues worth addressing, open an issue to track them.
+```
+
+W przypadku wystąpienia danych wyjściowych `prompt` są **wymagane**, które nie są dostarczane, z których można wyodrębnić instrukcje. Zaplanowane przepływomierze pracy bez kontekstu użytkownika, który został uruchomiony, więc przepływ pracy musi `contents: write` i `pull-requests: write`, wystąpisz, że OpenCode utworzył główne lub PR.
+
+---
+
+### Przykład żądania ściągnięcia
+
+Automatycznie przeglądaj żądania ściągnięcia po ich otwarciu lub aktualizacji:
+
+```yaml title=".github/workflows/opencode-review.yml"
+name: opencode-review
+
+on:
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+
+jobs:
+ review:
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ contents: read
+ pull-requests: read
+ issues: read
+ steps:
+ - uses: actions/checkout@v6
+ with:
+ persist-credentials: false
+ - uses: anomalyco/opencode/github@latest
+ env:
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ model: anthropic/claude-sonnet-4-20250514
+ use_github_token: true
+ prompt: |
+ Review this pull request:
+ - Check for code quality issues
+ - Look for potential bugs
+ - Suggest improvements
+```
+
+W przypadku zdarzenia `pull_request`, jeśli nie podano `prompt`, OpenCode użytkownika przeglądającego ściągnięcie.
+
+---
+
+### Przykład segregacji problemów
+
+Automatycznie segreguj nowe problemy. Dziesięć przykładów filtruje do kont starszych niż 30 dni w celu ograniczenia spamu:
+
+```yaml title=".github/workflows/opencode-triage.yml"
+name: Issue Triage
+
+on:
+ issues:
+ types: [opened]
+
+jobs:
+ triage:
+ runs-on: ubuntu-latest
+ permissions:
+ id-token: write
+ contents: write
+ pull-requests: write
+ issues: write
+ steps:
+ - name: Check account age
+ id: check
+ uses: actions/github-script@v7
+ with:
+ script: |
+ const user = await github.rest.users.getByUsername({
+ username: context.payload.issue.user.login
+ });
+ const created = new Date(user.data.created_at);
+ const days = (Date.now() - created) / (1000 * 60 * 60 * 24);
+ return days >= 30;
+ result-encoding: string
+
+ - uses: actions/checkout@v6
+ if: steps.check.outputs.result == 'true'
+ with:
+ persist-credentials: false
+
+ - uses: anomalyco/opencode/github@latest
+ if: steps.check.outputs.result == 'true'
+ env:
+ ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
+ with:
+ model: anthropic/claude-sonnet-4-20250514
+ prompt: |
+ Review this issue. If there's a clear fix or relevant docs:
+ - Provide documentation links
+ - Add error handling guidance for code examples
+ Otherwise, do not comment.
+```
+
+W przypadku zdarzenia `issues` wprowadzenie `prompt` jest **wymagane**, ponieważ nie ma komentarza, z którego można wyodrębnić instrukcje.
+
+---
+
+## Niestandardowe monity
+
+Zastąp domyślne monit, aby zastosować zachowanie OpenCode do twojego własnego pracy.
+
+```yaml title=".github/workflows/opencode.yml"
+- uses: anomalyco/opencode/github@latest
+ with:
+ model: anthropic/claude-sonnet-4-5
+ prompt: |
+ Review this pull request:
+ - Check for code quality issues
+ - Look for potential bugs
+ - Suggest improvements
+```
+
+Jest to przepis wykonawczy, który podlega przepisom kodowania lub zakresów tematycznych dla twojego projektu.
+
+---
+
+## Przykłady
+
+Oto kilka możliwości wykorzystania OpenCode w GitHubie.
+
+- **Wyjaśnij problem**
+
+ Dodaj dziesięć komentarzy w numerze GitHub.
+
+ ```
+ /opencode explain this issue
+ ```
+
+ OpenCode przeczytaj całość, zawierając dodatek z komentarzami i odpowiedzią z jasnym wyjaśnieniem.
+
+- **Napraw problem**
+
+ W numerze GitHub powiedz:
+
+ ```
+ /opencode fix this
+ ```
+
+ A OpenCode utworzy nową podstawę, wdroży zmiany i zastąpi PR ze zmiany.
+
+- **Przegląd zmiany PR i wprowadzenie zmiany**
+
+ Zostaw komentarz w PR GitHub.
+
+ ```
+ Delete the attachment from S3 when the note is removed /oc
+ ```
+
+ OpenCode zaimplementuje uruchomioną zmianę i zatwierdzi ją do tego samego PR.
+
+- **Przejrzyj konkretne linie kodu**
+
+ Zostaw komentarz bezpośrednio w wierszu kodu w dodatku „Pliki” PR. OpenCode automatyczne wykrywanie pliku, numery linii i kontekst różnicowy, aby sprawdzić odpowiedzi.
+
+ ```
+ [Comment on specific lines in Files tab]
+ /oc add error handling here
+ ```
+
+ Komentując określone linie, OpenCode otrzymuje:
+ - Dokładny plik, który jest sprawdzany
+ - Konkretne linie kodu
+ - Otaczający kontekst różnicowy
+ - Informacje o numerze linii
+
+ Dostępne na bardziej szczegółowe rozwiązanie bez konieczności stosowania ręcznego określania plików lub numerów wierszy.
diff --git a/packages/web/src/content/docs/pl/gitlab.mdx b/packages/web/src/content/docs/pl/gitlab.mdx
new file mode 100644
index 000000000..72b78f067
--- /dev/null
+++ b/packages/web/src/content/docs/pl/gitlab.mdx
@@ -0,0 +1,195 @@
+---
+title: GitLab
+description: użyj OpenCode w problemach z GitLabem i zastosujch scalania.
+---
+
+OpenCode integruje się z przepływem pracy GitLab poprzez potok GitLab CI/CD lub z GitLab Duo.
+
+W obu przypadkach OpenCode będzie modułem GitLab.
+
+---
+
+## GitLab CI
+
+OpenCode działa w zwykłym potoku GitLab. Możesz wbudować go w potok jako [komponent CI](https://docs.gitlab.com/ee/ci/components/)
+
+Tutaj obowiązkowego przez społeczność komponentu CI/CD dla OpenCode — [nagyv/gitlab-opencode](https://gitlab.com/nagyv/gitlab-opencode).
+
+---
+
+### Cechy
+
+- **Użyj konfiguracji dla każdego zadania**: Skonfiguruj OpenCode z niestandardowym katalogiem konfiguracyjnym, na przykładzie `./config/#custom-directory`, aby włączyć lub funkcjonalności na każde wywołanie OpenCode.
+- **Konfiguracja minimalna**: Komponent CI konfiguruje OpenCode w tle, wystarczy skonfigurować OpenCode i początkowy monit.
+- **Elastyczny**: Komponent CI obsługuje kilka danych, które są stosowane w celu dostosowania jego zachowania
+
+---
+
+### Organizować coś
+
+1. Przechowuj dane uwierzytelniające OpenCode w formacie JSON jako zmienne parametry CI typu pliku w specyfikacji **Ustawienia** > **CI/CD** > **Zmienne**. Zachowaj, aby być oznaczony jako „Zamaskowane i ukryte”.
+2. Dodaj elementy do swojego pliku `.gitlab-ci.yml`.
+
+ ```yaml title=".gitlab-ci.yml"
+ include:
+ - component: $CI_SERVER_FQDN/nagyv/gitlab-opencode/opencode@2
+ inputs:
+ config_dir: ${CI_PROJECT_DIR}/opencode-config
+ auth_json: $OPENCODE_AUTH_JSON # The variable name for your OpenCode authentication JSON
+ command: optional-custom-command
+ message: "Your prompt here"
+ ```
+
+Więcej danych dotyczących użycia [sprawdź opis](https://gitlab.com/explore/catalog/nagyv/gitlab-opencode) tego komponentu.
+
+---
+
+## Duet GitLab
+
+OpenCode integruje się z przepływem pracy GitLab.
+Wspomnij o `@opencode` w komentarzu, a OpenCode wykonaj zadania w ramach swojego potoku GitLab CI.
+
+---
+
+### Cechy
+
+- **Problem związany z segregacją**: Poproś OpenCode o szczegółowe wyjaśnienie problemu i wyjaśnienie go.
+- **Napraw i zaimplementuj**: Poproś OpenCode o naprawienie problemu lub zaimplementowanie funkcji.
+ Utworzył nowy oddział i zgłosi ataku ze sobą.
+- **Bezpieczny**: OpenCode działa na modułach GitLab.
+
+---
+
+### Organizować coś
+
+OpenCode działa w potoku CI/CD GitLab. Oto, czego potrzebujesz, aby przejść do:
+
+:::tip
+Aktualne instrukcje dotyczące [**dokumentacji GitLab**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/).
+:::
+
+1. Skonfiguruj swoje środowisko GitLab
+2. Skonfiguruj CI/CD
+3. Uzyskaj klucz API dostawca modelu AI
+4. Utwórz konto usługi
+5. Skonfiguruj zmienne CI/CD
+6. Utwórz plik konfiguracyjny, oto przykład:
+
+ <details>
+
+ <summary>Flow configuration</summary>
+
+ ```yaml
+ image: node:22-slim
+ commands:
+ - echo "Installing opencode"
+ - npm install --global opencode-ai
+ - echo "Installing glab"
+ - export GITLAB_TOKEN=$GITLAB_TOKEN_OPENCODE
+ - apt-get update --quiet && apt-get install --yes curl wget gpg git && rm --recursive --force /var/lib/apt/lists/*
+ - curl --silent --show-error --location "https://raw.githubusercontent.com/upciti/wakemeops/main/assets/install_repository" | bash
+ - apt-get install --yes glab
+ - echo "Configuring glab"
+ - echo $GITLAB_HOST
+ - echo "Creating OpenCode auth configuration"
+ - mkdir --parents ~/.local/share/opencode
+ - |
+ cat > ~/.local/share/opencode/auth.json << EOF
+ {
+ "anthropic": {
+ "type": "api",
+ "key": "$ANTHROPIC_API_KEY"
+ }
+ }
+ EOF
+ - echo "Configuring git"
+ - git config --global user.email "[email protected]"
+ - git config --global user.name "OpenCode"
+ - echo "Testing glab"
+ - glab issue list
+ - echo "Running OpenCode"
+ - |
+ opencode run "
+ You are an AI assistant helping with GitLab operations.
+
+ Context: $AI_FLOW_CONTEXT
+ Task: $AI_FLOW_INPUT
+ Event: $AI_FLOW_EVENT
+
+ Please execute the requested task using the available GitLab tools.
+ Be thorough in your analysis and provide clear explanations.
+
+ <important>
+ Please use the glab CLI to access data from GitLab. The glab CLI has already been authenticated. You can run the corresponding commands.
+
+ If you are asked to summarize an MR or issue or asked to provide more information then please post back a note to the MR/Issue so that the user can see it.
+ You don't need to commit or push up changes, those will be done automatically based on the file changes you make.
+ </important>
+ "
+ - git checkout --branch $CI_WORKLOAD_REF origin/$CI_WORKLOAD_REF
+ - echo "Checking for git changes and pushing if any exist"
+ - |
+ if ! git diff --quiet || ! git diff --cached --quiet || [ --not --zero "$(git ls-files --others --exclude-standard)" ]; then
+ echo "Git changes detected, adding and pushing..."
+ git add .
+ if git diff --cached --quiet; then
+ echo "No staged changes to commit"
+ else
+ echo "Committing changes to branch: $CI_WORKLOAD_REF"
+ git commit --message "Codex changes"
+ echo "Pushing changes up to $CI_WORKLOAD_REF"
+ git push https://gitlab-ci-token:$GITLAB_TOKEN@$GITLAB_HOST/gl-demo-ultimate-dev-ai-epic-17570/test-java-project.git $CI_WORKLOAD_REF
+ echo "Changes successfully pushed"
+ fi
+ else
+ echo "No git changes detected, skipping push"
+ fi
+ variables:
+ - ANTHROPIC_API_KEY
+ - GITLAB_TOKEN_OPENCODE
+ - GITLAB_HOST
+ ```
+
+ </details>
+
+Szczegółowe instrukcje w [dokumentacji agentów GitLab CLI](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/).
+
+---
+
+### Przykłady
+
+Oto kilka możliwości wykorzystania OpenCode w GitLabie.
+
+:::tip
+Można zastosować inną metodę ograniczającą niż `@opencode`.
+:::
+
+- **Wyjaśnij problem**
+
+ Dodaj dziesięć komentarzy w numerze GitLab.
+
+ ```
+ @opencode explain this issue
+ ```
+
+ OpenCode przeczytaj problem i odpowiedź z wyjaśnieniem.
+
+- **Napraw problem**
+
+ W numerze GitLab powiedz:
+
+ ```
+ @opencode fix this
+ ```
+
+ OpenCode utworzy nową podstawę, zaimplementuje zmiany i spowoduje, że skalowanie będzie możliwe.
+
+- **Przejrzyj prośby o połączenie**
+
+ Zostaw komentarz w sprawie rozwiązania połączenia GitLab.
+
+ ```
+ @opencode review this merge request
+ ```
+
+ OpenCode sprawdzenie rozwiązania i przepuszczenie.
diff --git a/packages/web/src/content/docs/pl/ide.mdx b/packages/web/src/content/docs/pl/ide.mdx
new file mode 100644
index 000000000..a09475f6a
--- /dev/null
+++ b/packages/web/src/content/docs/pl/ide.mdx
@@ -0,0 +1,48 @@
+---
+title: IDE
+description: Rozszerzenie OpenCode dla VS Code, Cursor i innych IDE
+---
+
+OpenCode integruje się z VS Code, Cursorem lub obsługującym terminal IDE. Aby uruchomić, po prostu uruchom `opencode` w terminalu.
+
+---
+
+## Stosowanie
+
+- **Szybkie uruchomienie**: użycie `Cmd+Esc` (Mac) lub `Ctrl+Esc` (Windows/Linux), aby uruchomić OpenCode w uruchamianiu terminala lub skoncentruj się na uruchamianiu terminala, jeśli jest już uruchomiony.
+- **Nowa sesja**: `Cmd+Shift+Esc` (Mac) lub `Ctrl+Shift+Esc` (Windows/Linux), aby została nowa konfiguracja terminala OpenCode, nawet jeśli jest już otwarta. Możesz także kliknąć przycisk OpenCode w interfejsie użytkownika.
+- **Świadomość kontekstu**: Automatycznie udostępnia wybór lub kartę za pomocą OpenCode.
+- **Skróty do odwołania do plików**: `Cmd+Option+K` (Mac) lub `Alt+Ctrl+K` (Linux/Windows), aby wstawić odnośnik do plików. Na przykład `@File#L37-42`.
+
+---
+
+## Instalacja
+
+Aby poznać OpenCode na VS Code w forkach, takich jak Cursor, Windsurf, VSCodium:
+
+1. Otwórz kod VS
+2. Otwórz innowacyjny terminal
+3. Uruchom `opencode` — rozszerzenie instaluje się automatycznie
+
+Jeśli z drugiej strony chcesz zainstalować własne IDE po uruchomieniu `/editor` lub `/export` z TUI, należy zainstalować `export EDITOR="code --wait"`. [Dowiedz się więcej](/docs/tui/#editor-setup).
+
+---
+
+### Instalacja ręczna
+
+Wyszukaj **OpenCode** na rynku rozszerzonym i kliknij **Zainstaluj**.
+
+---
+
+### Rozwiązywanie problemów
+
+Jeśli rozwiązanie nie zostanie zainstalowane automatycznie:
+
+- zastosowanie się, że użycie `opencode` w terminalu.
+- zadziałanie, że CLI dla Twojego IDE jest zainstalowane:
+ - Dla kodu VS: polecenie `code`
+ - Dla kura: polecenie `cursor`
+ - Dla windsurfingu: decyzja `windsurf`
+ - Dla VSCodium: decyzja `codium`
+ - Jeśli nie, uruchom `Cmd+Shift+P` (Mac) lub `Ctrl+Shift+P` (Windows/Linux) i wyszukaj „Polecenie: zastosowanie decyzji„ kod ”w PATH” (lub właściwyk dla twojego IDE)
+- zadziałanie, że VS Code ma pozwolenie na instalację rozszerzoną
diff --git a/packages/web/src/content/docs/pl/index.mdx b/packages/web/src/content/docs/pl/index.mdx
new file mode 100644
index 000000000..df97fd93f
--- /dev/null
+++ b/packages/web/src/content/docs/pl/index.mdx
@@ -0,0 +1,359 @@
+---
+title: Wprowadzenie
+description: Rozpocznij pracę z OpenCode.
+---
+
+import { Tabs, TabItem } from "@astrojs/starlight/components"
+import config from "../../../../config.mjs"
+export const console = config.console
+
+[**OpenCode**](/) do agenta kodującego AI typu open source. Dostępny jest jako interfejs terminalowy, aplikacja komputerowa lub rozszerzenie IDE.
+
+![OpenCode TUI z motywem opencode](../../../assets/lander/screenshot.png)
+
+Zacznijmy.
+
+---
+
+#### Warunki wstępne
+
+Aby uzyskać dostęp do OpenCode w swoim terminalu, będziesz potrzebować:
+
+1. Nowoczesny emulator terminala, taki jak:
+ - [WezTerm](https://wezterm.org), wieloplatformowy
+ - [Alacritty](https://alacritty.org), wieloplatformowy
+ - [Ghostty](https://ghostty.org), Linux i macOS
+ - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux i macOS
+
+2. Klucze API dla dostawców LLM, z których korzystasz.
+
+---
+
+## Zainstalować
+
+Najłatwiejszym sposobem instalowania OpenCode jest zastosowanie skryptu instalacyjnego.
+
+```bash
+curl -fsSL https://opencode.ai/install | bash
+```
+
+Można także zalogować się do urządzenia instalacyjnego:
+
+- **Przy użyciu Node.js**
+
+ <Tabs>
+
+ <TabItem label="npm">
+ ```bash
+ npm install -g opencode-ai
+ ```
+
+ </TabItem>
+
+ <TabItem label="Bun">
+ ```bash
+ bun install -g opencode-ai
+ ```
+
+ </TabItem>
+
+ <TabItem label="pnpm">
+ ```bash
+ pnpm install -g opencode-ai
+ ```
+
+ </TabItem>
+
+ <TabItem label="Yarn">
+ ```bash
+ yarn global add opencode-ai
+ ```
+
+ </TabItem>
+
+ </Tabs>
+
+- **Korzystanie z Homebrew na macOS i Linux**
+
+ ```bash
+ brew install anomalyco/tap/opencode
+ ```
+
+ > W celu uzyskania najbardziej aktualnej wersji zalecamy korzystanie z OpenCode. Oficjalna formuła `brew install opencode` jest utrzymywana przez zespół Homebrew i jest aktualizowana.
+
+- **Korzystanie z Paru na Arch Linux**
+
+ ```bash
+ paru -S opencode-bin
+ ```
+
+#### Okna
+
+:::tip[Zalecane: prowadzenie WSL]
+Aby najlepiej wykorzystać działanie w systemie Windows, zalecamy udostępnienie [Podsystemu Windows dla systemu Linux (WSL)](/docs/windows-wsl). pozwolenie na użytkowanie i pełna kompatybilność z funkcjami OpenCode.
+:::
+
+- **Używając czekolady**
+
+ ```bash
+ choco install opencode
+ ```
+
+- **Korzystanie z miarki**
+
+ ```bash
+ scoop install opencode
+ ```
+
+- **Przy użyciu NPM**
+
+ ```bash
+ npm install -g opencode-ai
+ ```
+
+- **Używając Mise’a**
+
+ ```bash
+ mise use -g github:anomalyco/opencode
+ ```
+
+- **Korzystanie z Dockera**
+
+ ```bash
+ docker run -it --rm ghcr.io/anomalyco/opencode
+ ```
+
+Obecnie trwają prace nad instalacją OpenCode w systemie Windows za pomocą Bun.
+
+Możesz także otrzymać plik binarny z [Releases](https://github.com/anomalyco/opencode/releases).
+
+---
+
+## Skonfiguruj
+
+Dzięki OpenCode możesz korzystać z dowolnego dostawcy LLM, konfigurując jego klucze API.
+
+Jeśli nadal będziesz korzystać z dostawców LLM, zalecamy skorzystanie z [OpenCode Zen](/docs/zen).
+Do wyselekcjonowanej listy modeli, które zostały zatwierdzone i zweryfikowane przez OpenCode
+zespół.
+
+1. Uruchom opcję `/connect` w TUI, wybierz opencode i przejdź do [opencode.ai/auth](https://opencode.ai/auth).
+
+ ```txt
+ /connect
+ ```
+
+2. Zaloguj się, dodaj szczegóły rozliczeniowe i skopiuj klucz API.
+
+3. Wklej swój klucz API.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+Alternatywnie możesz wybrać jednego z dodatkowych dostawców. [Dowiedz się więcej](/docs/providers#directory).
+
+---
+
+## Zainicjuj
+
+Po skonfigurowaniu dostawcy, który może przejść do projektu, który
+chcesz pracować.
+
+```bash
+cd /path/to/project
+```
+
+Uruchamiam OpenCode.
+
+```bash
+opencode
+```
+
+Następnie zainicjuj OpenCode dla projektu, uruchamiając odpowiednią instrukcję.
+
+```bash frame="none"
+/init
+```
+
+Spowoduje to, że OpenCode przeanalizuje Twój projekt i utworzy plik `AGENTS.md`
+katalog główny projektu.
+
+:::tip
+Powinieneś zatwierdzić plik `AGENTS.md` swojego projektu w Git.
+:::
+
+Pomaga w OpenCode zrozumieniu struktury projektu i wzorce kodowania
+używany.
+
+---
+
+## Stosowanie
+
+Teraz możesz pracować nad swoim projektem. Możesz o to zapytać
+wszystko!
+
+Jeśli tylko zaczniesz korzystać z agenta kodującego AI, oto kilka, które mogą być używane
+pomoc.
+
+---
+
+### Zadawaj pytania
+
+Możesz uruchomić OpenCode o wyjaśnienie bazy kodu.
+
+:::tip
+klawisza klawisza `@` do wyszukiwania rozmytego plików w projekcie.
+:::
+
+```txt frame="none" "@packages/functions/src/api/index.ts"
+How is authentication handled in @packages/functions/src/api/index.ts
+```
+
+Jest to pomocne, jeśli istnieje część bazy kodu, nad którą nie pracowałeś.
+
+---
+
+### Dodaj funkcje
+
+Możesz zastosować OpenCode o nowej funkcji do Twojego projektu. Najpierw zalecamy poproszenie o wypłacenie planu.
+
+1. **Plan Stworza**
+
+ OpenCode ma _tryb płaski_, który umożliwia wyłączenie zmian i
+ zamiast tego zasugeruj, jak_ zaimplementuje tę funkcję.
+
+ Przejdź do niego za pomocą klawisza **Tab**. W osobnym dolnym rogu zobacz właściwy wskaźnik.
+
+ ```bash frame="none" title="Switch to Plan mode"
+ <TAB>
+ ```
+
+ Opiszmy teraz, co chcemy, żeby robił.
+
+ ```txt frame="none"
+ When a user deletes a note, we'd like to flag it as deleted in the database.
+ Then create a screen that shows all the recently deleted notes.
+ From this screen, the user can undelete a note or permanently delete it.
+ ```
+
+ Wersja OpenCode zawiera dużo oprogramowania, aby zrozumieć, czego chcesz. To pomaga
+ rozmawiaj z nim tak, jakbyś rozmawiał z młodszym programistą w swoim zespole.
+
+ :::tip
+ Podaj OpenCode kontekstu i kontekstu, które można zrozumieć, co Ty
+ chcieć.
+ :::
+
+2. **Postęp zgodnie z planem**
+
+ Gdy będziesz mieć plan, możesz pozostawić go lub podłączyć więcej.
+
+ ```txt frame="none"
+ We'd like to design this new screen using a design I've used before.
+ [Image #1] Take a look at this image and use it as a reference.
+ ```
+
+ :::tip
+ Przeciągnij i upuść obrazy do terminala, aby dodać je do monitu.
+ :::
+
+ OpenCode może zeskanować obrazy, które mu przekażesz i poprosisz o potwierdzenie. Możesz
+ należy to, przeciągając i upuszczając obraz do terminala.
+
+3. **Stwórz przełącza**
+
+ Kiedy już jest komfortowo z planem, przełącz się z powrotem do _trybu_
+ zamknięcie na klawisza **Tab**.
+
+ ```bash frame="none"
+ <TAB>
+ ```
+
+ Poproszę o wprowadzenie zmian.
+
+ ```bash frame="none"
+ Sounds good! Go ahead and make the changes.
+ ```
+
+---
+
+### Wprowadź zmiany
+
+Aby zastosować następczą zmianę, można zastosować OpenCode lub bezpośrednio zbudowanie go
+bez konieczności wcześniejszego przeglądania planu.
+
+```txt frame="none" "@packages/functions/src/settings.ts" "@packages/functions/src/notes.ts"
+We need to add authentication to the /settings route. Take a look at how this is
+handled in the /notes route in @packages/functions/src/notes.ts and implement
+the same logic in @packages/functions/src/settings.ts
+```
+
+Musisz mieć dostęp, że pod warunkiem dostępności narzędzia, więc OpenCode ma właściwie
+zmiany.
+
+---
+
+### Cofnij zmiany
+
+Załóżmy, że prosisz OpenCode o wprowadzenie zmian.
+
+```txt frame="none" "@packages/functions/src/api/index.ts"
+Can you refactor the function in @packages/functions/src/api/index.ts?
+```
+
+Ale z sobie sobie sprawę, że to nie jest to, czego chciałeś. **Możesz być** zmiany
+za pomoc polecenia `/undo`.
+
+```bash frame="none"
+/undo
+```
+
+OpenCode cofnie teraz zmiany i wyświetli wiadomość
+Ponownie.
+
+```txt frame="none" "@packages/functions/src/api/index.ts"
+Can you refactor the function in @packages/functions/src/api/index.ts?
+```
+
+Można zastosować monit i zastosować OpenCode o próbę próby.
+
+:::tip
+Można `/undo` wiele razy, aby uniknąć wielu zmian.
+:::
+
+Możesz też **możesz powtórzyć** zmianę za pomocą polecenia `/redo`.
+
+```bash frame="none"
+/redo
+```
+
+---
+
+## Udział
+
+Rozmowy z OpenCode można [udostępniać swoim
+zespół](/docs/share).
+
+```bash frame="none"
+/share
+```
+
+Spowoduje to, że łącza do bieżących połączeń idą do schowki.
+
+:::note
+Rozmowy nie są ogólnodostępne.
+:::
+
+Oto [przykładowa rozmowa](https://opencode.ai/s/4XP1fce5) z OpenCode.
+
+---
+
+## Dostosuj
+
+tyle! Jesteś teraz profesjonalistą w korzystaniu z OpenCode.
+
+Aby dostosować go do potrzeb, zalecamy [wybranie motywu](/docs/themes), [dostosowanie skrótów klawiaturowych](/docs/keybinds), [konfigurowanie programów formatujących kod](/docs/formatters), [tworzenie niestandardowych kodów](/docs/commands) lub grę z [konfiguracją OpenCode](/docs/config).
diff --git a/packages/web/src/content/docs/pl/keybinds.mdx b/packages/web/src/content/docs/pl/keybinds.mdx
new file mode 100644
index 000000000..106e7c1ed
--- /dev/null
+++ b/packages/web/src/content/docs/pl/keybinds.mdx
@@ -0,0 +1,192 @@
+---
+title: Skróty klawiszowe
+description: Dostosuj swoje skróty klawiszowe.
+---
+
+OpenCode zawiera listę skrótów klawiszowych, które można zastosować poprzez OpenCode.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "keybinds": {
+ "leader": "ctrl+x",
+ "app_exit": "ctrl+c,ctrl+d,<leader>q",
+ "editor_open": "<leader>e",
+ "theme_list": "<leader>t",
+ "sidebar_toggle": "<leader>b",
+ "scrollbar_toggle": "none",
+ "username_toggle": "none",
+ "status_view": "<leader>s",
+ "tool_details": "none",
+ "session_export": "<leader>x",
+ "session_new": "<leader>n",
+ "session_list": "<leader>l",
+ "session_timeline": "<leader>g",
+ "session_fork": "none",
+ "session_rename": "none",
+ "session_share": "none",
+ "session_unshare": "none",
+ "session_interrupt": "escape",
+ "session_compact": "<leader>c",
+ "session_child_cycle": "<leader>right",
+ "session_child_cycle_reverse": "<leader>left",
+ "session_parent": "<leader>up",
+ "messages_page_up": "pageup,ctrl+alt+b",
+ "messages_page_down": "pagedown,ctrl+alt+f",
+ "messages_line_up": "ctrl+alt+y",
+ "messages_line_down": "ctrl+alt+e",
+ "messages_half_page_up": "ctrl+alt+u",
+ "messages_half_page_down": "ctrl+alt+d",
+ "messages_first": "ctrl+g,home",
+ "messages_last": "ctrl+alt+g,end",
+ "messages_next": "none",
+ "messages_previous": "none",
+ "messages_copy": "<leader>y",
+ "messages_undo": "<leader>u",
+ "messages_redo": "<leader>r",
+ "messages_last_user": "none",
+ "messages_toggle_conceal": "<leader>h",
+ "model_list": "<leader>m",
+ "model_cycle_recent": "f2",
+ "model_cycle_recent_reverse": "shift+f2",
+ "model_cycle_favorite": "none",
+ "model_cycle_favorite_reverse": "none",
+ "variant_cycle": "ctrl+t",
+ "command_list": "ctrl+p",
+ "agent_list": "<leader>a",
+ "agent_cycle": "tab",
+ "agent_cycle_reverse": "shift+tab",
+ "input_clear": "ctrl+c",
+ "input_paste": "ctrl+v",
+ "input_submit": "return",
+ "input_newline": "shift+return,ctrl+return,alt+return,ctrl+j",
+ "input_move_left": "left,ctrl+b",
+ "input_move_right": "right,ctrl+f",
+ "input_move_up": "up",
+ "input_move_down": "down",
+ "input_select_left": "shift+left",
+ "input_select_right": "shift+right",
+ "input_select_up": "shift+up",
+ "input_select_down": "shift+down",
+ "input_line_home": "ctrl+a",
+ "input_line_end": "ctrl+e",
+ "input_select_line_home": "ctrl+shift+a",
+ "input_select_line_end": "ctrl+shift+e",
+ "input_visual_line_home": "alt+a",
+ "input_visual_line_end": "alt+e",
+ "input_select_visual_line_home": "alt+shift+a",
+ "input_select_visual_line_end": "alt+shift+e",
+ "input_buffer_home": "home",
+ "input_buffer_end": "end",
+ "input_select_buffer_home": "shift+home",
+ "input_select_buffer_end": "shift+end",
+ "input_delete_line": "ctrl+shift+d",
+ "input_delete_to_line_end": "ctrl+k",
+ "input_delete_to_line_start": "ctrl+u",
+ "input_backspace": "backspace,shift+backspace",
+ "input_delete": "ctrl+d,delete,shift+delete",
+ "input_undo": "ctrl+-,super+z",
+ "input_redo": "ctrl+.,super+shift+z",
+ "input_word_forward": "alt+f,alt+right,ctrl+right",
+ "input_word_backward": "alt+b,alt+left,ctrl+left",
+ "input_select_word_forward": "alt+shift+f,alt+shift+right",
+ "input_select_word_backward": "alt+shift+b,alt+shift+left",
+ "input_delete_word_forward": "alt+d,alt+delete,ctrl+delete",
+ "input_delete_word_backward": "ctrl+w,ctrl+backspace,alt+backspace",
+ "history_previous": "up",
+ "history_next": "down",
+ "terminal_suspend": "ctrl+z",
+ "terminal_title_toggle": "none",
+ "tips_toggle": "<leader>h",
+ "display_thinking": "none"
+ }
+}
+```
+
+---
+
+## Klucz lidera
+
+OpenCode używa klucza `leader` dla głównych skrótów klawiszowych. Rozwiązanie problemu konfliktów w terminalu.
+
+Domyślnie `ctrl+x` jest klawiszem głównym i główną akcją wymaga najpierw naciśnięcia klawisza lidera, a następnie skrótu. Na przykład, aby ponownie zastosować, następnie następuje `ctrl+x`, a następnie następuje `n`.
+
+Nie musisz mieć klawisza wiodącego do skrótów klawiszowych, ale zalecamy to Reg.
+
+---
+
+## Wyłącz powiązanie klawiszy
+
+Możesz podłączyć powiązanie klawiszy, dodając klucz do swojej konfiguracji z wartością „none”.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "keybinds": {
+ "session_compact": "none"
+ }
+}
+```
+
+---
+
+## Skróty monitów na pulpicie
+
+Pole sprawdzania aplikacji komputerowej OpenCode obsługuje popularne skróty w stylu Readline/Emacs do edycji tekstu. Są one dostępne i obecnie nie można ich skonfigurować za pomocą `opencode.json`.
+
+| Skrót | Akcja |
+| -------- | ---------------------------------------- |
+| `ctrl+a` | Przejdź do źródła regularnej linii |
+| `ctrl+e` | Przejdź na koniec bieżącej linii |
+| `ctrl+b` | Przesuń kursor do tyłu o jeden znak |
+| `ctrl+f` | Przesuń kursor o jeden znak do przodu |
+| `alt+b` | Przesuń kursor o jedno słowo wstecz |
+| `alt+f` | Przesuń kursor do przodu o jedno słowo |
+| `ctrl+d` | Usuń znak pod kursorem |
+| `ctrl+k` | Zabij do końca linii |
+| `ctrl+u` | Zabij na początek linii |
+| `ctrl+w` | Zabij poprzednie słowo |
+| `alt+d` | Zabij następne słowo |
+| `ctrl+t` | Transponuj znaki |
+| `ctrl+g` | Anuluj wyskakujące okienka / przerwij uruchamianie odpowiedzi |
+
+---
+
+## Shift+Enter
+
+Istnieją terminale, które nie wysyłają klawiszy modyfikujących z Enterem. Może być konieczne skonfigurowanie terminala tak, aby wysłać `Shift+Enter` jako przerwanie zakończenia.
+
+### Terminal Windowsowy
+
+Otwórz swój `settings.json` pod adresem:
+
+```
+%LOCALAPPDATA%\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json
+```
+
+Dodaj do tablicy `actions` na poziomie wyższym:
+
+```json
+"actions": [
+ {
+ "command": {
+ "action": "sendInput",
+ "input": "\u001b[13;2u"
+ },
+ "id": "User.sendInput.ShiftEnterCustom"
+ }
+]
+```
+
+Dodaj do tablicy `keybindings` na poziomie wyższym:
+
+```json
+"keybindings": [
+ {
+ "keys": "shift+enter",
+ "id": "User.sendInput.ShiftEnterCustom"
+ }
+]
+```
+
+Zapisz plik i uruchom ponownie terminal Windows lub otwórz nową kartę.
diff --git a/packages/web/src/content/docs/pl/lsp.mdx b/packages/web/src/content/docs/pl/lsp.mdx
new file mode 100644
index 000000000..970602e7a
--- /dev/null
+++ b/packages/web/src/content/docs/pl/lsp.mdx
@@ -0,0 +1,188 @@
+---
+title: Serwery LSP
+description: OpenCode integruje się z serwerem LSP.
+---
+
+OpenCode integruje się z protokołem serwera językowego (LSP), aby pomóc LLM w korzystaniu z bazowego kodu. Wykorzystuje diagnostykę, aby otrzymać odpowiedź zwrotną do LLM.
+
+---
+
+## Wbudowany
+
+OpenCode posiada kilka wbudowanych serwerów LSP dla języków:
+
+| Serwer LSP | Rozszerzenie | Wymagania |
+| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------ |
+| astro | .astro | Automatyczne instalacje dla Astro |
+| bash | .sh, .bash, .zsh, .ksh | Automatycznie instaluje serwer języka bash |
+| brzęk | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Automatyczne instalacje dla C/C++ |
+| csharp | .cs | `.NET SDK` zainstalowany |
+| clojure-lsp | .clj, .cljs, .cljc, .edn | Komenda `clojure-lsp` dostępna |
+| strzałka | .dart | Komenda `dart` dostępna |
+| nie | .ts, .tsx, .js, .jsx, .mjs | Dostępne rozwiązanie `deno` (automatyczne wykrywanie deno.json/deno.jsonc) |
+| eliksir-ls | .ex, .exs | Komenda `elixir` dostępna |
+| eslin | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` zależność w projekcie |
+| fsharp | .fs, .fsi, .fsx, .fsscript | `.NET SDK` zainstalowany |
+| blask | .blask | Komenda `gleam` dostępna |
+| gopls | .idź | Komenda `go` dostępna |
+| hl | .hs, .lhs | Komenda `haskell-language-server-wrapper` dostępna |
+| jdtl | .java | `Java SDK (version 21+)` zainstalowany |
+| kotlin-ls | .kt, .kts | Automatyczne instalacje dla Kotlin |
+| lua-ls | .lua | Automatyczne instalacje dla Lua |
+| nixd | .nix | Komenda `nixd` dostępna |
+| ocaml-lsp | .ml, .mli | Komenda `ocamllsp` dostępna |
+| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` zależność w projekcie |
+| php inteligentny | .php | Automatyczne instalacje dla PHP |
+| pryzma | .prysma | Komenda `prisma` dostępna |
+| pirat | .py, .pyi | Zainstalowana zależność `pyright` |
+| ruby-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Dostępne polecenie `ruby` i `gem` |
+| rdza | .rs | Komenda `rust-analyzer` dostępna |
+| sourcekit-lsp | .swift, .objc, .objcpp | `swift` zainstalowany (`xcode` na macOS) |
+| smukły | smukły | Automatyczne instalacje dla aplikacji Svelte |
+| terraforma | .tf, .tfvars | Automatyczne instalacje z wydań GitHub |
+| malutka | .typ, .typc | Automatyczne instalacje z wydań GitHub |
+| maszynopis | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` zależność w projekcie |
+| vue | .vue | Automatyczne instalacje dla Vue |
+| yaml-ls | .yaml, .yml | Automatycznie instaluje serwer języka yaml Red Hat |
+| zł | .zig, .zon | Komenda `zig` dostępna |
+
+Serwery LSP są automatycznie włączane po wykryciu jednego z rozszerzonych plików i wymagań.
+
+:::note
+Możliwość automatycznego pobierania z serwera LSP, ustawianie zmiennej środowiska `OPENCODE_DISABLE_LSP_DOWNLOAD` na `true`.
+:::
+
+---
+
+## Jak to działa
+
+Gdy opencode otwiera plik, to:
+
+1. Sprawdzanie pliku na wszystkich dostępnych serwerach LSP.
+2. Uruchamia właściwy serwer LSP, jeśli jeszcze nie działa.
+
+---
+
+## Skonfiguruj
+
+Możesz dostosować serwery LSP poprzez sekcję `lsp` w konfiguracji opencode.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "lsp": {}
+}
+```
+
+Każdy serwer LSP obsługuje szczegółowe elementy:
+
+| Nieruchomość | Wpisz | Opis |
+| ---------------- | -------- | ------------------------------------------------- |
+| `disabled` | wartość logiczna | Ustaw tę opcję na `true`, aby włączyć serwer LSP |
+| `command` | ciąg[] | Polecenie uruchomienia serwera LSP |
+| `extensions` | ciąg[] | Rozszerzenia plików, które powinny mieć ten serwer LSP |
+| `env` | obiekt | Zmienne ustawienia podczas uruchamiania serwera |
+| `initialization` | obiekt | Opcje inicjalizacji do wysłania na serwer LSP |
+
+Spójrzmy na kilka przykładów.
+
+---
+
+### Zmienne środowiskowe
+
+Zastosowanie `env`, aby ustawić zmienne parametry transmisji podczas uruchamiania serwera LSP:
+
+```json title="opencode.json" {5-7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "lsp": {
+ "rust": {
+ "env": {
+ "RUST_LOG": "debug"
+ }
+ }
+ }
+}
+```
+
+---
+
+### Opcje inicjalizacji
+
+właściwości `initialization`, aby mieć możliwość inicjalizacji na serwerze LSP. Są to ustawienia dla serwera wysyłającego podczas przełączania LSP `initialize`:
+
+```json title="opencode.json" {5-9}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "lsp": {
+ "typescript": {
+ "initialization": {
+ "preferences": {
+ "importModuleSpecifierPreference": "relative"
+ }
+ }
+ }
+ }
+}
+```
+
+:::note
+Opcje inicjalizacji różnią się w zależności od serwera LSP. Sprawdź swój serwer LSP pod gniazdem.
+:::
+
+---
+
+### Wyłączanie serwerów LSP
+
+Aby wyłączyć **wszystkie** serwery LSP globalnie, ustaw `lsp` na `false`:
+
+```json title="opencode.json" {3}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "lsp": false
+}
+```
+
+Aby wyłączyć **określony** serwer LSP, ustawa `disabled` na `true`:
+
+```json title="opencode.json" {5}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "lsp": {
+ "typescript": {
+ "disabled": true
+ }
+ }
+}
+```
+
+---
+
+### Niestandardowe serwery LSP
+
+Serwer udostępniający serwery LSP, mechanizmy sterujące i udostępniane pliki:
+
+```json title="opencode.json" {4-7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "lsp": {
+ "custom-lsp": {
+ "command": ["custom-lsp-server", "--stdio"],
+ "extensions": [".custom"]
+ }
+ }
+}
+```
+
+---
+
+## Dodatkowe informacje
+
+### PHP Intelefense
+
+PHP Intelephense oferuje funkcje premium poprzez klucz licencyjny. Możesz przechowywać klucz licencyjny umieszczając (tylko) klucz w pliku tekstowym pod adresem:
+
+- W systemie macOS/Linux: `$HOME/intelephense/licence.txt`
+- W systemie Windows: `%USERPROFILE%/intelephense/licence.txt`
+
+Plik powinien zawierać wyłącznie klucz licencyjny, bez udostępniania treści.
diff --git a/packages/web/src/content/docs/pl/mcp-servers.mdx b/packages/web/src/content/docs/pl/mcp-servers.mdx
new file mode 100644
index 000000000..f0acec9b0
--- /dev/null
+++ b/packages/web/src/content/docs/pl/mcp-servers.mdx
@@ -0,0 +1,511 @@
+---
+title: Serwery MPK
+description: Dodaj lokalne i zdalne narzędzie MCP.
+---
+
+Możesz dodać dodatkowe informacje do OpenCode za pomocą _Model Context Protocol_, w skrócie MCP. OpenCode obsługuje zarówno serwery lokalne, jak i zdalne.
+
+Po dodaniu narzędzi MCP są automatycznie dostępne dla LLM wraz z narzędziami narzędziowymi.
+
+---
+
+#### Zastrzeżenia
+
+Kiedy używasz serwera MCP, zmieniając kontekst. Może szybko się sumować, jeśli masz dużo narzędzia. Zalecamy ostrożność, z jakich serwerów MCP korzystasz.
+
+:::tip
+Serwery MCP dodają do twojego kontekstu, dlatego należy zachować ostrożność przy wyłączaniu tych serwerów.
+:::
+
+Niektóre serwery MCP, takie jak serwer MCP GitHub, mają szerokie możliwości dodawania wielu tokenów i mogą łatwo przekraczać limit kontekstu.
+
+---
+
+## Włączać
+
+Dostępny serwery MCP w [OpenCode Config](https://opencode.ai/docs/config/) w `mcp`. Dodaj każdy MCP z unikalną nazwą. Możesz zgłosić się do tego MCP po nazwie, pytając LLM.
+
+```jsonc title="opencode.jsonc" {6}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "name-of-mcp-server": {
+ // ...
+ "enabled": true,
+ },
+ "name-of-other-mcp-server": {
+ // ...
+ },
+ },
+}
+```
+
+Możesz także wyłączyć serwer, ustawiając `enabled` na `false`. Jest to urządzenie, które jest urządzeniem biologicznym, bez usuwania z urządzenia.
+
+---
+
+### Zastępowanie zdalnych ustawień domyślnych
+
+Organizacje mogą udostępniać serwery MCP za pośrednictwem punktu końcowego `.well-known/opencode`. Serwer może być podłączony, dzięki czemu użytkownicy mogą wybrać te, których.
+
+Aby włączyć serwer ze zdalnej konfiguracji organizacji, dodaj go do wyłączenia za pomocą `enabled: true`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "jira": {
+ "type": "remote",
+ "url": "https://jira.example.com/mcp",
+ "enabled": true
+ }
+ }
+}
+```
+
+Lokalne wartości konfiguracyjne za występujące zdalne wartości. Aby uzyskać więcej informacji, zobacz [pierwszeństwo konfiguracji](/docs/config#precedence-order).
+
+---
+
+## Lokalny
+
+Dodaj lokalne serwery MCP za pomocą `type` do `"local"` w obiekcie MCP.
+
+```jsonc title="opencode.jsonc" {15}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-local-mcp-server": {
+ "type": "local",
+ // Or ["bun", "x", "my-mcp-command"]
+ "command": ["npx", "-y", "my-mcp-command"],
+ "enabled": true,
+ "environment": {
+ "MY_ENV_VAR": "my_env_var_value",
+ },
+ },
+ },
+}
+```
+
+Polecenie sposobu uruchamiania lokalnego serwera MCP. Można także zainstalować listę konfiguracyjną.
+
+Oto przykładowy sposób dodania testowego serwera MCP [`@modelcontextprotocol/server-everything`](https://www.npmjs.com/package/@modelcontextprotocol/server-everything).
+
+```jsonc title="opencode.jsonc"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "mcp_everything": {
+ "type": "local",
+ "command": ["npx", "-y", "@modelcontextprotocol/server-everything"],
+ },
+ },
+}
+```
+
+Aby z niego skorzystać, można dodać `use the mcp_everything tool` do moich podpowiedzi.
+
+```txt "mcp_everything"
+use the mcp_everything tool to add the number 3 and 4
+```
+
+---
+
+#### Opcje
+
+Oto wszystkie opcje lokalnego serwera MCP.
+
+| Opcja | Wpisz | Wymagane | Opis |
+| ------------- | ------- | -------- | ----------------------------------------------------------------------------------- |
+| `type` | Ciąg | Y | Typ połączenia z serwerem MCP musi być `"local"`. |
+| `command` | Tablica | Y | Polecenie i argumenty uruchamiające serwer MCP. |
+| `environment` | Obiekt | | Zmienne ustawienia podczas uruchamiania serwera. |
+| `enabled` | Wartość logiczna | | Włącz lub wyłącz serwer MCP podczas uruchamiania. |
+| `timeout` | Numer | | Limit czasu w ms na pobieranie narzędzia z serwera MCP. Wartość domyślna do 5000 (5 sekund). |
+
+---
+
+## Zdalny
+
+Dodaj zdalne serwery MCP, ustawiając `type` na `"remote"`.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-remote-mcp": {
+ "type": "remote",
+ "url": "https://my-mcp-server.com",
+ "enabled": true,
+ "headers": {
+ "Authorization": "Bearer MY_API_KEY"
+ }
+ }
+ }
+}
+```
+
+`url` na adres URL zdalnego serwera MCP i za pomocą opcji `headers` można znaleźć listę nagłówków.
+
+---
+
+#### Opcje
+
+| Opcja | Wpisz | Wymagane | Opis |
+| --------- | ------- | -------- | ----------------------------------------------------------------------------------- |
+| `type` | Ciąg | Y | Typ połączenia z serwerem MCP musi być `"remote"`. |
+| `url` | Ciąg | Y | Adres URL zdalnego serwera MCP. |
+| `enabled` | Wartość logiczna | | Włącz lub wyłącz serwer MCP podczas uruchamiania. |
+| `headers` | Obiekt | | Nagłówki do wysłania z wprowadzenia. |
+| `oauth` | Obiekt | | Konfiguracja uwierzytelniania OAuth. Zobacz sekcję [OAuth](#oauth) poniżej. |
+| `timeout` | Numer | | Limit czasu w ms na pobieranie narzędzia z serwera MCP. Wartość domyślna do 5000 (5 sekund). |
+
+---
+
+## OAuth
+
+OpenCode automatyczne uwierzytelnianie OAuth dla zdalnych serwerów MCP. Gdy serwer wymaga uwierzytelnienia, OpenCode:
+
+1. Wykryj odpowiedź 401 i zainijuj przepływ OAuth
+2. używa **Dynamicznej rejestracji klienta (RFC 7591)**, jeśli jest obsługiwana przez serwer
+3. Bezpiecznie przechowuj tokeny na wypadek ewentualnego zastosowania
+
+---
+
+### Automatyczny
+
+W innym serwerze MCP z włączoną funkcją OAuth nie jest wymagana specjalna funkcja. Dostępny serwer bezprzewodowy:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-oauth-server": {
+ "type": "remote",
+ "url": "https://mcp.example.com/mcp"
+ }
+ }
+}
+```
+
+Jeśli serwer wymaga uwierzytelnienia, OpenCode poprosi Cię o uwierzytelnienie przy próbie jego użycia. Jeśli nie, możesz [ręcznie podłączyć przepływ] (#authenticating) za pomocą `opencode mcp auth <server-name>`.
+
+---
+
+### Wstępnie zarejestrowany
+
+Jeśli posiadasz dostęp do klienta od dostawcy serwera MCP, możesz je udostępnić:
+
+```json title="opencode.json" {7-11}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-oauth-server": {
+ "type": "remote",
+ "url": "https://mcp.example.com/mcp",
+ "oauth": {
+ "clientId": "{env:MY_MCP_CLIENT_ID}",
+ "clientSecret": "{env:MY_MCP_CLIENT_SECRET}",
+ "scope": "tools:read tools:execute"
+ }
+ }
+ }
+}
+```
+
+---
+
+### Uwierzytelnianie
+
+Możesz podać potwierdzenie lub potwierdzenie poświadczenia.
+
+Uwierzytelnij się za pomocą standardowego serwera MCP:
+
+```bash
+opencode mcp auth my-oauth-server
+```
+
+Lista wszystkich serwerów MCP i ich status uwierzytelnienia:
+
+```bash
+opencode mcp list
+```
+
+Usuń zapisane dane uwierzytelniające:
+
+```bash
+opencode mcp logout my-oauth-server
+```
+
+Komenda `mcp auth` została udostępniona w celu autoryzacji. Po autoryzacji OpenCode bezpieczne przechowa tokeny w `~/.local/share/opencode/mcp-auth.json`.
+
+---
+
+#### Wyłączanie OAuth
+
+Jeśli chcesz włączyć automatyczne OAuth dla serwera (np. dla serwerów, które zamiast tego używać kluczy API), ustaw `oauth` na `false`:
+
+```json title="opencode.json" {7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-api-key-server": {
+ "type": "remote",
+ "url": "https://mcp.example.com/mcp",
+ "oauth": false,
+ "headers": {
+ "Authorization": "Bearer {env:MY_API_KEY}"
+ }
+ }
+ }
+}
+```
+
+---
+
+#### Opcje OAuth
+
+| Opcja | Wpisz | Opis |
+| -------------- | --------------- | -------------------------------------------------------------------------------- |
+| `oauth` | Obiekt \| fałszywe | Obiekt konfiguracyjny OAuth lub `false`, aby wyłączyć automatyczne wykrywanie OAuth. |
+| `clientId` | Ciąg | Identyfikator klienta OAuth. Jeżeli nie zostanie podany, zostanie podjęta próba dynamicznej rejestracji klienta. |
+| `clientSecret` | Ciąg | Sekret klienta OAuth, plik jest wymagany przez serwer autoryzacji. |
+| `scope` | Ciąg | Zakresy protokołu OAuth, których należy żądać podczas autoryzacji. |
+
+#### Debugowanie
+
+Jeśli serwer MCP nie może zostać uwierzytelniony, możesz zdiagnozować problemy z:
+
+```bash
+# View auth status for all OAuth-capable servers
+opencode mcp auth list
+
+# Debug connection and OAuth flow for a specific server
+opencode mcp debug my-oauth-server
+```
+
+Komenda `mcp debug` wyświetlanie stanu uwierzytelniania, testuje sprawdzanie protokołu HTTP i sprawdzenie sprawdzenia procesu OAuth.
+
+---
+
+## Zarządzać
+
+Twoje MCP są dostępne jako narzędzie w OpenCode, obok narzędzi dodatkowych. Można to zrobić poprzez podłączenie OpenCode, jak również w innym przypadku.
+
+---
+
+### Światowy
+
+Możesz to włączyć lub wyłączyć globalnie.
+
+```json title="opencode.json" {14}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-mcp-foo": {
+ "type": "local",
+ "command": ["bun", "x", "my-mcp-command-foo"]
+ },
+ "my-mcp-bar": {
+ "type": "local",
+ "command": ["bun", "x", "my-mcp-command-bar"]
+ }
+ },
+ "tools": {
+ "my-mcp-foo": false
+ }
+}
+```
+
+Dostępne są również wzorca globu, aby wyłączyć wszystkie dyski MCP.
+
+```json title="opencode.json" {14}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-mcp-foo": {
+ "type": "local",
+ "command": ["bun", "x", "my-mcp-command-foo"]
+ },
+ "my-mcp-bar": {
+ "type": "local",
+ "command": ["bun", "x", "my-mcp-command-bar"]
+ }
+ },
+ "tools": {
+ "my-mcp*": false
+ }
+}
+```
+
+Tutaj znajdziesz wzorca globalnego `my-mcp*`, aby wyłączyć wszystkie MCP.
+
+---
+
+### Na agenta
+
+Jeśli masz największe serwery MCP, możesz włączyć je tylko dla poszczególnych agentów i być globalnie. Aby to zrobić:
+
+1. Wyłącz go jako narzędzie globalnie.
+2. W [konfiguracji agenta](/docs/agents#tools) włącz serwer MCP jako narzędzie.
+
+```json title="opencode.json" {11, 14-18}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "my-mcp": {
+ "type": "local",
+ "command": ["bun", "x", "my-mcp-command"],
+ "enabled": true
+ }
+ },
+ "tools": {
+ "my-mcp*": false
+ },
+ "agent": {
+ "my-agent": {
+ "tools": {
+ "my-mcp*": true
+ }
+ }
+ }
+}
+```
+
+---
+
+#### Wzory globusów
+
+Wzorzec glob wykorzystuje proste wzorce globowania regularnych:
+
+- `*` dopasowuje zero lub więcej dowolnego znaku (np. `"my-mcp*"` dopasowuje `my-mcp_search`, `my-mcp_list` itd.)
+- `?` odpowiada dokładnie jednemu znakowi
+- Wszystkie pozostałe znaki pasują dosłownie
+
+:::note
+Narzędzia serwera MCP są rejestrowane z nazwą serwera jako prefiksem, więc aby uzyskać dostęp do wszystkich narzędzi dla serwera, po prostu dostęp do:
+
+```
+"mymcpservername_*": false
+```
+
+:::
+
+---
+
+## Przykłady
+
+Poniżej znajdują się przykłady niektórych serwerów MCP. Twój prywatny PR, udostępniany przez inne serwery.
+
+---
+
+### Wartownik
+
+Dodaj [serwer Sentry MCP](https://mcp.sentry.dev), aby móc wejść w interakcję z projektem i udostępnić Sentry.
+
+```json title="opencode.json" {4-8}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "sentry": {
+ "type": "remote",
+ "url": "https://mcp.sentry.dev/mcp",
+ "oauth": {}
+ }
+ }
+}
+```
+
+Po dodaniu konfiguracji uwierzytelnij się za pomocą Sentry:
+
+```bash
+opencode mcp auth sentry
+```
+
+Spowoduje otwarcie okna konfiguracji, w którym można zakończyć proces OAuth i połączyć OpenCode z kontem Sentry.
+
+Po uwierzytelnieniu oprogramowania Sentry w swoich monitach, aby rozprzestrzeniać zagrożenia, dane i błędy.
+
+```txt "use sentry"
+Show me the latest unresolved issues in my project. use sentry
+```
+
+---
+
+### Kontekst7
+
+Dodaj [serwer Context7 MCP](https://github.com/upstash/context7), aby przeszukać dokumenty.
+
+```json title="opencode.json" {4-7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "context7": {
+ "type": "remote",
+ "url": "https://mcp.context7.com/mcp"
+ }
+ }
+}
+```
+
+Jeśli założyłeś darmowe konto, możesz użyć klucza API i uzyskać wyższy limit stawek.
+
+```json title="opencode.json" {7-9}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "context7": {
+ "type": "remote",
+ "url": "https://mcp.context7.com/mcp",
+ "headers": {
+ "CONTEXT7_API_KEY": "{env:CONTEXT7_API_KEY}"
+ }
+ }
+ }
+}
+```
+
+Załóż tutaj, że masz ustawioną zmienną środowiskową `CONTEXT7_API_KEY`.
+
+Dodaj `use context7` do swoich podpowiedzi, aby skorzystać z serwera Context7 MCP.
+
+```txt "use context7"
+Configure a Cloudflare Worker script to cache JSON API responses for five minutes. use context7
+```
+
+Alternatywnie możesz zadać coś takiego do pliku [AGENTS.md](/docs/rules/).
+
+```md title="AGENTS.md"
+When you need to search docs, use `context7` tools.
+```
+
+---
+
+### Grep firmy Vercel
+
+Dodaj serwer MCP [Grep by Vercel](https://grep.app), aby przeszukać fragmenty kodu w serwisie GitHub.
+
+```json title="opencode.json" {4-7}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mcp": {
+ "gh_grep": {
+ "type": "remote",
+ "url": "https://mcp.grep.app"
+ }
+ }
+}
+```
+
+Nazwaliśmy nasz serwer MCP `gh_grep`, możesz dodać `use the gh_grep tool` do swoich podpowiedzi, aby agent mógł z niego korzystać.
+
+```txt "use the gh_grep tool"
+What's the right way to set a custom domain in an SST Astro component? use the gh_grep tool
+```
+
+Alternatywnie możesz zadać coś takiego do pliku [AGENTS.md](/docs/rules/).
+
+```md title="AGENTS.md"
+If you are unsure how to do something, use `gh_grep` to search code examples from GitHub.
+```
diff --git a/packages/web/src/content/docs/pl/models.mdx b/packages/web/src/content/docs/pl/models.mdx
new file mode 100644
index 000000000..580295fd4
--- /dev/null
+++ b/packages/web/src/content/docs/pl/models.mdx
@@ -0,0 +1,223 @@
+---
+title: Modele
+description: Konfigurowanie dostawcy i modelu LLM.
+---
+
+OpenCode używa [AI SDK](https://ai-sdk.dev/) i [Models.dev](https://models.dev) do obsługi **ponad 75 dostawców LLM** i obsługi uruchamiania modeli pierwszych.
+
+---
+
+## Dostawcy
+
+Dostępna usługa dostawcy jest dostępna. Jeśli otrzymasz poświadczenie dostawcy za pomocą polecenia `/connect`, będzie on dostępny po uruchomieniu OpenCode.
+
+Dowiedz się więcej o [dostawcach](/docs/providers).
+
+---
+
+## Wybierz model
+
+Po skonfigurowaniu dostawcy możesz wybrać dostępny model, wpisując:
+
+```bash frame="none"
+/models
+```
+
+---
+
+## Polecane modele
+
+Na rynku jest mnóstwo modeli, co tydzień pojawia się nowe.
+
+:::tip
+Rozważ skorzystanie z jednego z rekomendowanych przez nas modeli.
+:::
+
+Jednak tylko kilka z nich jest dobrych przy generowaniu kodu, jak i wywołaniu narzędzia.
+
+Oto kilka modeli, które dobrze współpracują z OpenCode, w kolejności. (Nie jest to lista wyczerpująca i nie jest konieczna aktualna):
+
+- GPT 5.2
+- Kodeks GPT 5.1
+- Klaudiusz Opus 4.5
+- Claude Sonnet 4.5
+- Minimax M2.1
+- Bliźnięta 3Pro
+
+---
+
+## Ustaw wartość domyślną
+
+Aby zainstalować jeden z nich jako model domyślny, możesz zainstalować klucz `model` w swoim
+OpenCode konfiguracja
+
+```json title="opencode.json" {3}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "model": "lmstudio/google/gemma-3n-e4b"
+}
+```
+
+Tutaj pełny identyfikator do `provider_id/model_id`. Na przykład, użycie [OpenCode Zen](/docs/zen), przestrzeganie `opencode/gpt-5.1-codex` dla Kodeksu GPT 5.1.
+
+Jeśli skonfigurowałeś [dostawcę zwykłegogo] (./providers#custom), `provider_id` jest kluczem z części `provider` twojej konfiguracji, a `model_id` jest kluczem z `provider.models`.
+
+---
+
+## Skonfiguruj modele
+
+Można globalnie skorzystać z opcji modelu poprzez plik config.
+
+```jsonc title="opencode.jsonc" {7-12,19-24}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "openai": {
+ "models": {
+ "gpt-5": {
+ "options": {
+ "reasoningEffort": "high",
+ "textVerbosity": "low",
+ "reasoningSummary": "auto",
+ "include": ["reasoning.encrypted_content"],
+ },
+ },
+ },
+ },
+ "anthropic": {
+ "models": {
+ "claude-sonnet-4-5-20250929": {
+ "options": {
+ "thinking": {
+ "type": "enabled",
+ "budgetTokens": 16000,
+ },
+ },
+ },
+ },
+ },
+ },
+}
+```
+
+Tutaj konfigurujemy urządzenia globalne dla dwóch modeli: `gpt-5` w przypadku dostępu za pośrednictwem dostawcy `openai` i `claude-sonnet-4-20250514` w przypadku dostępu za pośrednictwem dostawcy `anthropic`.
+Wbudowane nazwy dostawców i modele można znaleźć na [Models.dev](https://models.dev).
+
+Można także skorzystać z opcji dla dowolnych agentów, których używa się. Konfiguracja agenta jest dostępna jako opcja globalna. [Dowiedz się więcej](/docs/agents/#additional).
+
+Można również zastosować alternatywne warianty, które wykluczają. Warianty konfiguracji ustawień konfiguracyjnych dla tego samego modelu bez tworzenia duplikatów wpisów:
+
+```jsonc title="opencode.jsonc" {6-21}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "opencode": {
+ "models": {
+ "gpt-5": {
+ "variants": {
+ "high": {
+ "reasoningEffort": "high",
+ "textVerbosity": "low",
+ "reasoningSummary": "auto",
+ },
+ "low": {
+ "reasoningEffort": "low",
+ "textVerbosity": "low",
+ "reasoningSummary": "auto",
+ },
+ },
+ },
+ },
+ },
+ },
+}
+```
+
+---
+
+## Warianty
+
+Wiele modeli obsługuje wiele wariantów lub różnych wybranych. OpenCode jest dostarczany z podstawowymi wariantami wariantów dla dostawców.
+
+### Wbudowane warianty
+
+OpenCode jest dostarczany z domyślnymi wariantami dla wielu dostawców:
+
+**Antropiczny**:
+
+- `high` – Wysoki budżet na przemyślenie (domyślnie)
+- `max` - Maksymalny budżet na myślenie
+
+**OpenAI**:
+
+Różni się zależnością od modelu, ale mniej więcej:
+
+- `none` – Brak uzasadnienia
+- `minimal` - Minimalny wysiłek rozumowania
+- `low` - Niewielki wysiłek w zakresie rozumowania
+- `medium` – Średni wysiłek rozumowania
+- `high` - Duży wysiłek w zakresie rozumowania
+- `xhigh` - Bardzo duży wysiłek w zakresie rozumowania
+
+**Google**:
+
+- `low` — Mniejszy nakład pracy/budżet tokena
+- `high` — Większy nakład pracy/budżet tokena
+
+:::tip
+Lista ta nie jest kompletna. Wielu innych dostawców oferuje także opcję odchylenia ustawień.
+:::
+
+### Warianty niestandardowe
+
+Można uwzględnić warianty lub dodać własne:
+
+```jsonc title="opencode.jsonc" {7-18}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "openai": {
+ "models": {
+ "gpt-5": {
+ "variants": {
+ "thinking": {
+ "reasoningEffort": "high",
+ "textVerbosity": "low",
+ },
+ "fast": {
+ "disabled": true,
+ },
+ },
+ },
+ },
+ },
+ },
+}
+```
+
+### Warianty cyklu
+
+Naciśnij klawisza `variant_cycle`, aby szybko przełączać się między wariantami. [Dowiedz się więcej](/docs/keybinds).
+
+---
+
+## Ładowanie modeli
+
+Po uruchomieniu OpenCode sprawdzanie modeli w następującej kolejności:
+
+1. Flaga wiersza autora `--model` lub `-m`. Format jest taki sam jak w pliku konfiguracyjnym: `provider_id/model_id`.
+
+2. Lista modeli w konstrukcji OpenCode.
+
+ ```json title="opencode.json"
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "model": "anthropic/claude-sonnet-4-20250514"
+ }
+ ```
+
+ Sformatuj tutaj na `provider/model`.
+
+3. Ostatni używany model.
+
+4. Pierwszy model sterujący priorytetem wewnętrznym.
diff --git a/packages/web/src/content/docs/pl/modes.mdx b/packages/web/src/content/docs/pl/modes.mdx
new file mode 100644
index 000000000..a5348251d
--- /dev/null
+++ b/packages/web/src/content/docs/pl/modes.mdx
@@ -0,0 +1,331 @@
+---
+title: Tryby
+description: Różne tryby dla różnych zastosowań.
+---
+
+:::caution
+Tryby są teraz konfigurowane za pomocą opcji `agent` w konfiguracji opencode.
+Opcja `mode` jest obecnie przestarzała. [Dowiedz się więcej](/docs/agents).
+:::
+
+Tryb udostępniania możliwości stosowania, narzędzie i podpowiedzi do różnych zastosowań.
+
+Posiadanie dwa tryby: **budowanie** i **planowanie**. Można dostosować
+te lub skonfiguruj własne za pomocą konfiguracji opencode.
+
+Można przełączać się między trybami podczas sesji lub konfigurować je w pliku konfiguracyjnym.
+
+---
+
+## Wbudowany
+
+opencode ma dwa puste tryby.
+
+---
+
+### Zbudować
+
+Kompilacja jest trybem **domyślnym** z dostępnymi narzędziami. Jest to standardowy tryb pracy programistycznej, który jest dostępny z pełnym dostępem do operacji na plikach i oryginalnych systemach systemowych.
+
+---
+
+### Plan
+
+Tryb ograniczony do analizy. W urządzeniu planowym narzędzia są przydatne:
+
+- `write` - Nie można stworzyć nowych plików
+- `edit` — Nie można zastosować naruszenia plików, z naruszeniem praw autorskich w `.opencode/plans/*.md` w celu uszczegółowienia samego planu
+- `patch` - Nie można zastosować poprawek
+- `bash` - Nie można wykonać poleceń powłoki
+
+Ten tryb jest alternatywny, gdy chcesz, aby sztuczna inteligencja analizowała kod, sugerowała zmianę lub tworzyła projekty bez źródła zewnętrznego, które stanowi bazę kodu.
+
+---
+
+## Przełączanie
+
+Możesz przełączać się między trybami podczas sesji za pomocą klawisza _Tab_. Lub skrót klawiszowy `switch_mode`.
+
+Zobacz także: [Formaterzy](/docs/formatters), aby uzyskać informacje na temat konfiguracji formatowania kodu.
+
+---
+
+## Skonfiguruj
+
+Możliwość dostosowania alternatywnego trybu lub konfiguracji poprzez własną konfigurację. Tryb można skonfigurować na dwa systemy:
+
+### Konfiguracja JSON-a
+
+Skonfiguruj tryb w pliku konfiguracyjnym `opencode.json`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mode": {
+ "build": {
+ "model": "anthropic/claude-sonnet-4-20250514",
+ "prompt": "{file:./prompts/build.txt}",
+ "tools": {
+ "write": true,
+ "edit": true,
+ "bash": true
+ }
+ },
+ "plan": {
+ "model": "anthropic/claude-haiku-4-20250514",
+ "tools": {
+ "write": false,
+ "edit": false,
+ "bash": false
+ }
+ }
+ }
+}
+```
+
+### Konfiguracja przecen
+
+Można także definiować tryby za pomocą plików przecen. Trzymaj je w:
+
+- Globalnie: `~/.config/opencode/modes/`
+- Projekt: `.opencode/modes/`
+
+```markdown title="~/.config/opencode/modes/review.md"
+---
+model: anthropic/claude-sonnet-4-20250514
+temperature: 0.1
+tools:
+ write: false
+ edit: false
+ bash: false
+---
+
+You are in code review mode. Focus on:
+
+- Code quality and best practices
+- Potential bugs and edge cases
+- Performance implications
+- Security considerations
+
+Provide constructive feedback without making direct changes.
+```
+
+Nazwa pliku przecen staje się kluczem trybunału (np. `review.md` tworzy tryb `review`).
+
+Przyjrzyjmy się szczegółowo tym opcjom konfiguracji.
+
+---
+
+### Model
+
+Zastosowanie konstrukcji `model`, aby zastosować domyślny model dla tego trybunału. Przydatne przy wykorzystaniu różnych modeli dostępnych w różnych zadaniach. Na przykład zastosowanie modelu, skuteczniejsze wykonanie modelu.
+
+```json title="opencode.json"
+{
+ "mode": {
+ "plan": {
+ "model": "anthropic/claude-haiku-4-20250514"
+ }
+ }
+}
+```
+
+---
+
+### Temperatura
+
+Kontroluj losowość i kreatywność reakcji AI za pomocą konstrukcji `temperature`. Niższe wartości, że odpowiedzi są bardziej skupione i deterministyczne, podczas gdy najwyższa wartość jest innowacyjna i złożona.
+
+```json title="opencode.json"
+{
+ "mode": {
+ "plan": {
+ "temperature": 0.1
+ },
+ "creative": {
+ "temperature": 0.8
+ }
+ }
+}
+```
+
+Wartości temperatury zazwyczaj wahają się od 0,0 do 1,0:
+
+- **0,0-0,2**: Bardzo skoncentrowane i deterministyczne odpowiedzi, idealne do analizy i kodu źródłowego
+- **0,3-0,5**: Zrównoważona odpowiedź z chwilą powstania, dobre do ogólnych zadań rozwojowych
+- **0,6–1,0**: Bardziej kreatywne i odpowiedzi, rozstrzygnięte podczas burzy mózgów i eksploracji
+
+```json title="opencode.json"
+{
+ "mode": {
+ "analyze": {
+ "temperature": 0.1,
+ "prompt": "{file:./prompts/analysis.txt}"
+ },
+ "build": {
+ "temperature": 0.3
+ },
+ "brainstorm": {
+ "temperature": 0.7,
+ "prompt": "{file:./prompts/creative.txt}"
+ }
+ }
+}
+```
+
+Jeśli nie ma wpływu na temperaturę, opencode stosuje się narzędzia badawcze dla modelu (zwykle 0 dla największych modeli, 0,55 dla modeli Qwen).
+
+---
+
+### Podpowiedź
+
+niestandardowy plik podpowiedzi systemowych dla tej procedury za pomocą konfiguracji `prompt`. Plik informacyjny powinien zawierać instrukcje dotyczące przeznaczenia trybunału.
+
+```json title="opencode.json"
+{
+ "mode": {
+ "review": {
+ "prompt": "{file:./prompts/code-review.txt}"
+ }
+ }
+}
+```
+
+Ścieżka ta zależy od miejsca, w którym znajduje się plik konfiguracyjny. Więc to dla działa
+zarówno globalna opencode, jak i specjalna dla projektu.
+
+---
+
+### Narzędzia
+
+Kontroluj, które narzędzia są dostępne w tym urządzeniu, za pomocą konfiguracji `tools`. Można włączyć lub dostępne narzędzie, ustawiając je na `true` lub `false`.
+
+```json
+{
+ "mode": {
+ "readonly": {
+ "tools": {
+ "write": false,
+ "edit": false,
+ "bash": false,
+ "read": true,
+ "grep": true,
+ "glob": true
+ }
+ }
+ }
+}
+```
+
+Jeśli nie ma żadnych narzędzi, wszystkie narzędzia są wyłączone.
+
+---
+
+#### Dostępne narzędzie
+
+Oto wszystkie narzędzia, które można sterować za pomocą konfiguracji trybunałów.
+
+| Narzędzie | Opis |
+| ----------- | ------------------------------------- |
+| `bash` | Wykonaj polecenia powłoki |
+| `edit` | Modyfikuj istniejące pliki |
+| `write` | Utwórz nowe pliki |
+| `read` | Przeczytaj zawartość pliku |
+| `grep` | Wyszukaj zawartość pliku |
+| `glob` | Znajdź pliki według wzorca |
+| `list` | Lista zawartości katalogu |
+| `patch` | Zastosuj poprawki do plików |
+| `todowrite` | Zarządzaj listami rzeczy do wykonania |
+| `todoread` | Przeczytaj listy rzeczy do zrobienia |
+| `webfetch` | Pobierz zawartość internetową |
+
+---
+
+## Tryby niestandardowe
+
+Możesz stworzyć własny tryb prywatny, dodając je do konfiguracji. Oto zastosowanie obu rozwiązań:
+
+### Korzystanie z konfiguracji JSON
+
+```json title="opencode.json" {4-14}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "mode": {
+ "docs": {
+ "prompt": "{file:./prompts/documentation.txt}",
+ "tools": {
+ "write": true,
+ "edit": true,
+ "bash": false,
+ "read": true,
+ "grep": true,
+ "glob": true
+ }
+ }
+ }
+}
+```
+
+### Korzystanie z plików Markdown
+
+Utwórz pliki trybów w `.opencode/modes/` dla trybów zapisanych dla projektu lub `~/.config/opencode/modes/` dla trybów globalnych:
+
+```markdown title=".opencode/modes/debug.md"
+---
+temperature: 0.1
+tools:
+ bash: true
+ read: true
+ grep: true
+ write: false
+ edit: false
+---
+
+You are in debug mode. Your primary goal is to help investigate and diagnose issues.
+
+Focus on:
+
+- Understanding the problem through careful analysis
+- Using bash commands to inspect system state
+- Reading relevant files and logs
+- Searching for patterns and anomalies
+- Providing clear explanations of findings
+
+Do not make any changes to files. Only investigate and report.
+```
+
+```markdown title="~/.config/opencode/modes/refactor.md"
+---
+model: anthropic/claude-sonnet-4-20250514
+temperature: 0.2
+tools:
+ edit: true
+ read: true
+ grep: true
+ glob: true
+---
+
+You are in refactoring mode. Focus on improving code quality without changing functionality.
+
+Priorities:
+
+- Improve code readability and maintainability
+- Apply consistent naming conventions
+- Reduce code duplication
+- Optimize performance where appropriate
+- Ensure all tests continue to pass
+```
+
+---
+
+### Przypadki użycia
+
+Oto kilka typowych zastosowań dla różnych trybów.
+
+- **Tryb stosowania**: Pełne prace programistyczne z dostępnymi narzędziami
+- **Tryb planowania**: Analiza i planowanie bez zmian
+- **Wypróbuj**: Przegląd kodu z możliwością odczytu i narzędzi do dokumentacji
+- **Spróbuj debugowania**: Koncentruje się na urządzeniu z dostępnymi narzędziami bash i odczytu
+- **Tryb Dokumenty**: Zapisywanie dokumentacji przy użyciu operacji na plikach, ale bez oryginalnych systemów systemowych
+
+Może się również zdarzyć, że różne modele są dobre w różnych wersjach użycia.
diff --git a/packages/web/src/content/docs/pl/network.mdx b/packages/web/src/content/docs/pl/network.mdx
new file mode 100644
index 000000000..bbb6fc1eb
--- /dev/null
+++ b/packages/web/src/content/docs/pl/network.mdx
@@ -0,0 +1,57 @@
+---
+title: Sieć
+description: Skonfiguruj serwery proxy i certyfikaty uwierzytelniające.
+---
+
+OpenCode obsługa standardowego zmiennego proxy i certyfikatów dla usług sieciowych przedsiębiorstw.
+
+---
+
+## Pełnomocnik
+
+OpenCode respektuje standardowe zmienne środowiskowe proxy.
+
+```bash
+# HTTPS proxy (recommended)
+export HTTPS_PROXY=https://proxy.example.com:8080
+
+# HTTP proxy (if HTTPS not available)
+export HTTP_PROXY=http://proxy.example.com:8080
+
+# Bypass proxy for local server (required)
+export NO_PROXY=localhost,127.0.0.1
+```
+
+:::caution
+TUI komunikuje się z popularnym serwerem HTTP. Aby zapobiec łączem routingu, należy ominąć serwer proxy dla tego połączenia.
+:::
+
+Możesz pozostawić port serwera i hosta za pomocą [flaga CLI](/docs/cli#run).
+
+---
+
+### Uwierzytelniać
+
+Jeśli Twój serwer proxy wymaga podstawowego uwierzytelniania, dołącz dane uwierzytelniające w adresie URL.
+
+```bash
+export HTTPS_PROXY=http://username:[email protected]:8080
+```
+
+:::caution
+Unikaj kodowania haseł na stałe. Użyj testów kontrolnych lub oprogramowania poświadczeń.
+:::
+
+W przypadku serwera proxy zaawansowanego uwierzytelniania, jak NTLM lub Kerberos, dostęp do bram LLM, który umożliwia uwierzytelnianie.
+
+---
+
+## Certyfikaty niestandardowe
+
+Jeśli Twoje przedsiębiorstwo korzysta z niestandardowych usług, urzędów dostępu do HTTPS, skonfiguruj OpenCode tak, aby im ufać.
+
+```bash
+export NODE_EXTRA_CA_CERTS=/path/to/ca-cert.pem
+```
+
+Działają tylko w przypadku proxy, jak i bezpośredniego dostępu do API.
diff --git a/packages/web/src/content/docs/pl/permissions.mdx b/packages/web/src/content/docs/pl/permissions.mdx
new file mode 100644
index 000000000..d824a2ec5
--- /dev/null
+++ b/packages/web/src/content/docs/pl/permissions.mdx
@@ -0,0 +1,237 @@
+---
+title: Uprawnienia
+description: Kontroluj, które Akcje wymagają zatwierdzenia do uruchomienia.
+---
+
+OpenCode używa `permission`, aby uniknąć, czy dana akcja została wykonana automatycznie, zachowana monit lub została zablokowana.
+
+Od `v1.1.1` starsza stworzona logiczna `tools` jest przestarzała i została stworzona scalona z `permission`. Stara wersja `tools` jest nadal obsługiwana w celu zapewnienia zgodności wstecznej.
+
+---
+
+## Działania
+
+Każda reguła uprawnień skutkuje jedną z:
+
+- `"allow"` — uruchamiany bez zgody
+- `"ask"` — monit o zatwierdzenie
+- `"deny"` — zablokuj akcję
+
+---
+
+## Konfiguracja
+
+Możesz zainstalować uprawnienia globalnie (za pomocą `*`) i znajdującego się w nim narzędzia.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "*": "ask",
+ "bash": "allow",
+ "edit": "deny"
+ }
+}
+```
+
+Możesz także zainstalować wszystkie uprawnienia na raz:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": "allow"
+}
+```
+
+---
+
+## Szczegółowe reguły (składnia obiektu)
+
+Można skorzystać z różnych działań, które zależą od danych użytkowych.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "bash": {
+ "*": "ask",
+ "git *": "allow",
+ "npm *": "allow",
+ "rm *": "deny",
+ "grep *": "allow"
+ },
+ "edit": {
+ "*": "deny",
+ "packages/web/src/content/docs/*.mdx": "allow"
+ }
+ }
+}
+```
+
+Reguły są zalecane na podstawie odpowiedniego wzorca, przy czym **ostatnia wynikaca reguła wygrywa**. Powszechnym wzorcem jest umieszczenie na pierwszym miejscu odpowiedniego catch-all `"*"`, a po bardziej szczegółowe zasady.
+
+### Symbole wieloznaczne
+
+Wzorce uprawnień z prostych dopasowywania symboli wieloznacznych:
+
+- `*` dopasowuje zero lub więcej dowolnego znaku
+- `?` odpowiada dokładnie jednemu znakowi
+- Wszystkie pozostałe znaki pasują dosłownie
+
+### Rozszerzenie katalogu domowego
+
+Możesz używać `~` lub `$HOME` na początku wzorca, aby zastosować się do swojego katalogu domowego. Jest to szczególnie szczególne w przypadku reguły [`external_directory`](#external-directories).
+
+- `~/projects/*` -> `/Users/username/projects/*`
+- `$HOME/projects/*` -> `/Users/username/projects/*`
+- `~` -> `/Users/username`
+
+### Katalogi zewnętrzne
+
+Użycie `external_directory`, aby zezwolić na wywołanie narzędzia, które obsługuje obsługę poza katalogiem roboczym, z uruchomieniem OpenCode. Dotyczy każdego narzędzia, które jako dane wejściowe zostało przyjęte (na przykład `read`, `edit`, `list`, `glob`, `grep` i wiele założycieli `bash`).
+
+Rozszerzenie domu (jak `~/...`) wpływa tylko na sposób za zwyczajowy wzorca. Nie powoduje to, że strategie zewnętrzne stają się stosowane przez `external_directory`.
+
+Na przykład umożliwia dostęp do wszystkiego pod `~/projects/personal/`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "external_directory": {
+ "~/projects/personal/**": "allow"
+ }
+ }
+}
+```
+
+Każdy dopuszczony tutaj katalog jest dziedziczy tych samych ustawień, co dostęp do obszaru roboczego. Ponieważ [`read` ma wartość domyślną `allow`](#defaults), odczyty są również dostępne dla wpisów poniżej `external_directory`, chyba że zagłębione. Dodaj dodatkowe rozwiązanie, kiedy narzędzie powinno być rozwiązaniem w tych ścieżkach, np. blokowanie edycji przy zachowaniu odczytów:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "external_directory": {
+ "~/projects/personal/**": "allow"
+ },
+ "edit": {
+ "~/projects/personal/**": "deny"
+ }
+ }
+}
+```
+
+Skoncentruj listę na zaufanych ścieżkach i dodaj dodatkowe zezwolenie lub odmowę, jeśli jest potrzebne w innych narzędziach (na przykład `bash`).
+
+---
+
+## Dostępne uprawnienia
+
+Uprawnienia OpenCode są określane na podstawie nazwy narzędzia i kilku zabezpieczeń:
+
+- `read` — odczyt pliku (odpowiada ścieżce pliku)
+- `edit` — wszystkie modyfikacje plików (obejmuje `edit`, `write`, `patch`, `multiedit`)
+- `glob` — maglowanie plików (pasuje do wzorców globowania)
+- `grep` — wyszukiwanie treści (pasuje do wzorca regularnego)
+- `list` — wyświetlanie listy plików w katalogu (pasuje do katalogu)
+- `bash` — uruchamianie poleceń powłoki (pasuje do poleceń przeanalizowanych, takich jak `git status --porcelain`)
+- `task` — uruchamianie podagentów (odpowiada typowi podagenta)
+- `skill` — ładowanie umiejętności (pasuje do nazwy umiejętności)
+- `lsp` — uruchamianie zapytań LSP (obecnie nieszczegółowych)
+- `todoread`, `todowrite` — czytanie/aktualizacja list rzeczy do wykonania
+- `webfetch` — pobieranie adresu URL (pasuje do adresu URL)
+- `websearch`, `codesearch` — wyszukiwanie sieci/kodu (pasuje do zapytań)
+- `external_directory` — wywoływacz, gdy narzędzie jest dostępne poza katalogiem roboczym projektu
+- `doom_loop` — wyzwalane, gdy samo wywołanie narzędzia zostanie powtórzone 3 razy z tymi samymi danymi podstawowymi
+
+---
+
+## Domyślne
+
+Jeżeli nic nie jest określone, OpenCode zostanie uruchomione od dopuszczalnych rozwiązań diagnostycznych:
+
+- Dostępne uprawnienia ma wartość domyślną `"allow"`.
+- `doom_loop` i `external_directory` zamek ma wartość `"ask"`.
+- `read` do `"allow"`, ale pliki `.env` są odrzucane:
+
+```json title="opencode.json"
+{
+ "permission": {
+ "read": {
+ "*": "allow",
+ "*.env": "deny",
+ "*.env.*": "deny",
+ "*.env.example": "allow"
+ }
+ }
+}
+```
+
+---
+
+## Co robi „Zapytaj”.
+
+Gdy OpenCode poprosi o zatwierdzenie, interfejs użytkownika oferujący trzy wyniki:
+
+- `once` — zatwierdź tylko tę prośbę
+- `always` — zastosowanie, które następuje po zastosowaniu sugerowanych wzorców (przez następczą bieżącą sesję OpenCode)
+- `reject` — odrzucić
+
+Zestaw wzorców, które `always` zatwierdziłby, jest udostępniony przez narzędzie (na przykładzie zatwierdzenia bash zazwyczaj umieszczają na częstotliwości bezpiecznej prefiksy polecenia, takie jak `git status*`).
+
+---
+
+## Agenci
+
+Można uzyskać dostęp do poszczególnych agentów. Uprawnienia agenta są skalowane z konfiguracją globalną, a następnie agenta ma pierwszeństwo. [Dowiedz się więcej](/docs/agents#permissions) o prawach agenta.
+
+:::note
+Bardziej szczegółowe przykłady dopasowywania wzorców można znaleźć w sekcji [Reguły szczegółowe (składnia obiektu) (#granular-rules-object-syntax) powyżej.
+:::
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "bash": {
+ "*": "ask",
+ "git *": "allow",
+ "git commit *": "deny",
+ "git push *": "deny",
+ "grep *": "allow"
+ }
+ },
+ "agent": {
+ "build": {
+ "permission": {
+ "bash": {
+ "*": "ask",
+ "git *": "allow",
+ "git commit *": "ask",
+ "git push *": "deny",
+ "grep *": "allow"
+ }
+ }
+ }
+ }
+}
+```
+
+Możesz także mieć pozwolenie na agenta w Markdown:
+
+```markdown title="~/.config/opencode/agents/review.md"
+---
+description: Code review without edits
+mode: subagent
+permission:
+ edit: deny
+ bash: ask
+ webfetch: deny
+---
+
+Only analyze code and suggest changes.
+```
+
+:::tip
+zastosowanie dopasowywania wzorców dla pierwotnych z argumentami. `"grep *"` pozwala na `grep pattern file.txt`, podczas gdy sam `"grep"` blokuje to. Polecenia takie jak `git status` w przypadku postępowania dyscyplinarnego, ale ostatecznego zastosowania (np. `"git status *"`) podczas stosowania argumentów.
+:::
diff --git a/packages/web/src/content/docs/pl/plugins.mdx b/packages/web/src/content/docs/pl/plugins.mdx
new file mode 100644
index 000000000..8747c1048
--- /dev/null
+++ b/packages/web/src/content/docs/pl/plugins.mdx
@@ -0,0 +1,385 @@
+---
+title: Wtyczki
+description: Napisz własną wtyczkę, aby rozszerzyć OpenCode.
+---
+
+Wtyczki umożliwiające wyłączenie OpenCode poprzez podjęcie różnych zdarzeń i zachowanie. Można utworzyć wtyczkę, aby sprawdzić nowe funkcje, integrować się z usługami lub sprawdzaniem zachowania OpenCode.
+
+Aby znaleźć się z przykładami, przejrzyj [wtyczki](/docs/ecosystem#plugins) utworzone przez społeczność.
+
+---
+
+## użyj wtyczki
+
+Istnieją dwa sposoby ładowania wtyczek.
+
+---
+
+### Z plików lokalnych
+
+Miejsce plików JavaScript lub TypeScript w katalogu wtyczki.
+
+- `.opencode/plugins/` - Wtyczki na poziomie projektu
+- `~/.config/opencode/plugins/` - Wtyczki globalne
+
+Pliki w tych katalogach są automatycznie ładowane podczas uruchamiania.
+
+---
+
+### Z npm
+
+szczegółowy pakiet npm w pliku konfiguracyjnym.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "plugin": ["opencode-helicone-session", "opencode-wakatime", "@my-org/custom-plugin"]
+}
+```
+
+Obsługiwane są zarówno pakiety zwykłe, jak i pakiety npm o określonym zakresie.
+
+Przeglądaj dostępną wtyczkę w [ekosystemie](/docs/ecosystem#plugins).
+
+---
+
+### Sposób instalacji wtyczek
+
+**wtyczki npm** są instalowane automatycznie przy użyciu Bun podczas uruchamiania. Pakiety i ich zależności są buforowane w `~/.cache/opencode/node_modules/`.
+
+**Wtyczki lokalne** są ładowane bezpośrednio z katalogu wtyczek. Aby uzyskać dostęp do zewnętrznych pakietów, musisz zainstalować `package.json` w swoim katalogu konfiguracyjnym (zobacz [Zależności](#dependencies)) lub opublikować wtyczkę w npm i [dodaj ją do swojej konfiguracji](/docs/config#plugins).
+
+---
+
+### Załaduj zamówienie
+
+Wtyczki są ładowane ze wszystkich źródeł, a wszystkie hooki napisane po kolei. Kolejność ładowania do:
+
+1. Konfiguracja globalna (`~/.config/opencode/opencode.json`)
+2. Konfiguracja projektu (`opencode.json`)
+3. Globalny katalog wtyczek (`~/.config/opencode/plugins/`)
+4. Katalog wtyczek projektu (`.opencode/plugins/`)
+
+Zduplikowane pakiety npm o tej samej nazwie i wersji są ładowane raz. Równie ważny jest dostęp lokalny i zewnętrzny npm o dodatkowych nazwach, które są zewnętrzne.
+
+---
+
+## Utwórz wtyczkę
+
+Wtyczka do **moduł JavaScript/TypeScript**, który eksportuje jeden lub więcej wtyczek
+funkcje. dostępna funkcja korzystania z obiektu kontekstu i głównego obiektu hooks.
+
+---
+
+### Zależności
+
+Lokalne narzędzie i narzędzie, które można wykorzystać z zewnętrznych pakietów npm. Dodaj `package.json` do swojego katalogu konfiguracyjnego z zależnościami.
+
+```json title=".opencode/package.json"
+{
+ "dependencies": {
+ "shescape": "^2.1.0"
+ }
+}
+```
+
+OpenCode uruchomienie `bun install` przy uruchomieniu, aby je uruchomić. Twoje dodatkowe funkcje będą dostępne po zaimportowaniu.
+
+```ts title=".opencode/plugins/my-plugin.ts"
+import { escape } from "shescape"
+
+export const MyPlugin = async (ctx) => {
+ return {
+ "tool.execute.before": async (input, output) => {
+ if (input.tool === "bash") {
+ output.args.command = escape(output.args.command)
+ }
+ },
+ }
+}
+```
+
+---
+
+### Podstawowa struktura
+
+```js title=".opencode/plugins/example.js"
+export const MyPlugin = async ({ project, client, $, directory, worktree }) => {
+ console.log("Plugin initialized!")
+
+ return {
+ // Hook implementations go here
+ }
+}
+```
+
+Funkcja dostępu do:
+
+- `project`: Aktualne informacje o projekcie.
+- `directory`: Bieżący katalog roboczy.
+- `worktree`: Ścieżka eksploatacyjna Git.
+- `client`: Klient SDK z otwartym kodem do sztucznej inteligencji.
+- `$`: [API obudowy](https://bun.com/docs/runtime/shell) Buna do wykonywania oprogramowania.
+
+---
+
+### Obsługa TypeScriptu
+
+W przypadku wtyczek TypeScript możesz importować typy z pakietu wtyczek:
+
+```ts title="my-plugin.ts" {1}
+import type { Plugin } from "@opencode-ai/plugin"
+
+export const MyPlugin: Plugin = async ({ project, client, $, directory, worktree }) => {
+ return {
+ // Type-safe hook implementations
+ }
+}
+```
+
+---
+
+### Wydarzenia
+
+Wtyczki mogą subskrybować zdarzenia, jak zastosować poniżej sekcji Przykłady. Oto lista różnych działań.
+
+#### Wydarzenia dowodzenia
+
+- `command.executed`
+
+#### Plik Wydarzenia
+
+- `file.edited`
+- `file.watcher.updated`
+
+#### Wydarzenia instalacyjne
+
+- `installation.updated`
+
+#### Wydarzenia LSP
+
+- `lsp.client.diagnostics`
+- `lsp.updated`
+
+#### Wydarzenia w wiadomościach
+
+- `message.part.removed`
+- `message.part.updated`
+- `message.removed`
+- `message.updated`
+
+#### Wydarzenia związane z uprawnieniami
+
+- `permission.asked`
+- `permission.replied`
+
+#### Wydarzenia serwerowe
+
+- `server.connected`
+
+#### Wydarzenia sesyjne
+
+- `session.created`
+- `session.compacted`
+- `session.deleted`
+- `session.diff`
+- `session.error`
+- `session.idle`
+- `session.status`
+- `session.updated`
+
+#### Wydarzenia do zrobienia
+
+- `todo.updated`
+
+#### Wydarzenia powłoki
+
+- `shell.env`
+
+#### Wydarzenia narzędziowe
+
+- `tool.execute.after`
+- `tool.execute.before`
+
+#### Wydarzenia TUI
+
+- `tui.prompt.append`
+- `tui.command.execute`
+- `tui.toast.show`
+
+---
+
+## Przykłady
+
+Oto kilka dostępnych wtyczek, które można udostępnić do kodu opencode.
+
+---
+
+### Wysyłaj powiadomienia
+
+Wysyłaj powiadomienia, gdy wystąpią określone zdarzenia:
+
+```js title=".opencode/plugins/notification.js"
+export const NotificationPlugin = async ({ project, client, $, directory, worktree }) => {
+ return {
+ event: async ({ event }) => {
+ // Send notification on session completion
+ if (event.type === "session.idle") {
+ await $`osascript -e 'display notification "Session completed!" with title "opencode"'`
+ }
+ },
+ }
+}
+```
+
+Używamy `osascript` do uruchamiania AppleScript na macOS. Tutaj możesz przejść do wysyłania pozostałości.
+
+:::note
+Jeśli korzystasz z aplikacji komputerowej OpenCode, może ona automatycznie wysłać wiadomość systemową, gdy odpowiedź jest gotowa lub gdy wystąpią błędy sesji.
+:::
+
+---
+
+### ochrona .env
+
+Zablokuj opencode czytanie plików `.env`:
+
+```javascript title=".opencode/plugins/env-protection.js"
+export const EnvProtection = async ({ project, client, $, directory, worktree }) => {
+ return {
+ "tool.execute.before": async (input, output) => {
+ if (input.tool === "read" && output.args.filePath.includes(".env")) {
+ throw new Error("Do not read .env files")
+ }
+ },
+ }
+}
+```
+
+---
+
+### Wstrzyknij zmienne środowiskowe
+
+Wstrzyknij zmienne konsekwencje dla wszystkich wykonań (narzędzia AI i terminale użytkownika):
+
+```javascript title=".opencode/plugins/inject-env.js"
+export const InjectEnvPlugin = async () => {
+ return {
+ "shell.env": async (input, output) => {
+ output.env.MY_API_KEY = "secret"
+ output.env.PROJECT_ROOT = input.cwd
+ },
+ }
+}
+```
+
+---
+
+### Niestandardowe narzędzia
+
+Wtyczki mogą również dodawać niestandardowe narzędzia do opencode:
+
+```ts title=".opencode/plugins/custom-tools.ts"
+import { type Plugin, tool } from "@opencode-ai/plugin"
+
+export const CustomToolsPlugin: Plugin = async (ctx) => {
+ return {
+ tool: {
+ mytool: tool({
+ description: "This is a custom tool",
+ args: {
+ foo: tool.schema.string(),
+ },
+ async execute(args, context) {
+ const { directory, worktree } = context
+ return `Hello ${args.foo} from ${directory} (worktree: ${worktree})`
+ },
+ }),
+ },
+ }
+}
+```
+
+Pomocnik `tool` tworzy narzędzie użytkowe, które może wywołać kod opencode. Pobierane schematu Zoda i narzędzie wyszukiwania za pomocą:
+
+- `description`: Co robi do narzędzia
+- `args`: Schemat Zoda dla narzędzi argumentów
+- `execute`: Funkcja uruchamiania po wywołaniu narzędzia
+
+Twoje narzędzie będzie dostępne dla otwartego kodu wraz z narzędziami użytkowymi.
+
+---
+
+### Wycięcie lasu
+
+użyj `client.app.log()` zamiast `console.log` do rejestracji strukturalnego:
+
+```ts title=".opencode/plugins/my-plugin.ts"
+export const MyPlugin = async ({ client }) => {
+ await client.app.log({
+ body: {
+ service: "my-plugin",
+ level: "info",
+ message: "Plugin initialized",
+ extra: { foo: "bar" },
+ },
+ })
+}
+```
+
+Poziomy: `debug`, `info`, `warn`, `error`. Aby uzyskać szczegółowe informacje, zobacz [dokumentację pakietu SDK](https://opencode.ai/docs/sdk).
+
+---
+
+### Haki zagęszczające
+
+Dostosuj kontekst dołączony podczas kompaktowania sesji:
+
+```ts title=".opencode/plugins/compaction.ts"
+import type { Plugin } from "@opencode-ai/plugin"
+
+export const CompactionPlugin: Plugin = async (ctx) => {
+ return {
+ "experimental.session.compacting": async (input, output) => {
+ // Inject additional context into the compaction prompt
+ output.context.push(`
+## Custom Context
+
+Include any state that should persist across compaction:
+- Current task status
+- Important decisions made
+- Files being actively worked on
+`)
+ },
+ }
+}
+```
+
+Hak `experimental.session.compacting` jest uruchamiany, zanim LLM wygeneruje podsumowanie kontynuacji. go, aby wstrzyknąć kontekst kontekstu dla domeny, której nie dostrzeżono przez domyślny monit o zagęszczenie.
+
+Można także umieścić kompletny monit o zagęszczenie, ustawiając `output.prompt`:
+
+```ts title=".opencode/plugins/custom-compaction.ts"
+import type { Plugin } from "@opencode-ai/plugin"
+
+export const CustomCompactionPlugin: Plugin = async (ctx) => {
+ return {
+ "experimental.session.compacting": async (input, output) => {
+ // Replace the entire compaction prompt
+ output.prompt = `
+You are generating a continuation prompt for a multi-agent swarm session.
+
+Summarize:
+1. The current task and its status
+2. Which files are being modified and by whom
+3. Any blockers or dependencies between agents
+4. The next steps to complete the work
+
+Format as a structured prompt that a new agent can use to resume work.
+`
+ },
+ }
+}
+```
+
+Gdy urządzenie jest `output.prompt`, jest całkowicie dostępne na domyślnym monit o zagęszczanie. Tablica `output.context` jest w tym przypadku poniesiona.
diff --git a/packages/web/src/content/docs/pl/providers.mdx b/packages/web/src/content/docs/pl/providers.mdx
new file mode 100644
index 000000000..55364dd29
--- /dev/null
+++ b/packages/web/src/content/docs/pl/providers.mdx
@@ -0,0 +1,1888 @@
+---
+title: Providers
+description: Korzystanie z dowolnego dostawcy LLM w OpenCode.
+---
+
+import config from "../../../../config.mjs"
+export const console = config.console
+
+OpenCode używa [AI SDK](https://ai-sdk.dev/) i [Models.dev](https://models.dev) do obsługi **ponad 75 dostawców LLM** i obsługuje uruchamianie modeli lokalnych.
+
+Aby dodać dostawcę należy:
+
+1. Dodaj klucze API dla dostawcy za pomocą komendy `/connect`.
+2. Skonfiguruj dostawcę w konfiguracji OpenCode.
+
+---
+
+### Credentials
+
+Po dodaniu kluczy API dostawcy za pomocą polecenia `/connect` są one przechowywane
+in `~/.local/share/opencode/auth.json`.
+
+---
+
+### Config
+
+Możesz dostosować dostawców za pomocą sekcji `provider` w swoim OpenCode
+config.
+
+---
+
+#### Base URL
+
+Możesz dostosować podstawowy adres URL dla dowolnego dostawcy, ustawiając opcję `baseURL`. Jest to przydatne podczas korzystania z usług proxy lub niestandardowych punktów końcowych.
+
+```json title="opencode.json" {6}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "anthropic": {
+ "options": {
+ "baseURL": "https://api.anthropic.com/v1"
+ }
+ }
+ }
+}
+```
+
+---
+
+## OpenCode Zen
+
+OpenCode Zen to lista modeli dostarczonych przez zespół OpenCode, które zostały
+przetestowane i zweryfikowane, aby dobrze współpracować z OpenCode. [Dowiedz się więcej](/docs/zen).
+
+:::tip
+Jeśli jesteś nowy, zalecamy rozpoczęcie od OpenCode Zen.
+:::
+
+1. Uruchom polecenie `/connect` w TUI, wybierz opencode i przejdź do [opencode.ai/auth](https://opencode.ai/auth).
+
+ ```txt
+ /connect
+ ```
+
+2. Zaloguj się, dodaj szczegóły rozliczeniowe i skopiuj klucz API.
+
+3. Wklej swój klucz API.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom `/models` w TUI, aby zobaczyć listę zalecanych przez nas modeli.
+
+ ```txt
+ /models
+ ```
+
+Działa jak każdy inny dostawca w OpenCode i jest całkowicie opcjonalny w użyciu.
+
+---
+
+## Directory
+
+Przyjrzyjmy się szczegółowo niektórym dostawcom. Jeśli chcesz dodać dostawcę do
+listę, możesz otworzyć PR.
+
+:::note
+Nie widzisz tutaj dostawcy? Prześlij PR.
+:::
+
+---
+
+### 302.AI
+
+1. Przejdź do [konsoli 302.AI](https://302.ai/), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **302.AI**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wpisz swój klucz API 302.AI.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Amazon Bedrock
+
+Aby używać Amazon Bedrock z OpenCode:
+
+1. Przejdź do **Katalogu modeli** w konsoli Amazon Bedrock i poproś
+ dostęp do wybranych modeli.
+
+ :::tip
+ Musisz mieć dostęp do żądanego modelu w Amazon Bedrock.
+ :::
+
+2. **Skonfiguruj uwierzytelnianie** przy użyciu jednej z następujących metod:
+
+ #### Zmienne środowiskowe (Szybki start)
+
+ Set one of these environment variables while running opencode:
+
+ ```bash
+ # Option 1: Using AWS access keys
+ AWS_ACCESS_KEY_ID=XXX AWS_SECRET_ACCESS_KEY=YYY opencode
+
+ # Option 2: Using named AWS profile
+ AWS_PROFILE=my-profile opencode
+
+ # Option 3: Using Bedrock bearer token
+ AWS_BEARER_TOKEN_BEDROCK=XXX opencode
+ ```
+
+ Lub dodaj je do swojego profilu bash:
+
+ ```bash title="~/.bash_profile"
+ export AWS_PROFILE=my-dev-profile
+ export AWS_REGION=us-east-1
+ ```
+
+ #### Configuration File (Recommended)
+
+ W przypadku konfiguracji specyficznej dla projektu lub trwałej użyj `opencode.json`:
+
+ ```json title="opencode.json"
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "amazon-bedrock": {
+ "options": {
+ "region": "us-east-1",
+ "profile": "my-aws-profile"
+ }
+ }
+ }
+ }
+ ```
+
+ **Dostępne opcje:**
+ - `region` - AWS region (e.g., `us-east-1`, `eu-west-1`)
+ - `profile` - AWS named profile from `~/.aws/credentials`
+ - `endpoint` — niestandardowy adres URL punktu końcowego dla punktów końcowych VPC (alias dla ogólnej opcji `baseURL`)
+
+ :::tip
+ Configuration file options take precedence over environment variables.
+ :::
+
+ #### Advanced: VPC Endpoints
+
+ Jeśli używasz punktów końcowych VPC dla Bedrock:
+
+ ```json title="opencode.json"
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "amazon-bedrock": {
+ "options": {
+ "region": "us-east-1",
+ "profile": "production",
+ "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
+ }
+ }
+ }
+ }
+ ```
+
+ :::note
+ Opcja `endpoint` jest aliasem ogólnej opcji `baseURL`, używając terminologii specyficznej dla AWS. Jeśli określono zarówno `endpoint`, jak i `baseURL`, pierwszeństwo ma `endpoint`.
+ :::
+
+ #### Authentication Methods
+ - **`AWS_ACCESS_KEY_ID` / `AWS_SECRET_ACCESS_KEY`**: Utwórz użytkownika IAM i wygeneruj klucze dostępu w konsoli AWS
+ - **`AWS_PROFILE`**: Użyj nazwanych profili z `~/.aws/credentials`. Najpierw skonfiguruj za pomocą `aws configure --profile my-profile` lub `aws sso login`
+ - **`AWS_BEARER_TOKEN_BEDROCK`**: Wygeneruj długoterminowe klucze API z konsoli Amazon Bedrock
+ - **`AWS_WEB_IDENTITY_TOKEN_FILE` / `AWS_ROLE_ARN`**: Dla EKS IRSA (Role IAM dla kont usług) lub innych środowisk Kubernetes z federacją OIDC. Te zmienne środowiskowe są automatycznie wstrzykiwane przez Kubernetes podczas korzystania z adnotacji konta usługi.
+
+ #### Authentication Precedence
+
+ Amazon Bedrock wykorzystuje następujący priorytet uwierzytelniania:
+ 1. **Token nośnika** - zmienna środowiskowa `AWS_BEARER_TOKEN_BEDROCK` lub token z komendy `/connect`
+ 2. **AWS Credential Chain** - Profile, access keys, shared credentials, IAM roles, Web Identity Tokens (EKS IRSA), instance metadata
+
+ :::note
+ When a bearer token is set (via `/connect` or `AWS_BEARER_TOKEN_BEDROCK`), it takes precedence over all AWS credential methods including configured profiles.
+ :::
+
+3. Uruchom komendę `/models`, aby wybrać żądany model.
+
+ ```txt
+ /models
+ ```
+
+:::note
+W przypadku niestandardowych profili wnioskowania użyj nazwy modelu i dostawcy w kluczu i ustaw właściwość `id` na wartość arn. Zapewnia to prawidłowe buforowanie:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "amazon-bedrock": {
+ // ...
+ "models": {
+ "anthropic-claude-sonnet-4.5": {
+ "id": "arn:aws:bedrock:us-east-1:xxx:application-inference-profile/yyy"
+ }
+ }
+ }
+ }
+}
+```
+
+:::
+
+---
+
+### Anthropic
+
+1. Po zarejestrowaniu się uruchom komendę `/connect` i wybierz opcję Anthropic.
+
+ ```txt
+ /connect
+ ```
+
+2. Tutaj możesz wybrać opcję **Claude Pro/Max**, co spowoduje otwarcie przeglądarki
+ i poproś o uwierzytelnienie.
+
+ ```txt
+ ┌ Select auth method
+ │
+ │ Claude Pro/Max
+ │ Create an API Key
+ │ Manually enter API Key
+ └
+ ```
+
+3. Teraz wszystkie modele antropiczne powinny być dostępne po użyciu polecenia `/models`.
+
+ ```txt
+ /models
+ ```
+
+:::info
+Korzystanie z subskrypcji Claude Pro/Max w OpenCode nie jest oficjalnie obsługiwane przez [Anthropic](https://anthropic.com).
+:::
+
+##### Using API keys
+
+Możesz także wybrać opcję **Utwórz klucz API**, jeśli nie masz subskrypcji Pro/Max. Otworzy się także Twoja przeglądarka i poprosi Cię o zalogowanie się do Anthropic i poda kod, który możesz wkleić w terminalu.
+
+Lub jeśli masz już klucz API, możesz wybrać **Wprowadź klucz API ręcznie** i wkleić go w terminalu.
+
+---
+
+### Azure OpenAI
+
+:::note
+Jeśli napotkasz błędy „Przykro mi, ale nie mogę pomóc w tej prośbie”, spróbuj zmienić filtr zawartości z **DefaultV2** na **Default** w zasobie platformy Azure.
+:::
+
+1. Przejdź do [Azure portal](https://portal.azure.com/) i utwórz zasób **Azure OpenAI**. Będziesz potrzebować:
+ - **Nazwa zasobu**: staje się częścią punktu końcowego interfejsu API (`https://RESOURCE_NAME.openai.azure.com/`)
+ - **Klucz API**: `KEY 1` lub `KEY 2` z Twojego zasobu
+
+2. Przejdź do [Azure AI Foundry](https://ai.azure.com/) i wdróż model.
+
+ :::note
+ Aby kod opencode działał poprawnie, nazwa wdrożenia musi być zgodna z nazwą modelu.
+ :::
+
+3. Uruchom polecenie `/connect` i wyszukaj **Azure**.
+
+ ```txt
+ /connect
+ ```
+
+4. Wpisz swój klucz API.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+5. Ustaw nazwę zasobu jako zmienną środowiskową:
+
+ ```bash
+ AZURE_RESOURCE_NAME=XXX opencode
+ ```
+
+ Lub dodaj go do swojego profilu bash:
+
+ ```bash title="~/.bash_profile"
+ export AZURE_RESOURCE_NAME=XXX
+ ```
+
+6. Uruchom komendę `/models`, aby wybrać wdrożony model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Azure Cognitive Services
+
+1. Przejdź do [Azure portal](https://portal.azure.com/) i utwórz zasób **Azure OpenAI**. Będziesz potrzebować:
+ - **Nazwa zasobu**: staje się częścią punktu końcowego interfejsu API (`https://AZURE_COGNITIVE_SERVICES_RESOURCE_NAME.cognitiveservices.azure.com/`)
+ - **Klucz API**: `KEY 1` lub `KEY 2` z Twojego zasobu
+
+2. Przejdź do [Azure AI Foundry](https://ai.azure.com/) i wdróż model.
+
+ :::note
+ Aby kod opencode działał poprawnie, nazwa wdrożenia musi być zgodna z nazwą modelu.
+ :::
+
+3. Uruchom polecenie `/connect` i wyszukaj **Azure Cognitive Services**.
+
+ ```txt
+ /connect
+ ```
+
+4. Wpisz swój klucz API.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+5. Ustaw nazwę zasobu jako zmienną środowiskową:
+
+ ```bash
+ AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX opencode
+ ```
+
+ Lub dodaj go do swojego profilu bash:
+
+ ```bash title="~/.bash_profile"
+ export AZURE_COGNITIVE_SERVICES_RESOURCE_NAME=XXX
+ ```
+
+6. Uruchom komendę `/models`, aby wybrać wdrożony model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Baseten
+
+1. Udaj się do [Baseten](https://app.baseten.co/), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **Baseten**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API Baseten.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Cerebras
+
+1. Przejdź do [konsoli Cerebras](https://inference.cerebras.ai/), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **Cerebras**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API Cerebras.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Qwen 3 Coder 480B_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Cloudflare AI Gateway
+
+Cloudflare AI Gateway umożliwia dostęp do modeli z OpenAI, Anthropic, Workers AI i innych za pośrednictwem ujednoliconego punktu końcowego. Dzięki [Ujednoliconemu rozliczeniu](https://developers.cloudflare.com/ai-gateway/features/unified-billing/) nie potrzebujesz oddzielnych kluczy API dla każdego dostawcy.
+
+1. Przejdź do [panelu Cloudflare](https://dash.cloudflare.com/), przejdź do **AI** > **AI Gateway** i utwórz nową bramę.
+
+2. Ustaw identyfikator konta i identyfikator bramy jako zmienne środowiskowe.
+
+ ```bash title="~/.bash_profile"
+ export CLOUDFLARE_ACCOUNT_ID=your-32-character-account-id
+ export CLOUDFLARE_GATEWAY_ID=your-gateway-id
+ ```
+
+3. Uruchom polecenie `/connect` i wyszukaj **Cloudflare AI Gateway**.
+
+ ```txt
+ /connect
+ ```
+
+4. Wprowadź swój token API Cloudflare.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+ Or set it as an environment variable.
+
+ ```bash title="~/.bash_profile"
+ export CLOUDFLARE_API_TOKEN=your-api-token
+ ```
+
+5. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+ Możesz także dodawać modele za pomocą konfiguracji opencode.
+
+ ```json title="opencode.json"
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "cloudflare-ai-gateway": {
+ "models": {
+ "openai/gpt-4o": {},
+ "anthropic/claude-sonnet-4": {}
+ }
+ }
+ }
+ }
+ ```
+
+---
+
+### Cortecs
+
+1. Przejdź do [konsoli Cortecs](https://cortecs.ai/), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **Cortecs**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API Cortecs.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### DeepSeek
+
+1. Przejdź do [konsoli DeepSeek](https://platform.deepseek.com/), utwórz konto i kliknij **Utwórz nowy klucz API**.
+
+2. Uruchom polecenie `/connect` i wyszukaj **DeepSeek**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API DeepSeek.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model DeepSeek, np. _DeepSeek Reasoner_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Deep Infra
+
+1. Przejdź do [panelu Deep Infra](https://deepinfra.com/dash), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **Deep Infra**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API Deep Infra.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Firmware
+
+1. Przejdź do [panelu oprogramowania sprzętowego](https://app.firmware.ai/signup), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom polecenie `/connect` i wyszukaj **Oprogramowanie sprzętowe**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API oprogramowania układowego.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Fireworks AI
+
+1. Przejdź do [konsoli Fireworks AI](https://app.fireworks.ai/), utwórz konto i kliknij **Utwórz klucz API**.
+
+2. Uruchom polecenie `/connect` i wyszukaj **Fireworks AI**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API programu Fireworks AI.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### GitLab Duo
+
+GitLab Duo zapewnia czat agentowy oparty na sztucznej inteligencji z natywnymi możliwościami wywoływania narzędzi za pośrednictwem Anthropic proxy GitLab.
+
+1. Uruchom komendę `/connect` i wybierz GitLab.
+
+ ```txt
+ /connect
+ ```
+
+2. Wybierz metodę uwierzytelniania:
+
+ ```txt
+ ┌ Select auth method
+ │
+ │ OAuth (Recommended)
+ │ Personal Access Token
+ └
+ ```
+
+ #### Using OAuth (Recommended)
+
+ Wybierz **OAuth**, a Twoja przeglądarka otworzy się w celu autoryzacji.
+
+ #### Using Personal Access Token
+ 1. Przejdź do [Ustawienia użytkownika GitLab > Tokeny dostępu](https://gitlab.com/-/user_settings/personal_access_tokens)
+ 2. Click **Add new token**
+ 3. Name: `OpenCode`, Scopes: `api`
+ 4. Skopiuj token (zaczyna się od `glpat-`)
+ 5. Wpisz go w terminalu
+
+3. Uruchom komendę `/models`, aby zobaczyć dostępne modele.
+
+ ```txt
+ /models
+ ```
+
+ Dostępne są trzy modele oparte na Claude:
+ - **duo-chat-haiku-4-5** (Domyślnie) - Szybkie odpowiedzi dla szybkich zadań
+ - **duo-chat-sonnet-4-5** - Zrównoważona wydajność dla większości przepływów pracy
+ - **duo-chat-opus-4-5** - Najbardziej zdolny do złożonej analizy
+
+:::note
+Jeśli nie chcesz, możesz także określić zmienną środowiskową „GITLAB_TOKEN”.
+to store token in opencode auth storage.
+:::
+
+##### Self-Hosted GitLab
+
+:::note[compliance note]
+OpenCode używa małego modelu do niektórych zadań AI, takich jak generowanie tytułu sesji.
+Domyślnie jest skonfigurowany do używania gpt-5-nano, hostowanego przez Zen. Aby zablokować OpenCode
+aby używać tylko własnej instancji hostowanej przez GitLab, dodaj następujące elementy do pliku
+`opencode.json` plik. Zalecane jest również wyłączenie udostępniania sesji.
+
+```json
+{
+ "$schema": "https://opencode.ai/config.json",
+ "small_model": "gitlab/duo-chat-haiku-4-5",
+ "share": "disabled"
+}
+```
+
+:::
+
+W przypadku samodzielnie hostowanych instancji GitLab:
+
+```bash
+export GITLAB_INSTANCE_URL=https://gitlab.company.com
+export GITLAB_TOKEN=glpat-...
+```
+
+Jeśli w Twojej instancji działa niestandardowa brama AI:
+
+```bash
+GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com
+```
+
+Lub dodaj do swojego profilu bash:
+
+```bash title="~/.bash_profile"
+export GITLAB_INSTANCE_URL=https://gitlab.company.com
+export GITLAB_AI_GATEWAY_URL=https://ai-gateway.company.com
+export GITLAB_TOKEN=glpat-...
+```
+
+:::note
+Twój administrator GitLab musi włączyć następujące opcje:
+
+1. [Platforma Duo Agent](https://docs.gitlab.com/user/gitlab_duo/turn_on_off/) dla użytkownika, grupy lub instancji
+2. Feature flags (via Rails console):
+ - `agent_platform_claude_code`
+ - `third_party_agents_enabled`
+ :::
+
+##### OAuth dla instancji hostowanych samodzielnie
+
+Aby Oauth mógł działać w przypadku Twojej instancji hostowanej samodzielnie, musisz utworzyć
+nową aplikację (Ustawienia → Aplikacje) z
+Adres URL wywołania zwrotnego `http://127.0.0.1:8080/callback` i następujące zakresy:
+
+- api (Uzyskaj dostęp do API w swoim imieniu)
+- read_user (Przeczytaj swoje dane osobowe)
+- read_repository (umożliwia dostęp do repozytorium tylko do odczytu)
+
+Then expose application ID as environment variable:
+
+```bash
+export GITLAB_OAUTH_CLIENT_ID=your_application_id_here
+```
+
+More documentation on [opencode-gitlab-auth](https://www.npmjs.com/package/@gitlab/opencode-gitlab-auth) homepage.
+
+##### Configuration
+
+Customize through `opencode.json`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "gitlab": {
+ "options": {
+ "instanceUrl": "https://gitlab.com",
+ "featureFlags": {
+ "duo_agent_platform_agentic_chat": true,
+ "duo_agent_platform": true
+ }
+ }
+ }
+ }
+}
+```
+
+##### GitLab API Tools (Optional, but highly recommended)
+
+To access GitLab tools (merge requests, issues, pipelines, CI/CD, etc.):
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "plugin": ["@gitlab/opencode-gitlab-plugin"]
+}
+```
+
+Ta wtyczka zapewnia kompleksowe możliwości zarządzania repozytorium GitLab, w tym recenzje MR, śledzenie problemów, monitorowanie rurociągów i inne.
+
+---
+
+### GitHub Copilot
+
+Aby korzystać z subskrypcji GitHub Copilot z kodem opencode:
+
+:::note
+Niektóre modele mogą wymagać [subskrypcji Pro+](https://github.com/features/copilot/plans), aby z nich korzystać.
+
+Niektóre modele należy włączyć ręcznie w [ustawieniach GitHub Copilot](https://docs.github.com/en/copilot/how-tos/use-ai-models/configure-access-to-ai-models#setup-for-individual-use).
+:::
+
+1. Uruchom komendę `/connect` i wyszukaj GitHub Copilot.
+
+ ```txt
+ /connect
+ ```
+
+2. Przejdź do [github.com/login/device](https://github.com/login/device) i wpisz kod.
+
+ ```txt
+ ┌ Login with GitHub Copilot
+ │
+ │ https://github.com/login/device
+ │
+ │ Enter code: 8F43-6FCF
+ │
+ └ Waiting for authorization...
+ ```
+
+3. Teraz uruchom polecenie `/models`, aby wybrać żądany model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Google Vertex AI
+
+Aby używać Google Vertex AI z OpenCode:
+
+1. Przejdź do **Model Garden** w Google Cloud Console i sprawdź
+ modele dostępne w Twoim regionie.
+
+ :::note
+ Musisz mieć projekt Google Cloud z włączonym interfejsem API Vertex AI.
+ :::
+
+2. Ustaw wymagane zmienne środowiskowe:
+ - `GOOGLE_CLOUD_PROJECT`: identyfikator Twojego projektu Google Cloud
+ - `VERTEX_LOCATION` (opcjonalnie): region Vertex AI (domyślnie `global`)
+ - Authentication (choose one):
+ - `GOOGLE_APPLICATION_CREDENTIALS`: Ścieżka do pliku klucza JSON konta usługi
+ - Uwierzytelnij się za pomocą interfejsu CLI gcloud: `gcloud auth application-default login`
+
+ Set them while running opencode.
+
+ ```bash
+ GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json GOOGLE_CLOUD_PROJECT=your-project-id opencode
+ ```
+
+ Lub dodaj je do swojego profilu bash.
+
+ ```bash title="~/.bash_profile"
+ export GOOGLE_APPLICATION_CREDENTIALS=/path/to/service-account.json
+ export GOOGLE_CLOUD_PROJECT=your-project-id
+ export VERTEX_LOCATION=global
+ ```
+
+:::tip
+Region `global` poprawia dostępność i zmniejsza liczbę błędów bez dodatkowych kosztów. Użyj regionalnych punktów końcowych (np. `us-central1`) w celu spełnienia wymagań dotyczących miejsca przechowywania danych. [Dowiedz się więcej](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models#regional_and_global_endpoints)
+:::
+
+3. Uruchom komendę `/models`, aby wybrać żądany model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Groq
+
+1. Przejdź do [konsoli Groq](https://console.groq.com/), kliknij **Utwórz klucz API** i skopiuj klucz.
+
+2. Uruchom komendę `/connect` i wyszukaj Groq.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API dla dostawcy.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać żądany.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Hugging Face
+
+[Dostawcy wnioskowania o uścisku twarzy](https://huggingface.co/docs/inference-providers) zapewniają dostęp do otwartych modeli obsługiwanych przez ponad 17 dostawców.
+
+1. Przejdź do [Ustawień uścisku twarzy](https://huggingface.co/settings/tokens/new?ownUserPermissions=inference.serverless.write&tokenType=fineGrained), aby utworzyć token z uprawnieniami do wykonywania połączeń z dostawcami wnioskowania.
+
+2. Uruchom komendę `/connect` i wyszukaj **Przytulona twarz**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój token Przytulającej Twarzy.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi-K2-Instruct_ lub _GLM-4.6_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Helicone
+
+[Helicone](https://helicone.ai) to platforma obserwowalności LLM, która zapewnia rejestrowanie, monitorowanie i analizy dla aplikacji AI. Helicone AI Gateway automatycznie kieruje Twoje żądania do odpowiedniego dostawcy w oparciu o model.
+
+1. Udaj się do [Helicone](https://helicone.ai), utwórz konto i wygeneruj klucz API ze swojego panelu.
+
+2. Uruchom komendę `/connect` i wyszukaj **Helicone**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API Helicone.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+Więcej dostawców i zaawansowanych funkcji, takich jak buforowanie i ograniczanie szybkości, znajdziesz w [dokumentacji Helicone](https://docs.helicone.ai).
+
+#### Optional Configs
+
+Jeśli zobaczysz funkcję lub model firmy Helicone, która nie jest konfigurowana automatycznie za pomocą kodu opencode, zawsze możesz ją skonfigurować samodzielnie.
+
+Oto [Katalog modeli Helicone](https://helicone.ai/models), będziesz go potrzebować, aby pobrać identyfikatory modeli, które chcesz dodać.
+
+```jsonc title="~/.config/opencode/opencode.jsonc"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "helicone": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "Helicone",
+ "options": {
+ "baseURL": "https://ai-gateway.helicone.ai",
+ },
+ "models": {
+ "gpt-4o": {
+ // Model ID (from Helicone's model directory page)
+ "name": "GPT-4o", // Your own custom name for the model
+ },
+ "claude-sonnet-4-20250514": {
+ "name": "Claude Sonnet 4",
+ },
+ },
+ },
+ },
+}
+```
+
+#### Custom Headers
+
+Helicone obsługuje niestandardowe nagłówki dla funkcji takich jak buforowanie, śledzenie użytkowników i zarządzanie sesjami. Dodaj je do konfiguracji dostawcy za pomocą `options.headers`:
+
+```jsonc title="~/.config/opencode/opencode.jsonc"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "helicone": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "Helicone",
+ "options": {
+ "baseURL": "https://ai-gateway.helicone.ai",
+ "headers": {
+ "Helicone-Cache-Enabled": "true",
+ "Helicone-User-Id": "opencode",
+ },
+ },
+ },
+ },
+}
+```
+
+##### Śledzenie sesji
+
+Funkcja [Sesje](https://docs.helicone.ai/features/sessions) firmy Helicone umożliwia grupowanie powiązanych żądań LLM. Użyj wtyczki [opencode-helicone-session](https://github.com/H2Shami/opencode-helicone-session), aby automatycznie rejestrować każdą konwersację OpenCode jako sesję w Helicone.
+
+```bash
+npm install -g opencode-helicone-session
+```
+
+Dodaj go do swojej konfiguracji.
+
+```json title="opencode.json"
+{
+ "plugin": ["opencode-helicone-session"]
+}
+```
+
+Wtyczka wstawia nagłówki `Helicone-Session-Id` i `Helicone-Session-Name` do Twoich żądań. Na stronie Sesje Helicone każda konwersacja OpenCode będzie wymieniona jako osobna sesja.
+
+##### Common Helicone headers
+
+| Header | Description |
+| -------------------------- | ------------------------------------------------------------- |
+| `Helicone-Cache-Enabled` | Enable response caching (`true`/`false`) |
+| `Helicone-User-Id` | Track metrics by user |
+| `Helicone-Property-[Name]` | Add custom properties (e.g., `Helicone-Property-Environment`) |
+| `Helicone-Prompt-Id` | Powiąż żądania z wersjami podpowiedzi |
+
+Zobacz [Katalog nagłówków Helicone](https://docs.helicone.ai/helicone-headers/header-directory), aby poznać wszystkie dostępne nagłówki.
+
+---
+
+### llama.cpp
+
+Możesz skonfigurować kod otwarty tak, aby korzystał z modeli lokalnych, za pomocą narzędzia llama-server [llama.cpp](https://github.com/ggml-org/llama.cpp)
+
+```json title="opencode.json" "llama.cpp" {5, 6, 8, 10-15}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "llama.cpp": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "llama-server (local)",
+ "options": {
+ "baseURL": "http://127.0.0.1:8080/v1"
+ },
+ "models": {
+ "qwen3-coder:a3b": {
+ "name": "Qwen3-Coder: a3b-30b (local)",
+ "limit": {
+ "context": 128000,
+ "output": 65536
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+W tym przykładzie:
+
+- `llama.cpp` to niestandardowy identyfikator dostawcy. Może to być dowolny ciąg znaków.
+- `npm` określa pakiet, który ma być używany dla tego dostawcy. Tutaj `@ai-sdk/openai-compatible` jest używany dla dowolnego interfejsu API zgodnego z OpenAI.
+- `name` to nazwa wyświetlana dostawcy w interfejsie użytkownika.
+- `options.baseURL` jest punktem końcowym serwera lokalnego.
+- `models` to mapa identyfikatorów modeli do ich konfiguracji. Nazwa modelu zostanie wyświetlona na liście wyboru modelu.
+
+---
+
+### IO.NET
+
+IO.NET oferuje 17 modeli zoptymalizowanych pod kątem różnych zastosowań:
+
+1. Przejdź do [konsoli IO.NET](https://ai.io.net/), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **IO.NET**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API IO.NET.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### LM Studio
+
+Możesz skonfigurować kod otwarty tak, aby korzystał z modeli lokalnych poprzez LM Studio.
+
+```json title="opencode.json" "lmstudio" {5, 6, 8, 10-14}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "lmstudio": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "LM Studio (local)",
+ "options": {
+ "baseURL": "http://127.0.0.1:1234/v1"
+ },
+ "models": {
+ "google/gemma-3n-e4b": {
+ "name": "Gemma 3n-e4b (local)"
+ }
+ }
+ }
+ }
+}
+```
+
+W tym przykładzie:
+
+- `lmstudio` to niestandardowy identyfikator dostawcy. Może to być dowolny ciąg znaków.
+- `npm` określa pakiet, który ma być używany dla tego dostawcy. Tutaj `@ai-sdk/openai-compatible` jest używany dla dowolnego interfejsu API zgodnego z OpenAI.
+- `name` to nazwa wyświetlana dostawcy w interfejsie użytkownika.
+- `options.baseURL` jest punktem końcowym serwera lokalnego.
+- `models` to mapa identyfikatorów modeli do ich konfiguracji. Nazwa modelu zostanie wyświetlona na liście wyboru modelu.
+
+---
+
+### Moonshot AI
+
+Aby użyć Kimi K2 z Moonshot AI:
+
+1. Przejdź do [konsoli Moonshot AI](https://platform.moonshot.ai/console), utwórz konto i kliknij **Utwórz klucz API**.
+
+2. Uruchom polecenie `/connect` i wyszukaj **Moonshot AI**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API Moonshot.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać _Kimi K2_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### MiniMax
+
+1. Przejdź do [Konsoli API MiniMax](https://platform.minimax.io/login), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **MiniMax**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API MiniMax.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model taki jak _M2.1_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Nebius Token Factory
+
+1. Przejdź do [konsoli Nebius Token Factory](https://tokenfactory.nebius.com/), utwórz konto i kliknij **Dodaj klucz**.
+
+2. Uruchom komendę `/connect` i wyszukaj **Fabrykę tokenów Nebius**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API Nebius Token Factory.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Ollama
+
+Możesz skonfigurować kod otwarty tak, aby korzystał z modeli lokalnych poprzez Ollamę.
+
+:::tip
+Ollama może automatycznie skonfigurować się pod kątem OpenCode. Aby uzyskać szczegółowe informacje, zobacz [dokumentację integracji Ollama](https://docs.ollama.com/integrations/opencode).
+:::
+
+```json title="opencode.json" "ollama" {5, 6, 8, 10-14}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "ollama": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "Ollama (local)",
+ "options": {
+ "baseURL": "http://localhost:11434/v1"
+ },
+ "models": {
+ "llama2": {
+ "name": "Llama 2"
+ }
+ }
+ }
+ }
+}
+```
+
+W tym przykładzie:
+
+- `ollama` to niestandardowy identyfikator dostawcy. Może to być dowolny ciąg znaków.
+- `npm` określa pakiet, który ma być używany dla tego dostawcy. Tutaj `@ai-sdk/openai-compatible` jest używany dla dowolnego interfejsu API zgodnego z OpenAI.
+- `name` to nazwa wyświetlana dostawcy w interfejsie użytkownika.
+- `options.baseURL` jest punktem końcowym serwera lokalnego.
+- `models` to mapa identyfikatorów modeli do ich konfiguracji. Nazwa modelu zostanie wyświetlona na liście wyboru modelu.
+
+:::tip
+Jeśli wywołania narzędzi nie działają, spróbuj zwiększyć `num_ctx` w Ollama. Zacznij około 16 tys. - 32 tys.
+:::
+
+---
+
+### Ollama Cloud
+
+Aby korzystać z Ollama Cloud z OpenCode:
+
+1. Udaj się do [https://ollama.com/](https://ollama.com/) i zaloguj się lub utwórz konto.
+
+2. Przejdź do **Ustawienia** > **Klucze** i kliknij **Dodaj klucz API**, aby wygenerować nowy klucz API.
+
+3. Skopiuj klucz API do użycia w OpenCode.
+
+4. Uruchom polecenie `/connect` i wyszukaj **Ollama Cloud**.
+
+ ```txt
+ /connect
+ ```
+
+5. Wprowadź swój klucz API Ollama Cloud.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+6. **Ważne**: Przed użyciem modeli chmurowych w OpenCode musisz pobrać informacje o modelu lokalnie:
+
+ ```bash
+ ollama pull gpt-oss:20b-cloud
+ ```
+
+7. Uruchom polecenie `/models`, aby wybrać model Ollama Cloud.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### OpenAI
+
+Zalecamy zarejestrowanie się w [ChatGPT Plus lub Pro](https://chatgpt.com/pricing).
+
+1. Po zarejestrowaniu się uruchom komendę `/connect` i wybierz OpenAI.
+
+ ```txt
+ /connect
+ ```
+
+2. Tutaj możesz wybrać opcję **ChatGPT Plus/Pro**, co spowoduje otwarcie przeglądarki
+ i poproś o uwierzytelnienie.
+
+ ```txt
+ ┌ Select auth method
+ │
+ │ ChatGPT Plus/Pro
+ │ Manually enter API Key
+ └
+ ```
+
+3. Teraz wszystkie modele OpenAI powinny być dostępne po użyciu polecenia `/models`.
+
+ ```txt
+ /models
+ ```
+
+##### Using API keys
+
+Jeśli posiadasz już klucz API, możesz wybrać opcję **Wprowadź klucz API ręcznie** i wkleić go w terminalu.
+
+---
+
+### OpenCode Zen
+
+OpenCode Zen to lista przetestowanych i zweryfikowanych modeli udostępniona przez zespół OpenCode. [Dowiedz się więcej](/docs/zen).
+
+1. Zaloguj się do **<a href={console}>OpenCode Zen</a>** i kliknij **Utwórz klucz API**.
+
+2. Uruchom polecenie `/connect` i wyszukaj **OpenCode Zen**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API OpenCode.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Qwen 3 Coder 480B_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### OpenRouter
+
+1. Przejdź do [panelu OpenRouter](https://openrouter.ai/settings/keys), kliknij **Utwórz klucz API** i skopiuj klucz.
+
+2. Uruchom komendę `/connect` i wyszukaj OpenRouter.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API dla dostawcy.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Wiele modeli OpenRouter jest domyślnie załadowanych fabrycznie. Uruchom komendę `/models`, aby wybrać ten, który chcesz.
+
+ ```txt
+ /models
+ ```
+
+ Możesz także dodać dodatkowe modele za pomocą konfiguracji opencode.
+
+ ```json title="opencode.json" {6}
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "openrouter": {
+ "models": {
+ "somecoolnewmodel": {}
+ }
+ }
+ }
+ }
+ ```
+
+5. Możesz je także dostosować za pomocą konfiguracji opencode. Oto przykład określenia dostawcy
+
+ ```json title="opencode.json"
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "openrouter": {
+ "models": {
+ "moonshotai/kimi-k2": {
+ "options": {
+ "provider": {
+ "order": ["baseten"],
+ "allow_fallbacks": false
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ ```
+
+---
+
+### SAP AI Core
+
+SAP AI Core zapewnia dostęp do ponad 40 modeli z OpenAI, Anthropic, Google, Amazon, Meta, Mistral i AI21 za pośrednictwem ujednoliconej platformy.
+
+1. Przejdź do [SAP BTP Cockpit](https://account.hana.ondemand.com/), przejdź do instancji usługi SAP AI Core i utwórz klucz usługi.
+
+ :::tip
+ Klucz usługi to obiekt JSON zawierający `clientid`, `clientsecret`, `url` i `serviceurls.AI_API_URL`. Instancję AI Core znajdziesz w sekcji **Usługi** > **Instancje i subskrypcje** w Kokpicie BTP.
+ :::
+
+2. Uruchom polecenie `/connect` i wyszukaj **SAP AI Core**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wpisz swój klucz usługi JSON.
+
+ ```txt
+ ┌ Service key
+ │
+ │
+ └ enter
+ ```
+
+ Lub ustaw zmienną środowiskową `AICORE_SERVICE_KEY`:
+
+ ```bash
+ AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}' opencode
+ ```
+
+ Lub dodaj go do swojego profilu bash:
+
+ ```bash title="~/.bash_profile"
+ export AICORE_SERVICE_KEY='{"clientid":"...","clientsecret":"...","url":"...","serviceurls":{"AI_API_URL":"..."}}'
+ ```
+
+4. Opcjonalnie ustaw identyfikator wdrożenia i grupę zasobów:
+
+ ```bash
+ AICORE_DEPLOYMENT_ID=your-deployment-id AICORE_RESOURCE_GROUP=your-resource-group opencode
+ ```
+
+ :::note
+ Te ustawienia są opcjonalne i należy je skonfigurować zgodnie z konfiguracją SAP AI Core.
+ :::
+
+5. Uruchom polecenie `/models`, aby wybrać spośród ponad 40 dostępnych modeli.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### OVHcloud AI Endpoints
+
+1. Przejdź do [panelu OVHcloud](https://ovh.com/manager). Przejdź do sekcji `Public Cloud`, `AI & Machine Learning` > `AI Endpoints` i na karcie `API Keys` kliknij **Utwórz nowy klucz API**.
+
+2. Uruchom polecenie `/connect` i wyszukaj **Punkty końcowe AI OVHcloud**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wpisz klucz API punktów końcowych AI OVHcloud.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _gpt-oss-120b_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Scaleway
+
+Aby używać [generatywnych interfejsów API Scaleway](https://www.scaleway.com/en/docs/generative-apis/) z kodem Opencode:
+
+1. Przejdź do [Ustawień uprawnień konsoli Scaleway](https://console.scaleway.com/iam/api-keys), aby wygenerować nowy klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **Scaleway**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API Scaleway.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model taki jak _devstral-2-123b-instruct-2512_ lub _gpt-oss-120b_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Together AI
+
+1. Przejdź do [konsoli Razem AI](https://api.together.ai), utwórz konto i kliknij **Dodaj klucz**.
+
+2. Uruchom komendę `/connect` i wyszukaj **Razem AI**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API Together AI.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Kimi K2 Instruct_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Venice AI
+
+1. Przejdź do [konsoli Venice AI](https://venice.ai), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom polecenie `/connect` i wyszukaj **Venice AI**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API Wenecji AI.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Llama 3.3 70B_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Vercel AI Gateway
+
+Vercel AI Gateway umożliwia dostęp do modeli z OpenAI, Anthropic, Google, xAI i innych za pośrednictwem ujednoliconego punktu końcowego. Modele oferowane są po cenie katalogowej bez marży.
+
+1. Przejdź do [panelu Vercel](https://vercel.com/), przejdź do karty **AI Gateway** i kliknij **Klucze API**, aby utworzyć nowy klucz API.
+
+2. Uruchom polecenie `/connect` i wyszukaj **Vercel AI Gateway**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API Vercel AI Gateway.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model.
+
+ ```txt
+ /models
+ ```
+
+Możesz także dostosować modele za pomocą konfiguracji opencode. Oto przykład określenia kolejności routingu dostawcy.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "vercel": {
+ "models": {
+ "anthropic/claude-sonnet-4": {
+ "options": {
+ "order": ["anthropic", "vertex"]
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+Some useful routing options:
+
+| Opcja | Opis |
+| ------------------- | ---------------------------------------------------------------------------- |
+| `order` | Sekwencja dostawcy do wypróbowania |
+| `only` | Restrict to specific providers |
+| `zeroDataRetention` | Korzystaj wyłącznie z dostawców, którzy nie mają zasad przechowywania danych |
+
+---
+
+### xAI
+
+1. Przejdź do [konsoli xAI](https://console.x.ai/), utwórz konto i wygeneruj klucz API.
+
+2. Uruchom komendę `/connect` i wyszukaj **xAI**.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź swój klucz API xAI.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom polecenie `/models`, aby wybrać model taki jak _Grok Beta_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### Z.AI
+
+1. Przejdź do [konsoli API Z.AI](https://z.ai/manage-apikey/apikey-list), utwórz konto i kliknij **Utwórz nowy klucz API**.
+
+2. Uruchom komendę `/connect` i wyszukaj **Z.AI**.
+
+ ```txt
+ /connect
+ ```
+
+ Jeżeli jesteś abonentem **Planu kodowania GLM**, wybierz **Plan kodowania Z.AI**.
+
+3. Wpisz swój klucz API Z.AI.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Uruchom komendę `/models`, aby wybrać model taki jak _GLM-4.7_.
+
+ ```txt
+ /models
+ ```
+
+---
+
+### ZenMux
+
+1. Przejdź do [panelu ZenMux](https://zenmux.ai/settings/keys), kliknij **Utwórz klucz API** i skopiuj klucz.
+
+2. Uruchom polecenie `/connect` i wyszukaj ZenMux.
+
+ ```txt
+ /connect
+ ```
+
+3. Wprowadź klucz API dla dostawcy.
+
+ ```txt
+ ┌ API key
+ │
+ │
+ └ enter
+ ```
+
+4. Wiele modeli ZenMux jest domyślnie załadowanych fabrycznie. Uruchom komendę `/models`, aby wybrać żądany model.
+
+ ```txt
+ /models
+ ```
+
+ Możesz także dodać dodatkowe modele za pomocą konfiguracji opencode.
+
+ ```json title="opencode.json" {6}
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "zenmux": {
+ "models": {
+ "somecoolnewmodel": {}
+ }
+ }
+ }
+ }
+ ```
+
+---
+
+## Niestandardowy dostawca
+
+Aby dodać dowolnego dostawcę **kompatybilnego z OpenAI**, którego nie ma na liście w poleceniu `/connect`:
+
+:::tip
+Możesz użyć dowolnego dostawcy kompatybilnego z OpenAI z otwartym kodem. Większość nowoczesnych dostawców sztucznej inteligencji oferuje interfejsy API kompatybilne z OpenAI.
+:::
+
+1. Uruchom polecenie `/connect` i przewiń w dół do **Inne**.
+
+ ```bash
+ $ /connect
+
+ ┌ Add credential
+ │
+ ◆ Select provider
+ │ ...
+ │ ● Other
+ └
+ ```
+
+2. Wprowadź unikalny identyfikator dostawcy.
+
+ ```bash
+ $ /connect
+
+ ┌ Add credential
+ │
+ ◇ Enter provider id
+ │ myprovider
+ └
+ ```
+
+ :::note
+ Wybierz niezapomniany identyfikator, użyjesz go w swoim pliku konfiguracyjnym.
+ :::
+
+3. Wprowadź klucz API dla dostawcy.
+
+ ```bash
+ $ /connect
+
+ ┌ Add credential
+ │
+ ▲ This only stores a credential for myprovider - you will need to configure it in opencode.json, check the docs for examples.
+ │
+ ◇ Enter your API key
+ │ sk-...
+ └
+ ```
+
+4. Utwórz lub zaktualizuj plik `opencode.json` w katalogu projektu:
+
+ ```json title="opencode.json" ""myprovider"" {5-15}
+ {
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "myprovider": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "My AI ProviderDisplay Name",
+ "options": {
+ "baseURL": "https://api.myprovider.com/v1"
+ },
+ "models": {
+ "my-model-name": {
+ "name": "My Model Display Name"
+ }
+ }
+ }
+ }
+ }
+ ```
+
+ Oto opcje konfiguracji:
+ - **npm**: pakiet AI SDK do użycia, `@ai-sdk/openai-compatible` dla dostawców kompatybilnych z OpenAI
+ - **name**: Display name in UI.
+ - **modele**: Dostępne modele.
+ - **options.baseURL**: API endpoint URL.
+ - **options.apiKey**: Opcjonalnie ustaw klucz API, jeśli nie używasz autoryzacji.
+ - **options.headers**: Optionally set custom headers.
+
+ Więcej o opcjach zaawansowanych w przykładzie poniżej.
+
+5. Uruchom polecenie `/models`, a niestandardowy dostawca i modele pojawią się na liście wyboru.
+
+---
+
+##### Przykład
+
+Oto przykład ustawienia opcji `apiKey`, `headers` i modelu `limit`.
+
+```json title="opencode.json" {9,11,17-20}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "provider": {
+ "myprovider": {
+ "npm": "@ai-sdk/openai-compatible",
+ "name": "My AI ProviderDisplay Name",
+ "options": {
+ "baseURL": "https://api.myprovider.com/v1",
+ "apiKey": "{env:ANTHROPIC_API_KEY}",
+ "headers": {
+ "Authorization": "Bearer custom-token"
+ }
+ },
+ "models": {
+ "my-model-name": {
+ "name": "My Model Display Name",
+ "limit": {
+ "context": 200000,
+ "output": 65536
+ }
+ }
+ }
+ }
+ }
+}
+```
+
+Configuration details:
+
+- **apiKey**: Ustaw przy użyciu składni zmiennej `env`, [dowiedz się więcej](/docs/config#env-vars).
+- **nagłówki**: niestandardowe nagłówki wysyłane z każdym żądaniem.
+- **limit.context**: Maksymalna liczba żetonów wejściowych akceptowanych przez model.
+- **limit.output**: Maksymalna liczba tokenów, które model może wygenerować.
+
+Pola `limit` pozwalają OpenCode zrozumieć, ile kontekstu pozostało. Standardowi dostawcy pobierają je automatycznie z models.dev.
+
+---
+
+## Troubleshooting
+
+Jeśli masz problemy z konfiguracją dostawcy, sprawdź następujące elementy:
+
+1. **Sprawdź konfigurację uwierzytelniania**: Uruchom `opencode auth list`, aby sprawdzić, czy poświadczenia
+ dla dostawcy są dodawane do Twojej konfiguracji.
+
+ Nie dotyczy to dostawców takich jak Amazon Bedrock, którzy w procesie uwierzytelniania opierają się na zmiennych środowiskowych.
+
+2. W przypadku dostawców niestandardowych sprawdź konfigurację kodu opencode i:
+ - Upewnij się, że identyfikator dostawcy użyty w poleceniu `/connect` jest zgodny z identyfikatorem w konfiguracji kodu opencode.
+ - Dla dostawcy używany jest właściwy pakiet npm. Na przykład użyj `@ai-sdk/cerebras` dla Cerebras. W przypadku wszystkich innych dostawców zgodnych z OpenAI użyj `@ai-sdk/openai-compatible`.
+ - Sprawdź, czy w polu `options.baseURL` użyto prawidłowego punktu końcowego API.
diff --git a/packages/web/src/content/docs/pl/rules.mdx b/packages/web/src/content/docs/pl/rules.mdx
new file mode 100644
index 000000000..361a8fa7c
--- /dev/null
+++ b/packages/web/src/content/docs/pl/rules.mdx
@@ -0,0 +1,180 @@
+---
+title: Rules
+description: Ustaw niestandardowe instrukcje dla opencode.
+---
+
+Możesz dostarczyć niestandardowe instrukcje do kodu opencode, tworząc plik `AGENTS.md`. Jest to podobne do zasad Cursora. Zawiera instrukcje, które zostaną uwzględnione w kontekście LLM, aby dostosować jego zachowanie do konkretnego projektu.
+
+---
+
+## Inicjalizacja
+
+Aby utworzyć nowy plik `AGENTS.md`, możesz uruchomić komendę `/init` w otwartym kodzie.
+
+:::tip
+Powinieneś zatwierdzić plik `AGENTS.md` swojego projektu w Git.
+:::
+
+Spowoduje to przeskanowanie projektu i całej jego zawartości, aby zrozumieć, czego dotyczy projekt i wygenerować z nim plik `AGENTS.md`. Pomaga to otwartemu kodowi lepiej poruszać się po projekcie.
+
+Jeśli masz istniejący plik `AGENTS.md`, spróbujemy go dodać.
+
+---
+
+## Przykład
+
+Możesz także po prostu utworzyć ten plik ręcznie. Oto przykład niektórych rzeczy, które można umieścić w pliku `AGENTS.md`.
+
+```markdown title="AGENTS.md"
+# SST v3 Monorepo Project
+
+This is an SST v3 monorepo with TypeScript. The project uses bun workspaces for package management.
+
+## Project Structure
+
+- `packages/` - Contains all workspace packages (functions, core, web, etc.)
+- `infra/` - Infrastructure definitions split by service (storage.ts, api.ts, web.ts)
+- `sst.config.ts` - Main SST configuration with dynamic imports
+
+## Code Standards
+
+- Use TypeScript with strict mode enabled
+- Shared code goes in `packages/core/` with proper exports configuration
+- Functions go in `packages/functions/`
+- Infrastructure should be split into logical files in `infra/`
+
+## Monorepo Conventions
+
+- Import shared modules using workspace names: `@my-app/core/example`
+```
+
+Dodajemy tutaj instrukcje dotyczące konkretnego projektu, które zostaną udostępnione całemu zespołowi.
+
+---
+
+## Types
+
+opencode obsługuje także odczytywanie pliku `AGENTS.md` z wielu lokalizacji. A to służy różnym celom.
+
+### Project
+
+Umieść `AGENTS.md` w katalogu głównym projektu, aby uzyskać reguły specyficzne dla projektu. Mają one zastosowanie tylko wtedy, gdy pracujesz w tym katalogu lub jego podkatalogach.
+
+### Global
+
+Możesz także mieć reguły globalne w pliku `~/.config/opencode/AGENTS.md`. Jest to stosowane we wszystkich sesjach opencode.
+
+Ponieważ nie jest to wymagane dla Git ani udostępniane Twojemu zespołowi, zalecamy użycie tego do określenia wszelkich osobistych zasad, których powinien przestrzegać LLM.
+
+### Claude Code Compatibility
+
+W przypadku użytkowników migrujących z Claude Code OpenCode obsługuje konwencje plików Claude Code jako rozwiązania awaryjne:
+
+- **Zasady projektu**: `CLAUDE.md` w katalogu projektu (używane, jeśli nie istnieje `AGENTS.md`)
+- **Zasady globalne**: `~/.claude/CLAUDE.md` (używane, jeśli nie istnieje `~/.config/opencode/AGENTS.md`)
+- **Umiejętności**: `~/.claude/skills/` — szczegóły znajdziesz w [Umiejętnościach agenta](/docs/skills/)
+
+Aby wyłączyć kompatybilność z Claude Code, ustaw jedną z tych zmiennych środowiskowych:
+
+```bash
+export OPENCODE_DISABLE_CLAUDE_CODE=1 # Disable all .claude support
+export OPENCODE_DISABLE_CLAUDE_CODE_PROMPT=1 # Disable only ~/.claude/CLAUDE.md
+export OPENCODE_DISABLE_CLAUDE_CODE_SKILLS=1 # Disable only .claude/skills
+```
+
+---
+
+## Precedence
+
+Po uruchomieniu opencode szuka plików reguł w następującej kolejności:
+
+1. **Pliki lokalne** poprzez przejście z bieżącego katalogu (`AGENTS.md`, `CLAUDE.md`)
+2. **Plik globalny** w `~/.config/opencode/AGENTS.md`
+3. **Plik Claude Code** w `~/.claude/CLAUDE.md` (chyba że wyłączony)
+
+Pierwszy pasujący plik wygrywa w każdej kategorii. Na przykład, jeśli masz zarówno `AGENTS.md`, jak i `CLAUDE.md`, używany jest tylko `AGENTS.md`. Podobnie `~/.config/opencode/AGENTS.md` ma pierwszeństwo przed `~/.claude/CLAUDE.md`.
+
+---
+
+## Instrukcje niestandardowe
+
+Możesz określić niestandardowe pliki instrukcji w swoim `opencode.json` lub globalnym `~/.config/opencode/opencode.json`. Dzięki temu Ty i Twój zespół możecie ponownie wykorzystać istniejące reguły, zamiast duplikować je w pliku AGENTS.md.
+
+Przykład:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
+}
+```
+
+Możesz także użyć zdalnych adresów URL, aby załadować instrukcje z Internetu.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "instructions": ["https://raw.githubusercontent.com/my-org/shared-rules/main/style.md"]
+}
+```
+
+Instrukcje zdalne są pobierane z 5-sekundowym limitem czasu.
+
+Wszystkie pliki instrukcji są łączone z plikami `AGENTS.md`.
+
+---
+
+## Odwoływanie się do plików zewnętrznych
+
+Chociaż opencode nie analizuje automatycznie odniesień do plików w `AGENTS.md`, możesz osiągnąć podobną funkcjonalność na dwa sposoby:
+
+### Używanie opencode.json
+
+Zalecanym podejściem jest użycie pola `instructions` w `opencode.json`:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "instructions": ["docs/development-standards.md", "test/testing-guidelines.md", "packages/*/AGENTS.md"]
+}
+```
+
+### Manual Instructions in AGENTS.md
+
+Możesz nauczyć opencode czytać pliki zewnętrzne, podając wyraźne instrukcje w swoim `AGENTS.md`. Oto praktyczny przykład:
+
+```markdown title="AGENTS.md"
+# TypeScript Project Rules
+
+## External File Loading
+
+CRITICAL: When you encounter a file reference (e.g., @rules/general.md), use your Read tool to load it on a need-to-know basis. They're relevant to the SPECIFIC task at hand.
+
+Instructions:
+
+- Do NOT preemptively load all references - use lazy loading based on actual need
+- When loaded, treat content as mandatory instructions that override defaults
+- Follow references recursively when needed
+
+## Development Guidelines
+
+For TypeScript code style and best practices: @docs/typescript-guidelines.md
+For React component architecture and hooks patterns: @docs/react-patterns.md
+For REST API design and error handling: @docs/api-standards.md
+For testing strategies and coverage requirements: @test/testing-guidelines.md
+
+## General Guidelines
+
+Read the following file immediately as it's relevant to all workflows: @rules/general-guidelines.md.
+```
+
+Takie podejście pozwala:
+
+- Twórz modułowe pliki reguł wielokrotnego użytku
+- Share rules across projects via symlinks or git submodules
+- Keep AGENTS.md concise while referencing detailed guidelines
+- Upewnij się, że opencode ładuje pliki tylko wtedy, gdy są potrzebne do konkretnego zadania
+
+:::tip
+W przypadku monorepo lub projektów ze wspólnymi standardami użycie `opencode.json` ze wzorami globalnymi (takimi jak `packages/*/AGENTS.md`) jest łatwiejsze w utrzymaniu niż instrukcje ręczne.
+:::
diff --git a/packages/web/src/content/docs/pl/sdk.mdx b/packages/web/src/content/docs/pl/sdk.mdx
new file mode 100644
index 000000000..28ac06eb6
--- /dev/null
+++ b/packages/web/src/content/docs/pl/sdk.mdx
@@ -0,0 +1,391 @@
+---
+title: SDK
+description: Klient JS bezpieczny dla typu dla serwera opencode.
+---
+
+import config from "../../../../config.mjs"
+export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts`
+
+Pakiet SDK JS/TS z otwartym kodem zapewnia klienta bezpiecznego typu do interakcji z serwerem.
+Użyj go do budowania integracji i programowej kontroli otwartego kodu.
+
+[Dowiedz się więcej](/docs/server) o działaniu serwera. Przykłady znajdziesz w [projektach](/docs/ecosystem#projects) stworzonych przez społeczność.
+
+---
+
+## Zainstalować
+
+Zainstaluj pakiet SDK z npm:
+
+```bash
+npm install @opencode-ai/sdk
+```
+
+---
+
+## Utwórz klienta
+
+Utwórz instancję otwartego kodu:
+
+```javascript
+import { createOpencode } from "@opencode-ai/sdk"
+
+const { client } = await createOpencode()
+```
+
+Spowoduje to uruchomienie zarówno serwera, jak i klienta
+
+#### Options
+
+| Opcja | Wpisz | Opis | Domyślne |
+| ---------- | ------------- | ------------------------------ | ----------- |
+| `hostname` | `string` | Nazwa hosta serwera | `127.0.0.1` |
+| `port` | `number` | Port serwera | `4096` |
+| `signal` | `AbortSignal` | Sygnał przerwania w celu anulowania | `undefined` |
+| `timeout` | `number` | Limit czasu w ms dla uruchomienia serwera | `5000` |
+| `config` | `Config` | Configuration object | `{}` |
+
+---
+
+## Config
+
+Można przekazać obiekt konfiguracyjny, aby dostosować zachowanie. Instancja nadal pobiera `opencode.json`, ale możesz zastąpić lub dodać konfigurację bezpośrednio:
+
+```javascript
+import { createOpencode } from "@opencode-ai/sdk"
+
+const opencode = await createOpencode({
+ hostname: "127.0.0.1",
+ port: 4096,
+ config: {
+ model: "anthropic/claude-3-5-sonnet-20241022",
+ },
+})
+
+console.log(`Server running at ${opencode.server.url}`)
+
+opencode.server.close()
+```
+
+## Client only
+
+Jeśli masz już działającą instancję opencode, możesz utworzyć instancję klienta, aby się z nią połączyć:
+
+```javascript
+import { createOpencodeClient } from "@opencode-ai/sdk"
+
+const client = createOpencodeClient({
+ baseUrl: "http://localhost:4096",
+})
+```
+
+#### Options
+
+| Opcja | Wpisz | Opis | Domyślne |
+| --------------- | ---------- | -------------------------------- | ----------------------- |
+| `baseUrl` | `string` | Adres URL serwera | `http://localhost:4096` |
+| `fetch` | `function` | Custom fetch implementation | `globalThis.fetch` |
+| `parseAs` | `string` | Response parsing method | `auto` |
+| `responseStyle` | `string` | Return style: `data` or `fields` | `fields` |
+| `throwOnError` | `boolean` | Throw errors instead of return | `false` |
+
+---
+
+## Types
+
+Zestaw SDK zawiera definicje TypeScript dla wszystkich typów API. Zaimportuj je bezpośrednio:
+
+```typescript
+import type { Session, Message, Part } from "@opencode-ai/sdk"
+```
+
+Wszystkie typy są generowane na podstawie specyfikacji OpenAPI serwera i dostępne w <a href={typesUrl}>pliku typów</a>.
+
+---
+
+## Errors
+
+SDK może generować błędy, które można przechwycić i obsłużyć:
+
+```typescript
+try {
+ await client.session.get({ path: { id: "invalid-id" } })
+} catch (error) {
+ console.error("Failed to get session:", (error as Error).message)
+}
+```
+
+---
+
+## APIs
+
+Zestaw SDK udostępnia wszystkie interfejsy API serwera za pośrednictwem klienta bezpiecznego typu.
+
+---
+
+### Global
+
+| Method | Description | Response |
+| ----------------- | ------------------------------- | ------------------------------------ |
+| `global.health()` | Sprawdź stan i wersję serwera | `{ healthy: true, version: string }` |
+
+---
+
+#### Examples
+
+```javascript
+const health = await client.global.health()
+console.log(health.data.version)
+```
+
+---
+
+### App
+
+| Method | Description | Response |
+| -------------- | ------------------------- | ------------------------------------------- |
+| `app.log()` | Write a log entry | `boolean` |
+| `app.agents()` | Lista wszystkich dostępnych agentów | <a href={typesUrl}><code>Agent[]</code></a> |
+
+---
+
+#### Examples
+
+```javascript
+// Write a log entry
+await client.app.log({
+ body: {
+ service: "my-app",
+ level: "info",
+ message: "Operation completed",
+ },
+})
+
+// List available agents
+const agents = await client.app.agents()
+```
+
+---
+
+### Project
+
+| Method | Description | Response |
+| ------------------- | ------------------- | --------------------------------------------- |
+| `project.list()` | Lista wszystkich projektów | <a href={typesUrl}><code>Projekt[]</code></a> |
+| `project.current()` | Get current project | <a href={typesUrl}><code>Project</code></a> |
+
+---
+
+#### Examples
+
+```javascript
+// List all projects
+const projects = await client.project.list()
+
+// Get current project
+const currentProject = await client.project.current()
+```
+
+---
+
+### Path
+
+| Method | Description | Response |
+| ------------ | ---------------- | ---------------------------------------- |
+| `path.get()` | Get current path | <a href={typesUrl}><code>Path</code></a> |
+
+---
+
+#### Examples
+
+```javascript
+// Get current path information
+const pathInfo = await client.path.get()
+```
+
+---
+
+### Config
+
+| Method | Description | Response |
+| -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- |
+| `config.get()` | Get config info | <a href={typesUrl}><code>Config</code></a> |
+| `config.providers()` | Lista dostawców i modeli domyślnych | `{ providers: `<a href={typesUrl}><code>Dostawca[]</code></a>`, default: { [key: string]: string } }` |
+
+---
+
+#### Examples
+
+```javascript
+const config = await client.config.get()
+
+const { providers, default: defaults } = await client.config.providers()
+```
+
+---
+
+### Sessions
+
+| Method | Description | Notes |
+| ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
+| `session.list()` | Lista sesji | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> |
+| `session.get({ path })` | Uzyskaj sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `session.children({ path })` | Lista sesji podrzędnych | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> |
+| `session.create({ body })` | Utwórz sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `session.delete({ path })` | Usuń sesję | Zwraca `boolean` |
+| `session.update({ path, body })` | Aktualizuj właściwości sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `session.init({ path, body })` | Przeanalizuj aplikację i utwórz `AGENTS.md` | Zwraca `boolean` |
+| `session.abort({ path })` | Przerwij trwającą sesję | Zwraca `boolean` |
+| `session.share({ path })` | Udostępnij sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `session.unshare({ path })` | Cofnij udostępnianie sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `session.summarize({ path, body })` | Podsumowanie sesji | Zwraca `boolean` |
+| `session.messages({ path })` | Lista wiadomości w sesji | Zwraca `{ info: `<a href={typesUrl}><code>Wiadomość</code></a>`, parts: `<a href={typesUrl}><code>Część[]</code></a>`}[]` |
+| `session.message({ path })` | Uzyskaj szczegóły wiadomości | Zwraca `{ info: `<a href={typesUrl}><code>Wiadomość</code></a>`, parts: `<a href={typesUrl}><code>Część[]</code></a>`}` |
+| `session.prompt({ path, body })` | Wyślij wiadomość | `body.noReply: true` zwraca UserMessage (tylko kontekst). Domyślnie zwraca <a href={typesUrl}><code>AssistantMessage</code></a> z odpowiedzią AI |
+| `session.command({ path, body })` | Wyślij polecenie do sesji | Zwraca `{ info: `<a href={typesUrl}><code>Wiadomość Asystenta</code></a>`, parts: `<a href={typesUrl}><code>Część[]</code></a>`}` |
+| `session.shell({ path, body })` | Uruchom polecenie powłoki | Zwraca <a href={typesUrl}><code>Wiadomość Asystenta</code></a> |
+| `session.revert({ path, body })` | Przywróć wiadomość | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `session.unrevert({ path })` | Przywróć przywrócone wiadomości | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `postSessionByIdPermissionsByPermissionId({ path, body })` | Respond to a permission request | Returns `boolean` |
+
+---
+
+#### Examples
+
+```javascript
+// Create and manage sessions
+const session = await client.session.create({
+ body: { title: "My session" },
+})
+
+const sessions = await client.session.list()
+
+// Send a prompt message
+const result = await client.session.prompt({
+ path: { id: session.id },
+ body: {
+ model: { providerID: "anthropic", modelID: "claude-3-5-sonnet-20241022" },
+ parts: [{ type: "text", text: "Hello!" }],
+ },
+})
+
+// Inject context without triggering AI response (useful for plugins)
+await client.session.prompt({
+ path: { id: session.id },
+ body: {
+ noReply: true,
+ parts: [{ type: "text", text: "You are a helpful assistant." }],
+ },
+})
+```
+
+---
+
+### Files
+
+| Method | Description | Response |
+| ------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- |
+| `find.text({ query })` | Szukaj tekstu w plikach | Tablica obiektów dopasowania z `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
+| `find.files({ query })` | Znajdź pliki i katalogi według nazwy | `string[]` (ścieżki) |
+| `find.symbols({ query })` | Find workspace symbols | <a href={typesUrl}><code>Symbol[]</code></a> |
+| `file.read({ query })` | Read a file | `{ type: "raw" \| "patch", content: string }` |
+| `file.status({ query? })` | Uzyskaj status śledzonych plików | <a href={typesUrl}><code>Plik[]</code></a> |
+
+`find.files` supports a few optional query fields:
+
+- `type`: `"file"` or `"directory"`
+- `directory`: zastąp katalog główny projektu dla wyszukiwania
+- `limit`: max results (1–200)
+
+---
+
+#### Examples
+
+```javascript
+// Search and read files
+const textResults = await client.find.text({
+ query: { pattern: "function.*opencode" },
+})
+
+const files = await client.find.files({
+ query: { query: "*.ts", type: "file" },
+})
+
+const directories = await client.find.files({
+ query: { query: "packages", type: "directory", limit: 20 },
+})
+
+const content = await client.file.read({
+ query: { path: "src/index.ts" },
+})
+```
+
+---
+
+### TUI
+
+| Method | Description | Response |
+| ------------------------------ | ------------------------- | --------- |
+| `tui.appendPrompt({ body })` | Dołącz tekst do zachęty | `boolean` |
+| `tui.openHelp()` | Otwórz okno pomocy | `boolean` |
+| `tui.openSessions()` | Otwórz selektor sesji | `boolean` |
+| `tui.openThemes()` | Otwórz selektor motywów | `boolean` |
+| `tui.openModels()` | Otwórz selektor modelu | `boolean` |
+| `tui.submitPrompt()` | Prześlij bieżący monit | `boolean` |
+| `tui.clearPrompt()` | Wyczyść monit | `boolean` |
+| `tui.executeCommand({ body })` | Wykonaj polecenie | `boolean` |
+| `tui.showToast({ body })` | Pokaż powiadomienie tostowe | `boolean` |
+
+---
+
+#### Examples
+
+```javascript
+// Control TUI interface
+await client.tui.appendPrompt({
+ body: { text: "Add this to prompt" },
+})
+
+await client.tui.showToast({
+ body: { message: "Task completed", variant: "success" },
+})
+```
+
+---
+
+### Auth
+
+| Method | Description | Response |
+| ------------------- | ------------------------------ | --------- |
+| `auth.set({ ... })` | Set authentication credentials | `boolean` |
+
+---
+
+#### Examples
+
+```javascript
+await client.auth.set({
+ path: { id: "anthropic" },
+ body: { type: "api", key: "your-api-key" },
+})
+```
+
+---
+
+### Events
+
+| Method | Description | Response |
+| ------------------- | ------------------------- | ------------------------- |
+| `event.subscribe()` | Strumień zdarzeń wysłanych przez serwer | Strumień zdarzeń wysłanych przez serwer |
+
+---
+
+#### Examples
+
+```javascript
+// Listen to real-time events
+const events = await client.event.subscribe()
+for await (const event of events.stream) {
+ console.log("Event:", event.type, event.properties)
+}
+```
diff --git a/packages/web/src/content/docs/pl/server.mdx b/packages/web/src/content/docs/pl/server.mdx
new file mode 100644
index 000000000..0c6bfb1eb
--- /dev/null
+++ b/packages/web/src/content/docs/pl/server.mdx
@@ -0,0 +1,287 @@
+---
+title: Serwer
+description: Interakcja z serwerem opencode za pośrednictwem protokołu HTTP.
+---
+
+import config from "../../../../config.mjs"
+export const typesUrl = `${config.github}/blob/dev/packages/sdk/js/src/gen/types.gen.ts`
+
+Komenda `opencode serve` uruchamia bezgłowy serwer HTTP, który udostępnia punkt końcowy OpenAPI, z którego może korzystać klient opencode.
+
+---
+
+### Użycie
+
+```bash
+opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
+```
+
+#### Opcje
+
+| Flaga | Opis | Domyślne |
+| --------------- | -------------------------------------------- | ---------------- |
+| `--port` | Port nasłuchiwania | `4096` |
+| `--hostname` | Nazwa hosta do nasłuchiwania | `127.0.0.1` |
+| `--mdns` | Włącz wykrywanie mDNS | `false` |
+| `--mdns-domain` | Niestandardowa nazwa domeny dla usługi mDNS | `opencode.local` |
+| `--cors` | Dodatkowe originy przeglądarki do dozwolenia | `[]` |
+
+`--cors` można przekazać wiele razy:
+
+```bash
+opencode serve --cors http://localhost:5173 --cors https://app.example.com
+```
+
+---
+
+### Uwierzytelnianie
+
+Ustaw `OPENCODE_SERVER_PASSWORD`, aby chronić serwer za pomocą podstawowego uwierzytelniania HTTP. Domyślną nazwą użytkownika jest `opencode` lub ustaw `OPENCODE_SERVER_USERNAME`, aby ją zastąpić. Dotyczy to zarówno `opencode serve`, jak i `opencode web`.
+
+```bash
+OPENCODE_SERVER_PASSWORD=your-password opencode serve
+```
+
+---
+
+### How it works
+
+Kiedy uruchomisz `opencode`, uruchomi się TUI i serwer. Gdzie jest TUI
+klient komunikujący się z serwerem. Serwer udostępnia specyfikację OpenAPI 3.1
+punkt końcowy. Ten punkt końcowy jest również używany do generowania [SDK](/docs/sdk).
+
+:::tip
+Użyj serwera opencode do programowej interakcji z opencode.
+:::
+
+Ta architektura umożliwia obsługę wielu klientów przez kod otwarty i programową interakcję z kodem otwartym.
+
+Możesz uruchomić `opencode serve`, aby uruchomić samodzielny serwer. Jeśli masz
+opencode TUI działa, `opencode serve` uruchomi nowy serwer.
+
+---
+
+#### Połącz się z istniejącym serwerem
+
+Po uruchomieniu TUI losowo przypisuje port i nazwę hosta. Zamiast tego możesz przekazać `--hostname` i `--port` [flagi](/docs/cli). Następnie użyj tego, aby połączyć się z serwerem.
+
+Punktu końcowego [`/tui`](#tui) można użyć do sterowania TUI przez serwer. Można na przykład wstępnie wypełnić lub uruchomić monit. Ta konfiguracja jest używana przez wtyczki OpenCode [IDE](/docs/ide).
+
+---
+
+## Spec
+
+Serwer publikuje specyfikację OpenAPI 3.1, którą można obejrzeć pod adresem:
+
+```
+http://<hostname>:<port>/doc
+```
+
+Na przykład `http://localhost:4096/doc`. Użyj specyfikacji, aby wygenerować klientów lub sprawdzić typy żądań i odpowiedzi. Możesz też wyświetlić go w eksploratorze Swagger.
+
+---
+
+## APIs
+
+Serwer opencode udostępnia następujące interfejsy API.
+
+---
+
+### Global
+
+| Method | Path | Description | Response |
+| ------ | ---------------- | ------------------------------ | ------------------------------------ |
+| `GET` | `/global/health` | Uzyskaj stan i wersję serwera | `{ healthy: true, version: string }` |
+| `GET` | `/global/event` | Get global events (SSE stream) | Event stream |
+
+---
+
+### Project
+
+| Method | Path | Description | Response |
+| ------ | ------------------ | -------------------------- | --------------------------------------------- |
+| `GET` | `/project` | Lista wszystkich projektów | <a href={typesUrl}><code>Projekt[]</code></a> |
+| `GET` | `/project/current` | Pobierz bieżący projekt | <a href={typesUrl}><code>Projekt</code></a> |
+
+---
+
+### Path & VCS
+
+| Method | Path | Description | Response |
+| ------ | ------- | --------------------------------------------- | ------------------------------------------- |
+| `GET` | `/path` | Pobierz bieżącą ścieżkę | <a href={typesUrl}><code>Ścieżka</code></a> |
+| `GET` | `/vcs` | Uzyskaj informacje VCS dla bieżącego projektu | <a href={typesUrl}><code>VcsInfo</code></a> |
+
+---
+
+### Instance
+
+| Method | Path | Description | Response |
+| ------ | ------------------- | ---------------------- | --------- |
+| `POST` | `/instance/dispose` | Usuń bieżącą instancję | `boolean` |
+
+---
+
+### Config
+
+| Method | Path | Description | Response |
+| ------- | ------------------- | ----------------------------------- | ---------------------------------------------------------------------------------------- |
+| `GET` | `/config` | Get config info | <a href={typesUrl}><code>Config</code></a> |
+| `PATCH` | `/config` | Update config | <a href={typesUrl}><code>Config</code></a> |
+| `GET` | `/config/providers` | Lista dostawców i modeli domyślnych | `{ providers: `<a href={typesUrl}>Dostawca[]</a>`, default: { [key: string]: string } }` |
+
+---
+
+### Dostawca
+
+| Method | Path | Description | Response |
+| ------ | -------------------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------- |
+| `GET` | `/provider` | Lista wszystkich dostawców | `{ all: `<a href={typesUrl}>Dostawca[]</a>`, default: {...}, connected: string[] }` |
+| `GET` | `/provider/auth` | Uzyskaj metody uwierzytelniania dostawcy | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
+| `POST` | `/provider/{id}/oauth/authorize` | Autoryzuj dostawcę za pomocą protokołu OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
+| `POST` | `/provider/{id}/oauth/callback` | Obsługa wywołania zwrotnego OAuth dla dostawcy | `boolean` |
+
+---
+
+### Sessions
+
+| Method | Path | Description | Notes |
+| -------- | ---------------------------------------- | ------------------------------------------- | -------------------------------------------------------------------------------- |
+| `GET` | `/session` | Lista wszystkich sesji | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> |
+| `POST` | `/session` | Utwórz nową sesję | treść: `{ parentID?, title? }`, zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `GET` | `/session/status` | Uzyskaj status sesji dla wszystkich sesji | Zwraca `{ [sessionID: string]: `<a href={typesUrl}>Status sesji</a>` }` |
+| `GET` | `/session/:id` | Uzyskaj szczegóły sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `DELETE` | `/session/:id` | Usuń sesję i wszystkie jej dane | Zwraca `boolean` |
+| `PATCH` | `/session/:id` | Aktualizuj właściwości sesji | treść: `{ title? }`, zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `GET` | `/session/:id/children` | Pobierz sesje podrzędne sesji | Zwraca <a href={typesUrl}><code>Sesja[]</code></a> |
+| `GET` | `/session/:id/todo` | Pobierz listę rzeczy do zrobienia dla sesji | Zwraca <a href={typesUrl}><code>Do zrobienia[]</code></a> |
+| `POST` | `/session/:id/init` | Przeanalizuj aplikację i utwórz `AGENTS.md` | treść: `{ messageID, providerID, modelID }`, zwraca `boolean` |
+| `POST` | `/session/:id/fork` | Rozwiń istniejącą sesję w wiadomości | treść: `{ messageID? }`, zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `POST` | `/session/:id/abort` | Przerwij trwającą sesję | Zwraca `boolean` |
+| `POST` | `/session/:id/share` | Udostępnij sesję | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `DELETE` | `/session/:id/share` | Anuluj udostępnianie sesji | Zwraca <a href={typesUrl}><code>Sesja</code></a> |
+| `GET` | `/session/:id/diff` | Pobierz różnicę dla tej sesji | zapytanie: `messageID?`, zwraca <a href={typesUrl}><code>FileDiff[]</code></a> |
+| `POST` | `/session/:id/summarize` | Podsumuj sesję | treść: `{ providerID, modelID }`, zwraca `boolean` |
+| `POST` | `/session/:id/revert` | Przywróć wiadomość | treść: `{ messageID, partID? }`, zwraca `boolean` |
+| `POST` | `/session/:id/unrevert` | Przywróć wszystkie przywrócone wiadomości | Zwraca `boolean` |
+| `POST` | `/session/:id/permissions/:permissionID` | Odpowiedz na prośbę o pozwolenie | treść: `{ response, remember? }`, zwraca `boolean` |
+
+---
+
+### Messages
+
+| Method | Path | Description | Notes |
+| ------ | --------------------------------- | ----------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
+| `GET` | `/session/:id/message` | Lista wiadomości w sesji | zapytanie: `limit?`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}[]` |
+| `POST` | `/session/:id/message` | Wyślij wiadomość i poczekaj na odpowiedź | treść: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` |
+| `GET` | `/session/:id/message/:messageID` | Uzyskaj szczegóły wiadomości | Zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` |
+| `POST` | `/session/:id/prompt_async` | Wyślij wiadomość asynchronicznie (bez czekania) | treść: taka sama jak `/session/:id/message`, zwraca `204 No Content` |
+| `POST` | `/session/:id/command` | Wykonaj polecenie ukośnika | treść: `{ messageID?, agent?, model?, command, arguments }`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` |
+| `POST` | `/session/:id/shell` | Uruchom polecenie powłoki | treść: `{ agent, model?, command }`, zwraca `{ info: `<a href={typesUrl}>Wiadomość</a>`, parts: `<a href={typesUrl}>Część[]</a>`}` |
+
+---
+
+### Komendy
+
+| Metoda | Ścieżka | Opis | Odpowiedź |
+| ------ | ---------- | ------------------------ | ----------------------------------------------- |
+| `GET` | `/command` | Lista wszystkich poleceń | <a href={typesUrl}><code>Polecenie[]</code></a> |
+
+---
+
+### Pliki
+
+| Method | Path | Description | Response |
+| ------ | ------------------------ | ------------------------------------ | ---------------------------------------------------------------------------------------------- |
+| `GET` | `/find?pattern=<pat>` | Szukaj tekstu w plikach | Tablica obiektów dopasowania z `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
+| `GET` | `/find/file?query=<q>` | Znajdź pliki i katalogi według nazwy | `string[]` (ścieżki) |
+| `GET` | `/find/symbol?query=<q>` | Find workspace symbols | <a href={typesUrl}><code>Symbol[]</code></a> |
+| `GET` | `/file?path=<path>` | Lista plików i katalogów | <a href={typesUrl}><code>FileNode[]</code></a> |
+| `GET` | `/file/content?path=<p>` | Read a file | <a href={typesUrl}><code>FileContent</code></a> |
+| `GET` | `/file/status` | Uzyskaj status śledzonych plików | <a href={typesUrl}><code>Plik[]</code></a> |
+
+#### `/find/file` query parameters
+
+- `query` (required) — search string (fuzzy match)
+- `type` (optional) — limit results to `"file"` or `"directory"`
+- `directory` (opcjonalnie) — zastąp katalog główny projektu dla wyszukiwania
+- `limit` (optional) — max results (1–200)
+- `dirs` (optional) — legacy flag (`"false"` returns only files)
+
+---
+
+### Tools (Experimental)
+
+| Method | Path | Description | Response |
+| ------ | ------------------------------------------- | -------------------------------------------- | ----------------------------------------------------------- |
+| `GET` | `/experimental/tool/ids` | Lista wszystkich identyfikatorów narzędzi | <a href={typesUrl}><code>Identyfikatory narzędzi</code></a> |
+| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Lista narzędzi ze schematami JSON dla modelu | <a href={typesUrl}><code>Lista narzędzi</code></a> |
+
+---
+
+### LSP, Formatters & MCP
+
+| Method | Path | Description | Response |
+| ------ | ------------ | ---------------------------- | -------------------------------------------------------- |
+| `GET` | `/lsp` | Uzyskaj status serwera LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> |
+| `GET` | `/formatter` | Get formatter status | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
+| `GET` | `/mcp` | Uzyskaj status serwera MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
+| `POST` | `/mcp` | Dodaj dynamicznie serwer MCP | treść: `{ name, config }`, zwraca obiekt stanu MCP |
+
+---
+
+### Agents
+
+| Method | Path | Description | Response |
+| ------ | -------- | ----------------------------------- | ------------------------------------------- |
+| `GET` | `/agent` | Lista wszystkich dostępnych agentów | <a href={typesUrl}><code>Agent[]</code></a> |
+
+---
+
+### Logging
+
+| Method | Path | Description | Response |
+| ------ | ------ | ------------------------------------------------------------ | --------- |
+| `POST` | `/log` | Write log entry. Body: `{ service, level, message, extra? }` | `boolean` |
+
+---
+
+### TUI
+
+| Method | Path | Description | Response |
+| ------ | ----------------------- | -------------------------------------------- | ----------------------- |
+| `POST` | `/tui/append-prompt` | Dołącz tekst do zachęty | `boolean` |
+| `POST` | `/tui/open-help` | Otwórz okno pomocy | `boolean` |
+| `POST` | `/tui/open-sessions` | Otwórz selektor sesji | `boolean` |
+| `POST` | `/tui/open-themes` | Otwórz selektor motywów | `boolean` |
+| `POST` | `/tui/open-models` | Otwórz selektor modelu | `boolean` |
+| `POST` | `/tui/submit-prompt` | Prześlij bieżący monit | `boolean` |
+| `POST` | `/tui/clear-prompt` | Wyczyść monit | `boolean` |
+| `POST` | `/tui/execute-command` | Wykonaj polecenie (`{ command }`) | `boolean` |
+| `POST` | `/tui/show-toast` | Pokaż toast (`{ title?, message, variant }`) | `boolean` |
+| `GET` | `/tui/control/next` | Poczekaj na następne żądanie kontroli | Obiekt żądania kontroli |
+| `POST` | `/tui/control/response` | Respond to a control request (`{ body }`) | `boolean` |
+
+---
+
+### Auth
+
+| Method | Path | Description | Response |
+| ------ | ----------- | --------------------------------------------------------------------- | --------- |
+| `PUT` | `/auth/:id` | Ustaw dane uwierzytelniające. Treść musi pasować do schematu dostawcy | `boolean` |
+
+---
+
+### Events
+
+| Method | Path | Description | Response |
+| ------ | -------- | -------------------------------------------------------------------------------------------------------------------- | --------------------------------------- |
+| `GET` | `/event` | Strumień zdarzeń wysyłanych przez serwer. Pierwsze wydarzenie to `server.connected`, następnie wydarzenia autobusowe | Strumień zdarzeń wysłanych przez serwer |
+
+---
+
+### Docs
+
+| Method | Path | Description | Response |
+| ------ | ------ | ------------------------ | ----------------------------------- |
+| `GET` | `/doc` | Specyfikacja OpenAPI 3.1 | Strona HTML ze specyfikacją OpenAPI |
diff --git a/packages/web/src/content/docs/pl/share.mdx b/packages/web/src/content/docs/pl/share.mdx
new file mode 100644
index 000000000..0411571d3
--- /dev/null
+++ b/packages/web/src/content/docs/pl/share.mdx
@@ -0,0 +1,128 @@
+---
+title: Share
+description: Udostępnij swoje rozmowy dotyczące OpenCode.
+---
+
+Funkcja udostępniania OpenCode umożliwia tworzenie publicznych linków do konwersacji OpenCode, dzięki czemu możesz współpracować z członkami zespołu lub uzyskać pomoc od innych.
+
+:::note
+Udostępnione konwersacje są publicznie dostępne dla każdej osoby mającej link.
+:::
+
+---
+
+## How it works
+
+Kiedy udostępniasz rozmowę, OpenCode:
+
+1. Tworzy unikalny publiczny adres URL sesji
+2. Synchronizuje historię rozmów z naszymi serwerami
+3. Udostępnia rozmowę za pośrednictwem łącza do udostępniania — `opncd.ai/s/<share-id>`
+
+---
+
+## Sharing
+
+OpenCode obsługuje trzy tryby udostępniania, które kontrolują sposób udostępniania rozmów:
+
+---
+
+### Ręczny (domyślny)
+
+Domyślnie OpenCode korzysta z ręcznego trybu udostępniania. Sesje nie są udostępniane automatycznie, ale możesz je udostępnić ręcznie za pomocą polecenia `/share`:
+
+```
+/share
+```
+
+Spowoduje to wygenerowanie unikalnego adresu URL, który zostanie skopiowany do schowka.
+
+Aby jawnie ustawić tryb ręczny w [pliku konfiguracyjnym] (./config):
+
+```json title="opencode.json"
+{
+ "$schema": "https://opncd.ai/config.json",
+ "share": "manual"
+}
+```
+
+---
+
+### Auto-share
+
+Możesz włączyć automatyczne udostępnianie dla wszystkich nowych rozmów, ustawiając opcję `share` na `"auto"` w [pliku konfiguracyjnym] (./config):
+
+```json title="opencode.json"
+{
+ "$schema": "https://opncd.ai/config.json",
+ "share": "auto"
+}
+```
+
+Po włączeniu automatycznego udostępniania każda nowa rozmowa będzie automatycznie udostępniana i generowany będzie link.
+
+---
+
+### Disabled
+
+Możesz całkowicie wyłączyć udostępnianie, ustawiając opcję `share` na `"disabled"` w [pliku konfiguracyjnym] (./config):
+
+```json title="opencode.json"
+{
+ "$schema": "https://opncd.ai/config.json",
+ "share": "disabled"
+}
+```
+
+Aby wymusić to w całym zespole dla danego projektu, dodaj go do `opencode.json` w swoim projekcie i sprawdź w Git.
+
+---
+
+## Un-sharing
+
+Aby zatrzymać udostępnianie rozmowy i usunąć ją z dostępu publicznego:
+
+```
+/unshare
+```
+
+Spowoduje to usunięcie łącza udostępniania i danych związanych z rozmową.
+
+---
+
+## Privacy
+
+There are a few things to keep in mind when sharing a conversation.
+
+---
+
+### Data retention
+
+Udostępnione rozmowy pozostają dostępne, dopóki wyraźnie ich nie udostępnisz. Ten
+includes:
+
+- Full conversation history
+- Wszystkie wiadomości i odpowiedzi
+- Metadane sesji
+
+---
+
+### Recommendations
+
+- Udostępniaj tylko rozmowy, które nie zawierają poufnych informacji.
+- Review conversation content before sharing.
+- Unshare conversations when collaboration is complete.
+- Unikaj udostępniania rozmów zawierających zastrzeżony kod lub poufne dane.
+- W przypadku wrażliwych projektów całkowicie wyłącz udostępnianie.
+
+---
+
+## Dla przedsiębiorstw
+
+W przypadku wdrożeń korporacyjnych funkcją udostępniania może być:
+
+- **Wyłączone** całkowicie ze względu na bezpieczeństwo
+- **Restricted** to users authenticated through SSO only
+- **Własny hosting** na własnej infrastrukturze
+
+[Dowiedz się więcej](/docs/enterprise) o używaniu kodu opencode w Twojej organizacji.
diff --git a/packages/web/src/content/docs/pl/skills.mdx b/packages/web/src/content/docs/pl/skills.mdx
new file mode 100644
index 000000000..1517a0c7b
--- /dev/null
+++ b/packages/web/src/content/docs/pl/skills.mdx
@@ -0,0 +1,222 @@
+---
+title: "Agent Skills"
+description: "Define reusable behavior via SKILL.md definitions"
+---
+
+Umiejętności agenta pozwalają OpenCode odkryć instrukcje wielokrotnego użytku z repozytorium lub katalogu domowego.
+Umiejętności są ładowane na żądanie za pośrednictwem natywnego narzędzia `skill` — agenci widzą dostępne umiejętności i w razie potrzeby mogą załadować pełną zawartość.
+
+---
+
+## Place files
+
+Utwórz jeden folder na nazwę umiejętności i umieść w nim `SKILL.md`.
+OpenCode searches these locations:
+
+- Project config: `.opencode/skills/<name>/SKILL.md`
+- Global config: `~/.config/opencode/skills/<name>/SKILL.md`
+- Project Claude-compatible: `.claude/skills/<name>/SKILL.md`
+- Global Claude-compatible: `~/.claude/skills/<name>/SKILL.md`
+- Project agent-compatible: `.agents/skills/<name>/SKILL.md`
+- Global agent-compatible: `~/.agents/skills/<name>/SKILL.md`
+
+---
+
+## Understand discovery
+
+W przypadku ścieżek lokalnych projektu OpenCode przechodzi od bieżącego katalogu roboczego, aż dotrze do drzewa roboczego git.
+Ładuje po drodze dowolne pasujące `skills/*/SKILL.md` w `.opencode/` i dowolne pasujące `.claude/skills/*/SKILL.md` lub `.agents/skills/*/SKILL.md`.
+
+Ładowane są także definicje globalne z `~/.config/opencode/skills/*/SKILL.md`, `~/.claude/skills/*/SKILL.md` i `~/.agents/skills/*/SKILL.md`.
+
+---
+
+## Write frontmatter
+
+Każdy `SKILL.md` musi zaczynać się od treści YAML.
+Only these fields are recognized:
+
+- `name` (required)
+- `description` (required)
+- `license` (optional)
+- `compatibility` (optional)
+- `metadata` (optional, string-to-string map)
+
+Unknown frontmatter fields are ignored.
+
+---
+
+## Validate names
+
+`name` must:
+
+- Be 1–64 characters
+- Należy używać małych liter alfanumerycznych i oddzielać je pojedynczym łącznikiem
+- Nie zaczyna się ani nie kończy na `-`
+- Not contain consecutive `--`
+- Dopasuj nazwę katalogu zawierającą `SKILL.md`
+
+Equivalent regex:
+
+```text
+^[a-z0-9]+(-[a-z0-9]+)*$
+```
+
+---
+
+## Follow length rules
+
+`description` must be 1-1024 characters.
+Zadbaj o to, aby agent mógł dokonać prawidłowego wyboru.
+
+---
+
+## Skorzystaj z przykładu
+
+Utwórz `.opencode/skills/git-release/SKILL.md` w ten sposób:
+
+```markdown
+---
+name: git-release
+description: Create consistent releases and changelogs
+license: MIT
+compatibility: opencode
+metadata:
+ audience: maintainers
+ workflow: github
+---
+
+## What I do
+
+- Draft release notes from merged PRs
+- Propose a version bump
+- Provide a copy-pasteable `gh release create` command
+
+## When to use me
+
+Use this when you are preparing a tagged release.
+Ask clarifying questions if the target versioning scheme is unclear.
+```
+
+---
+
+## Recognize tool description
+
+OpenCode wymienia dostępne umiejętności w opisie narzędzia `skill`.
+Każdy wpis zawiera nazwę i opis umiejętności:
+
+```xml
+<available_skills>
+ <skill>
+ <name>git-release</name>
+ <description>Create consistent releases and changelogs</description>
+ </skill>
+</available_skills>
+```
+
+Agent ładuje umiejętność wywołując narzędzie:
+
+```
+skill({ name: "git-release" })
+```
+
+---
+
+## Skonfiguruj uprawnienia
+
+Control which skills agents can access using pattern-based permissions in `opencode.json`:
+
+```json
+{
+ "permission": {
+ "skill": {
+ "*": "allow",
+ "pr-review": "allow",
+ "internal-*": "deny",
+ "experimental-*": "ask"
+ }
+ }
+}
+```
+
+| Permission | Behavior |
+| ---------- | ----------------------------------------- |
+| `allow` | Skill loads immediately |
+| `deny` | Skill hidden from agent, access rejected |
+| `ask` | Użytkownik proszony o zatwierdzenie przed załadowaniem |
+
+Wzorce obsługują symbole wieloznaczne: `internal-*` odpowiada `internal-docs`, `internal-tools` itd.
+
+---
+
+## Override per agent
+
+Nadaj konkretnym agentom inne uprawnienia niż globalne ustawienia domyślne.
+
+**Dla agentów niestandardowych** (w temacie agentów):
+
+```yaml
+---
+permission:
+ skill:
+ "documents-*": "allow"
+---
+```
+
+**Dla agentów wbudowanych** (w `opencode.json`):
+
+```json
+{
+ "agent": {
+ "plan": {
+ "permission": {
+ "skill": {
+ "internal-*": "allow"
+ }
+ }
+ }
+ }
+}
+```
+
+---
+
+## Wyłącz narzędzie umiejętności
+
+Całkowicie wyłącz umiejętności agentów, którzy nie powinni ich używać:
+
+**Dla agentów celnych**:
+
+```yaml
+---
+tools:
+ skill: false
+---
+```
+
+**W przypadku agentów wbudowanych**:
+
+```json
+{
+ "agent": {
+ "plan": {
+ "tools": {
+ "skill": false
+ }
+ }
+ }
+}
+```
+
+Jeśli opcja jest wyłączona, sekcja `<available_skills>` jest całkowicie pomijana.
+
+---
+
+## Troubleshoot loading
+
+Jeśli umiejętność nie pojawi się:
+
+1. Verify `SKILL.md` is spelled in all caps
+2. Sprawdź, czy frontmatter zawiera `name` i `description`
+3. Ensure skill names are unique across all locations
+4. Sprawdź uprawnienia — umiejętności z `deny` są ukryte przed agentami
diff --git a/packages/web/src/content/docs/pl/themes.mdx b/packages/web/src/content/docs/pl/themes.mdx
new file mode 100644
index 000000000..c3dd9ec81
--- /dev/null
+++ b/packages/web/src/content/docs/pl/themes.mdx
@@ -0,0 +1,369 @@
+---
+title: Themes
+description: Wybierz wbudowany motyw lub zdefiniuj własny.
+---
+
+Dzięki OpenCode możesz wybrać jeden z kilku wbudowanych motywów, użyć motywu, który dostosowuje się do motywu terminala lub zdefiniować własny, niestandardowy motyw.
+
+Domyślnie OpenCode używa naszego własnego motywu `opencode`.
+
+---
+
+## Terminal requirements
+
+Aby motywy wyświetlały się poprawnie z pełną paletą kolorów, Twój terminal musi obsługiwać **truecolor** (kolor 24-bitowy). Większość nowoczesnych terminali domyślnie obsługuje tę opcję, ale może być konieczne jej włączenie:
+
+- **Sprawdź wsparcie**: Uruchom `echo $COLORTERM` - powinno wypisać `truecolor` lub `24bit`
+- **Włącz truecolor**: Ustaw zmienną środowiskową `COLORTERM=truecolor` w swoim profilu powłoki
+- **Zgodność terminala**: Upewnij się, że emulator terminala obsługuje 24-bitowy kolor (większość nowoczesnych terminali, takich jak iTerm2, Alacritty, Kitty, Windows Terminal i najnowsze wersje terminala GNOME tak)
+
+Bez obsługi Truecolor motywy mogą pojawiać się ze zmniejszoną dokładnością kolorów lub wracać do najbliższego przybliżenia 256 kolorów.
+
+---
+
+## Wbudowane motywy
+
+OpenCode ma kilka wbudowanych motywów.
+
+| Name | Description |
+| ---------------------- | --------------------------------------------------------------------------------- |
+| `system` | Dopasowuje się do koloru tła terminala |
+| `tokyonight` | Na podstawie motywu [Tokyonight](https://github.com/folke/tokyonight.nvim) |
+| `everforest` | Na podstawie motywu [Everforest](https://github.com/sainnhe/everforest) |
+| `ayu` | Na podstawie ciemnego motywu [Ayu](https://github.com/ayu-theme) |
+| `catppuccin` | Na podstawie motywu [Catppuccin](https://github.com/catppuccin) |
+| `catppuccin-macchiato` | Na podstawie motywu [Catppuccin](https://github.com/catppuccin) |
+| `gruvbox` | Na podstawie motywu [Gruvbox](https://github.com/morhetz/gruvbox) |
+| `kanagawa` | Na podstawie motywu [Kanagawa](https://github.com/rebelot/kanagawa.nvim) |
+| `nord` | Na podstawie motywu [Nord](https://github.com/nordtheme/nord) |
+| `matrix` | Hacker-style green on black theme |
+| `one-dark` | Na podstawie ciemnego motywu [Atom One](https://github.com/Th3Whit3Wolf/one-nvim) |
+
+Co więcej, stale dodajemy nowe motywy.
+
+---
+
+## System theme
+
+Motyw `system` został zaprojektowany tak, aby automatycznie dostosowywał się do schematu kolorów terminala. W przeciwieństwie do tradycyjnych motywów, które używają stałych kolorów, motyw _system_:
+
+- **Generuje skalę szarości**: Tworzy niestandardową skalę szarości w oparciu o kolor tła terminala, zapewniając optymalny kontrast.
+- **Używa kolorów ANSI**: Wykorzystuje standardowe kolory ANSI (0-15) do podświetlania składni i elementów interfejsu użytkownika, które odpowiadają palecie kolorów terminala.
+- **Zachowuje ustawienia domyślne terminala**: Używa `none` dla kolorów tekstu i tła, aby zachować natywny wygląd terminala.
+
+Motyw systemu przeznaczony jest dla użytkowników, którzy:
+
+- Want OpenCode to match their terminal's appearance
+- Użyj niestandardowych schematów kolorów terminali
+- Prefer a consistent look across all terminal applications
+
+---
+
+## Using a theme
+
+Możesz wybrać motyw, wywołując opcję wyboru motywu za pomocą polecenia `/theme`. Możesz też określić to w [config](/docs/config).
+
+```json title="opencode.json" {3}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "theme": "tokyonight"
+}
+```
+
+---
+
+## Custom themes
+
+OpenCode obsługuje elastyczny system motywów oparty na JSON, który pozwala użytkownikom łatwo tworzyć i dostosowywać motywy.
+
+---
+
+### Hierarchy
+
+Motywy są ładowane z wielu katalogów w następującej kolejności, przy czym późniejsze katalogi zastępują wcześniejsze:
+
+1. **Wbudowane motywy** – są osadzone w formacie binarnym
+2. **User config directory** - Defined in `~/.config/opencode/themes/*.json` or `$XDG_CONFIG_HOME/opencode/themes/*.json`
+3. **Katalog główny projektu** - Zdefiniowany w `<project-root>/.opencode/themes/*.json`
+4. **Current working directory** - Defined in `./.opencode/themes/*.json`
+
+Jeśli wiele katalogów zawiera motyw o tej samej nazwie, zostanie użyty motyw z katalogu o wyższym priorytecie.
+
+---
+
+### Creating a theme
+
+Aby utworzyć niestandardowy motyw, utwórz plik JSON w jednym z katalogów motywów.
+
+W przypadku motywów dla całego użytkownika:
+
+```bash no-frame
+mkdir -p ~/.config/opencode/themes
+vim ~/.config/opencode/themes/my-theme.json
+```
+
+Oraz dla tematów specyficznych dla projektu.
+
+```bash no-frame
+mkdir -p .opencode/themes
+vim .opencode/themes/my-theme.json
+```
+
+---
+
+### JSON format
+
+Motywy korzystają z elastycznego formatu JSON z obsługą:
+
+- **Hex colors**: `"#ffffff"`
+- **ANSI colors**: `3` (0-255)
+- **Color references**: `"primary"` or custom definitions
+- **Dark/light variants**: `{"dark": "#000", "light": "#fff"}`
+- **Brak koloru**: `"none"` - Używa domyślnego koloru terminala lub przezroczystości
+
+---
+
+### Color definitions
+
+Sekcja `defs` jest opcjonalna i pozwala zdefiniować kolory wielokrotnego użytku, do których można się odwoływać w motywie.
+
+---
+
+### Terminal defaults
+
+Wartość specjalna `"none"` może zostać użyta dla dowolnego koloru, aby przejąć domyślny kolor terminala. Jest to szczególnie przydatne do tworzenia motywów, które płynnie komponują się ze schematem kolorów terminala:
+
+- `"text": "none"` - Używa domyślnego koloru pierwszego planu terminala
+- `"background": "none"` - Używa domyślnego koloru tła terminala
+
+---
+
+### Przykład
+
+Here's an example of a custom theme:
+
+```json title="my-theme.json"
+{
+ "$schema": "https://opencode.ai/theme.json",
+ "defs": {
+ "nord0": "#2E3440",
+ "nord1": "#3B4252",
+ "nord2": "#434C5E",
+ "nord3": "#4C566A",
+ "nord4": "#D8DEE9",
+ "nord5": "#E5E9F0",
+ "nord6": "#ECEFF4",
+ "nord7": "#8FBCBB",
+ "nord8": "#88C0D0",
+ "nord9": "#81A1C1",
+ "nord10": "#5E81AC",
+ "nord11": "#BF616A",
+ "nord12": "#D08770",
+ "nord13": "#EBCB8B",
+ "nord14": "#A3BE8C",
+ "nord15": "#B48EAD"
+ },
+ "theme": {
+ "primary": {
+ "dark": "nord8",
+ "light": "nord10"
+ },
+ "secondary": {
+ "dark": "nord9",
+ "light": "nord9"
+ },
+ "accent": {
+ "dark": "nord7",
+ "light": "nord7"
+ },
+ "error": {
+ "dark": "nord11",
+ "light": "nord11"
+ },
+ "warning": {
+ "dark": "nord12",
+ "light": "nord12"
+ },
+ "success": {
+ "dark": "nord14",
+ "light": "nord14"
+ },
+ "info": {
+ "dark": "nord8",
+ "light": "nord10"
+ },
+ "text": {
+ "dark": "nord4",
+ "light": "nord0"
+ },
+ "textMuted": {
+ "dark": "nord3",
+ "light": "nord1"
+ },
+ "background": {
+ "dark": "nord0",
+ "light": "nord6"
+ },
+ "backgroundPanel": {
+ "dark": "nord1",
+ "light": "nord5"
+ },
+ "backgroundElement": {
+ "dark": "nord1",
+ "light": "nord4"
+ },
+ "border": {
+ "dark": "nord2",
+ "light": "nord3"
+ },
+ "borderActive": {
+ "dark": "nord3",
+ "light": "nord2"
+ },
+ "borderSubtle": {
+ "dark": "nord2",
+ "light": "nord3"
+ },
+ "diffAdded": {
+ "dark": "nord14",
+ "light": "nord14"
+ },
+ "diffRemoved": {
+ "dark": "nord11",
+ "light": "nord11"
+ },
+ "diffContext": {
+ "dark": "nord3",
+ "light": "nord3"
+ },
+ "diffHunkHeader": {
+ "dark": "nord3",
+ "light": "nord3"
+ },
+ "diffHighlightAdded": {
+ "dark": "nord14",
+ "light": "nord14"
+ },
+ "diffHighlightRemoved": {
+ "dark": "nord11",
+ "light": "nord11"
+ },
+ "diffAddedBg": {
+ "dark": "#3B4252",
+ "light": "#E5E9F0"
+ },
+ "diffRemovedBg": {
+ "dark": "#3B4252",
+ "light": "#E5E9F0"
+ },
+ "diffContextBg": {
+ "dark": "nord1",
+ "light": "nord5"
+ },
+ "diffLineNumber": {
+ "dark": "nord2",
+ "light": "nord4"
+ },
+ "diffAddedLineNumberBg": {
+ "dark": "#3B4252",
+ "light": "#E5E9F0"
+ },
+ "diffRemovedLineNumberBg": {
+ "dark": "#3B4252",
+ "light": "#E5E9F0"
+ },
+ "markdownText": {
+ "dark": "nord4",
+ "light": "nord0"
+ },
+ "markdownHeading": {
+ "dark": "nord8",
+ "light": "nord10"
+ },
+ "markdownLink": {
+ "dark": "nord9",
+ "light": "nord9"
+ },
+ "markdownLinkText": {
+ "dark": "nord7",
+ "light": "nord7"
+ },
+ "markdownCode": {
+ "dark": "nord14",
+ "light": "nord14"
+ },
+ "markdownBlockQuote": {
+ "dark": "nord3",
+ "light": "nord3"
+ },
+ "markdownEmph": {
+ "dark": "nord12",
+ "light": "nord12"
+ },
+ "markdownStrong": {
+ "dark": "nord13",
+ "light": "nord13"
+ },
+ "markdownHorizontalRule": {
+ "dark": "nord3",
+ "light": "nord3"
+ },
+ "markdownListItem": {
+ "dark": "nord8",
+ "light": "nord10"
+ },
+ "markdownListEnumeration": {
+ "dark": "nord7",
+ "light": "nord7"
+ },
+ "markdownImage": {
+ "dark": "nord9",
+ "light": "nord9"
+ },
+ "markdownImageText": {
+ "dark": "nord7",
+ "light": "nord7"
+ },
+ "markdownCodeBlock": {
+ "dark": "nord4",
+ "light": "nord0"
+ },
+ "syntaxComment": {
+ "dark": "nord3",
+ "light": "nord3"
+ },
+ "syntaxKeyword": {
+ "dark": "nord9",
+ "light": "nord9"
+ },
+ "syntaxFunction": {
+ "dark": "nord8",
+ "light": "nord8"
+ },
+ "syntaxVariable": {
+ "dark": "nord7",
+ "light": "nord7"
+ },
+ "syntaxString": {
+ "dark": "nord14",
+ "light": "nord14"
+ },
+ "syntaxNumber": {
+ "dark": "nord15",
+ "light": "nord15"
+ },
+ "syntaxType": {
+ "dark": "nord7",
+ "light": "nord7"
+ },
+ "syntaxOperator": {
+ "dark": "nord9",
+ "light": "nord9"
+ },
+ "syntaxPunctuation": {
+ "dark": "nord4",
+ "light": "nord0"
+ }
+ }
+}
+```
diff --git a/packages/web/src/content/docs/pl/tools.mdx b/packages/web/src/content/docs/pl/tools.mdx
new file mode 100644
index 000000000..1c97c84ac
--- /dev/null
+++ b/packages/web/src/content/docs/pl/tools.mdx
@@ -0,0 +1,379 @@
+---
+title: Tools
+description: Zarządzaj narzędziami, z których może korzystać LLM.
+---
+
+Narzędzia umożliwiają LLM wykonywanie działań w bazie kodu. OpenCode ma zestaw wbudowanych narzędzi, ale możesz go rozszerzyć o [narzędzia niestandardowe](/docs/custom-tools) lub [serwery MCP](/docs/mcp-servers).
+
+Domyślnie wszystkie narzędzia są **włączone** i nie wymagają pozwolenia na uruchomienie. Możesz kontrolować zachowanie narzędzia poprzez [uprawnienia](/docs/permissions).
+
+---
+
+## Skonfiguruj
+
+Użyj pola `permission` do kontrolowania zachowania narzędzia. Dla każdego narzędzia możesz zezwolić, odmówić lub wymagać zatwierdzenia.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "deny",
+ "bash": "ask",
+ "webfetch": "allow"
+ }
+}
+```
+
+Możesz także używać symboli wieloznacznych do kontrolowania wielu narzędzi jednocześnie. Na przykład, aby wymagać zatwierdzenia wszystkich narzędzi z serwera MCP:
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "mymcp_*": "ask"
+ }
+}
+```
+
+[Dowiedz się więcej](/docs/permissions) o konfigurowaniu uprawnień.
+
+---
+
+## Wbudowane
+
+Oto wszystkie wbudowane narzędzia dostępne w OpenCode.
+
+---
+
+### bash
+
+Wykonuj polecenia powłoki w środowisku projektu.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "bash": "allow"
+ }
+}
+```
+
+To narzędzie umożliwia LLM uruchamianie poleceń terminalowych, takich jak `npm install`, `git status` lub dowolne inne polecenie powłoki.
+
+---
+
+### edit
+
+Modify existing files using exact string replacements.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "allow"
+ }
+}
+```
+
+To narzędzie umożliwia precyzyjną edycję plików poprzez zastąpienie dokładnych dopasowań tekstu. Jest to główny sposób, w jaki LLM modyfikuje kod.
+
+---
+
+### write
+
+Utwórz nowe pliki lub nadpisz istniejące.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "allow"
+ }
+}
+```
+
+Użyj tego, aby umożliwić LLM tworzenie nowych plików. Zastąpi istniejące pliki, jeśli już istnieją.
+
+:::note
+Narzędzie `write` jest kontrolowane przez uprawnienie `edit`, które obejmuje wszystkie modyfikacje plików (`edit`, `write`, `patch`, `multiedit`).
+:::
+
+---
+
+### read
+
+Przeczytaj zawartość pliku z bazy kodu.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "read": "allow"
+ }
+}
+```
+
+Narzędzie to odczytuje pliki i zwraca ich zawartość. Obsługuje czytanie określonych zakresów linii w przypadku dużych plików.
+
+---
+
+### grep
+
+Search file contents using regular expressions.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "grep": "allow"
+ }
+}
+```
+
+Szybkie wyszukiwanie treści w całej bazie kodu. Obsługuje pełną składnię wyrażeń regularnych i filtrowanie wzorców plików.
+
+---
+
+### glob
+
+Find files by pattern matching.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "glob": "allow"
+ }
+}
+```
+
+Szukaj plików przy użyciu wzorców globalnych, takich jak `**/*.js` lub `src/**/*.ts`. Zwraca pasujące ścieżki plików posortowane według czasu modyfikacji.
+
+---
+
+### lista
+
+Wyświetla listę plików i katalogów w podanej ścieżce.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "list": "allow"
+ }
+}
+```
+
+To narzędzie wyświetla zawartość katalogu. Akceptuje wzorce globalne do filtrowania wyników.
+
+---
+
+### lsp (experimental)
+
+Wejdź w interakcję ze skonfigurowanymi serwerami LSP, aby uzyskać funkcje analizy kodu, takie jak definicje, odniesienia, informacje o najechaniu myszką i hierarchia połączeń.
+
+:::note
+To narzędzie jest dostępne tylko wtedy, gdy `OPENCODE_EXPERIMENTAL_LSP_TOOL=true` (lub `OPENCODE_EXPERIMENTAL=true`).
+:::
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "lsp": "allow"
+ }
+}
+```
+
+Obsługiwane operacje obejmują `goToDefinition`, `findReferences`, `hover`, `documentSymbol`, `workspaceSymbol`, `goToImplementation`, `prepareCallHierarchy`, `incomingCalls` i `outgoingCalls`.
+
+Aby skonfigurować, które serwery LSP są dostępne dla Twojego projektu, zobacz [Serwery LSP](/docs/lsp).
+
+---
+
+### patch
+
+Apply patches to files.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "edit": "allow"
+ }
+}
+```
+
+To narzędzie stosuje pliki poprawek do bazy kodu. Przydatne do stosowania różnic i poprawek z różnych źródeł.
+
+:::note
+Narzędzie `patch` jest kontrolowane przez uprawnienie `edit`, które obejmuje wszystkie modyfikacje plików (`edit`, `write`, `patch`, `multiedit`).
+:::
+
+---
+
+### skill
+
+Załaduj [umiejętność](/docs/skills) (plik `SKILL.md`) i zwróć jej treść w rozmowie.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "skill": "allow"
+ }
+}
+```
+
+---
+
+### todowrite
+
+Zarządzaj listami rzeczy do zrobienia podczas sesji kodowania.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "todowrite": "allow"
+ }
+}
+```
+
+Tworzy i aktualizuje listy zadań w celu śledzenia postępu podczas złożonych operacji. LLM wykorzystuje to do organizowania zadań wieloetapowych.
+
+:::note
+To narzędzie jest domyślnie wyłączone dla podagentów, ale można je włączyć ręcznie. [Dowiedz się więcej](/docs/agents/#permissions)
+:::
+
+---
+
+### todoread
+
+Read existing todo lists.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "todoread": "allow"
+ }
+}
+```
+
+Odczytuje bieżący stan listy rzeczy do zrobienia. Używany przez LLM do śledzenia zadań oczekujących lub ukończonych.
+
+:::note
+To narzędzie jest domyślnie wyłączone dla podagentów, ale można je włączyć ręcznie. [Dowiedz się więcej](/docs/agents/#permissions)
+:::
+
+---
+
+### webfetch
+
+Fetch web content.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "webfetch": "allow"
+ }
+}
+```
+
+Umożliwia LLM pobieranie i odczytywanie stron internetowych. Przydatne do wyszukiwania dokumentacji lub wyszukiwania zasobów online.
+
+---
+
+### websearch
+
+Wyszukaj informacje w Internecie.
+
+:::note
+To narzędzie jest dostępne tylko w przypadku korzystania z dostawcy OpenCode lub gdy zmienna środowiskowa `OPENCODE_ENABLE_EXA` jest ustawiona na dowolną wartość prawdziwą (np. `true` lub `1`).
+
+To enable when launching OpenCode:
+
+```bash
+OPENCODE_ENABLE_EXA=1 opencode
+```
+
+:::
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "websearch": "allow"
+ }
+}
+```
+
+Przeszukuje Internet za pomocą Exa AI, aby znaleźć odpowiednie informacje w Internecie. Przydatne do badania tematów, znajdowania bieżących wydarzeń lub zbierania informacji wykraczających poza limit danych szkoleniowych.
+
+Nie jest wymagany żaden klucz API — narzędzie łączy się bezpośrednio z usługą MCP hostowaną przez Exa AI bez uwierzytelniania.
+
+:::tip
+Użyj `websearch`, gdy chcesz znaleźć informacje (odkrycie), i `webfetch`, gdy musisz pobrać treść z określonego adresu URL (pobieranie).
+:::
+
+---
+
+### question
+
+Zadawaj pytania użytkownikowi podczas wykonywania.
+
+```json title="opencode.json" {4}
+{
+ "$schema": "https://opencode.ai/config.json",
+ "permission": {
+ "question": "allow"
+ }
+}
+```
+
+To narzędzie umożliwia LLM zadawanie pytań użytkownikowi podczas wykonywania zadania. Jest to przydatne dla:
+
+- Gathering user preferences or requirements
+- Clarifying ambiguous instructions
+- Getting decisions on implementation choices
+- Offering choices about what direction to take
+
+Każde pytanie zawiera nagłówek, tekst pytania i listę opcji. Użytkownicy mogą wybierać spośród dostępnych opcji lub wpisać niestandardową odpowiedź. Jeśli pytań jest wiele, użytkownicy mogą nawigować między nimi przed przesłaniem wszystkich odpowiedzi.
+
+---
+
+## Custom tools
+
+Niestandardowe narzędzia pozwalają zdefiniować własne funkcje, które LLM może wywołać. Są one zdefiniowane w pliku konfiguracyjnym i mogą wykonywać dowolny kod.
+
+[Więcej informacji](/docs/custom-tools) o tworzeniu narzędzi niestandardowych.
+
+---
+
+## MCP servers
+
+Serwery MCP (Model Context Protocol) umożliwiają integrację zewnętrznych narzędzi i usług. Obejmuje to dostęp do baz danych, integracje API i usługi stron trzecich.
+
+[Dowiedz się więcej](/docs/mcp-servers) o konfigurowaniu serwerów MCP.
+
+---
+
+## Internals
+
+Wewnętrznie narzędzia takie jak `grep`, `glob` i `list` używają pod maską [ripgrep](https://github.com/BurntSushi/ripgrep). Domyślnie ripgrep respektuje wzorce `.gitignore`, co oznacza, że ​​pliki i katalogi wymienione w Twoim `.gitignore` zostaną wykluczone z wyszukiwań i list.
+
+---
+
+### Ignore patterns
+
+Aby uwzględnić pliki, które normalnie byłyby ignorowane, utwórz plik `.ignore` w katalogu głównym projektu. Ten plik może jawnie zezwalać na określone ścieżki.
+
+```text title=".ignore"
+!node_modules/
+!dist/
+!build/
+```
+
+Na przykład ten plik `.ignore` pozwala ripgrepowi przeszukiwać katalogi `node_modules/`, `dist/` i `build/`, nawet jeśli są one wymienione w `.gitignore`.
diff --git a/packages/web/src/content/docs/pl/troubleshooting.mdx b/packages/web/src/content/docs/pl/troubleshooting.mdx
new file mode 100644
index 000000000..844d5b91f
--- /dev/null
+++ b/packages/web/src/content/docs/pl/troubleshooting.mdx
@@ -0,0 +1,300 @@
+---
+title: Troubleshooting
+description: Typowe problemy i sposoby ich rozwiązywania.
+---
+
+Aby debugować problemy z OpenCode, zacznij od sprawdzenia dzienników i danych lokalnych przechowywanych na dysku.
+
+---
+
+## Logs
+
+Log files are written to:
+
+- **macOS/Linux**: `~/.local/share/opencode/log/`
+- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.local\share\opencode\log`
+
+Nazwy plików dziennika zawierają znaczniki czasu (np. `2025-01-09T123456.log`) i przechowywanych jest 10 ostatnich plików dziennika.
+
+Możesz ustawić poziom dziennika za pomocą opcji wiersza poleceń `--log-level`, aby uzyskać bardziej szczegółowe informacje debugowania. Na przykład `opencode --log-level DEBUG`.
+
+---
+
+## Storage
+
+opencode przechowuje dane sesji i inne dane aplikacji na dysku pod adresem:
+
+- **macOS/Linux**: `~/.local/share/opencode/`
+- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.local\share\opencode`
+
+Ten katalog zawiera:
+
+- `auth.json` - Authentication data like API keys, OAuth tokens
+- `log/` - Application logs
+- `project/` — Dane specyficzne dla projektu, takie jak dane sesji i komunikatów
+ - Jeśli projekt znajduje się w repozytorium Git, jest on przechowywany w `./<project-slug>/storage/`
+ - If it is not a Git repo, it is stored in `./global/storage/`
+
+---
+
+## Desktop app
+
+OpenCode Desktop uruchamia w tle lokalny serwer OpenCode (wózek boczny `opencode-cli`). Większość problemów jest spowodowana nieprawidłowo działającą wtyczką, uszkodzoną pamięcią podręczną lub złymi ustawieniami serwera.
+
+### Quick checks
+
+- Całkowicie zakończ i uruchom ponownie aplikację.
+- Jeśli aplikacja wyświetli ekran błędu, kliknij **Uruchom ponownie** i skopiuj szczegóły błędu.
+- Tylko macOS: menu `OpenCode` -> **Załaduj ponownie przeglądarkę internetową** (pomaga, jeśli interfejs użytkownika jest pusty/zawieszony).
+
+---
+
+### Disable plugins
+
+Jeśli aplikacja komputerowa ulega awarii podczas uruchamiania, zawiesza się lub zachowuje się dziwnie, zacznij od wyłączenia wtyczek.
+
+#### Sprawdź konfigurację globalną
+
+Otwórz globalny plik konfiguracyjny i poszukaj klucza `plugin`.
+
+- **macOS/Linux**: `~/.config/opencode/opencode.jsonc` (or `~/.config/opencode/opencode.json`)
+- **macOS/Linux** (older installs): `~/.local/share/opencode/opencode.jsonc`
+- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.config\opencode\opencode.jsonc`
+
+Jeśli masz skonfigurowane wtyczki, tymczasowo je wyłącz, usuwając klucz lub ustawiając go na pustą tablicę:
+
+```jsonc
+{
+ "$schema": "https://opencode.ai/config.json",
+ "plugin": [],
+}
+```
+
+#### Check plugin directories
+
+OpenCode może także ładować lokalne wtyczki z dysku. Tymczasowo usuń je (lub zmień nazwę folderu) i uruchom ponownie aplikację komputerową:
+
+- **Global plugins**
+ - **macOS/Linux**: `~/.config/opencode/plugins/`
+ - **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.config\opencode\plugins`
+- **Wtyczki projektowe** (tylko jeśli używasz konfiguracji dla poszczególnych projektów)
+ - `<your-project>/.opencode/plugins/`
+
+Jeśli aplikacja ponownie zacznie działać, włączaj ponownie wtyczki pojedynczo, aby dowiedzieć się, która powoduje problem.
+
+---
+
+### Wyczyść pamięć podręczną
+
+Jeśli wyłączenie wtyczek nie pomoże (lub instalacja wtyczki utknęła), wyczyść pamięć podręczną, aby OpenCode mógł ją odbudować.
+
+1. Quit OpenCode Desktop completely.
+2. Usuń katalog pamięci podręcznej:
+
+- **macOS**: Finder -> `Cmd+Shift+G` -> paste `~/.cache/opencode`
+- **Linux**: usuń `~/.cache/opencode` (lub uruchom `rm -rf ~/.cache/opencode`)
+- **Windows**: Naciśnij `WIN+R` i wklej `%USERPROFILE%\.cache\opencode`
+
+3. Restart OpenCode Desktop.
+
+---
+
+### Napraw problemy z połączeniem z serwerem
+
+OpenCode Desktop może uruchomić własny serwer lokalny (domyślnie) lub połączyć się ze skonfigurowanym adresem URL serwera.
+
+Jeśli zobaczysz okno dialogowe **„Połączenie nie powiodło się”** (lub aplikacja nigdy nie wychodzi poza ekran powitalny), sprawdź, czy jest niestandardowy adres URL serwera.
+
+#### Wyczyść domyślny adres URL serwera na komputerze
+
+Na ekranie głównym kliknij nazwę serwera (z kropką stanu), aby otworzyć selektor serwerów. W sekcji **Serwer domyślny** kliknij **Wyczyść**.
+
+#### Usuń `server.port` / `server.hostname` ze swojej konfiguracji
+
+Jeśli Twój `opencode.json(c)` zawiera sekcję `server`, tymczasowo usuń ją i uruchom ponownie aplikację komputerową.
+
+#### Check environment variables
+
+Jeśli w swoim środowisku masz ustawiony `OPENCODE_PORT`, aplikacja komputerowa spróbuje użyć tego portu dla serwera lokalnego.
+
+- Rozbierz `OPENCODE_PORT` (lub wybierz wolny port) i uruchom ponownie.
+
+---
+
+### Linux: Wayland / X11 issues
+
+On Linux, some Wayland setups can cause blank windows or compositor errors.
+
+- Jeśli korzystasz z Wayland, a aplikacja jest pusta/ ulega awarii, spróbuj uruchomić ją za pomocą `OC_ALLOW_WAYLAND=1`.
+- Jeśli to pogorszy sprawę, usuń go i zamiast tego spróbuj uruchomić w sesji X11.
+
+---
+
+### Windows: WebView2 runtime
+
+W systemie Windows OpenCode Desktop wymaga Microsoft Edge **WebView2 Runtime**. Jeśli aplikacja otwiera się w pustym oknie lub nie uruchamia się, zainstaluj/zaktualizuj WebView2 i spróbuj ponownie.
+
+---
+
+### Windows: General performance issues
+
+Jeśli doświadczasz niskiej wydajności, problemów z dostępem do plików lub problemów z terminalem w systemie Windows, spróbuj użyć [WSL (podsystem Windows dla systemu Linux) (./windows-wsl). WSL zapewnia środowisko Linux, które płynniej współpracuje z funkcjami OpenCode.
+
+---
+
+### Notifications not showing
+
+OpenCode Desktop only shows system notifications when:
+
+- powiadomienia są włączone dla OpenCode w ustawieniach systemu operacyjnego, oraz
+- okno aplikacji nie jest aktywne.
+
+---
+
+### Reset desktop app storage (last resort)
+
+Jeśli aplikacja nie uruchamia się i nie możesz wyczyścić ustawień w interfejsie użytkownika, zresetuj zapisany stan aplikacji komputerowej.
+
+1. Quit OpenCode Desktop.
+2. Znajdź i usuń te pliki (znajdują się w katalogu danych aplikacji OpenCode Desktop):
+
+- `opencode.settings.dat` (domyślny adres URL serwera na komputerze stacjonarnym)
+- `opencode.global.dat` i `opencode.workspace.*.dat` (stan interfejsu użytkownika, taki jak najnowsze serwery/projekty)
+
+Aby szybko znaleźć katalog:
+
+- **macOS**: Finder -> `Cmd+Shift+G` -> `~/Library/Application Support` (następnie wyszukaj nazwy plików powyżej)
+- **Linux**: wyszukaj powyższe nazwy plików pod `~/.local/share`
+- **Windows**: Naciśnij `WIN+R` -> `%APPDATA%` (następnie wyszukaj nazwy plików powyżej)
+
+---
+
+## Getting help
+
+Jeśli masz problemy z OpenCode:
+
+1. **Report issues on GitHub**
+
+ Najlepszym sposobem zgłaszania błędów lub zgłaszania żądań funkcji jest skorzystanie z naszego repozytorium GitHub:
+
+ [**github.com/anomalyco/opencode/issues**](https://github.com/anomalyco/opencode/issues)
+
+ Przed utworzeniem nowego problemu przeszukaj istniejące i sprawdź, czy Twój problem nie został już zgłoszony.
+
+2. **Join our Discord**
+
+ Aby uzyskać pomoc w czasie rzeczywistym i dyskusję społeczności, dołącz do naszego serwera Discord:
+
+ [**opencode.ai/discord**](https://opencode.ai/discord)
+
+---
+
+## Common issues
+
+Oto kilka typowych problemów i sposobów ich rozwiązania.
+
+---
+
+### OpenCode nie uruchamia się
+
+1. Sprawdź dzienniki pod kątem komunikatów o błędach
+2. Spróbuj uruchomić z `--print-logs`, aby zobaczyć dane wyjściowe w terminalu
+3. Upewnij się, że masz najnowszą wersję z `opencode upgrade`
+
+---
+
+### Authentication issues
+
+1. Spróbuj ponownie uwierzytelnić się za pomocą polecenia `/connect` w TUI
+2. Sprawdź, czy klucze API są ważne
+3. Upewnij się, że Twoja sieć umożliwia połączenia z interfejsem API dostawcy
+
+---
+
+### Model niedostępny
+
+1. Sprawdź, czy dokonałeś uwierzytelnienia u dostawcy
+2. Sprawdź, czy nazwa modelu w konfiguracji jest poprawna
+3. Some models may require specific access or subscriptions
+
+Jeśli napotkasz `ProviderModelNotFoundError`, najprawdopodobniej się mylisz
+odwołując się gdzieś do modelu.
+Models should be referenced like so: `<providerId>/<modelId>`
+
+Examples:
+
+- `openai/gpt-4.1`
+- `openrouter/google/gemini-2.5-flash`
+- `opencode/kimi-k2`
+
+Aby dowiedzieć się, do jakich modeli masz dostęp, uruchom `opencode models`
+
+---
+
+### ProviderInitError
+
+Jeśli napotkasz błąd ProviderInitError, prawdopodobnie masz nieprawidłową lub uszkodzoną konfigurację.
+
+Aby rozwiązać ten problem:
+
+1. Najpierw sprawdź, czy Twój dostawca jest prawidłowo skonfigurowany, postępując zgodnie z [przewodnikiem dostawców](/docs/providers)
+2. Jeśli problem będzie się powtarzał, spróbuj wyczyścić zapisaną konfigurację:
+
+ ```bash
+ rm -rf ~/.local/share/opencode
+ ```
+
+ W systemie Windows naciśnij `WIN+R` i usuń: `%USERPROFILE%\.local\share\opencode`
+
+3. Ponownie uwierzytelnij się u swojego dostawcy za pomocą polecenia `/connect` w TUI.
+
+---
+
+### Problemy z AI_APICallError i pakietem dostawcy
+
+Jeśli napotkasz błędy wywołań API, może to wynikać z nieaktualnych pakietów dostawców. opencode dynamicznie instaluje pakiety dostawców (OpenAI, Anthropic, Google itp.) w razie potrzeby i przechowuje je lokalnie w pamięci podręcznej.
+
+Aby rozwiązać problemy z pakietem dostawcy:
+
+1. Wyczyść pamięć podręczną pakietu dostawcy:
+
+ ```bash
+ rm -rf ~/.cache/opencode
+ ```
+
+ W systemie Windows naciśnij `WIN+R` i usuń: `%USERPROFILE%\.cache\opencode`
+
+2. Uruchom ponownie kod opencode, aby ponownie zainstalować najnowsze pakiety dostawców
+
+Zmusi to opencode do pobrania najnowszych wersji pakietów dostawców, co często rozwiązuje problemy ze zgodnością z parametrami modelu i zmianami API.
+
+---
+
+### Copy/paste not working on Linux
+
+Aby funkcja kopiowania/wklejania działała, użytkownicy systemu Linux muszą mieć zainstalowane jedno z następujących narzędzi schowka:
+
+**Dla systemów X11:**
+
+```bash
+apt install -y xclip
+# or
+apt install -y xsel
+```
+
+**Dla systemów Wayland:**
+
+```bash
+apt install -y wl-clipboard
+```
+
+**Dla środowisk bezgłowych:**
+
+```bash
+apt install -y xvfb
+# and run:
+Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
+export DISPLAY=:99.0
+```
+
+opencode wykryje, czy używasz Waylanda i wolisz `wl-clipboard`, w przeciwnym razie spróbuje znaleźć narzędzia schowka w kolejności: `xclip` i `xsel`.
diff --git a/packages/web/src/content/docs/pl/tui.mdx b/packages/web/src/content/docs/pl/tui.mdx
new file mode 100644
index 000000000..8a5dbe7a7
--- /dev/null
+++ b/packages/web/src/content/docs/pl/tui.mdx
@@ -0,0 +1,390 @@
+---
+title: TUI
+description: Korzystanie z interfejsu użytkownika terminala OpenCode.
+---
+
+import { Tabs, TabItem } from "@astrojs/starlight/components"
+
+OpenCode zapewnia interaktywny interfejs terminala lub TUI do pracy nad projektami za pomocą LLM.
+
+Uruchomienie OpenCode uruchamia TUI dla bieżącego katalogu.
+
+```bash
+opencode
+```
+
+Możesz też uruchomić go dla określonego katalogu roboczego.
+
+```bash
+opencode /path/to/project
+```
+
+Gdy znajdziesz się w TUI, możesz wyświetlić monit za pomocą komunikatu.
+
+```text
+Give me a quick summary of the codebase.
+```
+
+---
+
+## File references
+
+Możesz odwoływać się do plików w swoich wiadomościach, używając `@`. Spowoduje to rozmyte wyszukiwanie plików w bieżącym katalogu roboczym.
+
+:::tip
+Możesz także użyć `@` do odwoływania się do plików w swoich wiadomościach.
+:::
+
+```text "@packages/functions/src/api/index.ts"
+How is auth handled in @packages/functions/src/api/index.ts?
+```
+
+Zawartość pliku jest automatycznie dodawana do rozmowy.
+
+---
+
+## Bash commands
+
+Rozpocznij wiadomość od `!`, aby uruchomić polecenie powłoki.
+
+```bash frame="none"
+!ls -la
+```
+
+Dane wyjściowe polecenia są dodawane do konwersacji jako wynik narzędzia.
+
+---
+
+## Komendy
+
+Korzystając z TUI OpenCode, możesz wpisać `/`, po którym następuje nazwa polecenia, aby szybko wykonać działania. Na przykład:
+
+```bash frame="none"
+/help
+```
+
+Większość poleceń ma również skrót klawiszowy wykorzystujący `ctrl+x` jako klucz wiodący, gdzie `ctrl+x` jest domyślnym klawiszem wiodącym. [Dowiedz się więcej](/docs/keybinds).
+
+Oto wszystkie dostępne polecenia ukośnika:
+
+---
+
+### connect
+
+Dodaj dostawcę do OpenCode. Umożliwia wybór dostępnych dostawców i dodanie ich kluczy API.
+
+```bash frame="none"
+/connect
+```
+
+---
+
+### compact
+
+Kompaktuj bieżącą sesję. _Alias_: `/summarize`
+
+```bash frame="none"
+/compact
+```
+
+**Keybind:** `ctrl+x c`
+
+---
+
+### details
+
+Toggle tool execution details.
+
+```bash frame="none"
+/details
+```
+
+**Keybind:** `ctrl+x d`
+
+---
+
+### editor
+
+Otwórz zewnętrzny edytor do tworzenia wiadomości. Używa edytora ustawionego w zmiennej środowiskowej `EDITOR`. [Dowiedz się więcej](#editor-setup).
+
+```bash frame="none"
+/editor
+```
+
+**Keybind:** `ctrl+x e`
+
+---
+
+### exit
+
+Exit OpenCode. _Aliases_: `/quit`, `/q`
+
+```bash frame="none"
+/exit
+```
+
+**Keybind:** `ctrl+x q`
+
+---
+
+### export
+
+Wyeksportuj bieżącą rozmowę do Markdown i otwórz ją w domyślnym edytorze. Używa edytora ustawionego w zmiennej środowiskowej `EDITOR`. [Dowiedz się więcej](#editor-setup).
+
+```bash frame="none"
+/export
+```
+
+**Keybind:** `ctrl+x x`
+
+---
+
+### help
+
+Pokaż okno pomocy.
+
+```bash frame="none"
+/help
+```
+
+**Keybind:** `ctrl+x h`
+
+---
+
+### init
+
+Utwórz lub zaktualizuj plik `AGENTS.md`. [Dowiedz się więcej](/docs/rules).
+
+```bash frame="none"
+/init
+```
+
+**Keybind:** `ctrl+x i`
+
+---
+
+### models
+
+Lista dostępnych modeli.
+
+```bash frame="none"
+/models
+```
+
+**Keybind:** `ctrl+x m`
+
+---
+
+### new
+
+Rozpocznij nową sesję. _Alias_: `/clear`
+
+```bash frame="none"
+/new
+```
+
+**Keybind:** `ctrl+x n`
+
+---
+
+### redo
+
+Ponów cofniętą wcześniej wiadomość. Dostępne tylko po użyciu `/undo`.
+
+:::tip
+Any file changes will also be restored.
+:::
+
+Wewnętrznie używa Git do zarządzania zmianami plików. Więc Twój projekt ** musi
+be a Git repository**.
+
+```bash frame="none"
+/redo
+```
+
+**Keybind:** `ctrl+x r`
+
+---
+
+### sessions
+
+Wyświetl listę i przełączaj się między sesjami. _Aliasy_: `/resume`, `/continue`
+
+```bash frame="none"
+/sessions
+```
+
+**Keybind:** `ctrl+x l`
+
+---
+
+### share
+
+Udostępnij bieżącą sesję. [Dowiedz się więcej](/docs/share).
+
+```bash frame="none"
+/share
+```
+
+**Keybind:** `ctrl+x s`
+
+---
+
+### themes
+
+Lista dostępnych motywów.
+
+```bash frame="none"
+/theme
+```
+
+**Keybind:** `ctrl+x t`
+
+---
+
+### thinking
+
+Przełącz widoczność bloków myślenia/rozumowania w rozmowie. Po włączeniu tej opcji można zobaczyć proces wnioskowania modelu w przypadku modeli obsługujących myślenie rozszerzone.
+
+:::note
+To polecenie kontroluje jedynie, czy bloki myślowe są **wyświetlane** - nie włącza ani nie wyłącza możliwości wnioskowania modelu. Aby przełączyć rzeczywiste możliwości wnioskowania, użyj `ctrl+t` do przełączania wariantów modelu.
+:::
+
+```bash frame="none"
+/thinking
+```
+
+---
+
+### undo
+
+Cofnij ostatnią wiadomość w rozmowie. Usuwa najnowszą wiadomość użytkownika, wszystkie kolejne odpowiedzi i wszelkie zmiany w plikach.
+
+:::tip
+Any file changes made will also be reverted.
+:::
+
+Wewnętrznie używa Git do zarządzania zmianami plików. Więc Twój projekt ** musi
+be a Git repository**.
+
+```bash frame="none"
+/undo
+```
+
+**Keybind:** `ctrl+x u`
+
+---
+
+### unshare
+
+Anuluj udostępnianie bieżącej sesji. [Dowiedz się więcej](/docs/share#un-sharing).
+
+```bash frame="none"
+/unshare
+```
+
+---
+
+## Editor setup
+
+Zarówno polecenia `/editor`, jak i `/export` korzystają z edytora określonego w zmiennej środowiskowej `EDITOR`.
+
+<Tabs>
+ <TabItem label="Linux/macOS">
+ ```bash
+ # Example for nano or vim
+ export EDITOR=nano
+ export EDITOR=vim
+
+ # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
+ # include --wait
+ export EDITOR="code --wait"
+ ```
+
+ Aby było to trwałe, dodaj to do swojego profilu powłoki;
+ `~/.bashrc`, `~/.zshrc`, etc.
+
+ </TabItem>
+
+ <TabItem label="Windows (CMD)">
+ ```bash
+ set EDITOR=notepad
+
+ # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
+ # include --wait
+ set EDITOR=code --wait
+ ```
+
+ Aby ustawić tę opcję na stałe, użyj opcji **Właściwości systemu** > **Środowisko
+ Variables**.
+
+ </TabItem>
+
+ <TabItem label="Windows (PowerShell)">
+ ```powershell
+ $env:EDITOR = "notepad"
+
+ # For GUI editors, VS Code, Cursor, VSCodium, Windsurf, Zed, etc.
+ # include --wait
+ $env:EDITOR = "code --wait"
+ ```
+
+ Aby uczynić to trwałym, dodaj to do swojego profilu PowerShell.
+
+ </TabItem>
+</Tabs>
+
+Popular editor options include:
+
+- `code` - Visual Studio Code
+- `cursor` - Cursor
+- `windsurf` - Windsurf
+- `nvim` - Neovim editor
+- `vim` - Vim editor
+- `nano` - Nano editor
+- `notepad` - Windows Notepad
+- `subl` - Sublime Text
+
+:::note
+Niektóre edytory, takie jak VS Code, należy uruchamiać z flagą `--wait`.
+:::
+
+Niektórzy redaktorzy potrzebują argumentów wiersza poleceń, aby działać w trybie blokowania. Flaga `--wait` blokuje proces edytora aż do jego zamknięcia.
+
+---
+
+## Skonfiguruj
+
+Możesz dostosować zachowanie TUI za pomocą pliku konfiguracyjnego OpenCode.
+
+```json title="opencode.json"
+{
+ "$schema": "https://opencode.ai/config.json",
+ "tui": {
+ "scroll_speed": 3,
+ "scroll_acceleration": {
+ "enabled": true
+ }
+ }
+}
+```
+
+### Options
+
+- `scroll_acceleration` — Włącz przyspieszenie przewijania w stylu macOS, aby zapewnić płynne, naturalne przewijanie. Po włączeniu prędkość przewijania wzrasta wraz z szybkimi gestami przewijania i pozostaje precyzyjna w przypadku wolniejszych ruchów. **To ustawienie ma pierwszeństwo przed `scroll_speed` i zastępuje je, gdy jest włączone.**
+- `scroll_speed` - Kontroluje szybkość przewijania TUI podczas korzystania z poleceń przewijania (minimum: `1`). Wartość domyślna to `3`. **Uwaga: jest to ignorowane, jeśli `scroll_acceleration.enabled` jest ustawione na `true`.**
+
+---
+
+## Customization
+
+Za pomocą palety poleceń (`ctrl+x h` lub `/help`) można dostosować różne aspekty widoku TUI. Te ustawienia są zachowywane po ponownym uruchomieniu.
+
+---
+
+#### Username display
+
+Włącz lub wyłącz wyświetlanie Twojej nazwy użytkownika w wiadomościach na czacie. Dostęp do tego poprzez:
+
+- Paleta poleceń: Wyszukaj „nazwę użytkownika” lub „ukryj nazwę użytkownika”
+- Ustawienie zostanie zapamiętane automatycznie i będzie pamiętane podczas sesji TUI
diff --git a/packages/web/src/content/docs/pl/web.mdx b/packages/web/src/content/docs/pl/web.mdx
new file mode 100644
index 000000000..689d22d7d
--- /dev/null
+++ b/packages/web/src/content/docs/pl/web.mdx
@@ -0,0 +1,142 @@
+---
+title: Web
+description: Korzystanie z OpenCode w przeglądarce.
+---
+
+OpenCode może działać jako aplikacja internetowa w przeglądarce, zapewniając takie same możliwości kodowania AI bez konieczności korzystania z terminala.
+
+![Sieć OpenCode - Nowa sesja](../../../assets/web/web-homepage-new-session.png)
+
+## Getting Started
+
+Uruchom interfejs sieciowy, uruchamiając:
+
+```bash
+opencode web
+```
+
+Spowoduje to uruchomienie lokalnego serwera na `127.0.0.1` z losowo dostępnym portem i automatyczne otwarcie OpenCode w domyślnej przeglądarce.
+
+:::caution
+Jeśli `OPENCODE_SERVER_PASSWORD` nie jest ustawione, serwer będzie niezabezpieczony. Jest to dobre rozwiązanie do użytku lokalnego, ale powinno być ustawione na dostęp do sieci.
+:::
+
+:::tip[Windows Users]
+Aby uzyskać najlepsze wyniki, uruchom `opencode web` z [WSL](/docs/windows-wsl) zamiast programu PowerShell. Zapewnia to prawidłowy dostęp do systemu plików i integrację terminala.
+:::
+
+---
+
+## Configuration
+
+Możesz skonfigurować serwer WWW za pomocą flag wiersza poleceń lub w [pliku konfiguracyjnym] (./config).
+
+### Port
+
+Domyślnie OpenCode wybiera dostępny port. Możesz określić port:
+
+```bash
+opencode web --port 4096
+```
+
+### Hostname
+
+Domyślnie serwer łączy się z `127.0.0.1` (tylko localhost). Aby udostępnić OpenCode w swojej sieci:
+
+```bash
+opencode web --hostname 0.0.0.0
+```
+
+Podczas korzystania z `0.0.0.0` OpenCode wyświetli zarówno adresy lokalne, jak i sieciowe:
+
+```
+ Local access: http://localhost:4096
+ Network access: http://192.168.1.100:4096
+```
+
+### mDNS Discovery
+
+Włącz mDNS, aby Twój serwer był wykrywalny w sieci lokalnej:
+
+```bash
+opencode web --mdns
+```
+
+To automatycznie ustawia nazwę hosta na `0.0.0.0` i anonsuje serwer jako `opencode.local`.
+
+Możesz dostosować nazwę domeny mDNS, aby uruchamiała wiele instancji w tej samej sieci:
+
+```bash
+opencode web --mdns --mdns-domain myproject.local
+```
+
+### CORS
+
+Aby zezwolić na dodatkowe domeny dla CORS (przydatne w przypadku niestandardowych interfejsów):
+
+```bash
+opencode web --cors https://example.com
+```
+
+### Authentication
+
+Aby chronić dostęp, ustaw hasło za pomocą zmiennej środowiskowej `OPENCODE_SERVER_PASSWORD`:
+
+```bash
+OPENCODE_SERVER_PASSWORD=secret opencode web
+```
+
+Domyślna nazwa użytkownika to `opencode`, ale można ją zmienić za pomocą `OPENCODE_SERVER_USERNAME`.
+
+---
+
+## Korzystanie z interfejsu internetowego
+
+Po uruchomieniu interfejs sieciowy zapewnia dostęp do sesji OpenCode.
+
+### Sessions
+
+Przeglądaj sesje i zarządzaj nimi ze strony głównej. Możesz zobaczyć aktywne sesje i rozpocząć nowe.
+
+![OpenCode Web - Aktywna sesja](../../../assets/web/web-homepage-active-session.png)
+
+### Stan serwera
+
+Kliknij „Zobacz serwery”, aby wyświetlić podłączone serwery i ich status.
+
+![OpenCode Web - See Servers](../../../assets/web/web-homepage-see-servers.png)
+
+---
+
+## Attaching a Terminal
+
+Możesz podłączyć terminal TUI do działającego serwera WWW:
+
+```bash
+# Start the web server
+opencode web --port 4096
+
+# In another terminal, attach the TUI
+opencode attach http://localhost:4096
+```
+
+Umożliwia to jednoczesne korzystanie z interfejsu sieciowego i terminala, współdzieląc te same sesje i stan.
+
+---
+
+## Config File
+
+Możesz także skonfigurować ustawienia serwera w pliku konfiguracyjnym `opencode.json`:
+
+```json
+{
+ "server": {
+ "port": 4096,
+ "hostname": "0.0.0.0",
+ "mdns": true,
+ "cors": ["https://example.com"]
+ }
+}
+```
+
+Flagi wiersza poleceń mają pierwszeństwo przed ustawieniami pliku konfiguracyjnego.
diff --git a/packages/web/src/content/docs/pl/windows-wsl.mdx b/packages/web/src/content/docs/pl/windows-wsl.mdx
new file mode 100644
index 000000000..b930cf637
--- /dev/null
+++ b/packages/web/src/content/docs/pl/windows-wsl.mdx
@@ -0,0 +1,113 @@
+---
+title: Windows (WSL)
+description: Uruchamiaj OpenCode na Windows z WSL dla najlepszych efektow.
+---
+
+import { Steps } from "@astrojs/starlight/components"
+
+Chociaz OpenCode moze dzialac bezposrednio na Windows, dla najlepszych rezultatow zalecamy [Windows Subsystem for Linux (WSL)](https://learn.microsoft.com/en-us/windows/wsl/install). WSL zapewnia srodowisko Linuksa, ktore bardzo dobrze wspolpracuje z funkcjami OpenCode.
+
+:::tip[Dlaczego WSL?]
+WSL oferuje lepsza wydajnosc systemu plikow, pelna obsluge terminala i zgodnosc z narzedziami developerskimi, na ktorych opiera sie OpenCode.
+:::
+
+---
+
+## Konfiguracja
+
+<Steps>
+
+1. **Zainstaluj WSL**
+
+ Jesli jeszcze tego nie zrobiles, [zainstaluj WSL](https://learn.microsoft.com/en-us/windows/wsl/install) wedlug oficjalnego przewodnika Microsoft.
+
+2. **Zainstaluj OpenCode w WSL**
+
+ Po skonfigurowaniu WSL otworz terminal WSL i zainstaluj OpenCode jedna z [metod instalacji](/docs/).
+
+ ```bash
+ curl -fsSL https://opencode.ai/install | bash
+ ```
+
+3. **Korzystaj z OpenCode przez WSL**
+
+ Przejdz do katalogu projektu (pliki Windows sa dostepne przez `/mnt/c/`, `/mnt/d/` itd.) i uruchom OpenCode.
+
+ ```bash
+ cd /mnt/c/Users/YourName/project
+ opencode
+ ```
+
+</Steps>
+
+---
+
+## Aplikacja desktopowa + serwer WSL
+
+Jesli wolisz aplikacje desktopowa OpenCode, ale chcesz uruchamiac serwer w WSL:
+
+1. **Uruchom serwer w WSL** z `--hostname 0.0.0.0`, aby zezwolic na polaczenia zewnetrzne:
+
+ ```bash
+ opencode serve --hostname 0.0.0.0 --port 4096
+ ```
+
+2. **Polacz aplikacje desktopowa** z `http://localhost:4096`
+
+:::note
+Jesli `localhost` nie dziala w Twojej konfiguracji, polacz sie przez adres IP WSL (w WSL: `hostname -I`) i uzyj `http://<wsl-ip>:4096`.
+:::
+
+:::caution
+Przy uzyciu `--hostname 0.0.0.0` ustaw `OPENCODE_SERVER_PASSWORD`, aby zabezpieczyc serwer.
+
+```bash
+OPENCODE_SERVER_PASSWORD=your-password opencode serve --hostname 0.0.0.0
+```
+
+:::
+
+---
+
+## Klient web + WSL
+
+Dla najlepszej pracy w przegladarce na Windows:
+
+1. **Uruchamiaj `opencode web` w terminalu WSL**, a nie w PowerShell:
+
+ ```bash
+ opencode web --hostname 0.0.0.0
+ ```
+
+2. **Otworz w przegladarce Windows** pod adresem `http://localhost:<port>` (OpenCode wypisze URL)
+
+Uruchamianie `opencode web` z WSL zapewnia poprawny dostep do systemu plikow i integracje z terminalem, a nadal pozostaje dostepne z przegladarki Windows.
+
+---
+
+## Dostep do plikow Windows
+
+WSL moze uzyskac dostep do wszystkich plikow Windows przez katalog `/mnt/`:
+
+- Dysk `C:` → `/mnt/c/`
+- Dysk `D:` → `/mnt/d/`
+- I tak dalej...
+
+Przyklad:
+
+```bash
+cd /mnt/c/Users/YourName/Documents/project
+opencode
+```
+
+:::tip
+Aby uzyskac najplynniejsza prace, rozwaz sklonowanie/skopiowanie repozytorium do systemu plikow WSL (np. do `~/code/`) i uruchamianie tam OpenCode.
+:::
+
+---
+
+## Wskazowki
+
+- Uruchamiaj OpenCode w WSL dla projektow zapisanych na dyskach Windows - dostep do plikow jest bezproblemowy
+- Uzywaj [rozszerzenia WSL dla VS Code](https://code.visualstudio.com/docs/remote/wsl) razem z OpenCode, aby miec zintegrowany workflow
+- Konfiguracja OpenCode i sesje sa przechowywane w srodowisku WSL pod `~/.local/share/opencode/`
diff --git a/packages/web/src/content/docs/pl/zen.mdx b/packages/web/src/content/docs/pl/zen.mdx
new file mode 100644
index 000000000..31f263e32
--- /dev/null
+++ b/packages/web/src/content/docs/pl/zen.mdx
@@ -0,0 +1,254 @@
+---
+title: Zen
+description: Wyselekcjonowana lista modeli dostarczonych przez OpenCode.
+---
+
+import config from "../../../../config.mjs"
+export const console = config.console
+export const email = `mailto:${config.email}`
+
+OpenCode Zen to lista przetestowanych i zweryfikowanych modeli udostępniona przez zespół OpenCode.
+
+:::note
+OpenCode Zen is currently in beta.
+:::
+
+Zen działa jak każdy inny dostawca OpenCode. Logujesz się do OpenCode Zen i dostajesz
+Twój klucz API. Jest **całkowicie opcjonalny** i nie musisz go używać, aby z niego korzystać
+OpenCode.
+
+---
+
+## Background
+
+There are a large number of models out there but only a few of
+these models work well as coding agents. Additionally, most providers are
+skonfigurowany bardzo różnie; więc otrzymujesz zupełnie inną wydajność i jakość.
+
+:::tip
+Przetestowaliśmy wybraną grupę modeli i dostawców, którzy dobrze współpracują z OpenCode.
+:::
+
+Jeśli więc używasz modelu za pośrednictwem czegoś takiego jak OpenRouter, nigdy nie będzie to możliwe
+pewien, czy otrzymujesz najlepszą wersję modelu, jaki chcesz.
+
+Aby to naprawić, zrobiliśmy kilka rzeczy:
+
+1. Przetestowaliśmy wybraną grupę modeli i rozmawialiśmy z ich zespołami o tym, jak to zrobić
+ najlepiej je uruchom.
+2. Następnie współpracowaliśmy z kilkoma dostawcami, aby upewnić się, że są one obsługiwane
+ correctly.
+3. Na koniec porównaliśmy kombinację modelu/dostawcy i otrzymaliśmy wynik
+ z listą, którą z przyjemnością polecamy.
+
+OpenCode Zen to brama AI, która zapewnia dostęp do tych modeli.
+
+---
+
+## How it works
+
+OpenCode Zen działa jak każdy inny dostawca OpenCode.
+
+1. Logujesz się do **<a href={console}>OpenCode Zen</a>**, dodajesz swoje rozliczenia
+ szczegóły i skopiuj klucz API.
+2. Uruchamiasz polecenie `/connect` w TUI, wybierasz OpenCode Zen i wklejasz klucz API.
+3. Uruchom `/models` w TUI, aby zobaczyć listę zalecanych przez nas modeli.
+
+Opłata jest pobierana za każde żądanie i możesz dodać kredyty do swojego konta.
+
+---
+
+## Endpoints
+
+Dostęp do naszych modeli można również uzyskać za pośrednictwem następujących punktów końcowych interfejsu API.
+
+| Modelka | Identyfikator modelu | Punkt końcowy | Pakiet SDK AI |
+| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
+| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5.2 Codex | gpt-5.2-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5.1 Codex | gpt-5.1-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5.1 Codex Max | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5.1 Codex Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5 Codex | gpt-5-codex | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| GPT 5 Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
+| Claude Sonnet 4.5 | claude-sonnet-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Sonnet 4 | claude-sonnet-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| Gemini 3 Pro | gemini-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
+| Gemini 3 Flash | gemini-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
+| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| MiniMax M2.1 Free | minimax-m2.1-free | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
+| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| GLM 4.7 Free | glm-4.7-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| Kimi K2.5 Free | kimi-k2.5-free | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| Kimi K2 Thinking | kimi-k2-thinking | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| Qwen3 Coder 480B | qwen3-coder | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+| Big Pickle | big-pickle | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
+
+[Identyfikator modelu](/docs/config/#models) w konfiguracji OpenCode
+używa formatu `opencode/<model-id>`. Na przykład w przypadku Kodeksu GPT 5.2 zrobiłbyś to
+użyj `opencode/gpt-5.2-codex` w swojej konfiguracji.
+
+---
+
+### Models
+
+Pełną listę dostępnych modeli i ich metadane możesz pobrać z:
+
+```
+https://opencode.ai/zen/v1/models
+```
+
+---
+
+## Pricing
+
+Wspieramy model pay-as-you-go. Poniżej znajdują się ceny **za 1M tokenów**.
+
+| Modelka | Wejście | Wyjście | Odczyt w pamięci podręcznej | Zapis w pamięci podręcznej |
+| --------------------------------- | ------ | ------ | ----------- | ------------ |
+| Big Pickle | Free | Free | Free | - |
+| MiniMax M2.1 Free | Free | Free | Free | - |
+| MiniMax M2.1 | $0.30 | $1.20 | $0.10 | - |
+| GLM 4.7 Free | Free | Free | Free | - |
+| GLM 4.7 | $0.60 | $2.20 | $0.10 | - |
+| GLM 4.6 | $0.60 | $2.20 | $0.10 | - |
+| Kimi K2.5 Free | Free | Free | Free | - |
+| Kimi K2.5 | $0.60 | $3.00 | $0.08 | - |
+| Kimi K2 Thinking | $0.40 | $2.50 | - | - |
+| Kimi K2 | $0.40 | $2.50 | - | - |
+| Qwen3 Coder 480B | $0.45 | $1.50 | - | - |
+| Claude Sonnet 4.5 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
+| Claude Sonnet 4.5 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
+| Claude Sonnet 4 (≤ 200K tokens) | $3.00 | $15.00 | $0.30 | $3.75 |
+| Claude Sonnet 4 (> 200K tokens) | $6.00 | $22.50 | $0.60 | $7.50 |
+| Claude Haiku 4.5 | $1.00 | $5.00 | $0.10 | $1.25 |
+| Claude Haiku 3.5 | $0.80 | $4.00 | $0.08 | $1.00 |
+| Claude Opus 4.6 (≤ 200K tokens) | $5.00 | $25.00 | $0.50 | $6.25 |
+| Claude Opus 4.6 (> 200K tokens) | $10.00 | $37.50 | $1.00 | $12.50 |
+| Claude Opus 4.5 | $5.00 | $25.00 | $0.50 | $6.25 |
+| Claude Opus 4.1 | $15.00 | $75.00 | $1.50 | $18.75 |
+| Gemini 3 Pro (≤ 200K tokens) | $2.00 | $12.00 | $0.20 | - |
+| Gemini 3 Pro (> 200K tokens) | $4.00 | $18.00 | $0.40 | - |
+| Gemini 3 Flash | $0.50 | $3.00 | $0.05 | - |
+| GPT 5.2 | $1.75 | $14.00 | $0.175 | - |
+| GPT 5.2 Codex | $1.75 | $14.00 | $0.175 | - |
+| GPT 5.1 | $1.07 | $8.50 | $0.107 | - |
+| GPT 5.1 Codex | $1.07 | $8.50 | $0.107 | - |
+| GPT 5.1 Codex Max | $1.25 | $10.00 | $0.125 | - |
+| GPT 5.1 Codex Mini | $0.25 | $2.00 | $0.025 | - |
+| GPT 5 | $1.07 | $8.50 | $0.107 | - |
+| GPT 5 Codex | $1.07 | $8.50 | $0.107 | - |
+| GPT 5 Nano | Free | Free | Free | - |
+
+Możesz zauważyć _Claude Haiku 3.5_ w swojej historii użytkowania. To jest [model niskokosztowy](/docs/config/#models), który służy do generowania tytułów sesji.
+
+:::note
+Opłaty za karty kredytowe są przenoszone na koszt (4,4% + 0,30 USD za transakcję); nie pobieramy żadnych dodatkowych opłat.
+:::
+
+Darmowe modele:
+
+- GLM 4.7 Free jest dostępny na platformie OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu.
+- Kimi K2.5 Free jest dostępny na OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu.
+- MiniMax M2.1 Free jest dostępny na platformie OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu.
+- Big Pickle to ukryty model, który jest bezpłatny w OpenCode przez ograniczony czas. Zespół wykorzystuje ten czas na zbieranie opinii i ulepszanie modelu.
+
+<a href={email}>Skontaktuj się z nami</a>, jeśli masz jakieś pytania.
+
+---
+
+### Auto-reload
+
+Jeśli Twoje saldo spadnie poniżej 5 USD, Zen automatycznie doładuje 20 USD.
+
+Możesz zmienić kwotę automatycznego doładowania. Możesz także całkowicie wyłączyć automatyczne przeładowywanie.
+
+---
+
+### Monthly limits
+
+Możesz także ustawić miesięczny limit wykorzystania dla całego obszaru roboczego i dla każdego z nich
+członek Twojego zespołu.
+
+Załóżmy na przykład, że ustawiłeś miesięczny limit użytkowania na 20 USD, Zen nie będzie z niego korzystał
+ponad 20 dolarów miesięcznie. Ale jeśli masz włączone automatyczne przeładowywanie, Zen może się skończyć
+obciąży Cię kwotą wyższą niż 20 USD, jeśli saldo spadnie poniżej 5 USD.
+
+---
+
+## Privacy
+
+Wszystkie nasze modele są hostowane w USA. Nasi dostawcy przestrzegają polityki zerowego przechowywania i nie wykorzystują Twoich danych do szkolenia modeli, z następującymi wyjątkami:
+
+- Big Pickle: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu.
+- GLM 4.7 Bezpłatna: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu.
+- Kimi K2.5 Free: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu.
+- MiniMax M2.1 Free: W okresie bezpłatnym zebrane dane mogą zostać wykorzystane do udoskonalenia modelu.
+- Interfejsy API OpenAI: żądania są przechowywane przez 30 dni zgodnie z [Zasadami dotyczącymi danych OpenAI](https://platform.openai.com/docs/guides/your-data).
+- Interfejsy API Anthropic: żądania są przechowywane przez 30 dni zgodnie z [Zasadami dotyczącymi danych firmy Anthropic] (https://docs.anthropic.com/en/docs/claude-code/data-usage).
+
+---
+
+## Dla zespołów
+
+Zen świetnie sprawdza się także w zespołach. Możesz zapraszać członków zespołu, przypisywać role, zarządzać
+modele, z których korzysta Twój zespół i nie tylko.
+
+:::note
+Obszary robocze są obecnie bezpłatne dla zespołów w ramach wersji beta.
+:::
+
+Zarządzanie obszarem roboczym jest obecnie bezpłatne dla zespołów w ramach wersji beta. Będziemy
+wkrótce udostępnimy więcej szczegółów na temat cen.
+
+---
+
+### Roles
+
+Możesz zapraszać członków zespołu do swojego obszaru roboczego i przypisywać role:
+
+- **Administrator**: Zarządzaj modelami, członkami, kluczami API i rozliczeniami
+- **Członek**: Zarządzaj tylko własnymi kluczami API
+
+Administratorzy mogą także ustawić miesięczne limity wydatków dla każdego członka, aby utrzymać koszty pod kontrolą.
+
+---
+
+### Dostęp do modelu
+
+Administratorzy mogą włączać i wyłączać określone modele w obszarze roboczym. Żądania skierowane do wyłączonego modelu zwrócą błąd.
+
+Jest to przydatne w przypadkach, gdy chcesz wyłączyć korzystanie z modelu, który
+collects data.
+
+---
+
+### Przynieś swój własny klucz
+
+Możesz używać własnych kluczy OpenAI lub Anthropic API, jednocześnie uzyskując dostęp do innych modeli w Zen.
+
+Kiedy używasz własnych kluczy, tokeny są rozliczane bezpośrednio przez dostawcę, a nie przez Zen.
+
+Na przykład Twoja organizacja może już mieć klucz do OpenAI lub Anthropic
+i chcesz go używać zamiast tego, który zapewnia Zen.
+
+---
+
+## Goals
+
+We created OpenCode Zen to:
+
+1. **Benchmark** najlepsze modele/dostawcy dla agentów kodujących.
+2. Miej dostęp do opcji **najwyższej jakości**, a nie obniżaj wydajności ani nie kieruj się do tańszych dostawców.
+3. Przekaż wszelkie **obniżki cen**, sprzedając po kosztach; więc jedyną marżą jest pokrycie naszych opłat manipulacyjnych.
+4. Nie **nie blokuj**, umożliwiając używanie go z dowolnym innym agentem kodującym. I zawsze pozwalaj na korzystanie z OpenCode dowolnego innego dostawcy.