config.mdx 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680
  1. ---
  2. title: Konfiguracja
  3. description: Ustawienia OpenCode w pliku JSON.
  4. ---
  5. Możesz dostosować OpenCode za pomocą pliku konfiguracyjnego JSON.
  6. ---
  7. ## Format
  8. OpenCode obsługuje formaty **JSON** i **JSONC** (JSON z komentarzami).
  9. ```jsonc title="opencode.jsonc"
  10. {
  11. "$schema": "https://opencode.ai/config.json",
  12. // Theme configuration
  13. "theme": "opencode",
  14. "model": "anthropic/claude-sonnet-4-5",
  15. "autoupdate": true,
  16. }
  17. ```
  18. ---
  19. ## Lokalizacje
  20. Możesz umieścić swoją konfigurację w kilku różnych lokalizacjach, które mają ustaloną kolejność pierwszeństwa.
  21. :::note
  22. Pliki konfiguracyjne są **łączone**, a nie nadpisywane.
  23. :::
  24. Pliki konfiguracyjne są łączone ze sobą. Ustawienia z lokalizacji o wyższym priorytecie nadpisują ustawienia z lokalizacji o niższym priorytecie tylko w przypadku konfliktów kluczy. Ustawienia niekolidujące ze wszystkich źródeł są zachowywane.
  25. Na przykład, jeśli konfiguracja globalna ustawi `theme: "opencode"` i `autoupdate: true`, a konfiguracja projektu ustawi `model: "anthropic/claude-sonnet-4-5"`, ostateczna konfiguracja będzie zawierać wszystkie trzy ustawienia.
  26. ---
  27. ### Kolejność pierwszeństwa
  28. Źródła konfiguracji są ładowane w następującej kolejności (źródła występujące później mają pierwszeństwo):
  29. 1. **Konfiguracja zdalna** (z `.well-known/opencode`) – ustawienia wymuszane przez organizację
  30. 2. **Konfiguracja globalna** (`~/.config/opencode/opencode.json`) – preferencje użytkownika
  31. 3. **Konfiguracja niestandardowa** (zmienna `OPENCODE_CONFIG`) — jawne nadpisanie
  32. 4. **Konfiguracja projektu** (`opencode.json` w projekcie) - ustawienia specyficzne dla projektu
  33. 5. **Katalogi `.opencode`** - agenci, polecenia, umiejętności
  34. 6. **Konfiguracja wbudowana** (zmienna `OPENCODE_CONFIG_CONTENT`) — nadpisanie środowiska uruchomieniowego
  35. Oznacza to, że konfiguracje projektu mogą nadpisywać konfiguracje globalne, a konfiguracje globalne mogą nadpisywać konfiguracje zdalne.
  36. :::note
  37. W katalogach `.opencode` i `~/.config/opencode` używane są **nazwy w liczbie mnogiej** dla podkatalogów: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` i `themes/`. Nazwy w liczbie pojedynczej (np. `agent/`) są również obsługiwane dla kompatybilności wstecznej.
  38. :::
  39. ---
  40. ### Zdalna
  41. Organizacje mogą publikować konfigurację pod adresem `.well-known/opencode`. Jest ona pobierana automatycznie po uwierzytelnieniu u dostawcy, który ją obsługuje.
  42. Konfiguracja zdalna jest ładowana jako pierwsza i stanowi bazę. Wszystkie inne źródła konfiguracji (globalne, projektowe) mogą ją nadpisywać.
  43. Na przykład, jeśli Twoja organizacja udostępnia serwery MCP, które są domyślnie wyłączone:
  44. ```json title="Remote config from .well-known/opencode"
  45. {
  46. "mcp": {
  47. "jira": {
  48. "type": "remote",
  49. "url": "https://jira.example.com/mcp",
  50. "enabled": false
  51. }
  52. }
  53. }
  54. ```
  55. Możesz włączyć serwer w konfiguracji projektu:
  56. ```json title="opencode.json"
  57. {
  58. "mcp": {
  59. "jira": {
  60. "type": "remote",
  61. "url": "https://jira.example.com/mcp",
  62. "enabled": true
  63. }
  64. }
  65. }
  66. ```
  67. ---
  68. ### Globalna
  69. Umieść swoją globalną konfigurację OpenCode w `~/.config/opencode/opencode.json`. Użyj jej do ustawień ogólnych dla użytkownika, takich jak dostawcy, modele i uprawnienia.
  70. Dla ustawień specyficznych dla TUI, użyj `~/.config/opencode/tui.json`.
  71. Konfiguracja globalna ma pierwszeństwo przed konfiguracją zdalną.
  72. ---
  73. ### Projekt
  74. Dodaj `opencode.json` w katalogu głównym projektu. Konfiguracja projektu ma najwyższy priorytet wśród plików konfiguracyjnych — nadpisuje konfiguracje globalne i zdalne.
  75. Dla ustawień TUI specyficznych dla projektu, dodaj plik `tui.json` obok niego.
  76. :::tip
  77. Umieść konfigurację specyficzną dla projektu w katalogu głównym projektu.
  78. :::
  79. Kiedy OpenCode się uruchamia, szuka pliku konfiguracyjnego w katalogu głównym repozytorium Git.
  80. Może on być przechowywany w Git i mieć ten sam schemat, co konfiguracja globalna.
  81. ---
  82. ### Niestandardowa ścieżka
  83. Możesz załadować niestandardowy plik konfiguracyjny, ustawiając zmienną środowiskową `OPENCODE_CONFIG`.
  84. ```bash
  85. export OPENCODE_CONFIG=/path/to/my/custom-config.json
  86. opencode run "Hello world"
  87. ```
  88. Konfiguracja niestandardowa jest ładowana po konfiguracji globalnej i przed konfiguracją projektu w kolejności priorytetów.
  89. ---
  90. ### Niestandardowy katalog
  91. Możesz ustawić niestandardowy katalog konfiguracyjny za pomocą zmiennej środowiskowej `OPENCODE_CONFIG_DIR`. Katalog ten będzie przeszukiwany pod kątem agentów, poleceń, trybów i wtyczek, tak jak standardowy katalog `.opencode` i powinien zachować tę samą strukturę.
  92. ```bash
  93. export OPENCODE_CONFIG_DIR=/path/to/my/config-directory
  94. opencode run "Hello world"
  95. ```
  96. Katalog niestandardowy jest ładowany po globalnej konfiguracji i katalogach `.opencode`, więc **może być łączony** z ich zawartością.
  97. ---
  98. ## Schemat
  99. Plik konfiguracyjny ma schemat JSON dostępny pod adresem [**`opencode.ai/config.json`**](https://opencode.ai/config.json).
  100. Twój edytor powinien zapewniać walidację i autouzupełnianie na podstawie tego schematu.
  101. ---
  102. ### TUI
  103. Użyj dedykowanego pliku `tui.json` (lub `tui.jsonc`) dla ustawień specyficznych dla TUI.
  104. ```json title="tui.json"
  105. {
  106. "$schema": "https://opencode.ai/tui.json",
  107. "scroll_speed": 3,
  108. "scroll_acceleration": {
  109. "enabled": true
  110. },
  111. "diff_style": "auto"
  112. }
  113. ```
  114. Użyj `OPENCODE_TUI_CONFIG`, aby wskazać niestandardowy plik konfiguracyjny TUI.
  115. Przestarzałe klucze `theme`, `keybinds` i `tui` w `opencode.json` są wycofywane i automatycznie migrowane, gdy to możliwe.
  116. [Dowiedz się więcej o konfiguracji TUI tutaj](/docs/tui#configure).
  117. ---
  118. ### Server (Serwer)
  119. Możesz skonfigurować serwer dla `opencode serve` i `opencode web` za pomocą opcji `server`.
  120. ```json title="opencode.json"
  121. {
  122. "$schema": "https://opencode.ai/config.json",
  123. "server": {
  124. "port": 4096,
  125. "hostname": "0.0.0.0",
  126. "mdns": true,
  127. "mdnsDomain": "myproject.local",
  128. "cors": ["http://localhost:5173"]
  129. }
  130. }
  131. ```
  132. Dostępne opcje:
  133. - `port` - Port do nasłuchiwania.
  134. - `hostname` — Nazwa hosta, z którą należy się powiązać. Gdy `mdns` jest włączone i nie ustawiono innej nazwy hosta, domyślnie jest to `0.0.0.0`.
  135. - `mdns` - Włącz wykrywanie usług mDNS. Dzięki temu inne urządzenia w sieci mogą łatwo znaleźć Twój serwer OpenCode.
  136. - `mdnsDomain` - Niestandardowa nazwa domeny dla usług mDNS. Domyślnie `opencode.local`. Przydatne do uruchamiania wielu instancji w tej samej sieci.
  137. - `cors` - Dozwolone źródła CORS podczas korzystania z serwera HTTP z przeglądarki. Wartość musi być listą źródeł (schemat + host + opcjonalny port), np. `https://app.example.com`.
  138. [Dowiedz się więcej o serwerze](/docs/server).
  139. ---
  140. ### Tools (Narzędzia)
  141. Kontroluj, które narzędzia są dostępne dla LLM, za pomocą opcji `tools`.
  142. ```json title="opencode.json"
  143. {
  144. "$schema": "https://opencode.ai/config.json",
  145. "tools": {
  146. "write": false,
  147. "bash": false
  148. }
  149. }
  150. ```
  151. [Dowiedz się więcej o narzędziach](/docs/tools).
  152. ---
  153. ### Models (Modele)
  154. Możesz skonfigurować dostawców i modele, których chcesz używać, za pomocą opcji `provider`, `model` i `small_model`.
  155. ```json title="opencode.json"
  156. {
  157. "$schema": "https://opencode.ai/config.json",
  158. "provider": {},
  159. "model": "anthropic/claude-sonnet-4-5",
  160. "small_model": "anthropic/claude-haiku-4-5"
  161. }
  162. ```
  163. Opcja `small_model` konfiguruje oddzielny model do lżejszych zadań, takich jak generowanie tytułów. Domyślnie OpenCode wybiera tańszy model od tego samego dostawcy, jeśli jest dostępny, w przeciwnym razie powraca do modelu głównego.
  164. Opcje dostawcy mogą zawierać `timeout` i `setCacheKey`:
  165. ```json title="opencode.json"
  166. {
  167. "$schema": "https://opencode.ai/config.json",
  168. "provider": {
  169. "anthropic": {
  170. "options": {
  171. "timeout": 600000,
  172. "setCacheKey": true
  173. }
  174. }
  175. }
  176. }
  177. ```
  178. - `timeout` - Limit czasu żądania w milisekundach (domyślnie: 300000). Ustaw na `false`, aby wyłączyć.
  179. - `setCacheKey` — Wymuś ustawienie klucza pamięci podręcznej dla dostawcy.
  180. Możesz także skonfigurować [modele lokalne](/docs/models#local). [Dowiedz się więcej o modelach](/docs/models).
  181. ---
  182. #### Opcje specyficzne dla dostawców
  183. Niektórzy dostawcy obsługują dodatkowe opcje konfiguracji poza `timeout` i `apiKey`.
  184. ##### Amazon Bedrock
  185. Amazon Bedrock umożliwia konfigurację połączenia z AWS:
  186. ```json title="opencode.json"
  187. {
  188. "$schema": "https://opencode.ai/config.json",
  189. "provider": {
  190. "amazon-bedrock": {
  191. "options": {
  192. "region": "us-east-1",
  193. "profile": "my-aws-profile",
  194. "endpoint": "https://bedrock-runtime.us-east-1.vpce-xxxxx.amazonaws.com"
  195. }
  196. }
  197. }
  198. }
  199. ```
  200. - `region` — Region AWS dla Bedrock (domyślnie `AWS_REGION` env var lub `us-east-1`)
  201. - `profile` - Nazwa profilu AWS z `~/.aws/credentials` (domyślnie `AWS_PROFILE` env var)
  202. - `endpoint` — Niestandardowy adres URL punktu końcowego (np. dla punktów końcowych VPC). Jest to alias dla opcji ogólnej `baseURL` przy użyciu terminologii AWS. Jeśli podano oba, pierwszeństwo ma `endpoint`.
  203. :::note
  204. 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).
  205. :::
  206. [Dowiedz się więcej o Amazon Bedrock](/docs/providers#amazon-bedrock).
  207. ---
  208. ### Theme (Motyw)
  209. Ustaw motyw interfejsu użytkownika w `tui.json`.
  210. ```json title="tui.json"
  211. {
  212. "$schema": "https://opencode.ai/tui.json",
  213. "theme": "tokyonight"
  214. }
  215. ```
  216. [Dowiedz się więcej tutaj](/docs/themes).
  217. ---
  218. ### Agents (Agenci)
  219. Możesz zdefiniować i skonfigurować agentów za pomocą opcji `agent`.
  220. ```jsonc title="opencode.jsonc"
  221. {
  222. "$schema": "https://opencode.ai/config.json",
  223. "agent": {
  224. "code-reviewer": {
  225. "description": "Reviews code for best practices and potential issues",
  226. "model": "anthropic/claude-sonnet-4-5",
  227. "prompt": "You are a code reviewer. Focus on security, performance, and maintainability.",
  228. "tools": {
  229. // Disable file modification tools for review-only agent
  230. "write": false,
  231. "edit": false,
  232. },
  233. },
  234. },
  235. }
  236. ```
  237. Możesz także definiować agentów przy użyciu plików markdown w `~/.config/opencode/agents/` lub `.opencode/agents/`. [Dowiedz się więcej o agentach](/docs/agents).
  238. ---
  239. ### Default Agent (Domyślny agent)
  240. Domyślnego agenta można ustawić za pomocą opcji `default_agent`. Określa to agenta, który jest używany, jeśli nie wybrano żadnego innego.
  241. ```json title="opencode.json"
  242. {
  243. "$schema": "https://opencode.ai/config.json",
  244. "default_agent": "plan"
  245. }
  246. ```
  247. Agent domyślny musi być agentem typu `primary` (nie `subagent`). Może to być agent wbudowany, taki jak `"build"` lub `"plan"`, albo zdefiniowany przez Ciebie [agent niestandardowy](/docs/agents). Jeśli agent nie istnieje lub jest subagentem, OpenCode powróci do `"build"` z ostrzeżeniem.
  248. Dotyczy to wszystkich interfejsów: TUI, CLI (`opencode run`), aplikacji desktopowej i GitHub Actions.
  249. ---
  250. ### Share (Udostępnianie)
  251. Możesz skonfigurować [udostępnianie](/docs/share) za pomocą opcji `share`.
  252. ```json title="opencode.json"
  253. {
  254. "$schema": "https://opencode.ai/config.json",
  255. "share": "manual"
  256. }
  257. ```
  258. Opcje:
  259. - `"manual"` – Zezwalaj na ręczne udostępnianie (domyślnie)
  260. - `"auto"` - Automatycznie udostępniaj nowe rozmowy
  261. - `"disabled"` - Całkowicie wyłącz udostępnianie
  262. Domyślnie ustawiony jest tryb ręczny, w którym należy jawnie udostępniać rozmowy za pomocą polecenia `/share`.
  263. ---
  264. ### Commands (Polecenia)
  265. Możesz zdefiniować niestandardowe polecenia dla powtarzalnych zadań za pomocą opcji `command`.
  266. ```jsonc title="opencode.jsonc"
  267. {
  268. "$schema": "https://opencode.ai/config.json",
  269. "command": {
  270. "test": {
  271. "template": "Run the full test suite with coverage report and show any failures.\nFocus on the failing tests and suggest fixes.",
  272. "description": "Run tests with coverage",
  273. "agent": "build",
  274. "model": "anthropic/claude-haiku-4-5",
  275. },
  276. "component": {
  277. "template": "Create a new React component named $ARGUMENTS with TypeScript support.\nInclude proper typing and basic structure.",
  278. "description": "Create a new component",
  279. },
  280. },
  281. }
  282. ```
  283. Możesz także definiować polecenia przy użyciu plików Markdown w `~/.config/opencode/commands/` lub `.opencode/commands/`. [Dowiedz się więcej o poleceniach](/docs/commands).
  284. ---
  285. ### Keybinds (Skróty klawiszowe)
  286. Dostosuj skróty klawiszowe w `tui.json`.
  287. ```json title="tui.json"
  288. {
  289. "$schema": "https://opencode.ai/tui.json",
  290. "keybinds": {}
  291. }
  292. ```
  293. [Dowiedz się więcej tutaj](/docs/keybinds).
  294. ---
  295. ### Autoupdate (Automatyczna aktualizacja)
  296. OpenCode może automatycznie pobierać nowe wersje. Możesz to kontrolować za pomocą opcji `autoupdate`.
  297. ```json title="opencode.json"
  298. {
  299. "$schema": "https://opencode.ai/config.json",
  300. "autoupdate": false
  301. }
  302. ```
  303. Jeśli nie chcesz automatycznych aktualizacji, ale chcesz być powiadamiany o nowych wersjach, ustaw `autoupdate` na `"notify"`.
  304. Działa to tylko wtedy, gdy OpenCode nie został zainstalowany przez menedżera pakietów, takiego jak Homebrew.
  305. ---
  306. ### Formatters (Formatery)
  307. Możesz skonfigurować formatery kodu za pomocą opcji `formatter`.
  308. ```json title="opencode.json"
  309. {
  310. "$schema": "https://opencode.ai/config.json",
  311. "formatter": {
  312. "prettier": {
  313. "disabled": true
  314. },
  315. "custom-prettier": {
  316. "command": ["npx", "prettier", "--write", "$FILE"],
  317. "environment": {
  318. "NODE_ENV": "development"
  319. },
  320. "extensions": [".js", ".ts", ".jsx", ".tsx"]
  321. }
  322. }
  323. }
  324. ```
  325. [Dowiedz się więcej o formaterach](/docs/formatters).
  326. ---
  327. ### Permissions (Uprawnienia)
  328. Domyślnie OpenCode **zezwala na wszystkie działania** bez konieczności zatwierdzania. Możesz to zmienić za pomocą opcji `permission`.
  329. Na przykład, aby wymagać zatwierdzenia dla narzędzi `edit` i `bash`:
  330. ```json title="opencode.json"
  331. {
  332. "$schema": "https://opencode.ai/config.json",
  333. "permission": {
  334. "edit": "ask",
  335. "bash": "ask"
  336. }
  337. }
  338. ```
  339. [Dowiedz się więcej o uprawnieniach](/docs/permissions).
  340. ---
  341. ### Compaction (Kompaktowanie)
  342. Możesz kontrolować zachowanie kompaktowania kontekstu za pomocą opcji `compaction`.
  343. ```json title="opencode.json"
  344. {
  345. "$schema": "https://opencode.ai/config.json",
  346. "compaction": {
  347. "auto": true,
  348. "prune": true
  349. }
  350. }
  351. ```
  352. - `auto` - Automatycznie kompaktuj, gdy kontekst jest pełny (domyślnie: `true`).
  353. - `prune` - Usuń stare wyniki narzędzi, aby zaoszczędzić tokeny (domyślnie: `true`).
  354. ---
  355. ### Watcher (Obserwator)
  356. Skonfiguruj ignorowane wzorce plików dla obserwatora plików za pomocą `watcher`.
  357. ```json title="opencode.json"
  358. {
  359. "$schema": "https://opencode.ai/config.json",
  360. "watcher": {
  361. "ignore": ["node_modules/**", "dist/**", ".git/**"]
  362. }
  363. }
  364. ```
  365. Wzorce są zgodne ze składnią glob. Użyj tej opcji, aby wykluczyć często zmieniające się lub duże katalogi z monitorowania.
  366. ---
  367. ### MCP Servers (Serwery MCP)
  368. Skonfiguruj serwery MCP, których chcesz używać, za pomocą opcji `mcp`.
  369. ```json title="opencode.json"
  370. {
  371. "$schema": "https://opencode.ai/config.json",
  372. "mcp": {}
  373. }
  374. ```
  375. [Dowiedz się więcej o serwerach MCP](/docs/mcp-servers).
  376. ---
  377. ### Plugins (Wtyczki)
  378. [Wtyczki](/docs/plugins) rozszerzają OpenCode o niestandardowe narzędzia, hooki i integracje.
  379. Umieść pliki wtyczek w `.opencode/plugins/` lub `~/.config/opencode/plugins/`. Możesz także załadować wtyczkę z npm za pomocą opcji `plugin`.
  380. ```json title="opencode.json"
  381. {
  382. "$schema": "https://opencode.ai/config.json",
  383. "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"]
  384. }
  385. ```
  386. [Dowiedz się więcej o wtyczkach](/docs/plugins).
  387. ---
  388. ### Instructions (Instrukcje)
  389. Określ pliki instrukcji dla modelu, używając opcji `instructions`.
  390. ```json title="opencode.json"
  391. {
  392. "$schema": "https://opencode.ai/config.json",
  393. "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"]
  394. }
  395. ```
  396. Załadowane pliki są dołączane do promptu systemowego. Obsługuje wzorce glob. [Dowiedz się więcej o zasadach](/docs/rules).
  397. ---
  398. ### Disabled Providers (Wyłączeni dostawcy)
  399. Zapobiegaj automatycznemu ładowaniu dostawców za pomocą opcji `disabled_providers`. Jest to przydatne, gdy chcesz wyłączyć niektórych dostawców, nawet jeśli masz dla nich dane uwierzytelniające.
  400. ```json title="opencode.json"
  401. {
  402. "$schema": "https://opencode.ai/config.json",
  403. "disabled_providers": ["openai", "gemini"]
  404. }
  405. ```
  406. :::note
  407. `disabled_providers` ma pierwszeństwo przed `enabled_providers`.
  408. :::
  409. Opcja `disabled_providers` przyjmuje tablicę identyfikatorów dostawców. Gdy dostawca jest wyłączony:
  410. - Nie zostanie załadowany podczas startu.
  411. - Nie zostanie załadowany, nawet jeśli podasz klucz API za pomocą `/connect`.
  412. - Modele tego dostawcy nie pojawią się na liście wyboru modeli.
  413. ---
  414. ### Enabled Providers (Włączeni dostawcy)
  415. Możesz określić listę dozwolonych dostawców za pomocą `enabled_providers`. Po ustawieniu, tylko wymienieni dostawcy będą ładowani.
  416. ```json title="opencode.json"
  417. {
  418. "$schema": "https://opencode.ai/config.json",
  419. "enabled_providers": ["anthropic", "openai"]
  420. }
  421. ```
  422. Jest to przydatne, gdy chcesz ograniczyć użycie OpenCode tylko do określonych dostawców.
  423. :::note
  424. `disabled_providers` ma pierwszeństwo przed `enabled_providers`.
  425. :::
  426. Jeśli dostawca jest wymieniony zarówno w `enabled_providers`, jak i `disabled_providers`, `disabled_providers` wygrywa.
  427. ---
  428. ### Experimental (Eksperymentalne)
  429. Klucz `experimental` zawiera opcje, które są we wczesnej fazie rozwoju.
  430. ```json title="opencode.json"
  431. {
  432. "$schema": "https://opencode.ai/config.json",
  433. "experimental": {}
  434. }
  435. ```
  436. :::caution
  437. Opcje eksperymentalne nie są stabilne. Mogą ulec zmianie lub zostać usunięte bez ostrzeżenia.
  438. :::
  439. ---
  440. ## Zmienne
  441. Możesz używać specjalnej składni w plikach konfiguracyjnych, aby odwoływać się do zmiennych środowiskowych i zawartości plików.
  442. ---
  443. ### Env vars (Zmienne środowiskowe)
  444. Użyj `{env:VARIABLE_NAME}`, aby wstawić wartość zmiennej środowiskowej:
  445. ```json title="opencode.json"
  446. {
  447. "$schema": "https://opencode.ai/config.json",
  448. "model": "{env:OPENCODE_MODEL}",
  449. "provider": {
  450. "anthropic": {
  451. "models": {},
  452. "options": {
  453. "apiKey": "{env:ANTHROPIC_API_KEY}"
  454. }
  455. }
  456. }
  457. }
  458. ```
  459. Jeśli zmienna środowiskowa nie jest ustawiona, zostanie zastąpiona pustym ciągiem.
  460. ---
  461. ### Files (Pliki)
  462. Użyj `{file:path/to/file}`, aby wstawić zawartość pliku:
  463. ```json title="opencode.json"
  464. {
  465. "$schema": "https://opencode.ai/config.json",
  466. "instructions": ["./custom-instructions.md"],
  467. "provider": {
  468. "openai": {
  469. "options": {
  470. "apiKey": "{file:~/.secrets/openai-key}"
  471. }
  472. }
  473. }
  474. }
  475. ```
  476. Ścieżki plików mogą być:
  477. - Względne do pliku konfiguracyjnego
  478. - Lub absolutne, zaczynające się od `/` lub `~`
  479. Zalecamy używanie tego do:
  480. - Przechowywania wrażliwych danych, takich jak klucze API, w oddzielnych plikach.
  481. - Ładowania dużych promptów bez zaśmiecania konfiguracji.
  482. - Dzielenia fragmentów konfiguracji między wieloma plikami.