summaryrefslogtreecommitdiffhomepage
path: root/packages/web/src/content/docs/bs/index.mdx
blob: 9cb9a5c152925bcec2daaafb7e3790b8131264af (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
---
title: Intro
description: Započnite s OpenCode.
---

import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console

[**OpenCode**](/) je agent za AI kodiranje otvorenog koda. Dostupan je kao interfejs baziran na terminalu, desktop aplikacija ili IDE ekstenzija.
![OpenCode TUI sa temom otvorenog koda](../../../assets/lander/screenshot.png)
Hajde da počnemo.

---

#### Preduvjeti

Da biste koristili OpenCode u svom terminalu, trebat će vam:

1. Moderan emulator terminala kao što su:
   - [WezTerm](https://wezterm.org), multi-platforma
   - [Alacritty](https://alacritty.org), više platforma
   - [Ghostty](https://ghostty.org), Linux i macOS
   - [Kitty](https://sw.kovidgoyal.net/kitty/), Linux i macOS
2. API ključevi za LLM provajdere koje želite koristiti.

---

## Instaliraj

Najlakši način za instaliranje OpenCode je putem instalacione skripte.

```bash
curl -fsSL https://opencode.ai/install | bash
```

Također ga možete instalirati pomoću sljedećih naredbi:

- **Korišćenje 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>

- **Korišćenje Homebrew-a na macOS-u i Linux-u**

```bash
  brew install anomalyco/tap/opencode
```

> Preporučujemo korištenje OpenCode tap za najnovija izdanja. Službenu formulu `brew install opencode` održava Homebrew tim i ažurira se rjeđe.

- **Korišćenje Parua na Arch Linuxu**

```bash
  paru -S opencode-bin
```

#### Windows

:::tip[Preporučeno: Koristite WSL]
Za najbolje iskustvo na Windows-u preporučujemo korištenje [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Pruža bolje performanse i potpunu kompatibilnost sa OpenCode karakteristikama.
:::

- **Upotreba čokolade**

```bash
  choco install opencode
```

- **Upotreba Scoop-a**

```bash
  scoop install opencode
```

- **Korištenje NPM-a**

```bash
  npm install -g opencode-ai
```

- **Korišćenje Mise**

```bash
  mise use -g github:anomalyco/opencode
```

- **Korišćenje Dockera**

```bash
  docker run -it --rm ghcr.io/anomalyco/opencode
```

Podrška za instaliranje OpenCode na Windows koristeći Bun je trenutno u toku.
Također možete preuzeti binarnu datoteku iz [Releases](https://github.com/anomalyco/opencode/releases).

---

## Konfiguriši

Uz OpenCode možete koristiti bilo kojeg LLM provajdera tako što ćete konfigurirati njihove API ključeve.
Ako ste tek počeli koristiti LLM provajdere, preporučujemo korištenje [OpenCode Zen](/docs/zen).
To je kurirana lista modela koji su testirani i verifikovani od strane OpenCode
tim.

1. Pokrenite naredbu `/connect` u TUI-u, odaberite opencode i idite na [opencode.ai/auth](https://opencode.ai/auth).

```txt
   /connect
```

2. Prijavite se, dodajte svoje detalje naplate i kopirajte svoj API ključ.
3. Zalijepite svoj API ključ.

```txt
   ┌ API key
   │
   │
   └ enter
```

Alternativno, možete odabrati jednog od drugih provajdera. [Saznajte više](/docs/providers#directory).

---

## Inicijaliziraj

Sada kada ste konfigurisali provajdera, možete se kretati do projekta koji
na čemu želite da radite.

```bash
cd /path/to/project
```

I pokrenite OpenCode.

```bash
opencode
```

Zatim inicijalizirajte OpenCode za projekat pokretanjem sljedeće naredbe.

```bash frame="none"
/init
```

Ovo će omogućiti OpenCode da analizira vaš projekat i kreira `AGENTS.md` fajl u njemu
korijen projekta.
:::tip
Trebali biste urezati datoteku `AGENTS.md` vašeg projekta u Git.
:::
Ovo pomaže OpenCode da razumije strukturu projekta i obrasce kodiranja
korišteno.

---

## Upotreba

Sada ste spremni da koristite OpenCode za rad na svom projektu. Slobodno pitajte
bilo šta!
Ako ste novi u korištenju agenta za AI kodiranje, evo nekoliko primjera koji bi mogli
pomoć.

---

### Postavljajte pitanja

Možete zamoliti OpenCode da vam objasni kodnu bazu.
:::tip
Koristite tipku `@` za nejasnu pretragu datoteka u projektu.
:::

```txt frame="none" "@packages/functions/src/api/index.ts"
How is authentication handled in @packages/functions/src/api/index.ts
```

Ovo je korisno ako postoji dio kodne baze na kojem niste radili.

---

### Dodajte karakteristike

Možete zamoliti OpenCode da vašem projektu doda nove funkcije. Iako preporučujemo da ga prvo zamolite da napravi plan.

1. **Kreirajte plan**
   OpenCode ima _Plan mod_ koji onemogućuje njegovu sposobnost da pravi promjene i
   umjesto toga predložite _kako_ će implementirati ovu funkciju.
   Prebacite se na njega pomoću tipke **Tab**. Vidjet ćete indikator za ovo u donjem desnom uglu.

```bash frame="none" title="Switch to Plan mode"
   <TAB>
```

Hajde sada da opišemo šta želimo da uradi.

```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.
```

Želite da date OpenCode dovoljno detalja da razumete šta želite. Pomaže
da razgovarate s njim kao da razgovarate sa mlađim programerom u svom timu.
:::tip
Dajte OpenCode dosta konteksta i primjera koji će mu pomoći da razumije šta vi
želim.
:::

2. **Ponovite plan**
   Kada vam da plan, možete mu dati povratne informacije ili dodati više detalja.

```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
Prevucite i ispustite slike u terminal da biste ih dodali u prompt.
:::
OpenCode može skenirati sve slike koje mu date i dodati ih u prompt. Možeš
učinite to povlačenjem i ispuštanjem slike u terminal.

3. **Izgradite funkciju**
   Kada se osjećate ugodno s planom, vratite se na _Build mode_ do
   ponovnim pritiskom na taster **Tab**.

```bash frame="none"
   <TAB>
```

I tražeći od njega da napravi promjene.

```bash frame="none"
   Sounds good! Go ahead and make the changes.
```

---

### Napravite promjene

Za jednostavnije promjene, možete zamoliti OpenCode da ga direktno izgradi
bez potrebe da prvo pregledate plan.

```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
```

Želite da budete sigurni da ste pružili dobru količinu detalja kako bi OpenCode bio ispravan
promjene.

---

### Poništi promjene

Recimo da tražite od OpenCode da izvrši neke promjene.

```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```

Ali shvatate da to nije ono što ste želeli. Možete **poništiti** promjene
koristeći naredbu `/undo`.

```bash frame="none"
/undo
```

OpenCode će sada poništiti promjene koje ste napravili i prikazati vašu originalnu poruku
opet.

```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```

Odavde možete podesiti prompt i zamoliti OpenCode da pokuša ponovo.
:::tip
Možete pokrenuti `/undo` više puta da poništite više promjena.
:::
Ili **možete ponoviti** promjene koristeći naredbu `/redo`.

```bash frame="none"
/redo
```

---

## Dijeli

Razgovore koje imate sa OpenCode možete [dijeliti sa vašim
tim](/docs/share).

```bash frame="none"
/share
```

Ovo će kreirati vezu do trenutnog razgovora i kopirati je u međuspremnik.
:::note
Razgovori se ne dijele prema zadanim postavkama.
:::
Evo [primjer razgovora](https://opencode.ai/s/4XP1fce5) sa OpenCode.

---

## Prilagodi

I to je to! Sada ste profesionalac u korištenju OpenCode.
Da biste to učinili svojim, preporučujemo [odabir teme](/docs/themes), [prilagođavanje povezivanja tipki](/docs/keybinds), [konfiguriranje formatera koda](/docs/formatters), [kreiranje prilagođenih komandi](/docs/commands), ili igranje sa [OpenCode config](/docs/config).