diff options
Diffstat (limited to 'packages/web/src/content/docs/bs/config.mdx')
| -rw-r--r-- | packages/web/src/content/docs/bs/config.mdx | 657 |
1 files changed, 657 insertions, 0 deletions
diff --git a/packages/web/src/content/docs/bs/config.mdx b/packages/web/src/content/docs/bs/config.mdx new file mode 100644 index 000000000..e3d289b23 --- /dev/null +++ b/packages/web/src/content/docs/bs/config.mdx @@ -0,0 +1,657 @@ +--- +title: Config +description: Korištenje OpenCode JSON konfiguracije. +--- + +Možete konfigurirati OpenCode koristeći JSON konfiguracijski fajl. + +--- + +## Format + +OpenCode podržava i **JSON** i **JSONC** (JSON sa komentarima) formate. + +```jsonc title="opencode.jsonc" +{ +"$schema": "https://opencode.ai/config.json", + // Konfiguracija teme + "tema": "otvoreni kod", + "model": "antropski/claude-sonnet-4-5", + "automatsko ažuriranje": istina,} +``` + +--- + +## Lokacije + +Možete postaviti svoju konfiguraciju na nekoliko različitih lokacija i one imaju a +drugačiji redosled prioriteta. +:::napomena +Konfiguracijski fajlovi su **spojeni zajedno**, a ne zamijenjeni. +::: +Konfiguracijski fajlovi se spajaju, ne zamjenjuju. Kombiniraju se postavke sa sljedećih konfiguracijskih lokacija. Kasnije konfiguracije poništavaju prethodne samo za konfliktne ključeve. Nekonfliktne postavke iz svih konfiguracija su sačuvane. +Na primjer, ako vaša globalna konfiguracija postavlja `theme: "opencode"` i `autoupdate: true`, a vaša projektna konfiguracija postavlja `model: "anthropic/claude-sonnet-4-5"`, konačna konfiguracija će uključivati sve tri postavke. + +--- + +### Redoslijed prioriteta + +Izvori konfiguracije se učitavaju ovim redoslijedom (kasniji izvori poništavaju ranije): + +1. **Udaljena konfiguracija** (od `.well-known/opencode`) - organizacione postavke +2. **Globalna konfiguracija** (`~/.config/opencode/opencode.json`) - korisničke postavke +3. **Prilagođena konfiguracija** (`OPENCODE_CONFIG` env var) - prilagođena zaobilaženja +4. **Konfiguracija projekta** (`opencode.json` u projektu) - postavke specifične za projekat +5. **`.opencode` direktoriji** - agenti, komande, dodaci +6. **Inline config** (`OPENCODE_CONFIG_CONTENT` env var) - runtime nadjačava + To znači da konfiguracije projekta mogu nadjačati globalne zadane postavke, a globalne konfiguracije mogu nadjačati postavke udaljene organizacije. + :::napomena + Direktoriji `.opencode` i `~/.config/opencode` koriste **imena u množini** za poddirektorije: `agents/`, `commands/`, `modes/`, `plugins/`, `skills/`, `tools/` i `themes/`. Pojedinačna imena (npr. `agent/`) su također podržana za kompatibilnost unatrag. + ::: + +--- + +### Daljinski + +Organizacije mogu pružiti zadanu konfiguraciju preko `.well-known/opencode` krajnje točke. Ovo se automatski preuzima kada se autentifikujete kod provajdera koji to podržava. +Prvo se učitava udaljena konfiguracija koja služi kao osnovni sloj. Svi ostali izvori konfiguracije (globalni, projektni) mogu nadjačati ove zadane postavke. +Na primjer, ako vaša organizacija nudi MCP servere koji su po defaultu onemogućeni: + +```json title="Remote config from .well-known/opencode" +{ + "mcp": { + "jira": { + "type": "remote", + "url": "https://jira.example.com/mcp", + "enabled": false + } + } +} +``` + +Možete omogućiti određene servere u vašoj lokalnoj konfiguraciji: + +```json title="opencode.json" +{ +"mcp": { + "jira": { + "tip": "daljinski", + "url": "https://jira.example.com/mcp", + "omogućeno": istina } + } +} +``` + +--- + +### Global + +Postavite svoju globalnu OpenCode konfiguraciju u `~/.config/opencode/opencode.json`. Koristite globalnu konfiguraciju za korisničke preferencije kao što su teme, provajderi ili veze tipki. +Globalna konfiguracija poništava zadane postavke udaljene organizacije. + +--- + +### Nakon projekta + +Dodajte `opencode.json` u korijen projekta. Konfiguracija projekta ima najveći prioritet među standardnim konfiguracijskim datotekama - ona nadjačava globalne i udaljene konfiguracije. +::: tip +Postavite specifičnu konfiguraciju projekta u korijen vašeg projekta. +::: +Kada se OpenCode pokrene, traži konfiguracijsku datoteku u trenutnom direktoriju ili prelazi do najbližeg Git direktorija. +Ovo je također sigurno provjeriti u Git i koristi istu shemu kao globalna. + +--- + +### Custom track + +Navedite prilagođenu putanju konfiguracijske datoteke koristeći varijablu okruženja `OPENCODE_CONFIG`. + +```bash +export OPENCODE_CONFIG=/path/to/my/custom-config.json +opencode run "Hello world" +``` + +Prilagođena konfiguracija se učitava između globalne i projektne konfiguracije po redoslijedu prioriteta. + +--- + +### Prilagođeni imenik + +Navedite prilagođeni konfiguracijski direktorij koristeći `OPENCODE_CONFIG_DIR` +varijabla okruženja. U ovom direktoriju će se tražiti agenti, komande, +modove i dodatke baš kao standardni `.opencode` direktorij, i trebali bi +prate istu strukturu. + +```bash +export OPENCODE_CONFIG_DIR=/path/to/my/config-directory +opencode run "Hello world" + +``` + +Prilagođeni direktorij se učitava nakon direktorija globalne konfiguracije i `.opencode`, tako da **može nadjačati** njihove postavke. + +--- + +## Shema + +Konfiguracijski fajl ima šemu koja je definirana u [**`opencode.ai/config.json`**](https://opencode.ai/config.json). +Vaš uređivač bi trebao biti u mogućnosti da potvrdi i autodovršava na osnovu šeme. + +--- + +### TUI + +Možete konfigurirati postavke specifične za TUI putem opcije `tui`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "tui": { + "scroll_speed": 3, + "scroll_acceleration": { + "enabled": true + }, + "diff_style": "auto" + } +} +``` + +Dostupne opcije: + +- `scroll_acceleration.enabled` - Omogući ubrzanje skrolovanja u macOS stilu. **Ima prednost nad `scroll_speed`.** +- `scroll_speed` - Prilagođeni množitelj brzine pomicanja (podrazumevano: `3`, minimalno: `1`). Zanemareno ako je `scroll_acceleration.enabled` `true`. +- `diff_style` - Kontrola prikaza razlike. `"auto"` se prilagođava širini terminala, `"stacked"` uvijek prikazuje jednu kolonu. + [Ovdje saznajte više o korištenju TUI](/docs/tui). + +--- + +### Server + +Možete konfigurirati postavke servera za komande `opencode serve` i `opencode web` putem opcije `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"] + } +} +``` + +Dostupne opcije: + +- `port` - Port za slušanje. +- `hostname` - Ime hosta za slušanje. Kada je `mdns` omogućen i nije postavljeno ime hosta, podrazumevano je `0.0.0.0`. +- `mdns` - Omogući otkrivanje mDNS usluge. Ovo omogućava drugim uređajima na mreži da otkriju vaš OpenCode server. +- `mdnsDomain` - Prilagođeno ime domene za mDNS uslugu. Zadano je `opencode.local`. Korisno za pokretanje više instanci na istoj mreži. +- `cors` - Dodatni izvori koji omogućavaju CORS kada koristite HTTP server iz klijenta baziranog na pretraživaču. Vrijednosti moraju biti punog porijekla (šema + host + opcijski port), npr. `https://app.example.com`. + [Saznajte više o serveru](/docs/server) ovdje. + +--- + +### Uvijek + +Možete upravljati alatima koje LLM može koristiti putem opcije `tools`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "tools": { + "write": false, + "bash": false + } +} +``` + +[Saznajte više o alatima](/docs/tools) ovdje. + +--- + +### Model + +Možete konfigurirati dobavljače i modele koje želite koristiti u svojoj OpenCode konfiguraciji kroz opcije `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" +} +``` + +Opcija `small_model` konfigurira poseban model za lagane zadatke poput generiranja naslova. Podrazumevano, OpenCode pokušava da koristi jeftiniji model ako je dostupan od vašeg provajdera, inače se vraća na vaš glavni model. +Opcije provajdera mogu uključivati `timeout` i `setCacheKey`: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "provider": { + "anthropic": { + "options": { + "timeout": 600000, + "setCacheKey": true + } + } + } +} +``` + +- `timeout` - Vrijeme čekanja zahtjeva u milisekundama (podrazumevano: 300000). Postavite na `false` da onemogućite. +- `setCacheKey` - Osigurajte da je ključ keš memorije uvijek postavljen za određenog provajdera. + Također možete konfigurirati [lokalni modeli](/docs/models#local). [Saznajte više](/docs/models). + +--- + +#### Opcije specifične za provajdere + +Neki provajderi podržavaju dodatne opcije konfiguracije osim generičkih postavki `timeout` i `apiKey`. + +##### Amazon Bedrock + +Amazon Bedrock podržava konfiguraciju specifičnu za 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` - AWS regija za Bedrock (zadano na `AWS_REGION` env var ili `us-east-1`) +- `profile` - AWS imenovan profil od `~/.aws/credentials` (podrazumevano na `AWS_PROFILE` env var) +- `endpoint` - URL prilagođene krajnje tačke za VPC krajnje tačke. Ovo je pseudonim za generičku opciju `baseURL` koristeći terminologiju specifičnu za AWS. Ako su oba navedena, `endpoint` ima prednost. + :::napomena + Tokeni nosioca (`AWS_BEARER_TOKEN_BEDROCK` ili `/connect`) imaju prednost nad autentifikacijom zasnovanom na profilu. Pogledajte [prednost autentifikacije](/docs/providers#authentication-precedence) za detalje. + ::: + [Saznajte više o konfiguraciji Amazon Bedrock](/docs/providers#amazon-bedrock). + +--- + +### Domaći + +Možete konfigurirati temu koju želite koristiti u svojoj OpenCode konfiguraciji putem opcije `theme`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "theme": "" +} +``` + +[Saznajte više ovdje](/docs/themes). + +--- + +### Agenti + +Možete konfigurirati specijalizirane agente za određene zadatke putem opcije `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, + }, + }, + }, +} +``` + +Također možete definirati agente koristeći mardown datoteke u `~/.config/opencode/agents/` ili `.opencode/agents/`. [Saznajte više ovdje](/docs/agents). + +--- + +### Zadani agent + +Možete postaviti zadanog agenta koristeći opciju `default_agent`. Ovo određuje koji se agent koristi kada nijedan nije eksplicitno specificiran. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "default_agent": "plan" +} +``` + +Zadani agent mora biti primarni agent (ne podagent). Ovo može biti ugrađeni agent kao što je `"build"` ili `"plan"`, ili [prilagođeni agent](/docs/agents) koji ste definirali. Ako navedeni agent ne postoji ili je subagent, OpenCode će se vratiti na `"build"` s upozorenjem. +Ova postavka se primjenjuje na sva sučelja: TUI, CLI (`opencode run`), desktop aplikaciju i GitHub Action. + +--- + +### Dijeljenje + +Možete konfigurirati funkciju [share](/docs/share) putem opcije `share`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "share": "manual" +} +``` + +Ovo traje: + +- `"manual"` - Dozvoli ručno dijeljenje putem komandi (podrazumevano) +- `"auto"` - Automatski dijelite nove razgovore +- `"disabled"` - Onemogući dijeljenje u potpunosti + Podrazumevano, dijeljenje je postavljeno na ručni način rada gdje trebate eksplicitno dijeliti razgovore pomoću naredbe `/share`. + +--- + +### komandante + +Možete konfigurirati prilagođene komande za ponavljanje zadataka putem opcije `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", + }, + }, +} +``` + +Također možete definirati komande koristeći mardown fajlove u `~/.config/opencode/commands/` ili `.opencode/commands/`. [Saznajte više ovdje](/docs/commands). + +--- + +### Keybinds + +Možete prilagoditi svoje veze ključeva putem opcije `keybinds`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "keybinds": {} +} +``` + +[Saznajte više ovdje](/docs/keybinds). + +--- + +### Automatsko ažuriranje + +OpenCode će automatski preuzeti sva nova ažuriranja kada se pokrene. Ovo možete onemogućiti opcijom `autoupdate`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "autoupdate": false +} +``` + +Ako ne želite ažuriranja, ali želite biti obaviješteni kada nova verzija bude dostupna, postavite `autoupdate` na `"notify"`. +Imajte na umu da ovo funkcionira samo ako nije instalirano pomoću upravitelja paketa kao što je Homebrew. + +--- + +### Trenerke + +Možete konfigurirati formatere koda putem opcije `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"] + } + } +} +``` + +[Saznajte više o formatterima](/docs/formatters) ovdje. + +--- + +### Dozvole + +Prema zadanim postavkama, opencode **dopušta sve operacije** bez potrebe za eksplicitnim dopuštenjem. Ovo možete promijeniti koristeći opciju `permission`. +Na primjer, da osigurate da alati `edit` i `bash` zahtijevaju odobrenje korisnika: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "permission": { + "edit": "ask", + "bash": "ask" + } +} +``` + +[Ovdje saznajte više o ](/docs/permissions) dozvolama. + +--- + +### Compaction + +Možete kontrolirati ponašanje sažimanja konteksta putem opcije `compaction`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "compaction": { + "auto": true, + "prune": true + } +} +``` + +- `auto` - Automatski sažimanje sesije kada je kontekst pun (podrazumevano: `true`). +- `prune` - Uklonite stare izlaze alata da sačuvate tokene (podrazumevano: `true`). + +--- + +### Watcher + +Možete konfigurirati obrasce ignoriranja promatrača datoteka putem opcije `watcher`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "watcher": { + "ignore": ["node_modules/**", "dist/**", ".git/**"] + } +} +``` + +Obrasci prate glob sintaksu. Koristite ovo da isključite bučne direktorije iz pregleda datoteka. + +--- + +### MCP serveri + +Možete konfigurirati MCP servere koje želite koristiti putem opcije `mcp`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "mcp": {} +} +``` + +[Saznajte više ovdje](/docs/mcp-servers). + +--- + +### Extras + +[Plugins](/docs/plugins) proširuju OpenCode sa prilagođenim alatima, kukicama i integracijama. +Postavite datoteke dodataka u `.opencode/plugins/` ili `~/.config/opencode/plugins/`. Također možete učitati dodatke iz npm-a preko opcije `plugin`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "plugin": ["opencode-helicone-session", "@my-org/custom-plugin"] +} +``` + +[Saznajte više ovdje](/docs/plugins). + +--- + +### Uputstva + +Možete konfigurirati upute za model koji koristite putem opcije `instructions`. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["CONTRIBUTING.md", "docs/guidelines.md", ".cursor/rules/*.md"] +} +``` + +Ovo uzima niz putanja i uzoraka globusa do datoteka instrukcija. [Saznajte više +o pravilima ovdje](/docs/rules). + +--- + +### Onemogućeni provajderi + +Možete onemogućiti dobavljače koji se automatski učitavaju preko opcije `disabled_providers`. Ovo je korisno kada želite spriječiti učitavanje određenih provajdera čak i ako su njihovi vjerodajnici dostupni. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "disabled_providers": ["openai", "gemini"] +} +``` + +:::napomena +`disabled_providers` ima prioritet nad `enabled_providers`. +::: +Opcija `disabled_providers` prihvata niz ID-ova provajdera. Kada je provajder onemogućen: + +- Neće se učitati čak i ako su varijable okruženja postavljene. +- Neće se učitati čak i ako su API ključevi konfigurirani putem `/connect` komande. +- Modeli dobavljača se neće pojaviti na listi za odabir modela. + +--- + +### Omogućeni provajderi + +Možete odrediti listu dozvoljenih dobavljača putem opcije `enabled_providers`. Kada se podesi, samo navedeni provajderi će biti omogućeni, a svi ostali će biti zanemareni. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "enabled_providers": ["anthropic", "openai"] +} +``` + +Ovo je korisno kada želite da ograničite OpenCode da koristi samo određene provajdere umesto da ih onemogućavate jednog po jednog. +:::napomena +`disabled_providers` ima prioritet nad `enabled_providers`. +::: +Ako se provajder pojavljuje i u `enabled_providers` i `disabled_providers`, `disabled_providers` ima prioritet za kompatibilnost unatrag. + +--- + +### Eksperimentalno + +Ključ `experimental` sadrži opcije koje su u aktivnom razvoju. + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "experimental": {} +} +``` + +:::oprez +Eksperimentalne opcije nisu stabilne. Mogu se promijeniti ili ukloniti bez prethodne najave. +::: + +--- + +## Varijable + +Možete koristiti zamjenu varijabli u vašim konfiguracijskim datotekama da biste referencirali varijable okruženja i sadržaj datoteke. + +--- + +### Env vars + +Koristite `{env:VARIABLE_NAME}` za zamjenu varijabli okruženja: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "model": "{env:OPENCODE_MODEL}", + "provider": { + "anthropic": { + "models": {}, + "options": { + "apiKey": "{env:ANTHROPIC_API_KEY}" + } + } + } +} +``` + +Ako varijabla okruženja nije postavljena, bit će zamijenjena praznim nizom. + +--- + +### Fajlovi + +Koristite `{file:path/to/file}` da zamijenite sadržaj fajla: + +```json title="opencode.json" +{ + "$schema": "https://opencode.ai/config.json", + "instructions": ["./custom-instructions.md"], + "provider": { + "openai": { + "options": { + "apiKey": "{file:~/.secrets/openai-key}" + } + } + } +} +``` + +Putanja fajla mogu biti: + +- U odnosu na direktorij konfiguracijskih datoteka +- Ili apsolutne staze koje počinju sa `/` ili `~` + Ovo je korisno za: +- Pohranjivanje osjetljivih podataka poput API ključeva u odvojenim datotekama. +- Uključujući velike datoteke instrukcija bez zatrpavanja vaše konfiguracije. +- Dijeljenje zajedničkih isječaka konfiguracije u više konfiguracijskih datoteka. |
