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

![OpenCode TUI con el tema opencode](../../../assets/lander/screenshot.png)

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
   - [Fantasmal](https://ghostty.org), Linux y macOS
   - [Gatito](https://sw.kovidgoyal.net/kitty/), Linux y macOS

2. API claves 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 grifo 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
  paru -S opencode-bin
  ```

#### Windows

:::tip[Recomendado: Usar WSL]
Para obtener la mejor experiencia en Windows, recomendamos utilizar [Subsistema Windows para 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).

---

## Configurar

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 OpenCode
equipo.

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.

---

## Uso

Ahora está listo para usar OpenCode para trabajar en su proyecto. No dudes en preguntarlo
¡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.

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

   :::consejo
   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 de construcción_
   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).
