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
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
|
---
title: Introducción
description: Comience con OpenCode.
---
import { Tabs, TabItem } from "@astrojs/starlight/components"
import config from "../../../../config.mjs"
export const console = config.console
[**OpenCode**](/) es un agente de codificación de IA de código abierto. Está disponible como interfaz basada en terminal, aplicación de escritorio o extensión IDE.

Empecemos.
---
#### Requisitos previos
Para usar OpenCode en su terminal, necesitará:
1. Un emulador de terminal moderno como:
- [WezTerm](https://wezterm.org), multiplataforma
- [Alacritty](https://alacritty.org), multiplataforma
- [Ghostty](https://ghostty.org), Linux y macOS
- [Kitty](https://sw.kovidgoyal.net/kitty/), Linux y macOS
2. Claves API para los LLM proveedores que desea utilizar.
---
## Instalar
La forma más sencilla de instalar OpenCode es mediante el script de instalación.
```bash
curl -fsSL https://opencode.ai/install | bash
```
También puedes instalarlo con los siguientes comandos:
- **Usando 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>
- **Usando Homebrew en macOS y Linux**
```bash
brew install anomalyco/tap/opencode
```
> Recomendamos utilizar el tap OpenCode para las versiones más actualizadas. La fórmula oficial `brew install opencode` la mantiene el equipo Homebrew y se actualiza con menos frecuencia.
- **Usando Paru en Arch Linux**
```bash
sudo pacman -S opencode # Arch Linux (Stable)
paru -S opencode-bin # Arch Linux (Latest from AUR)
```
#### Windows
:::tip[Recomendado: Usar WSL]
Para obtener la mejor experiencia en Windows, recomendamos utilizar [Windows Subsystem for Linux (WSL)](/docs/windows-wsl). Proporciona un mejor rendimiento y compatibilidad total con las funciones de OpenCode.
:::
- **Usando Chocolatey**
```bash
choco install opencode
```
- **Usando Scoop**
```bash
scoop install opencode
```
- **Usando NPM**
```bash
npm install -g opencode-ai
```
- **Usando Mise**
```bash
mise use -g github:anomalyco/opencode
```
- **Usando Docker**
```bash
docker run -it --rm ghcr.io/anomalyco/opencode
```
Actualmente se encuentra en progreso el soporte para instalar OpenCode en Windows usando Bun.
También puede obtener el binario de [Versiones](https://github.com/anomalyco/opencode/releases).
---
## Configuración
Con OpenCode puedes usar cualquier proveedor LLM configurando sus claves API.
Si es nuevo en el uso de proveedores LLM, le recomendamos usar [OpenCode Zen](/docs/zen).
Es una lista seleccionada de modelos que han sido probados y verificados por el equipo de OpenCode.
1. Ejecute el comando `/connect` en TUI, seleccione opencode y diríjase a [opencode.ai/auth](https://opencode.ai/auth).
```txt
/connect
```
2. Inicie sesión, agregue sus datos de facturación y copie su clave API.
3. Pega tu clave API.
```txt
┌ API key
│
│
└ enter
```
Alternativamente, puede seleccionar uno de los otros proveedores. [Más información](/docs/providers#directory).
---
## Inicializar
Ahora que ha configurado un proveedor, puede navegar a un proyecto que
quieres trabajar.
```bash
cd /path/to/project
```
Y ejecute OpenCode.
```bash
opencode
```
A continuación, inicialice OpenCode para el proyecto ejecutando el siguiente comando.
```bash frame="none"
/init
```
Esto hará que OpenCode analice su proyecto y cree un archivo `AGENTS.md` en
la raíz del proyecto.
:::tip
Debes enviar el archivo `AGENTS.md` de tu proyecto a Git.
:::
Esto ayuda a OpenCode a comprender la estructura del proyecto y los patrones de codificación.
usado.
---
## Usar
Ahora está listo para usar OpenCode para trabajar en su proyecto. No dudes en preguntarle
¡cualquier cosa!
Si es nuevo en el uso de un agente de codificación de IA, aquí hay algunos ejemplos que podrían
ayuda.
---
### Hacer preguntas
Puede pedirle a OpenCode que le explique el código base.
:::tip
Utilice la tecla `@` para realizar una búsqueda aproximada de archivos en el proyecto.
:::
```txt frame="none" "@packages/functions/src/api/index.ts"
How is authentication handled in @packages/functions/src/api/index.ts
```
Esto es útil si hay una parte del código base en la que no trabajaste.
---
### Agregar funciones
Puede pedirle a OpenCode que agregue nuevas funciones a su proyecto. Aunque primero recomendamos pedirle que cree un plan.
1. **Crea un plan**
OpenCode tiene un _Modo Plan_ que desactiva su capacidad para realizar cambios y
en su lugar, sugiera _cómo_ implementará la función.
Cambie a él usando la tecla **Tab**. Verás un indicador para esto en la esquina inferior derecha.
```bash frame="none" title="Switch to Plan mode"
<TAB>
```
Ahora describamos lo que queremos que haga.
```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.
```
Quiere darle a OpenCode suficientes detalles para entender lo que quiere. ayuda
hablar con él como si estuviera hablando con un desarrollador junior de su equipo.
:::tip
Dale a OpenCode mucho contexto y ejemplos para ayudarlo a comprender lo que
desear.
:::
2. **Repetir el plan**
Una vez que le proporcione un plan, puede enviarle comentarios o agregar más detalles.
```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
Arrastre y suelte imágenes en la terminal para agregarlas al mensaje.
:::
OpenCode puede escanear cualquier imagen que le proporcione y agregarla al mensaje. Puede
Haga esto arrastrando y soltando una imagen en la terminal.
3. **Crea la función**
Una vez que se sienta cómodo con el plan, vuelva al _Modo Build_
presionando la tecla **Tab** nuevamente.
```bash frame="none"
<TAB>
```
Y pidiéndole que haga los cambios.
```bash frame="none"
Sounds good! Go ahead and make the changes.
```
---
### Realizar cambios
Para cambios más sencillos, puede pedirle a OpenCode que lo construya directamente.
sin tener que revisar el plan primero.
```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
```
Desea asegurarse de proporcionar una buena cantidad de detalles para que OpenCode tome la decisión correcta.
cambios.
---
### Deshacer cambios
Digamos que le pides a OpenCode que haga algunos cambios.
```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```
Pero te das cuenta de que no es lo que querías. Puedes **deshacer** los cambios
usando el comando `/undo`.
```bash frame="none"
/undo
```
OpenCode ahora revertirá los cambios que realizó y mostrará su mensaje original
de nuevo.
```txt frame="none" "@packages/functions/src/api/index.ts"
Can you refactor the function in @packages/functions/src/api/index.ts?
```
Desde aquí puedes modificar el mensaje y pedirle a OpenCode que vuelva a intentarlo.
:::tip
Puede ejecutar `/undo` varias veces para deshacer varios cambios.
:::
O **puedes rehacer** los cambios usando el comando `/redo`.
```bash frame="none"
/redo
```
---
## Compartir
Las conversaciones que tengas con OpenCode pueden ser [compartidas con tu
equipo](/docs/share).
```bash frame="none"
/share
```
Esto creará un enlace a la conversación actual y lo copiará en su portapapeles.
:::note
Las conversaciones no se comparten de forma predeterminada.
:::
Aquí hay una [conversación de ejemplo](https://opencode.ai/s/4XP1fce5) con OpenCode.
---
## Personalizar
¡Y eso es todo! Ahora eres un profesional en el uso de OpenCode.
Para personalizarlo, recomendamos [elegir un tema](/docs/themes), [personalizar las combinaciones de teclas](/docs/keybinds), [configurar formateadores de código](/docs/formatters), [crear comandos personalizados](/docs/commands) o jugar con la [configuración OpenCode](/docs/config).
|