chore: generate
This commit is contained in:
@@ -29,15 +29,15 @@ opencode [project]
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| ------------ | ----- | ------------------------------------------ |
|
||||
| `--continue` | `-c` | Continuar la última sesión |
|
||||
| `--session` | `-s` | ID de sesión para continuar |
|
||||
| `--prompt` | | Aviso de uso |
|
||||
| `--model` | `-m` | Modelo a utilizar en forma de proveedor/modelo |
|
||||
| `--agent` | | Agente a utilizar |
|
||||
| `--port` | | Puerto para escuchar |
|
||||
| `--hostname` | | Nombre de host para escuchar |
|
||||
| Bandera | Corto | Descripción |
|
||||
| ------------ | ----- | ---------------------------------------------- |
|
||||
| `--continue` | `-c` | Continuar la última sesión |
|
||||
| `--session` | `-s` | ID de sesión para continuar |
|
||||
| `--prompt` | | Aviso de uso |
|
||||
| `--model` | `-m` | Modelo a utilizar en forma de proveedor/modelo |
|
||||
| `--agent` | | Agente a utilizar |
|
||||
| `--port` | | Puerto para escuchar |
|
||||
| `--hostname` | | Nombre de host para escuchar |
|
||||
|
||||
---
|
||||
|
||||
@@ -77,10 +77,10 @@ opencode attach http://10.20.30.40:4096
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| ----------- | ----- | --------------------------------- |
|
||||
| `--dir` | | Directorio de trabajo para iniciar TUI en |
|
||||
| `--session` | `-s` | ID de sesión para continuar |
|
||||
| Bandera | Corto | Descripción |
|
||||
| ----------- | ----- | ----------------------------------------- |
|
||||
| `--dir` | | Directorio de trabajo para iniciar TUI en |
|
||||
| `--session` | `-s` | ID de sesión para continuar |
|
||||
|
||||
---
|
||||
|
||||
@@ -186,10 +186,10 @@ opencode github run
|
||||
|
||||
##### Banderas
|
||||
|
||||
| Bandera | Descripción |
|
||||
| --------- | -------------------------------------- |
|
||||
| Bandera | Descripción |
|
||||
| --------- | ---------------------------------------------- |
|
||||
| `--event` | GitHub evento simulado para ejecutar el agente |
|
||||
| `--token` | GitHub token de acceso personal |
|
||||
| `--token` | GitHub token de acceso personal |
|
||||
|
||||
---
|
||||
|
||||
@@ -295,9 +295,9 @@ opencode models anthropic
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Descripción |
|
||||
| ----------- | ------------------------------------------------------------ |
|
||||
| `--refresh` | Actualizar la caché de modelos desde models.dev |
|
||||
| Bandera | Descripción |
|
||||
| ----------- | --------------------------------------------------------------------------- |
|
||||
| `--refresh` | Actualizar la caché de modelos desde models.dev |
|
||||
| `--verbose` | Utilice una salida del modelo más detallada (incluye metadatos como costos) |
|
||||
|
||||
Utilice el indicador `--refresh` para actualizar la lista de modelos almacenados en caché. Esto es útil cuando se han agregado nuevos modelos a un proveedor y desea verlos en OpenCode.
|
||||
@@ -334,19 +334,19 @@ opencode run --attach http://localhost:4096 "Explain async/await in JavaScript"
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| ------------ | ----- | ------------------------------------------------------------------ |
|
||||
| `--command` | | El comando a ejecutar, use mensaje para args |
|
||||
| `--continue` | `-c` | Continuar la última sesión |
|
||||
| `--session` | `-s` | ID de sesión para continuar |
|
||||
| `--share` | | Comparte la sesión |
|
||||
| `--model` | `-m` | Modelo a utilizar en forma de proveedor/modelo |
|
||||
| `--agent` | | Agente a utilizar |
|
||||
| `--file` | `-f` | Archivo(s) para adjuntar al mensaje |
|
||||
| `--format` | | Formato: predeterminado (formateado) o json (eventos JSON sin formato) |
|
||||
| `--title` | | Título de la sesión (utiliza un mensaje truncado si no se proporciona ningún valor) |
|
||||
| `--attach` | | Adjuntar a un servidor opencode en ejecución (por ejemplo, http://localhost:4096) |
|
||||
| `--port` | | Puerto para el servidor local (el puerto predeterminado es aleatorio) |
|
||||
| Bandera | Corto | Descripción |
|
||||
| ------------ | ----- | ----------------------------------------------------------------------------------- |
|
||||
| `--command` | | El comando a ejecutar, use mensaje para args |
|
||||
| `--continue` | `-c` | Continuar la última sesión |
|
||||
| `--session` | `-s` | ID de sesión para continuar |
|
||||
| `--share` | | Comparte la sesión |
|
||||
| `--model` | `-m` | Modelo a utilizar en forma de proveedor/modelo |
|
||||
| `--agent` | | Agente a utilizar |
|
||||
| `--file` | `-f` | Archivo(s) para adjuntar al mensaje |
|
||||
| `--format` | | Formato: predeterminado (formateado) o json (eventos JSON sin formato) |
|
||||
| `--title` | | Título de la sesión (utiliza un mensaje truncado si no se proporciona ningún valor) |
|
||||
| `--attach` | | Adjuntar a un servidor opencode en ejecución (por ejemplo, http://localhost:4096) |
|
||||
| `--port` | | Puerto para el servidor local (el puerto predeterminado es aleatorio) |
|
||||
|
||||
---
|
||||
|
||||
@@ -362,12 +362,12 @@ Esto inicia un servidor HTTP que proporciona acceso API a la funcionalidad openc
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Descripción |
|
||||
| ------------ | ------------------------------------------ |
|
||||
| `--port` | Puerto para escuchar |
|
||||
| `--hostname` | Nombre de host para escuchar |
|
||||
| `--mdns` | Habilitar el descubrimiento de mDNS |
|
||||
| `--cors` | Orígenes de navegador adicionales para permitir CORS |
|
||||
| Bandera | Descripción |
|
||||
| ------------ | ---------------------------------------------------- |
|
||||
| `--port` | Puerto para escuchar |
|
||||
| `--hostname` | Nombre de host para escuchar |
|
||||
| `--mdns` | Habilitar el descubrimiento de mDNS |
|
||||
| `--cors` | Orígenes de navegador adicionales para permitir CORS |
|
||||
|
||||
---
|
||||
|
||||
@@ -391,10 +391,10 @@ opencode session list
|
||||
|
||||
##### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| ------------- | ----- | ------------------------------------ |
|
||||
| `--max-count` | `-n` | Limitar a N sesiones más recientes |
|
||||
| `--format` | | Formato de salida: tabla o json (tabla) |
|
||||
| Bandera | Corto | Descripción |
|
||||
| ------------- | ----- | --------------------------------------- |
|
||||
| `--max-count` | `-n` | Limitar a N sesiones más recientes |
|
||||
| `--format` | | Formato de salida: tabla o json (tabla) |
|
||||
|
||||
---
|
||||
|
||||
@@ -408,12 +408,12 @@ opencode stats
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Descripción |
|
||||
| ----------- | --------------------------------------------------------------------------- |
|
||||
| `--days` | Mostrar estadísticas de los últimos N días (todo el tiempo) |
|
||||
| `--tools` | Número de herramientas para mostrar (todas) |
|
||||
| `--models` | Mostrar el desglose del uso del modelo (oculto de forma predeterminada). Pase un número para mostrar la parte superior N |
|
||||
| `--project` | Filtrar por proyecto (todos los proyectos, cadena vacía: proyecto actual) |
|
||||
| Bandera | Descripción |
|
||||
| ----------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
| `--days` | Mostrar estadísticas de los últimos N días (todo el tiempo) |
|
||||
| `--tools` | Número de herramientas para mostrar (todas) |
|
||||
| `--models` | Mostrar el desglose del uso del modelo (oculto de forma predeterminada). Pase un número para mostrar la parte superior N |
|
||||
| `--project` | Filtrar por proyecto (todos los proyectos, cadena vacía: proyecto actual) |
|
||||
|
||||
---
|
||||
|
||||
@@ -458,12 +458,12 @@ Esto inicia un servidor HTTP y abre un navegador web para acceder a OpenCode a t
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Descripción |
|
||||
| ------------ | ------------------------------------------ |
|
||||
| `--port` | Puerto para escuchar |
|
||||
| `--hostname` | Nombre de host para escuchar |
|
||||
| `--mdns` | Habilitar el descubrimiento de mDNS |
|
||||
| `--cors` | Orígenes de navegador adicionales para permitir CORS |
|
||||
| Bandera | Descripción |
|
||||
| ------------ | ---------------------------------------------------- |
|
||||
| `--port` | Puerto para escuchar |
|
||||
| `--hostname` | Nombre de host para escuchar |
|
||||
| `--mdns` | Habilitar el descubrimiento de mDNS |
|
||||
| `--cors` | Orígenes de navegador adicionales para permitir CORS |
|
||||
|
||||
---
|
||||
|
||||
@@ -479,10 +479,10 @@ Este comando inicia un servidor ACP que se comunica a través de stdin/stdout us
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Descripción |
|
||||
| ------------ | --------------------- |
|
||||
| `--cwd` | Directorio de trabajo |
|
||||
| `--port` | Puerto para escuchar |
|
||||
| Bandera | Descripción |
|
||||
| ------------ | ---------------------------- |
|
||||
| `--cwd` | Directorio de trabajo |
|
||||
| `--port` | Puerto para escuchar |
|
||||
| `--hostname` | Nombre de host para escuchar |
|
||||
|
||||
---
|
||||
@@ -497,12 +497,12 @@ opencode uninstall
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| --------------- | ----- | ------------------------------------------- |
|
||||
| `--keep-config` | `-c` | Mantener archivos de configuración |
|
||||
| `--keep-data` | `-d` | Conservar datos de sesión e instantáneas |
|
||||
| `--dry-run` | | Mostrar lo que se eliminaría sin eliminar |
|
||||
| `--force` | `-f` | Saltar mensajes de confirmación |
|
||||
| Bandera | Corto | Descripción |
|
||||
| --------------- | ----- | ----------------------------------------- |
|
||||
| `--keep-config` | `-c` | Mantener archivos de configuración |
|
||||
| `--keep-data` | `-d` | Conservar datos de sesión e instantáneas |
|
||||
| `--dry-run` | | Mostrar lo que se eliminaría sin eliminar |
|
||||
| `--force` | `-f` | Saltar mensajes de confirmación |
|
||||
|
||||
---
|
||||
|
||||
@@ -528,9 +528,9 @@ opencode upgrade v0.1.48
|
||||
|
||||
#### Banderas
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| ---------- | ----- | ----------------------------------------------------------------- |
|
||||
| `--method` | `-m` | El método de instalación que se utilizó; rizo, npm, pnpm, bollo, preparación |
|
||||
| Bandera | Corto | Descripción |
|
||||
| ---------- | ----- | ---------------------------------------------------------------------------- |
|
||||
| `--method` | `-m` | El método de instalación que se utilizó; rizo, npm, pnpm, bollo, preparación |
|
||||
|
||||
---
|
||||
|
||||
@@ -538,12 +538,12 @@ opencode upgrade v0.1.48
|
||||
|
||||
El opencode CLI toma las siguientes banderas globales.
|
||||
|
||||
| Bandera | Corto | Descripción |
|
||||
| -------------- | ----- | ------------------------------------ |
|
||||
| `--help` | `-h` | Mostrar ayuda |
|
||||
| `--version` | `-v` | Número de versión de impresión |
|
||||
| `--print-logs` | | Imprimir registros en stderr |
|
||||
| `--log-level` | | Nivel de registro (DEPURACIÓN, INFORMACIÓN, ADVERTENCIA, ERROR) |
|
||||
| Bandera | Corto | Descripción |
|
||||
| -------------- | ----- | --------------------------------------------------------------- |
|
||||
| `--help` | `-h` | Mostrar ayuda |
|
||||
| `--version` | `-v` | Número de versión de impresión |
|
||||
| `--print-logs` | | Imprimir registros en stderr |
|
||||
| `--log-level` | | Nivel de registro (DEPURACIÓN, INFORMACIÓN, ADVERTENCIA, ERROR) |
|
||||
|
||||
---
|
||||
|
||||
@@ -551,32 +551,32 @@ El opencode CLI toma las siguientes banderas globales.
|
||||
|
||||
OpenCode se puede configurar mediante variables de entorno.
|
||||
|
||||
| Variables | Tipo | Descripción |
|
||||
| ------------------------------------- | ------- | ------------------------------------------------- |
|
||||
| `OPENCODE_AUTO_SHARE` | booleano | Compartir sesiones automáticamente |
|
||||
| `OPENCODE_GIT_BASH_PATH` | cadena | Ruta al ejecutable de Git Bash en Windows |
|
||||
| `OPENCODE_CONFIG` | cadena | Ruta al archivo de configuración |
|
||||
| `OPENCODE_CONFIG_DIR` | cadena | Ruta al directorio de configuración |
|
||||
| `OPENCODE_CONFIG_CONTENT` | cadena | Contenido de configuración json en línea |
|
||||
| `OPENCODE_DISABLE_AUTOUPDATE` | booleano | Deshabilitar las comprobaciones automáticas de actualizaciones |
|
||||
| `OPENCODE_DISABLE_PRUNE` | booleano | Deshabilitar la poda de datos antiguos |
|
||||
| `OPENCODE_DISABLE_TERMINAL_TITLE` | booleano | Deshabilitar las actualizaciones automáticas de títulos de terminal |
|
||||
| `OPENCODE_PERMISSION` | cadena | Configuración de permisos json incorporados |
|
||||
| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | booleano | Deshabilitar complementos predeterminados |
|
||||
| `OPENCODE_DISABLE_LSP_DOWNLOAD` | booleano | Deshabilitar las descargas automáticas del servidor LSP |
|
||||
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | booleano | Habilitar modelos experimentales |
|
||||
| `OPENCODE_DISABLE_AUTOCOMPACT` | booleano | Deshabilitar la compactación automática de contexto |
|
||||
| `OPENCODE_DISABLE_CLAUDE_CODE` | booleano | Deshabilitar la lectura desde `.claude` (mensaje + habilidades) |
|
||||
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | booleano | Desactivar lectura `~/.claude/CLAUDE.md` |
|
||||
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | booleano | Deshabilitar la carga `.claude/skills` |
|
||||
| `OPENCODE_DISABLE_MODELS_FETCH` | booleano | Deshabilitar la recuperación de modelos desde fuentes remotas |
|
||||
| `OPENCODE_FAKE_VCS` | cadena | Proveedor de VCS falso para fines de prueba |
|
||||
| `OPENCODE_DISABLE_FILETIME_CHECK` | booleano | Deshabilite la verificación del tiempo del archivo para optimizarlo |
|
||||
| `OPENCODE_CLIENT` | cadena | Identificador de cliente (por defecto `cli`) |
|
||||
| `OPENCODE_ENABLE_EXA` | booleano | Habilitar las herramientas de búsqueda web de Exa |
|
||||
| `OPENCODE_SERVER_PASSWORD` | cadena | Habilite la autenticación básica para `serve`/`web` |
|
||||
| `OPENCODE_SERVER_USERNAME` | cadena | Anular el nombre de usuario de autenticación básica (predeterminado `opencode`) |
|
||||
| `OPENCODE_MODELS_URL` | cadena | URL personalizada para buscar la configuración de modelos |
|
||||
| Variables | Tipo | Descripción |
|
||||
| ------------------------------------- | -------- | ------------------------------------------------------------------------------- |
|
||||
| `OPENCODE_AUTO_SHARE` | booleano | Compartir sesiones automáticamente |
|
||||
| `OPENCODE_GIT_BASH_PATH` | cadena | Ruta al ejecutable de Git Bash en Windows |
|
||||
| `OPENCODE_CONFIG` | cadena | Ruta al archivo de configuración |
|
||||
| `OPENCODE_CONFIG_DIR` | cadena | Ruta al directorio de configuración |
|
||||
| `OPENCODE_CONFIG_CONTENT` | cadena | Contenido de configuración json en línea |
|
||||
| `OPENCODE_DISABLE_AUTOUPDATE` | booleano | Deshabilitar las comprobaciones automáticas de actualizaciones |
|
||||
| `OPENCODE_DISABLE_PRUNE` | booleano | Deshabilitar la poda de datos antiguos |
|
||||
| `OPENCODE_DISABLE_TERMINAL_TITLE` | booleano | Deshabilitar las actualizaciones automáticas de títulos de terminal |
|
||||
| `OPENCODE_PERMISSION` | cadena | Configuración de permisos json incorporados |
|
||||
| `OPENCODE_DISABLE_DEFAULT_PLUGINS` | booleano | Deshabilitar complementos predeterminados |
|
||||
| `OPENCODE_DISABLE_LSP_DOWNLOAD` | booleano | Deshabilitar las descargas automáticas del servidor LSP |
|
||||
| `OPENCODE_ENABLE_EXPERIMENTAL_MODELS` | booleano | Habilitar modelos experimentales |
|
||||
| `OPENCODE_DISABLE_AUTOCOMPACT` | booleano | Deshabilitar la compactación automática de contexto |
|
||||
| `OPENCODE_DISABLE_CLAUDE_CODE` | booleano | Deshabilitar la lectura desde `.claude` (mensaje + habilidades) |
|
||||
| `OPENCODE_DISABLE_CLAUDE_CODE_PROMPT` | booleano | Desactivar lectura `~/.claude/CLAUDE.md` |
|
||||
| `OPENCODE_DISABLE_CLAUDE_CODE_SKILLS` | booleano | Deshabilitar la carga `.claude/skills` |
|
||||
| `OPENCODE_DISABLE_MODELS_FETCH` | booleano | Deshabilitar la recuperación de modelos desde fuentes remotas |
|
||||
| `OPENCODE_FAKE_VCS` | cadena | Proveedor de VCS falso para fines de prueba |
|
||||
| `OPENCODE_DISABLE_FILETIME_CHECK` | booleano | Deshabilite la verificación del tiempo del archivo para optimizarlo |
|
||||
| `OPENCODE_CLIENT` | cadena | Identificador de cliente (por defecto `cli`) |
|
||||
| `OPENCODE_ENABLE_EXA` | booleano | Habilitar las herramientas de búsqueda web de Exa |
|
||||
| `OPENCODE_SERVER_PASSWORD` | cadena | Habilite la autenticación básica para `serve`/`web` |
|
||||
| `OPENCODE_SERVER_USERNAME` | cadena | Anular el nombre de usuario de autenticación básica (predeterminado `opencode`) |
|
||||
| `OPENCODE_MODELS_URL` | cadena | URL personalizada para buscar la configuración de modelos |
|
||||
|
||||
---
|
||||
|
||||
@@ -584,18 +584,18 @@ OpenCode se puede configurar mediante variables de entorno.
|
||||
|
||||
Estas variables de entorno habilitan funciones experimentales que pueden cambiar o eliminarse.
|
||||
|
||||
| Variables | Tipo | Descripción |
|
||||
| ----------------------------------------------- | ------- | --------------------------------------- |
|
||||
| `OPENCODE_EXPERIMENTAL` | booleano | Habilitar todas las funciones experimentales |
|
||||
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | booleano | Habilitar descubrimiento de íconos |
|
||||
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | booleano | Deshabilitar copia al seleccionar en TUI |
|
||||
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | número | Tiempo de espera predeterminado para comandos bash en ms |
|
||||
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | número | Tokens de salida máximos para respuestas LLM |
|
||||
| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | booleano | Habilite el observador de archivos para todo el directorio |
|
||||
| `OPENCODE_EXPERIMENTAL_OXFMT` | booleano | Habilitar el formateador oxfmt |
|
||||
| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | booleano | Habilitar herramienta experimental LSP |
|
||||
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | booleano | Deshabilitar el observador de archivos |
|
||||
| `OPENCODE_EXPERIMENTAL_EXA` | booleano | Habilitar funciones experimentales de Exa |
|
||||
| `OPENCODE_EXPERIMENTAL_LSP_TY` | booleano | Habilitar la verificación de tipo experimental LSP |
|
||||
| `OPENCODE_EXPERIMENTAL_MARKDOWN` | booleano | Habilitar funciones de rebajas experimentales |
|
||||
| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | booleano | Habilitar modo de plan |
|
||||
| Variables | Tipo | Descripción |
|
||||
| ----------------------------------------------- | -------- | ---------------------------------------------------------- |
|
||||
| `OPENCODE_EXPERIMENTAL` | booleano | Habilitar todas las funciones experimentales |
|
||||
| `OPENCODE_EXPERIMENTAL_ICON_DISCOVERY` | booleano | Habilitar descubrimiento de íconos |
|
||||
| `OPENCODE_EXPERIMENTAL_DISABLE_COPY_ON_SELECT` | booleano | Deshabilitar copia al seleccionar en TUI |
|
||||
| `OPENCODE_EXPERIMENTAL_BASH_DEFAULT_TIMEOUT_MS` | número | Tiempo de espera predeterminado para comandos bash en ms |
|
||||
| `OPENCODE_EXPERIMENTAL_OUTPUT_TOKEN_MAX` | número | Tokens de salida máximos para respuestas LLM |
|
||||
| `OPENCODE_EXPERIMENTAL_FILEWATCHER` | booleano | Habilite el observador de archivos para todo el directorio |
|
||||
| `OPENCODE_EXPERIMENTAL_OXFMT` | booleano | Habilitar el formateador oxfmt |
|
||||
| `OPENCODE_EXPERIMENTAL_LSP_TOOL` | booleano | Habilitar herramienta experimental LSP |
|
||||
| `OPENCODE_EXPERIMENTAL_DISABLE_FILEWATCHER` | booleano | Deshabilitar el observador de archivos |
|
||||
| `OPENCODE_EXPERIMENTAL_EXA` | booleano | Habilitar funciones experimentales de Exa |
|
||||
| `OPENCODE_EXPERIMENTAL_LSP_TY` | booleano | Habilitar la verificación de tipo experimental LSP |
|
||||
| `OPENCODE_EXPERIMENTAL_MARKDOWN` | booleano | Habilitar funciones de rebajas experimentales |
|
||||
| `OPENCODE_EXPERIMENTAL_PLAN_MODE` | booleano | Habilitar modo de plan |
|
||||
|
||||
@@ -15,62 +15,62 @@ También puedes consultar [awesome-opencode](https://github.com/awesome-opencode
|
||||
|
||||
## Complementos
|
||||
|
||||
| Nombre | Descripción |
|
||||
| --------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||
| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Ejecute automáticamente sesiones OpenCode en entornos sandbox aislados de Daytona con git sync y vistas previas en vivo |
|
||||
| [opencode-sesión-helicona](https://github.com/H2Shami/opencode-helicone-session) | Inyecte automáticamente encabezados de sesión de Helicone para agrupación de solicitudes |
|
||||
| [opencode-tipo-inyección](https://github.com/nick-vi/opencode-type-inject) | Inyecte automáticamente tipos TypeScript/Svelte en lecturas de archivos con herramientas de búsqueda |
|
||||
| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Utilice su suscripción ChatGPT Plus/Pro en lugar de créditos API |
|
||||
| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | Utilice su plan Gemini existente en lugar de la facturación API |
|
||||
| [opencode-autenticación antigravedad](https://github.com/NoeFabris/opencode-antigravity-auth) | Utilice los modelos gratuitos de Antigravity en lugar de la facturación API |
|
||||
| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Aislamiento de contenedores de desarrollo de múltiples ramas con clones superficiales y puertos asignados automáticamente |
|
||||
| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Complemento Google Antigravity OAuth, compatible con la Búsqueda de Google y manejo más sólido de API |
|
||||
| [opencode-poda-de-contexto-dinámico](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Optimice el uso de tokens eliminando los resultados de herramientas obsoletas |
|
||||
| [opencode-búsqueda web-citada](https://github.com/ghoulr/opencode-websearch-cited.git) | Agregue soporte de búsqueda web nativa para proveedores compatibles con el estilo basado en Google |
|
||||
| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite a los agentes de IA ejecutar procesos en segundo plano en un PTY y enviarles información interactiva. |
|
||||
| [opencode-estrategia-shell](https://github.com/JRedeker/opencode-shell-strategy) | Instrucciones para comandos de shell no interactivos: evita bloqueos de operaciones dependientes de TTY |
|
||||
| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Seguimiento del uso de OpenCode con Wakatime |
|
||||
| [opencode-md-formateador de tabla](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Limpiar tablas de rebajas producidas por LLMs |
|
||||
| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | Edición de código 10 veces más rápida con Morph Fast Apply API y marcadores de edición diferidos |
|
||||
| [oh-mi-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agentes en segundo plano, herramientas LSP/AST/MCP prediseñadas, agentes seleccionados, compatible con Claude Code |
|
||||
| [opencode-notificador](https://github.com/panta82/opencode-notificator) | Notificaciones de escritorio y alertas sonoras para sesiones OpenCode |
|
||||
| [opencode-notificador](https://github.com/mohak34/opencode-notifier) | Notificaciones de escritorio y alertas sonoras para eventos de permiso, finalización y error |
|
||||
| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomenclatura automática de sesiones Zellij impulsada por IA basada en el contexto OpenCode |
|
||||
| [opencode-hábil](https://github.com/zenobi-us/opencode-skillful) | Permitir que los agentes OpenCode carguen mensajes de forma diferida a pedido con descubrimiento e inyección de habilidades |
|
||||
| [opencode-supermemoria](https://github.com/supermemoryai/opencode-supermemory) | Memoria persistente entre sesiones utilizando Supermemoria |
|
||||
| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Revisión interactiva del plan con anotaciones visuales y uso compartido privado/sin conexión |
|
||||
| [@openspoon/subtarea2](https://github.com/spoons-and-mirrors/subtask2) | Amplíe opencode /commands a un potente sistema de orquestación con control de flujo granular |
|
||||
| [opencode-programador](https://github.com/different-ai/opencode-scheduler) | Programe trabajos recurrentes usando launchd (Mac) o systemd (Linux) con sintaxis cron |
|
||||
| [micocódigo](https://github.com/vtemian/micode) | Lluvia de ideas estructurada → Planificar → Implementar flujo de trabajo con continuidad de sesión |
|
||||
| [octto](https://github.com/vtemian/octto) | Interfaz de usuario interactiva del navegador para lluvia de ideas de IA con formularios de preguntas múltiples |
|
||||
| [opencode-agentes-de-fondo](https://github.com/kdcokenny/opencode-background-agents) | Agentes en segundo plano estilo Claude Code con delegación asíncrona y persistencia de contexto |
|
||||
| [opencode-notificar](https://github.com/kdcokenny/opencode-notify) | Notificaciones nativas del sistema operativo para OpenCode: sepa cuándo se completan las tareas |
|
||||
| [opencode-espacio de trabajo](https://github.com/kdcokenny/opencode-workspace) | Arnés de orquestación multiagente incluido: 16 componentes, una instalación |
|
||||
| [opencode-árbol de trabajo](https://github.com/kdcokenny/opencode-worktree) | Árboles de trabajo de Git de fricción cero para OpenCode |
|
||||
| Nombre | Descripción |
|
||||
| --------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------- |
|
||||
| [opencode-daytona](https://github.com/jamesmurdza/daytona/blob/main/guides/typescript/opencode/README.md) | Ejecute automáticamente sesiones OpenCode en entornos sandbox aislados de Daytona con git sync y vistas previas en vivo |
|
||||
| [opencode-sesión-helicona](https://github.com/H2Shami/opencode-helicone-session) | Inyecte automáticamente encabezados de sesión de Helicone para agrupación de solicitudes |
|
||||
| [opencode-tipo-inyección](https://github.com/nick-vi/opencode-type-inject) | Inyecte automáticamente tipos TypeScript/Svelte en lecturas de archivos con herramientas de búsqueda |
|
||||
| [opencode-openai-codex-auth](https://github.com/numman-ali/opencode-openai-codex-auth) | Utilice su suscripción ChatGPT Plus/Pro en lugar de créditos API |
|
||||
| [opencode-gemini-auth](https://github.com/jenslys/opencode-gemini-auth) | Utilice su plan Gemini existente en lugar de la facturación API |
|
||||
| [opencode-autenticación antigravedad](https://github.com/NoeFabris/opencode-antigravity-auth) | Utilice los modelos gratuitos de Antigravity en lugar de la facturación API |
|
||||
| [opencode-devcontainers](https://github.com/athal7/opencode-devcontainers) | Aislamiento de contenedores de desarrollo de múltiples ramas con clones superficiales y puertos asignados automáticamente |
|
||||
| [opencode-google-antigravity-auth](https://github.com/shekohex/opencode-google-antigravity-auth) | Complemento Google Antigravity OAuth, compatible con la Búsqueda de Google y manejo más sólido de API |
|
||||
| [opencode-poda-de-contexto-dinámico](https://github.com/Tarquinen/opencode-dynamic-context-pruning) | Optimice el uso de tokens eliminando los resultados de herramientas obsoletas |
|
||||
| [opencode-búsqueda web-citada](https://github.com/ghoulr/opencode-websearch-cited.git) | Agregue soporte de búsqueda web nativa para proveedores compatibles con el estilo basado en Google |
|
||||
| [opencode-pty](https://github.com/shekohex/opencode-pty.git) | Permite a los agentes de IA ejecutar procesos en segundo plano en un PTY y enviarles información interactiva. |
|
||||
| [opencode-estrategia-shell](https://github.com/JRedeker/opencode-shell-strategy) | Instrucciones para comandos de shell no interactivos: evita bloqueos de operaciones dependientes de TTY |
|
||||
| [opencode-wakatime](https://github.com/angristan/opencode-wakatime) | Seguimiento del uso de OpenCode con Wakatime |
|
||||
| [opencode-md-formateador de tabla](https://github.com/franlol/opencode-md-table-formatter/tree/main) | Limpiar tablas de rebajas producidas por LLMs |
|
||||
| [opencode-morph-fast-apply](https://github.com/JRedeker/opencode-morph-fast-apply) | Edición de código 10 veces más rápida con Morph Fast Apply API y marcadores de edición diferidos |
|
||||
| [oh-mi-opencode](https://github.com/code-yeongyu/oh-my-opencode) | Agentes en segundo plano, herramientas LSP/AST/MCP prediseñadas, agentes seleccionados, compatible con Claude Code |
|
||||
| [opencode-notificador](https://github.com/panta82/opencode-notificator) | Notificaciones de escritorio y alertas sonoras para sesiones OpenCode |
|
||||
| [opencode-notificador](https://github.com/mohak34/opencode-notifier) | Notificaciones de escritorio y alertas sonoras para eventos de permiso, finalización y error |
|
||||
| [opencode-zellij-namer](https://github.com/24601/opencode-zellij-namer) | Nomenclatura automática de sesiones Zellij impulsada por IA basada en el contexto OpenCode |
|
||||
| [opencode-hábil](https://github.com/zenobi-us/opencode-skillful) | Permitir que los agentes OpenCode carguen mensajes de forma diferida a pedido con descubrimiento e inyección de habilidades |
|
||||
| [opencode-supermemoria](https://github.com/supermemoryai/opencode-supermemory) | Memoria persistente entre sesiones utilizando Supermemoria |
|
||||
| [@plannotator/opencode](https://github.com/backnotprop/plannotator/tree/main/apps/opencode-plugin) | Revisión interactiva del plan con anotaciones visuales y uso compartido privado/sin conexión |
|
||||
| [@openspoon/subtarea2](https://github.com/spoons-and-mirrors/subtask2) | Amplíe opencode /commands a un potente sistema de orquestación con control de flujo granular |
|
||||
| [opencode-programador](https://github.com/different-ai/opencode-scheduler) | Programe trabajos recurrentes usando launchd (Mac) o systemd (Linux) con sintaxis cron |
|
||||
| [micocódigo](https://github.com/vtemian/micode) | Lluvia de ideas estructurada → Planificar → Implementar flujo de trabajo con continuidad de sesión |
|
||||
| [octto](https://github.com/vtemian/octto) | Interfaz de usuario interactiva del navegador para lluvia de ideas de IA con formularios de preguntas múltiples |
|
||||
| [opencode-agentes-de-fondo](https://github.com/kdcokenny/opencode-background-agents) | Agentes en segundo plano estilo Claude Code con delegación asíncrona y persistencia de contexto |
|
||||
| [opencode-notificar](https://github.com/kdcokenny/opencode-notify) | Notificaciones nativas del sistema operativo para OpenCode: sepa cuándo se completan las tareas |
|
||||
| [opencode-espacio de trabajo](https://github.com/kdcokenny/opencode-workspace) | Arnés de orquestación multiagente incluido: 16 componentes, una instalación |
|
||||
| [opencode-árbol de trabajo](https://github.com/kdcokenny/opencode-worktree) | Árboles de trabajo de Git de fricción cero para OpenCode |
|
||||
|
||||
---
|
||||
|
||||
## Proyectos
|
||||
|
||||
| Nombre | Descripción |
|
||||
| ------------------------------------------------------------------------------------------ | ---------------------------------------------------------------- |
|
||||
| [kimaki](https://github.com/remorses/kimaki) | Bot de Discord para controlar sesiones OpenCode, basado en el SDK |
|
||||
| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Complemento Neovim para avisos compatibles con el editor, creado en API |
|
||||
| [portal](https://github.com/hosenur/portal) | Interfaz de usuario web móvil para OpenCode a través de Tailscale/VPN |
|
||||
| [Plantilla de complemento opencode](https://github.com/zenobi-us/opencode-plugin-template/) | Plantilla para crear complementos OpenCode |
|
||||
| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Interfaz de Neovim para opencode: un agente de codificación de IA basado en terminal |
|
||||
| [ai-sdk-proveedor-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Proveedor Vercel AI SDK para usar OpenCode a través de @opencode-ai/sdk |
|
||||
| [Cámara Abierta](https://github.com/btriapitsyn/openchamber) | Aplicación web/de escritorio y extensión VS Code para OpenCode |
|
||||
| [OpenCode-Obsidiana](https://github.com/mtymek/opencode-obsidian) | Complemento de Obsidian que incorpora OpenCode en la interfaz de usuario de Obsidian |
|
||||
| [OpenWork](https://github.com/different-ai/openwork) | Una alternativa de código abierto a Claude Cowork, impulsada por OpenCode |
|
||||
| [ocx](https://github.com/kdcokenny/ocx) | Administrador de extensiones OpenCode con perfiles portátiles y aislados. |
|
||||
| [CódigoNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Aplicación de escritorio, web, móvil y de cliente remoto para OpenCode |
|
||||
| Nombre | Descripción |
|
||||
| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
|
||||
| [kimaki](https://github.com/remorses/kimaki) | Bot de Discord para controlar sesiones OpenCode, basado en el SDK |
|
||||
| [opencode.nvim](https://github.com/NickvanDyke/opencode.nvim) | Complemento Neovim para avisos compatibles con el editor, creado en API |
|
||||
| [portal](https://github.com/hosenur/portal) | Interfaz de usuario web móvil para OpenCode a través de Tailscale/VPN |
|
||||
| [Plantilla de complemento opencode](https://github.com/zenobi-us/opencode-plugin-template/) | Plantilla para crear complementos OpenCode |
|
||||
| [opencode.nvim](https://github.com/sudo-tee/opencode.nvim) | Interfaz de Neovim para opencode: un agente de codificación de IA basado en terminal |
|
||||
| [ai-sdk-proveedor-opencode-sdk](https://github.com/ben-vargas/ai-sdk-provider-opencode-sdk) | Proveedor Vercel AI SDK para usar OpenCode a través de @opencode-ai/sdk |
|
||||
| [Cámara Abierta](https://github.com/btriapitsyn/openchamber) | Aplicación web/de escritorio y extensión VS Code para OpenCode |
|
||||
| [OpenCode-Obsidiana](https://github.com/mtymek/opencode-obsidian) | Complemento de Obsidian que incorpora OpenCode en la interfaz de usuario de Obsidian |
|
||||
| [OpenWork](https://github.com/different-ai/openwork) | Una alternativa de código abierto a Claude Cowork, impulsada por OpenCode |
|
||||
| [ocx](https://github.com/kdcokenny/ocx) | Administrador de extensiones OpenCode con perfiles portátiles y aislados. |
|
||||
| [CódigoNomad](https://github.com/NeuralNomadsAI/CodeNomad) | Aplicación de escritorio, web, móvil y de cliente remoto para OpenCode |
|
||||
|
||||
---
|
||||
|
||||
## Agentes
|
||||
|
||||
| Nombre | Descripción |
|
||||
| ----------------------------------------------------------------- | ------------------------------------------------------------ |
|
||||
| [Agente](https://github.com/Cluster444/agentic) | Agentes y comandos modulares de IA para un desarrollo estructurado |
|
||||
| Nombre | Descripción |
|
||||
| ------------------------------------------------------------------ | -------------------------------------------------------------------------------- |
|
||||
| [Agente](https://github.com/Cluster444/agentic) | Agentes y comandos modulares de IA para un desarrollo estructurado |
|
||||
| [opencode-agentes](https://github.com/darrenhinde/opencode-agents) | Configuraciones, avisos, agentes y complementos para flujos de trabajo mejorados |
|
||||
|
||||
@@ -11,32 +11,32 @@ OpenCode formatea automáticamente los archivos después de escribirlos o editar
|
||||
|
||||
OpenCode viene con varios formateadores integrados para lenguajes y marcos populares. A continuación se muestra una lista de los formateadores, las extensiones de archivo compatibles y los comandos u opciones de configuración que necesita.
|
||||
|
||||
| Formateador | Extensiones | Requisitos |
|
||||
| -------------------- | -------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| gobierno | .ir | Comando `gofmt` disponible |
|
||||
| mezclar | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Comando `mix` disponible |
|
||||
| más bonita | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y [más](https://prettier.io/docs/en/index.html) | dependencia `prettier` en `package.json` |
|
||||
| bioma | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y [más](https://biomejs.dev/) | `biome.json(c)` archivo de configuración |
|
||||
| zigzag | .zig, .zon | Comando `zig` disponible |
|
||||
| formato clang | .c, .cpp, .h, .hpp, .ino y [más](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` archivo de configuración |
|
||||
| klint | .kt, .kts | Comando `ktlint` disponible |
|
||||
| gorguera | .py, .pyi | Comando `ruff` disponible con configuración |
|
||||
| óxido | .rs | Comando `rustfmt` disponible |
|
||||
| cargafmt | .rs | Comando `cargo fmt` disponible |
|
||||
| ultravioleta | .py, .pyi | Comando `uv` disponible |
|
||||
| rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponible |
|
||||
| estándarrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponible |
|
||||
| embellecedor html | .erb, .html.erb | Comando `htmlbeautifier` disponible |
|
||||
| aire | .R | Comando `air` disponible |
|
||||
| dardo | .dardo | Comando `dart` disponible |
|
||||
| formato ocaml | .ml, .mli | Comando `ocamlformat` disponible y archivo de configuración `.ocamlformat` |
|
||||
| terraformar | .tf, .tfvars | Comando `terraform` disponible |
|
||||
| brillo | .brillo | Comando `gleam` disponible |
|
||||
| nixfmt | .nix | Comando `nixfmt` disponible |
|
||||
| shfmt | .sh, .bash | Comando `shfmt` disponible |
|
||||
| pinta | .php | dependencia `laravel/pint` en `composer.json` |
|
||||
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | Dependencia de `oxfmt` en `package.json` y un [indicador de variable de entorno experimental](/docs/cli/#experimental) |
|
||||
| ormolu | .hs | Comando `ormolu` disponible |
|
||||
| Formateador | Extensiones | Requisitos |
|
||||
| -------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
||||
| gobierno | .ir | Comando `gofmt` disponible |
|
||||
| mezclar | .ex, .exs, .eex, .heex, .leex, .neex, .sface | Comando `mix` disponible |
|
||||
| más bonita | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y [más](https://prettier.io/docs/en/index.html) | dependencia `prettier` en `package.json` |
|
||||
| bioma | .js, .jsx, .ts, .tsx, .html, .css, .md, .json, .yaml y [más](https://biomejs.dev/) | `biome.json(c)` archivo de configuración |
|
||||
| zigzag | .zig, .zon | Comando `zig` disponible |
|
||||
| formato clang | .c, .cpp, .h, .hpp, .ino y [más](https://clang.llvm.org/docs/ClangFormat.html) | `.clang-format` archivo de configuración |
|
||||
| klint | .kt, .kts | Comando `ktlint` disponible |
|
||||
| gorguera | .py, .pyi | Comando `ruff` disponible con configuración |
|
||||
| óxido | .rs | Comando `rustfmt` disponible |
|
||||
| cargafmt | .rs | Comando `cargo fmt` disponible |
|
||||
| ultravioleta | .py, .pyi | Comando `uv` disponible |
|
||||
| rubocop | .rb, .rake, .gemspec, .ru | Comando `rubocop` disponible |
|
||||
| estándarrb | .rb, .rake, .gemspec, .ru | Comando `standardrb` disponible |
|
||||
| embellecedor html | .erb, .html.erb | Comando `htmlbeautifier` disponible |
|
||||
| aire | .R | Comando `air` disponible |
|
||||
| dardo | .dardo | Comando `dart` disponible |
|
||||
| formato ocaml | .ml, .mli | Comando `ocamlformat` disponible y archivo de configuración `.ocamlformat` |
|
||||
| terraformar | .tf, .tfvars | Comando `terraform` disponible |
|
||||
| brillo | .brillo | Comando `gleam` disponible |
|
||||
| nixfmt | .nix | Comando `nixfmt` disponible |
|
||||
| shfmt | .sh, .bash | Comando `shfmt` disponible |
|
||||
| pinta | .php | dependencia `laravel/pint` en `composer.json` |
|
||||
| oxfmt (Experimental) | .js, .jsx, .ts, .tsx | Dependencia de `oxfmt` en `package.json` y un [indicador de variable de entorno experimental](/docs/cli/#experimental) |
|
||||
| ormolu | .hs | Comando `ormolu` disponible |
|
||||
|
||||
Entonces, si su proyecto tiene `prettier` en su `package.json`, OpenCode lo usará automáticamente.
|
||||
|
||||
@@ -67,12 +67,12 @@ Puede personalizar los formateadores a través de la sección `formatter` en su
|
||||
|
||||
Cada configuración del formateador admite lo siguiente:
|
||||
|
||||
| Propiedad | Tipo | Descripción |
|
||||
| ------------- | -------- | ------------------------------------------------------- |
|
||||
| `disabled` | booleano | Establezca esto en `true` para deshabilitar el formateador |
|
||||
| `command` | cadena[] | El comando a ejecutar para formatear |
|
||||
| `environment` | objeto | Variables de entorno para configurar al ejecutar el formateador |
|
||||
| `extensions` | cadena[] | Extensiones de archivo que este formateador debería manejar |
|
||||
| Propiedad | Tipo | Descripción |
|
||||
| ------------- | -------- | --------------------------------------------------------------- |
|
||||
| `disabled` | booleano | Establezca esto en `true` para deshabilitar el formateador |
|
||||
| `command` | cadena[] | El comando a ejecutar para formatear |
|
||||
| `environment` | objeto | Variables de entorno para configurar al ejecutar el formateador |
|
||||
| `extensions` | cadena[] | Extensiones de archivo que este formateador debería manejar |
|
||||
|
||||
Veamos algunos ejemplos.
|
||||
|
||||
|
||||
@@ -105,14 +105,14 @@ O puede configurarlo manualmente.
|
||||
|
||||
OpenCode puede desencadenarse por los siguientes eventos GitHub:
|
||||
|
||||
| Tipo de evento | Activado por | Detalles |
|
||||
| ----------------------------- | -------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |
|
||||
| `issue_comment` | Comentar sobre un tema o PR | Mencione `/opencode` o `/oc` en su comentario. OpenCode lee el contexto y puede crear ramas, abrir relaciones públicas o responder. |
|
||||
| `pull_request_review_comment` | Comente líneas de código específicas en un PR | Mencione `/opencode` o `/oc` mientras revisa el código. OpenCode recibe la ruta del archivo, los números de línea y el contexto de diferencias. |
|
||||
| `issues` | Número abierto o editado | Activa automáticamente OpenCode cuando se crean o modifican problemas. Requiere entrada `prompt`. |
|
||||
| `pull_request` | PR abierto o actualizado | Activa automáticamente OpenCode cuando los PR se abren, sincronizan o vuelven a abrir. Útil para revisiones automatizadas. |
|
||||
| `schedule` | Programación basada en cron | Ejecute OpenCode según una programación. Requiere entrada `prompt`. La salida va a registros y relaciones públicas (no hay temas que comentar). |
|
||||
| `workflow_dispatch` | Activador manual desde GitHub UI | Active OpenCode a pedido a través de la pestaña Acciones. Requiere entrada `prompt`. La salida va a registros y relaciones públicas. |
|
||||
| Tipo de evento | Activado por | Detalles |
|
||||
| ----------------------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `issue_comment` | Comentar sobre un tema o PR | Mencione `/opencode` o `/oc` en su comentario. OpenCode lee el contexto y puede crear ramas, abrir relaciones públicas o responder. |
|
||||
| `pull_request_review_comment` | Comente líneas de código específicas en un PR | Mencione `/opencode` o `/oc` mientras revisa el código. OpenCode recibe la ruta del archivo, los números de línea y el contexto de diferencias. |
|
||||
| `issues` | Número abierto o editado | Activa automáticamente OpenCode cuando se crean o modifican problemas. Requiere entrada `prompt`. |
|
||||
| `pull_request` | PR abierto o actualizado | Activa automáticamente OpenCode cuando los PR se abren, sincronizan o vuelven a abrir. Útil para revisiones automatizadas. |
|
||||
| `schedule` | Programación basada en cron | Ejecute OpenCode según una programación. Requiere entrada `prompt`. La salida va a registros y relaciones públicas (no hay temas que comentar). |
|
||||
| `workflow_dispatch` | Activador manual desde GitHub UI | Active OpenCode a pedido a través de la pestaña Acciones. Requiere entrada `prompt`. La salida va a registros y relaciones públicas. |
|
||||
|
||||
### Ejemplo de programación
|
||||
|
||||
|
||||
@@ -68,12 +68,12 @@ OpenCode se ejecuta en su canalización de CI/CD GitLab. Esto es lo que necesita
|
||||
Consulte los [**GitLab documentos**](https://docs.gitlab.com/user/duo_agent_platform/agent_assistant/) para obtener instrucciones actualizadas.
|
||||
:::
|
||||
|
||||
1. Configure su entorno GitLab
|
||||
2. Configurar CI/CD
|
||||
3. Obtenga una clave API de proveedor de modelo de IA
|
||||
4. Crea una cuenta de servicio
|
||||
5. Configurar variables CI/CD
|
||||
6. Cree un archivo de configuración de flujo, aquí hay un ejemplo:
|
||||
1. Configure su entorno GitLab
|
||||
2. Configurar CI/CD
|
||||
3. Obtenga una clave API de proveedor de modelo de IA
|
||||
4. Crea una cuenta de servicio
|
||||
5. Configurar variables CI/CD
|
||||
6. Cree un archivo de configuración de flujo, aquí hay un ejemplo:
|
||||
|
||||
<details>
|
||||
|
||||
|
||||
@@ -134,20 +134,20 @@ Puede deshabilitar una combinación de teclas agregando la clave a su configurac
|
||||
|
||||
La entrada de solicitud de la aplicación de escritorio OpenCode admite atajos comunes de estilo Readline/Emacs para editar texto. Estos están integrados y actualmente no se pueden configurar a través de `opencode.json`.
|
||||
|
||||
| Atajo | Acción |
|
||||
| -------- | ---------------------------------------- |
|
||||
| `ctrl+a` | Mover al inicio de la línea actual |
|
||||
| `ctrl+e` | Mover al final de la línea actual |
|
||||
| `ctrl+b` | Mover el cursor hacia atrás un carácter |
|
||||
| `ctrl+f` | Mover el cursor hacia adelante un carácter |
|
||||
| `alt+b` | Mover el cursor hacia atrás una palabra |
|
||||
| `alt+f` | Mover el cursor hacia adelante una palabra |
|
||||
| `ctrl+d` | Eliminar carácter debajo del cursor |
|
||||
| `ctrl+k` | Matar hasta el final de la línea |
|
||||
| `ctrl+u` | Matar al inicio de la línea |
|
||||
| `ctrl+w` | Matar palabra anterior |
|
||||
| `alt+d` | Mata la siguiente palabra |
|
||||
| `ctrl+t` | Transponer caracteres |
|
||||
| Atajo | Acción |
|
||||
| -------- | -------------------------------------------------------------- |
|
||||
| `ctrl+a` | Mover al inicio de la línea actual |
|
||||
| `ctrl+e` | Mover al final de la línea actual |
|
||||
| `ctrl+b` | Mover el cursor hacia atrás un carácter |
|
||||
| `ctrl+f` | Mover el cursor hacia adelante un carácter |
|
||||
| `alt+b` | Mover el cursor hacia atrás una palabra |
|
||||
| `alt+f` | Mover el cursor hacia adelante una palabra |
|
||||
| `ctrl+d` | Eliminar carácter debajo del cursor |
|
||||
| `ctrl+k` | Matar hasta el final de la línea |
|
||||
| `ctrl+u` | Matar al inicio de la línea |
|
||||
| `ctrl+w` | Matar palabra anterior |
|
||||
| `alt+d` | Mata la siguiente palabra |
|
||||
| `ctrl+t` | Transponer caracteres |
|
||||
| `ctrl+g` | Cancelar ventanas emergentes/abortar la respuesta en ejecución |
|
||||
|
||||
---
|
||||
|
||||
@@ -11,40 +11,40 @@ OpenCode se integra con su protocolo de servidor de idiomas (LSP) para ayudar a
|
||||
|
||||
OpenCode viene con varios servidores LSP integrados para idiomas populares:
|
||||
|
||||
| LSP Servidor | Extensiones | Requisitos |
|
||||
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------ |
|
||||
| astro | .astro | Autoinstalaciones para proyectos Astro |
|
||||
| fiesta | .sh, .bash, .zsh, .ksh | Autoinstala el servidor en lenguaje bash |
|
||||
| sonido metálico | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Instalaciones automáticas para proyectos C/C++ |
|
||||
| csostenido | .cs | `.NET SDK` instalado |
|
||||
| clojure-lsp | .clj, .cljs, .cljc, .edn | Comando `clojure-lsp` disponible |
|
||||
| dardo | .dardo | Comando `dart` disponible |
|
||||
| deno | .ts, .tsx, .js, .jsx, .mjs | Comando `deno` disponible (detecta automáticamente deno.json/deno.jsonc) |
|
||||
| elixir-ls | .ex, .exs | Comando `elixir` disponible |
|
||||
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` dependencia en proyecto |
|
||||
| f sostenido | .fs, .fsi, .fsx, .fsscript | `.NET SDK` instalado |
|
||||
| brillo | .brillo | Comando `gleam` disponible |
|
||||
| gopls | .ir | Comando `go` disponible |
|
||||
| hls | .hs, .lhs | Comando `haskell-language-server-wrapper` disponible |
|
||||
| jdtls | .java | `Java SDK (version 21+)` instalado |
|
||||
| kotlin-ls | .kt, .kts | Autoinstalaciones para proyectos Kotlin |
|
||||
| lua-ls | .lua | Autoinstalaciones para proyectos Lua |
|
||||
| nada | .nix | Comando `nixd` disponible |
|
||||
| ocaml-lsp | .ml, .mli | Comando `ocamllsp` disponible |
|
||||
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` dependencia en proyecto |
|
||||
| php intelefense | .php | Autoinstalaciones para proyectos PHP |
|
||||
| prisma | .prisma | Comando `prisma` disponible |
|
||||
| derechos de autor | .py, .pyi | Dependencia `pyright` instalada |
|
||||
| rubí-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Comandos `ruby` y `gem` disponibles |
|
||||
| óxido | .rs | Comando `rust-analyzer` disponible |
|
||||
| kit de fuente-lsp | .swift, .objc, .objcpp | `swift` instalado (`xcode` en macOS) |
|
||||
| esbelto | .esbelto | Autoinstalaciones para proyectos Svelte |
|
||||
| terraformar | .tf, .tfvars | Instalaciones automáticas desde versiones GitHub |
|
||||
| diminuto | .tipo, .tipo | Instalaciones automáticas desde versiones GitHub |
|
||||
| mecanografiado | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` dependencia en proyecto |
|
||||
| vista | .vue | Autoinstalaciones para proyectos Vue |
|
||||
| yaml-ls | .yaml, .yml | Autoinstala Red Hat yaml-language-server |
|
||||
| zls | .zig, .zon | Comando `zig` disponible |
|
||||
| LSP Servidor | Extensiones | Requisitos |
|
||||
| ------------------ | ------------------------------------------------------------------- | ------------------------------------------------------------------------ |
|
||||
| astro | .astro | Autoinstalaciones para proyectos Astro |
|
||||
| fiesta | .sh, .bash, .zsh, .ksh | Autoinstala el servidor en lenguaje bash |
|
||||
| sonido metálico | .c, .cpp, .cc, .cxx, .c++, .h, .hpp, .hh, .hxx, .h++ | Instalaciones automáticas para proyectos C/C++ |
|
||||
| csostenido | .cs | `.NET SDK` instalado |
|
||||
| clojure-lsp | .clj, .cljs, .cljc, .edn | Comando `clojure-lsp` disponible |
|
||||
| dardo | .dardo | Comando `dart` disponible |
|
||||
| deno | .ts, .tsx, .js, .jsx, .mjs | Comando `deno` disponible (detecta automáticamente deno.json/deno.jsonc) |
|
||||
| elixir-ls | .ex, .exs | Comando `elixir` disponible |
|
||||
| eslint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue | `eslint` dependencia en proyecto |
|
||||
| f sostenido | .fs, .fsi, .fsx, .fsscript | `.NET SDK` instalado |
|
||||
| brillo | .brillo | Comando `gleam` disponible |
|
||||
| gopls | .ir | Comando `go` disponible |
|
||||
| hls | .hs, .lhs | Comando `haskell-language-server-wrapper` disponible |
|
||||
| jdtls | .java | `Java SDK (version 21+)` instalado |
|
||||
| kotlin-ls | .kt, .kts | Autoinstalaciones para proyectos Kotlin |
|
||||
| lua-ls | .lua | Autoinstalaciones para proyectos Lua |
|
||||
| nada | .nix | Comando `nixd` disponible |
|
||||
| ocaml-lsp | .ml, .mli | Comando `ocamllsp` disponible |
|
||||
| oxlint | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts, .vue, .astro, .svelte | `oxlint` dependencia en proyecto |
|
||||
| php intelefense | .php | Autoinstalaciones para proyectos PHP |
|
||||
| prisma | .prisma | Comando `prisma` disponible |
|
||||
| derechos de autor | .py, .pyi | Dependencia `pyright` instalada |
|
||||
| rubí-lsp (rubocop) | .rb, .rake, .gemspec, .ru | Comandos `ruby` y `gem` disponibles |
|
||||
| óxido | .rs | Comando `rust-analyzer` disponible |
|
||||
| kit de fuente-lsp | .swift, .objc, .objcpp | `swift` instalado (`xcode` en macOS) |
|
||||
| esbelto | .esbelto | Autoinstalaciones para proyectos Svelte |
|
||||
| terraformar | .tf, .tfvars | Instalaciones automáticas desde versiones GitHub |
|
||||
| diminuto | .tipo, .tipo | Instalaciones automáticas desde versiones GitHub |
|
||||
| mecanografiado | .ts, .tsx, .js, .jsx, .mjs, .cjs, .mts, .cts | `typescript` dependencia en proyecto |
|
||||
| vista | .vue | Autoinstalaciones para proyectos Vue |
|
||||
| yaml-ls | .yaml, .yml | Autoinstala Red Hat yaml-language-server |
|
||||
| zls | .zig, .zon | Comando `zig` disponible |
|
||||
|
||||
Los servidores LSP se habilitan automáticamente cuando se detecta una de las extensiones de archivo anteriores y se cumplen los requisitos.
|
||||
|
||||
@@ -76,13 +76,13 @@ Puede personalizar los servidores LSP a través de la sección `lsp` en su confi
|
||||
|
||||
Cada servidor LSP admite lo siguiente:
|
||||
|
||||
| Propiedad | Tipo | Descripción |
|
||||
| ---------------- | -------- | ------------------------------------------------- |
|
||||
| `disabled` | booleano | Establezca esto en `true` para deshabilitar el servidor LSP |
|
||||
| `command` | cadena[] | El comando para iniciar el servidor LSP |
|
||||
| `extensions` | cadena[] | Extensiones de archivo que este servidor LSP debería manejar |
|
||||
| `env` | objeto | Variables de entorno para configurar al iniciar el servidor |
|
||||
| `initialization` | objeto | Opciones de inicialización para enviar al servidor LSP |
|
||||
| Propiedad | Tipo | Descripción |
|
||||
| ---------------- | -------- | ------------------------------------------------------------ |
|
||||
| `disabled` | booleano | Establezca esto en `true` para deshabilitar el servidor LSP |
|
||||
| `command` | cadena[] | El comando para iniciar el servidor LSP |
|
||||
| `extensions` | cadena[] | Extensiones de archivo que este servidor LSP debería manejar |
|
||||
| `env` | objeto | Variables de entorno para configurar al iniciar el servidor |
|
||||
| `initialization` | objeto | Opciones de inicialización para enviar al servidor LSP |
|
||||
|
||||
Veamos algunos ejemplos.
|
||||
|
||||
|
||||
@@ -116,13 +116,13 @@ use the mcp_everything tool to add the number 3 and 4
|
||||
|
||||
Aquí están todas las opciones para configurar un servidor MCP local.
|
||||
|
||||
| Opción | Tipo | Requerido | Descripción |
|
||||
| ------------- | ------- | -------- | ----------------------------------------------------------------------------------- |
|
||||
| `type` | Cadena | Y | El tipo de conexión del servidor MCP debe ser `"local"`. |
|
||||
| `command` | Matriz | Y | Comando y argumentos para ejecutar el servidor MCP. |
|
||||
| `environment` | Objeto | | Variables de entorno para configurar al ejecutar el servidor. |
|
||||
| `enabled` | booleano | | Habilite o deshabilite el servidor MCP al inicio. |
|
||||
| `timeout` | Número | | Tiempo de espera en ms para recuperar herramientas del servidor MCP. El valor predeterminado es 5000 (5 segundos). |
|
||||
| Opción | Tipo | Requerido | Descripción |
|
||||
| ------------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------ |
|
||||
| `type` | Cadena | Y | El tipo de conexión del servidor MCP debe ser `"local"`. |
|
||||
| `command` | Matriz | Y | Comando y argumentos para ejecutar el servidor MCP. |
|
||||
| `environment` | Objeto | | Variables de entorno para configurar al ejecutar el servidor. |
|
||||
| `enabled` | booleano | | Habilite o deshabilite el servidor MCP al inicio. |
|
||||
| `timeout` | Número | | Tiempo de espera en ms para recuperar herramientas del servidor MCP. El valor predeterminado es 5000 (5 segundos). |
|
||||
|
||||
---
|
||||
|
||||
@@ -152,14 +152,14 @@ Agregue servidores MCP remotos configurando `type` en `"remote"`.
|
||||
|
||||
#### Opciones
|
||||
|
||||
| Opción | Tipo | Requerido | Descripción |
|
||||
| --------- | ------- | -------- | ----------------------------------------------------------------------------------- |
|
||||
| `type` | Cadena | Y | El tipo de conexión del servidor MCP debe ser `"remote"`. |
|
||||
| `url` | Cadena | Y | URL del servidor MCP remoto. |
|
||||
| `enabled` | booleano | | Habilite o deshabilite el servidor MCP al inicio. |
|
||||
| `headers` | Objeto | | Encabezados para enviar con la solicitud. |
|
||||
| `oauth` | Objeto | | OAuth configuración de autenticación. Consulte la sección [OAuth](#oauth) a continuación. |
|
||||
| `timeout` | Número | | Tiempo de espera en ms para recuperar herramientas del servidor MCP. El valor predeterminado es 5000 (5 segundos). |
|
||||
| Opción | Tipo | Requerido | Descripción |
|
||||
| --------- | -------- | --------- | ------------------------------------------------------------------------------------------------------------------ |
|
||||
| `type` | Cadena | Y | El tipo de conexión del servidor MCP debe ser `"remote"`. |
|
||||
| `url` | Cadena | Y | URL del servidor MCP remoto. |
|
||||
| `enabled` | booleano | | Habilite o deshabilite el servidor MCP al inicio. |
|
||||
| `headers` | Objeto | | Encabezados para enviar con la solicitud. |
|
||||
| `oauth` | Objeto | | OAuth configuración de autenticación. Consulte la sección [OAuth](#oauth) a continuación. |
|
||||
| `timeout` | Número | | Tiempo de espera en ms para recuperar herramientas del servidor MCP. El valor predeterminado es 5000 (5 segundos). |
|
||||
|
||||
---
|
||||
|
||||
@@ -266,12 +266,12 @@ Si desea deshabilitar el OAuth automático para un servidor (por ejemplo, para s
|
||||
|
||||
#### OAuth Opciones
|
||||
|
||||
| Opción | Tipo | Descripción |
|
||||
| -------------- | --------------- | -------------------------------------------------------------------------------- |
|
||||
| `oauth` | Objeto \| falso | OAuth objeto de configuración, o `false` para deshabilitar la detección automática de OAuth. |
|
||||
| `clientId` | Cadena | OAuth ID de cliente. Si no se proporciona, se intentará el registro dinámico del cliente. |
|
||||
| `clientSecret` | Cadena | OAuth secreto del cliente, si lo requiere el servidor de autorización. |
|
||||
| `scope` | Cadena | OAuth alcances para solicitar durante la autorización. |
|
||||
| Opción | Tipo | Descripción |
|
||||
| -------------- | --------------- | -------------------------------------------------------------------------------------------- |
|
||||
| `oauth` | Objeto \| falso | OAuth objeto de configuración, o `false` para deshabilitar la detección automática de OAuth. |
|
||||
| `clientId` | Cadena | OAuth ID de cliente. Si no se proporciona, se intentará el registro dinámico del cliente. |
|
||||
| `clientSecret` | Cadena | OAuth secreto del cliente, si lo requiere el servidor de autorización. |
|
||||
| `scope` | Cadena | OAuth alcances para solicitar durante la autorización. |
|
||||
|
||||
#### Depuración
|
||||
|
||||
|
||||
@@ -38,10 +38,11 @@ Sin embargo, sólo unos pocos de ellos son buenos tanto para generar código com
|
||||
Aquí hay varios modelos que funcionan bien con OpenCode, sin ningún orden en particular. (Esta no es una lista exhaustiva ni necesariamente actualizada):
|
||||
|
||||
-GPT 5.2
|
||||
|
||||
- Códice GPT 5.1
|
||||
- Claude Opus 4.5
|
||||
- Claude Soneto 4.5
|
||||
-Minimax M2.1
|
||||
-Minimax M2.1
|
||||
- Géminis 3 Pro
|
||||
|
||||
---
|
||||
|
||||
@@ -225,19 +225,19 @@ Si no se especifica ninguna herramienta, todas las herramientas están habilitad
|
||||
|
||||
Aquí están todas las herramientas que se pueden controlar a través del modo de configuración.
|
||||
|
||||
| Herramienta | Descripción |
|
||||
| ----------- | ----------------------- |
|
||||
| `bash` | Ejecutar comandos de shell |
|
||||
| `edit` | Modificar archivos existentes |
|
||||
| `write` | Crear nuevos archivos |
|
||||
| `read` | Leer el contenido del archivo |
|
||||
| `grep` | Buscar contenido del archivo |
|
||||
| `glob` | Buscar archivos por patrón |
|
||||
| `list` | Listar el contenido del directorio |
|
||||
| `patch` | Aplicar parches a archivos |
|
||||
| Herramienta | Descripción |
|
||||
| ----------- | --------------------------------------- |
|
||||
| `bash` | Ejecutar comandos de shell |
|
||||
| `edit` | Modificar archivos existentes |
|
||||
| `write` | Crear nuevos archivos |
|
||||
| `read` | Leer el contenido del archivo |
|
||||
| `grep` | Buscar contenido del archivo |
|
||||
| `glob` | Buscar archivos por patrón |
|
||||
| `list` | Listar el contenido del directorio |
|
||||
| `patch` | Aplicar parches a archivos |
|
||||
| `todowrite` | Administrar listas de tareas pendientes |
|
||||
| `todoread` | Leer listas de tareas pendientes |
|
||||
| `webfetch` | Obtener contenido web |
|
||||
| `todoread` | Leer listas de tareas pendientes |
|
||||
| `webfetch` | Obtener contenido web |
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -1023,12 +1023,12 @@ El complemento inyecta encabezados `Helicone-Session-Id` y `Helicone-Session-Nam
|
||||
|
||||
##### Cabeceras comunes de Helicone
|
||||
|
||||
| Encabezado | Descripción |
|
||||
| -------------------------- | ------------------------------------------------------------- |
|
||||
| `Helicone-Cache-Enabled` | Habilitar el almacenamiento en caché de respuestas (`true`/`false`) |
|
||||
| `Helicone-User-Id` | Seguimiento de métricas por usuario |
|
||||
| Encabezado | Descripción |
|
||||
| -------------------------- | --------------------------------------------------------------------------------- |
|
||||
| `Helicone-Cache-Enabled` | Habilitar el almacenamiento en caché de respuestas (`true`/`false`) |
|
||||
| `Helicone-User-Id` | Seguimiento de métricas por usuario |
|
||||
| `Helicone-Property-[Name]` | Agregar propiedades personalizadas (por ejemplo, `Helicone-Property-Environment`) |
|
||||
| `Helicone-Prompt-Id` | Solicitudes asociadas con versiones rápidas |
|
||||
| `Helicone-Prompt-Id` | Solicitudes asociadas con versiones rápidas |
|
||||
|
||||
Consulte el [Directorio de encabezados de Helicone](https://docs.helicone.ai/helicone-headers/header-directory) para conocer todos los encabezados disponibles.
|
||||
|
||||
@@ -1638,10 +1638,10 @@ También puede personalizar modelos a través de su configuración opencode. A c
|
||||
|
||||
Algunas opciones de enrutamiento útiles:
|
||||
|
||||
| Opción | Descripción |
|
||||
| ------------------- | ---------------------------------------------------- |
|
||||
| `order` | Secuencia de proveedores para probar |
|
||||
| `only` | Restringir a proveedores específicos |
|
||||
| Opción | Descripción |
|
||||
| ------------------- | ----------------------------------------------------------------------- |
|
||||
| `order` | Secuencia de proveedores para probar |
|
||||
| `only` | Restringir a proveedores específicos |
|
||||
| `zeroDataRetention` | Utilice únicamente proveedores con políticas de retención de datos cero |
|
||||
|
||||
---
|
||||
|
||||
@@ -37,13 +37,13 @@ Esto inicia tanto un servidor como un cliente.
|
||||
|
||||
#### Opciones
|
||||
|
||||
| Opción | Tipo | Descripción | Predeterminado |
|
||||
| ---------- | ------------- | ------------------------------ | ----------- |
|
||||
| `hostname` | `string` | Nombre de host del servidor | `127.0.0.1` |
|
||||
| `port` | `number` | Puerto del servidor | `4096` |
|
||||
| `signal` | `AbortSignal` | Señal de aborto para cancelación | `undefined` |
|
||||
| `timeout` | `number` | Tiempo de espera en ms para inicio del servidor | `5000` |
|
||||
| `config` | `Config` | Objeto de configuración | `{}` |
|
||||
| Opción | Tipo | Descripción | Predeterminado |
|
||||
| ---------- | ------------- | ----------------------------------------------- | -------------- |
|
||||
| `hostname` | `string` | Nombre de host del servidor | `127.0.0.1` |
|
||||
| `port` | `number` | Puerto del servidor | `4096` |
|
||||
| `signal` | `AbortSignal` | Señal de aborto para cancelación | `undefined` |
|
||||
| `timeout` | `number` | Tiempo de espera en ms para inicio del servidor | `5000` |
|
||||
| `config` | `Config` | Objeto de configuración | `{}` |
|
||||
|
||||
---
|
||||
|
||||
@@ -81,13 +81,13 @@ const client = createOpencodeClient({
|
||||
|
||||
#### Opciones
|
||||
|
||||
| Opción | Tipo | Descripción | Predeterminado |
|
||||
| --------------- | ---------- | -------------------------------- | ----------------------- |
|
||||
| `baseUrl` | `string` | URL del servidor | `http://localhost:4096` |
|
||||
| `fetch` | `function` | Implementación de recuperación personalizada | `globalThis.fetch` |
|
||||
| `parseAs` | `string` | Método de análisis de respuesta | `auto` |
|
||||
| `responseStyle` | `string` | Estilo de devolución: `data` o `fields` | `fields` |
|
||||
| `throwOnError` | `boolean` | Lanzar errores en lugar de devolver | `false` |
|
||||
| Opción | Tipo | Descripción | Predeterminado |
|
||||
| --------------- | ---------- | -------------------------------------------- | ----------------------- |
|
||||
| `baseUrl` | `string` | URL del servidor | `http://localhost:4096` |
|
||||
| `fetch` | `function` | Implementación de recuperación personalizada | `globalThis.fetch` |
|
||||
| `parseAs` | `string` | Método de análisis de respuesta | `auto` |
|
||||
| `responseStyle` | `string` | Estilo de devolución: `data` o `fields` | `fields` |
|
||||
| `throwOnError` | `boolean` | Lanzar errores en lugar de devolver | `false` |
|
||||
|
||||
---
|
||||
|
||||
@@ -125,8 +125,8 @@ El SDK expone todas las API del servidor a través de un cliente con seguridad d
|
||||
|
||||
### Global
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ----------------- | ------------------------------- | ------------------------------------ |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ----------------- | --------------------------------------------- | ------------------------------------ |
|
||||
| `global.health()` | Verificar el estado y la versión del servidor | `{ healthy: true, version: string }` |
|
||||
|
||||
---
|
||||
@@ -142,9 +142,9 @@ console.log(health.data.version)
|
||||
|
||||
### Aplicación
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| -------------- | ------------------------- | ------------------------------------------- |
|
||||
| `app.log()` | Escribe una entrada de registro | `boolean` |
|
||||
| Método | Descripción | Respuesta |
|
||||
| -------------- | ------------------------------------ | -------------------------------------------- |
|
||||
| `app.log()` | Escribe una entrada de registro | `boolean` |
|
||||
| `app.agents()` | Listar todos los agentes disponibles | <a href={typesUrl}><code>Agente[]</code></a> |
|
||||
|
||||
---
|
||||
@@ -169,10 +169,10 @@ const agents = await client.app.agents()
|
||||
|
||||
### Proyecto
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------- | ------------------- | --------------------------------------------- |
|
||||
| `project.list()` | Listar todos los proyectos | <a href={typesUrl}><code>Proyecto[]</code></a> |
|
||||
| `project.current()` | Obtener proyecto actual | <a href={typesUrl}><code>Proyecto</code></a> |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------- | -------------------------- | ---------------------------------------------- |
|
||||
| `project.list()` | Listar todos los proyectos | <a href={typesUrl}><code>Proyecto[]</code></a> |
|
||||
| `project.current()` | Obtener proyecto actual | <a href={typesUrl}><code>Proyecto</code></a> |
|
||||
|
||||
---
|
||||
|
||||
@@ -190,8 +190,8 @@ const currentProject = await client.project.current()
|
||||
|
||||
### Camino
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------ | ---------------- | ---------------------------------------- |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------ | ------------------- | ---------------------------------------- |
|
||||
| `path.get()` | Obtener ruta actual | <a href={typesUrl}><code>Ruta</code></a> |
|
||||
|
||||
---
|
||||
@@ -207,9 +207,9 @@ const pathInfo = await client.path.get()
|
||||
|
||||
### Configuración
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| -------------------- | --------------------------------- | ----------------------------------------------------------------------------------------------------- |
|
||||
| `config.get()` | Obtener información de configuración | <a href={typesUrl}><code>Configuración</code></a> |
|
||||
| Método | Descripción | Respuesta |
|
||||
| -------------------- | ---------------------------------------------- | ------------------------------------------------------------------------------------------------------ |
|
||||
| `config.get()` | Obtener información de configuración | <a href={typesUrl}><code>Configuración</code></a> |
|
||||
| `config.providers()` | Lista de proveedores y modelos predeterminados | `{ providers: `<a href={typesUrl}><code>Proveedor[]</code></a>`, default: { [key: string]: string } }` |
|
||||
|
||||
---
|
||||
@@ -226,27 +226,27 @@ const { providers, default: defaults } = await client.config.providers()
|
||||
|
||||
### Sesiones
|
||||
|
||||
| Método | Descripción | Notas |
|
||||
| ---------------------------------------------------------- | ---------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `session.list()` | Listar sesiones | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `session.get({ path })` | Obtener sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.children({ path })` | Listar sesiones infantiles | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `session.create({ body })` | Crear sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.delete({ path })` | Eliminar sesión | Devuelve `boolean` |
|
||||
| `session.update({ path, body })` | Actualizar propiedades de sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.init({ path, body })` | Analizar aplicación y crear `AGENTS.md` | Devuelve `boolean` |
|
||||
| `session.abort({ path })` | Cancelar una sesión en ejecución | Devuelve `boolean` |
|
||||
| `session.share({ path })` | Compartir sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.unshare({ path })` | Dejar de compartir sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.summarize({ path, body })` | Resumir sesión | Devuelve `boolean` |
|
||||
| `session.messages({ path })` | Listar mensajes en una sesión | Devuelve `{ info: `<a href={typesUrl}><code>Mensaje</code></a>`, parts: `<a href={typesUrl}><code>Parte[]</code></a>`}[]` |
|
||||
| `session.message({ path })` | Obtener detalles del mensaje | Devuelve `{ info: `<a href={typesUrl}><code>Mensaje</code></a>`, parts: `<a href={typesUrl}><code>Parte[]</code></a>`}` |
|
||||
| `session.prompt({ path, body })` | Enviar mensaje rápido | `body.noReply: true` devuelve UserMessage (solo contexto). El valor predeterminado devuelve <a href={typesUrl}><code>AssistantMessage</code></a> con respuesta de IA |
|
||||
| `session.command({ path, body })` | Enviar comando a la sesión | Devuelve `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Parte[]</code></a>`}` |
|
||||
| `session.shell({ path, body })` | Ejecute un comando de shell | Devuelve <a href={typesUrl}><code>AssistantMessage</code></a> |
|
||||
| `session.revert({ path, body })` | Revertir un mensaje | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.unrevert({ path })` | Restaurar mensajes revertidos | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `postSessionByIdPermissionsByPermissionId({ path, body })` | Responder a una solicitud de permiso | Devuelve `boolean` |
|
||||
| Método | Descripción | Notas |
|
||||
| ---------------------------------------------------------- | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `session.list()` | Listar sesiones | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `session.get({ path })` | Obtener sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.children({ path })` | Listar sesiones infantiles | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `session.create({ body })` | Crear sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.delete({ path })` | Eliminar sesión | Devuelve `boolean` |
|
||||
| `session.update({ path, body })` | Actualizar propiedades de sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.init({ path, body })` | Analizar aplicación y crear `AGENTS.md` | Devuelve `boolean` |
|
||||
| `session.abort({ path })` | Cancelar una sesión en ejecución | Devuelve `boolean` |
|
||||
| `session.share({ path })` | Compartir sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.unshare({ path })` | Dejar de compartir sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.summarize({ path, body })` | Resumir sesión | Devuelve `boolean` |
|
||||
| `session.messages({ path })` | Listar mensajes en una sesión | Devuelve `{ info: `<a href={typesUrl}><code>Mensaje</code></a>`, parts: `<a href={typesUrl}><code>Parte[]</code></a>`}[]` |
|
||||
| `session.message({ path })` | Obtener detalles del mensaje | Devuelve `{ info: `<a href={typesUrl}><code>Mensaje</code></a>`, parts: `<a href={typesUrl}><code>Parte[]</code></a>`}` |
|
||||
| `session.prompt({ path, body })` | Enviar mensaje rápido | `body.noReply: true` devuelve UserMessage (solo contexto). El valor predeterminado devuelve <a href={typesUrl}><code>AssistantMessage</code></a> con respuesta de IA |
|
||||
| `session.command({ path, body })` | Enviar comando a la sesión | Devuelve `{ info: `<a href={typesUrl}><code>AssistantMessage</code></a>`, parts: `<a href={typesUrl}><code>Parte[]</code></a>`}` |
|
||||
| `session.shell({ path, body })` | Ejecute un comando de shell | Devuelve <a href={typesUrl}><code>AssistantMessage</code></a> |
|
||||
| `session.revert({ path, body })` | Revertir un mensaje | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `session.unrevert({ path })` | Restaurar mensajes revertidos | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `postSessionByIdPermissionsByPermissionId({ path, body })` | Responder a una solicitud de permiso | Devuelve `boolean` |
|
||||
|
||||
---
|
||||
|
||||
@@ -283,13 +283,13 @@ await client.session.prompt({
|
||||
|
||||
### Archivos
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `find.text({ query })` | Buscar texto en archivos | Matriz de objetos coincidentes con `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
|
||||
| `find.files({ query })` | Buscar archivos y directorios por nombre | `string[]` (rutas) |
|
||||
| `find.symbols({ query })` | Buscar símbolos del espacio de trabajo | <a href={typesUrl}><code>Símbolo[]</code></a> |
|
||||
| `file.read({ query })` | Leer un archivo | `{ type: "raw" \| "patch", content: string }` |
|
||||
| `file.status({ query? })` | Obtener el estado de los archivos rastreados | <a href={typesUrl}><code>Archivo[]</code></a> |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------------- | -------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
||||
| `find.text({ query })` | Buscar texto en archivos | Matriz de objetos coincidentes con `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
|
||||
| `find.files({ query })` | Buscar archivos y directorios por nombre | `string[]` (rutas) |
|
||||
| `find.symbols({ query })` | Buscar símbolos del espacio de trabajo | <a href={typesUrl}><code>Símbolo[]</code></a> |
|
||||
| `file.read({ query })` | Leer un archivo | `{ type: "raw" \| "patch", content: string }` |
|
||||
| `file.status({ query? })` | Obtener el estado de los archivos rastreados | <a href={typesUrl}><code>Archivo[]</code></a> |
|
||||
|
||||
`find.files` admite algunos campos de consulta opcionales:
|
||||
|
||||
@@ -324,17 +324,17 @@ const content = await client.file.read({
|
||||
|
||||
### TUI
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------------------ | ------------------------- | --------- |
|
||||
| `tui.appendPrompt({ body })` | Agregar texto al mensaje | `boolean` |
|
||||
| `tui.openHelp()` | Abra el cuadro de diálogo de ayuda | `boolean` |
|
||||
| `tui.openSessions()` | Abrir el selector de sesiones | `boolean` |
|
||||
| `tui.openThemes()` | Abra el selector de temas | `boolean` |
|
||||
| `tui.openModels()` | Abrir el selector de modelo | `boolean` |
|
||||
| `tui.submitPrompt()` | Enviar el mensaje actual | `boolean` |
|
||||
| `tui.clearPrompt()` | Borrar el mensaje | `boolean` |
|
||||
| `tui.executeCommand({ body })` | Ejecutar un comando | `boolean` |
|
||||
| `tui.showToast({ body })` | Mostrar notificación del brindis | `boolean` |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------------------ | ---------------------------------- | --------- |
|
||||
| `tui.appendPrompt({ body })` | Agregar texto al mensaje | `boolean` |
|
||||
| `tui.openHelp()` | Abra el cuadro de diálogo de ayuda | `boolean` |
|
||||
| `tui.openSessions()` | Abrir el selector de sesiones | `boolean` |
|
||||
| `tui.openThemes()` | Abra el selector de temas | `boolean` |
|
||||
| `tui.openModels()` | Abrir el selector de modelo | `boolean` |
|
||||
| `tui.submitPrompt()` | Enviar el mensaje actual | `boolean` |
|
||||
| `tui.clearPrompt()` | Borrar el mensaje | `boolean` |
|
||||
| `tui.executeCommand({ body })` | Ejecutar un comando | `boolean` |
|
||||
| `tui.showToast({ body })` | Mostrar notificación del brindis | `boolean` |
|
||||
|
||||
---
|
||||
|
||||
@@ -355,8 +355,8 @@ await client.tui.showToast({
|
||||
|
||||
### Autenticación
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------- | ------------------------------ | --------- |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------- | ---------------------------------------- | --------- |
|
||||
| `auth.set({ ... })` | Establecer credenciales de autenticación | `boolean` |
|
||||
|
||||
---
|
||||
@@ -374,8 +374,8 @@ await client.auth.set({
|
||||
|
||||
### Eventos
|
||||
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------- | ------------------------- | ------------------------- |
|
||||
| Método | Descripción | Respuesta |
|
||||
| ------------------- | ----------------------------------------------- | ----------------------------------------------- |
|
||||
| `event.subscribe()` | Transmisión de eventos enviados por el servidor | Transmisión de eventos enviados por el servidor |
|
||||
|
||||
---
|
||||
|
||||
@@ -18,13 +18,13 @@ opencode serve [--port <number>] [--hostname <string>] [--cors <origin>]
|
||||
|
||||
#### Opciones
|
||||
|
||||
| Bandera | Descripción | Predeterminado |
|
||||
| --------------- | ----------------------------------- | ---------------- |
|
||||
| `--port` | Puerto para escuchar | `4096` |
|
||||
| `--hostname` | Nombre de host para escuchar | `127.0.0.1` |
|
||||
| `--mdns` | Habilitar el descubrimiento de mDNS | `false` |
|
||||
| Bandera | Descripción | Predeterminado |
|
||||
| --------------- | ----------------------------------------------------- | ---------------- |
|
||||
| `--port` | Puerto para escuchar | `4096` |
|
||||
| `--hostname` | Nombre de host para escuchar | `127.0.0.1` |
|
||||
| `--mdns` | Habilitar el descubrimiento de mDNS | `false` |
|
||||
| `--mdns-domain` | Nombre de dominio personalizado para el servicio mDNS | `opencode.local` |
|
||||
| `--cors` | Orígenes de navegador adicionales para permitir | `[]` |
|
||||
| `--cors` | Orígenes de navegador adicionales para permitir | `[]` |
|
||||
|
||||
`--cors` se puede pasar varias veces:
|
||||
|
||||
@@ -89,34 +89,34 @@ El servidor opencode expone las siguientes API.
|
||||
|
||||
### Global
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ---------------- | ------------------------------ | ------------------------------------ |
|
||||
| `GET` | `/global/health` | Obtener el estado y la versión del servidor | `{ healthy: true, version: string }` |
|
||||
| `GET` | `/global/event` | Obtenga eventos globales (transmisión SSE) | Flujo de eventos |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ---------------- | ------------------------------------------- | ------------------------------------ |
|
||||
| `GET` | `/global/health` | Obtener el estado y la versión del servidor | `{ healthy: true, version: string }` |
|
||||
| `GET` | `/global/event` | Obtenga eventos globales (transmisión SSE) | Flujo de eventos |
|
||||
|
||||
---
|
||||
|
||||
### Proyecto
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------ | ----------------------- | --------------------------------------------- |
|
||||
| `GET` | `/project` | Listar todos los proyectos | <a href={typesUrl}><code>Proyecto[]</code></a> |
|
||||
| `GET` | `/project/current` | Obtener el proyecto actual | <a href={typesUrl}><code>Proyecto</code></a> |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------ | -------------------------- | ---------------------------------------------- |
|
||||
| `GET` | `/project` | Listar todos los proyectos | <a href={typesUrl}><code>Proyecto[]</code></a> |
|
||||
| `GET` | `/project/current` | Obtener el proyecto actual | <a href={typesUrl}><code>Proyecto</code></a> |
|
||||
|
||||
---
|
||||
|
||||
### Ruta y VCS
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------- | ------------------------------------ | ------------------------------------------- |
|
||||
| `GET` | `/path` | Obtener la ruta actual | <a href={typesUrl}><code>Ruta</code></a> |
|
||||
| `GET` | `/vcs` | Obtenga información de VCS para el proyecto actual | <a href={typesUrl}><code>VcsInfo</code></a> |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------- | -------------------------------------------------- | ------------------------------------------- |
|
||||
| `GET` | `/path` | Obtener la ruta actual | <a href={typesUrl}><code>Ruta</code></a> |
|
||||
| `GET` | `/vcs` | Obtenga información de VCS para el proyecto actual | <a href={typesUrl}><code>VcsInfo</code></a> |
|
||||
|
||||
---
|
||||
|
||||
### Instancia
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------- | ---------------------------- | --------- |
|
||||
| `POST` | `/instance/dispose` | Eliminar la instancia actual | `boolean` |
|
||||
|
||||
@@ -124,81 +124,81 @@ El servidor opencode expone las siguientes API.
|
||||
|
||||
### Configuración
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------- | ------------------- | --------------------------------- | ---------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/config` | Obtener información de configuración | <a href={typesUrl}><code>Configuración</code></a> |
|
||||
| `PATCH` | `/config` | Actualizar configuración | <a href={typesUrl}><code>Configuración</code></a> |
|
||||
| `GET` | `/config/providers` | Lista de proveedores y modelos predeterminados | `{ providers: `<a href={typesUrl}>Proveedor[]</a>`, default: { [key: string]: string } }` |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------- | ------------------- | ---------------------------------------------- | ----------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/config` | Obtener información de configuración | <a href={typesUrl}><code>Configuración</code></a> |
|
||||
| `PATCH` | `/config` | Actualizar configuración | <a href={typesUrl}><code>Configuración</code></a> |
|
||||
| `GET` | `/config/providers` | Lista de proveedores y modelos predeterminados | `{ providers: `<a href={typesUrl}>Proveedor[]</a>`, default: { [key: string]: string } }` |
|
||||
|
||||
---
|
||||
|
||||
### Proveedor
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | -------------------------------- | ------------------------------------ | ----------------------------------------------------------------------------------- |
|
||||
| `GET` | `/provider` | Listar todos los proveedores | `{ all: `<a href={typesUrl}>Proveedor[]</a>`, default: {...}, connected: string[] }` |
|
||||
| `GET` | `/provider/auth` | Obtener métodos de autenticación de proveedores | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
|
||||
| `POST` | `/provider/{id}/oauth/authorize` | Autorizar a un proveedor usando OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
|
||||
| `POST` | `/provider/{id}/oauth/callback` | Manejar la devolución de llamada OAuth para un proveedor | `boolean` |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | -------------------------------- | -------------------------------------------------------- | ------------------------------------------------------------------------------------ |
|
||||
| `GET` | `/provider` | Listar todos los proveedores | `{ all: `<a href={typesUrl}>Proveedor[]</a>`, default: {...}, connected: string[] }` |
|
||||
| `GET` | `/provider/auth` | Obtener métodos de autenticación de proveedores | `{ [providerID: string]: `<a href={typesUrl}>ProviderAuthMethod[]</a>` }` |
|
||||
| `POST` | `/provider/{id}/oauth/authorize` | Autorizar a un proveedor usando OAuth | <a href={typesUrl}><code>ProviderAuthAuthorization</code></a> |
|
||||
| `POST` | `/provider/{id}/oauth/callback` | Manejar la devolución de llamada OAuth para un proveedor | `boolean` |
|
||||
|
||||
---
|
||||
|
||||
### Sesiones
|
||||
|
||||
| Método | Camino | Descripción | Notas |
|
||||
| -------- | ---------------------------------------- | ------------------------------------- | ---------------------------------------------------------------------------------- |
|
||||
| `GET` | `/session` | Listar todas las sesiones | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `POST` | `/session` | Crear una nueva sesión | cuerpo: `{ parentID?, title? }`, devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `GET` | `/session/status` | Obtener el estado de la sesión para todas las sesiones | Devuelve `{ [sessionID: string]: `<a href={typesUrl}>Estado de sesión</a>` }` |
|
||||
| `GET` | `/session/:id` | Obtener detalles de la sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `DELETE` | `/session/:id` | Eliminar una sesión y todos sus datos | Devuelve `boolean` |
|
||||
| `PATCH` | `/session/:id` | Actualizar propiedades de sesión | cuerpo: `{ title? }`, devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `GET` | `/session/:id/children` | Obtener las sesiones secundarias de una sesión | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `GET` | `/session/:id/todo` | Obtener la lista de tareas pendientes para una sesión | Devuelve <a href={typesUrl}><code>Todo[]</code></a> |
|
||||
| `POST` | `/session/:id/init` | Analizar aplicación y crear `AGENTS.md` | cuerpo: `{ messageID, providerID, modelID }`, devuelve `boolean` |
|
||||
| `POST` | `/session/:id/fork` | Bifurca una sesión existente en un mensaje | cuerpo: `{ messageID? }`, devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `POST` | `/session/:id/abort` | Cancelar una sesión en ejecución | Devuelve `boolean` |
|
||||
| `POST` | `/session/:id/share` | Compartir una sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `DELETE` | `/session/:id/share` | Dejar de compartir una sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `GET` | `/session/:id/diff` | Obtenga la diferencia para esta sesión | consulta: `messageID?`, devuelve <a href={typesUrl}><code>FileDiff[]</code></a> |
|
||||
| `POST` | `/session/:id/summarize` | Resumir la sesión | cuerpo: `{ providerID, modelID }`, devuelve `boolean` |
|
||||
| `POST` | `/session/:id/revert` | Revertir un mensaje | cuerpo: `{ messageID, partID? }`, devuelve `boolean` |
|
||||
| `POST` | `/session/:id/unrevert` | Restaurar todos los mensajes revertidos | Devuelve `boolean` |
|
||||
| `POST` | `/session/:id/permissions/:permissionID` | Responder a una solicitud de permiso | cuerpo: `{ response, remember? }`, devuelve `boolean` |
|
||||
| Método | Camino | Descripción | Notas |
|
||||
| -------- | ---------------------------------------- | ------------------------------------------------------ | ------------------------------------------------------------------------------------ |
|
||||
| `GET` | `/session` | Listar todas las sesiones | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `POST` | `/session` | Crear una nueva sesión | cuerpo: `{ parentID?, title? }`, devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `GET` | `/session/status` | Obtener el estado de la sesión para todas las sesiones | Devuelve `{ [sessionID: string]: `<a href={typesUrl}>Estado de sesión</a>` }` |
|
||||
| `GET` | `/session/:id` | Obtener detalles de la sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `DELETE` | `/session/:id` | Eliminar una sesión y todos sus datos | Devuelve `boolean` |
|
||||
| `PATCH` | `/session/:id` | Actualizar propiedades de sesión | cuerpo: `{ title? }`, devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `GET` | `/session/:id/children` | Obtener las sesiones secundarias de una sesión | Devuelve <a href={typesUrl}><code>Sesión[]</code></a> |
|
||||
| `GET` | `/session/:id/todo` | Obtener la lista de tareas pendientes para una sesión | Devuelve <a href={typesUrl}><code>Todo[]</code></a> |
|
||||
| `POST` | `/session/:id/init` | Analizar aplicación y crear `AGENTS.md` | cuerpo: `{ messageID, providerID, modelID }`, devuelve `boolean` |
|
||||
| `POST` | `/session/:id/fork` | Bifurca una sesión existente en un mensaje | cuerpo: `{ messageID? }`, devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `POST` | `/session/:id/abort` | Cancelar una sesión en ejecución | Devuelve `boolean` |
|
||||
| `POST` | `/session/:id/share` | Compartir una sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `DELETE` | `/session/:id/share` | Dejar de compartir una sesión | Devuelve <a href={typesUrl}><code>Sesión</code></a> |
|
||||
| `GET` | `/session/:id/diff` | Obtenga la diferencia para esta sesión | consulta: `messageID?`, devuelve <a href={typesUrl}><code>FileDiff[]</code></a> |
|
||||
| `POST` | `/session/:id/summarize` | Resumir la sesión | cuerpo: `{ providerID, modelID }`, devuelve `boolean` |
|
||||
| `POST` | `/session/:id/revert` | Revertir un mensaje | cuerpo: `{ messageID, partID? }`, devuelve `boolean` |
|
||||
| `POST` | `/session/:id/unrevert` | Restaurar todos los mensajes revertidos | Devuelve `boolean` |
|
||||
| `POST` | `/session/:id/permissions/:permissionID` | Responder a una solicitud de permiso | cuerpo: `{ response, remember? }`, devuelve `boolean` |
|
||||
|
||||
---
|
||||
|
||||
### Mensajes
|
||||
|
||||
| Método | Camino | Descripción | Notas |
|
||||
| ------ | --------------------------------- | --------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/session/:id/message` | Listar mensajes en una sesión | consulta: `limit?`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}[]` |
|
||||
| `POST` | `/session/:id/message` | Envía un mensaje y espera respuesta | cuerpo: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| `GET` | `/session/:id/message/:messageID` | Obtener detalles del mensaje | Devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| `POST` | `/session/:id/prompt_async` | Enviar un mensaje de forma asincrónica (sin espera) | cuerpo: igual que `/session/:id/message`, devuelve `204 No Content` |
|
||||
| `POST` | `/session/:id/command` | Ejecutar un comando de barra diagonal | cuerpo: `{ messageID?, agent?, model?, command, arguments }`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| `POST` | `/session/:id/shell` | Ejecute un comando de shell | cuerpo: `{ agent, model?, command }`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| Método | Camino | Descripción | Notas |
|
||||
| ------ | --------------------------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/session/:id/message` | Listar mensajes en una sesión | consulta: `limit?`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}[]` |
|
||||
| `POST` | `/session/:id/message` | Envía un mensaje y espera respuesta | cuerpo: `{ messageID?, model?, agent?, noReply?, system?, tools?, parts }`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| `GET` | `/session/:id/message/:messageID` | Obtener detalles del mensaje | Devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| `POST` | `/session/:id/prompt_async` | Enviar un mensaje de forma asincrónica (sin espera) | cuerpo: igual que `/session/:id/message`, devuelve `204 No Content` |
|
||||
| `POST` | `/session/:id/command` | Ejecutar un comando de barra diagonal | cuerpo: `{ messageID?, agent?, model?, command, arguments }`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
| `POST` | `/session/:id/shell` | Ejecute un comando de shell | cuerpo: `{ agent, model?, command }`, devuelve `{ info: `<a href={typesUrl}>Mensaje</a>`, parts: `<a href={typesUrl}>Parte[]</a>`}` |
|
||||
|
||||
---
|
||||
|
||||
### Comandos
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ---------- | ----------------- | --------------------------------------------- |
|
||||
| `GET` | `/command` | Listar todos los comandos | <a href={typesUrl}><code>Comando[]</code></a> |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ---------- | ------------------------- | --------------------------------------------- |
|
||||
| `GET` | `/command` | Listar todos los comandos | <a href={typesUrl}><code>Comando[]</code></a> |
|
||||
|
||||
---
|
||||
|
||||
### Archivos
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------------ | ---------------------------------- | ------------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/find?pattern=<pat>` | Buscar texto en archivos | Matriz de objetos coincidentes con `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
|
||||
| `GET` | `/find/file?query=<q>` | Buscar archivos y directorios por nombre | `string[]` (caminos) |
|
||||
| `GET` | `/find/symbol?query=<q>` | Buscar símbolos del espacio de trabajo | <a href={typesUrl}><code>Símbolo[]</code></a> |
|
||||
| `GET` | `/file?path=<path>` | Listar archivos y directorios | <a href={typesUrl}><code>FileNode[]</code></a> |
|
||||
| `GET` | `/file/content?path=<p>` | Leer un archivo | <a href={typesUrl}><code>Contenido del archivo</code></a> |
|
||||
| `GET` | `/file/status` | Obtener el estado de los archivos rastreados | <a href={typesUrl}><code>Archivo[]</code></a> |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------------ | -------------------------------------------- | -------------------------------------------------------------------------------------------------- |
|
||||
| `GET` | `/find?pattern=<pat>` | Buscar texto en archivos | Matriz de objetos coincidentes con `path`, `lines`, `line_number`, `absolute_offset`, `submatches` |
|
||||
| `GET` | `/find/file?query=<q>` | Buscar archivos y directorios por nombre | `string[]` (caminos) |
|
||||
| `GET` | `/find/symbol?query=<q>` | Buscar símbolos del espacio de trabajo | <a href={typesUrl}><code>Símbolo[]</code></a> |
|
||||
| `GET` | `/file?path=<path>` | Listar archivos y directorios | <a href={typesUrl}><code>FileNode[]</code></a> |
|
||||
| `GET` | `/file/content?path=<p>` | Leer un archivo | <a href={typesUrl}><code>Contenido del archivo</code></a> |
|
||||
| `GET` | `/file/status` | Obtener el estado de los archivos rastreados | <a href={typesUrl}><code>Archivo[]</code></a> |
|
||||
|
||||
#### `/find/file` parámetros de consulta
|
||||
|
||||
@@ -212,76 +212,76 @@ El servidor opencode expone las siguientes API.
|
||||
|
||||
### Herramientas (experimentales)
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------------------------------- | ---------------------------------------- | -------------------------------------------- |
|
||||
| `GET` | `/experimental/tool/ids` | Listar todos los ID de herramientas | <a href={typesUrl}><code>ID de herramientas</code></a> |
|
||||
| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Listar herramientas con esquemas JSON para un modelo | <a href={typesUrl}><code>Lista de herramientas</code></a> |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------------------------------------- | ---------------------------------------------------- | --------------------------------------------------------- |
|
||||
| `GET` | `/experimental/tool/ids` | Listar todos los ID de herramientas | <a href={typesUrl}><code>ID de herramientas</code></a> |
|
||||
| `GET` | `/experimental/tool?provider=<p>&model=<m>` | Listar herramientas con esquemas JSON para un modelo | <a href={typesUrl}><code>Lista de herramientas</code></a> |
|
||||
|
||||
---
|
||||
|
||||
### LSP, formateadores y MCP
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------ | -------------------------- | -------------------------------------------------------- |
|
||||
| `GET` | `/lsp` | Obtener el estado del servidor LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> |
|
||||
| `GET` | `/formatter` | Obtener estado del formateador | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
|
||||
| `GET` | `/mcp` | Obtener el estado del servidor MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
|
||||
| `POST` | `/mcp` | Agregue el servidor MCP dinámicamente | cuerpo: `{ name, config }`, devuelve MCP objeto de estado |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------------ | ------------------------------------- | --------------------------------------------------------- |
|
||||
| `GET` | `/lsp` | Obtener el estado del servidor LSP | <a href={typesUrl}><code>LSPStatus[]</code></a> |
|
||||
| `GET` | `/formatter` | Obtener estado del formateador | <a href={typesUrl}><code>FormatterStatus[]</code></a> |
|
||||
| `GET` | `/mcp` | Obtener el estado del servidor MCP | `{ [name: string]: `<a href={typesUrl}>MCPStatus</a>` }` |
|
||||
| `POST` | `/mcp` | Agregue el servidor MCP dinámicamente | cuerpo: `{ name, config }`, devuelve MCP objeto de estado |
|
||||
|
||||
---
|
||||
|
||||
### Agentes
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | -------- | ------------------------- | ------------------------------------------- |
|
||||
| `GET` | `/agent` | Listar todos los agentes disponibles | <a href={typesUrl}><code>Agente[]</code></a> |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | -------- | ------------------------------------ | -------------------------------------------- |
|
||||
| `GET` | `/agent` | Listar todos los agentes disponibles | <a href={typesUrl}><code>Agente[]</code></a> |
|
||||
|
||||
---
|
||||
|
||||
### Registro
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------ | ------------------------------------------------------------ | --------- |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------ | --------------------------------------------------------------------------- | --------- |
|
||||
| `POST` | `/log` | Escribir entrada de registro. Cuerpo: `{ service, level, message, extra? }` | `boolean` |
|
||||
|
||||
---
|
||||
|
||||
### TUI
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ----------------------- | ------------------------------------------- | ---------------------- |
|
||||
| `POST` | `/tui/append-prompt` | Agregar texto al mensaje | `boolean` |
|
||||
| `POST` | `/tui/open-help` | Abra el cuadro de diálogo de ayuda | `boolean` |
|
||||
| `POST` | `/tui/open-sessions` | Abrir el selector de sesiones | `boolean` |
|
||||
| `POST` | `/tui/open-themes` | Abra el selector de temas | `boolean` |
|
||||
| `POST` | `/tui/open-models` | Abrir el selector de modelo | `boolean` |
|
||||
| `POST` | `/tui/submit-prompt` | Enviar el mensaje actual | `boolean` |
|
||||
| `POST` | `/tui/clear-prompt` | Borrar el mensaje | `boolean` |
|
||||
| `POST` | `/tui/execute-command` | Ejecutar un comando (`{ command }`) | `boolean` |
|
||||
| `POST` | `/tui/show-toast` | Mostrar brindis (`{ title?, message, variant }`) | `boolean` |
|
||||
| `GET` | `/tui/control/next` | Espere la próxima solicitud de control | Objeto de solicitud de control |
|
||||
| `POST` | `/tui/control/response` | Responder a una solicitud de control (`{ body }`) | `boolean` |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ----------------------- | ------------------------------------------------- | ------------------------------ |
|
||||
| `POST` | `/tui/append-prompt` | Agregar texto al mensaje | `boolean` |
|
||||
| `POST` | `/tui/open-help` | Abra el cuadro de diálogo de ayuda | `boolean` |
|
||||
| `POST` | `/tui/open-sessions` | Abrir el selector de sesiones | `boolean` |
|
||||
| `POST` | `/tui/open-themes` | Abra el selector de temas | `boolean` |
|
||||
| `POST` | `/tui/open-models` | Abrir el selector de modelo | `boolean` |
|
||||
| `POST` | `/tui/submit-prompt` | Enviar el mensaje actual | `boolean` |
|
||||
| `POST` | `/tui/clear-prompt` | Borrar el mensaje | `boolean` |
|
||||
| `POST` | `/tui/execute-command` | Ejecutar un comando (`{ command }`) | `boolean` |
|
||||
| `POST` | `/tui/show-toast` | Mostrar brindis (`{ title?, message, variant }`) | `boolean` |
|
||||
| `GET` | `/tui/control/next` | Espere la próxima solicitud de control | Objeto de solicitud de control |
|
||||
| `POST` | `/tui/control/response` | Responder a una solicitud de control (`{ body }`) | `boolean` |
|
||||
|
||||
---
|
||||
|
||||
### Autenticación
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ----------- | --------------------------------------------------------------- | --------- |
|
||||
| `PUT` | `/auth/:id` | Establecer credenciales de autenticación. El cuerpo debe coincidir con el esquema del proveedor | `boolean` |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ----------- | ----------------------------------------------------------------------------------------------- | --------- |
|
||||
| `PUT` | `/auth/:id` | Establecer credenciales de autenticación. El cuerpo debe coincidir con el esquema del proveedor | `boolean` |
|
||||
|
||||
---
|
||||
|
||||
### Eventos
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | -------- | ----------------------------------------------------------------------------- | ------------------------- |
|
||||
| `GET` | `/event` | Transmisión de eventos enviados por el servidor. El primer evento es `server.connected`, luego eventos de bus | Transmisión de eventos enviados por el servidor |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | -------- | ------------------------------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
||||
| `GET` | `/event` | Transmisión de eventos enviados por el servidor. El primer evento es `server.connected`, luego eventos de bus | Transmisión de eventos enviados por el servidor |
|
||||
|
||||
---
|
||||
|
||||
### Documentos
|
||||
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------ | ------------------------- | --------------------------- |
|
||||
| `GET` | `/doc` | Especificación OpenAPI 3.1 | Página HTML con especificación OpenAPI |
|
||||
| Método | Camino | Descripción | Respuesta |
|
||||
| ------ | ------ | -------------------------- | -------------------------------------- |
|
||||
| `GET` | `/doc` | Especificación OpenAPI 3.1 | Página HTML con especificación OpenAPI |
|
||||
|
||||
@@ -139,11 +139,11 @@ Controle a qué agentes de habilidades pueden acceder utilizando permisos basado
|
||||
}
|
||||
```
|
||||
|
||||
| Permiso | Comportamiento |
|
||||
| ---------- | ----------------------------------------- |
|
||||
| `allow` | La habilidad se carga inmediatamente |
|
||||
| `deny` | Habilidad oculta al agente, acceso rechazado |
|
||||
| `ask` | Se solicita al usuario aprobación antes de cargar |
|
||||
| Permiso | Comportamiento |
|
||||
| ------- | ------------------------------------------------- |
|
||||
| `allow` | La habilidad se carga inmediatamente |
|
||||
| `deny` | Habilidad oculta al agente, acceso rechazado |
|
||||
| `ask` | Se solicita al usuario aprobación antes de cargar |
|
||||
|
||||
Los patrones admiten comodines: `internal-*` coincide con `internal-docs`, `internal-tools`, etc.
|
||||
|
||||
|
||||
@@ -25,19 +25,19 @@ Sin soporte de color verdadero, los temas pueden aparecer con una precisión de
|
||||
|
||||
OpenCode viene con varios temas integrados.
|
||||
|
||||
| Nombre | Descripción |
|
||||
| ---------------------- | ---------------------------------------------------------------------------- |
|
||||
| `system` | Se adapta al color de fondo de tu terminal |
|
||||
| `tokyonight` | Basado en el tema [Tokyonight](https://github.com/folke/tokyonight.nvim) |
|
||||
| `everforest` | Basado en el tema [Everforest](https://github.com/sainnhe/everforest) |
|
||||
| `ayu` | Basado en el tema oscuro de [Ayu](https://github.com/ayu-theme) |
|
||||
| `catppuccin` | Basado en el tema [Catppuccin](https://github.com/catppuccin) |
|
||||
| `catppuccin-macchiato` | Basado en el tema [Catppuccin](https://github.com/catppuccin) |
|
||||
| `gruvbox` | Basado en el tema [Gruvbox](https://github.com/morhetz/gruvbox) |
|
||||
| `kanagawa` | Basado en el tema [Kanagawa](https://github.com/rebelot/kanagawa.nvim) |
|
||||
| `nord` | Basado en el tema [Nord](https://github.com/nordtheme/nord) |
|
||||
| `matrix` | Verde estilo hacker sobre el tema negro |
|
||||
| `one-dark` | Basado en el tema oscuro [Atom One](https://github.com/Th3Whit3Wolf/one-nvim) |
|
||||
| Nombre | Descripción |
|
||||
| ---------------------- | ----------------------------------------------------------------------------- |
|
||||
| `system` | Se adapta al color de fondo de tu terminal |
|
||||
| `tokyonight` | Basado en el tema [Tokyonight](https://github.com/folke/tokyonight.nvim) |
|
||||
| `everforest` | Basado en el tema [Everforest](https://github.com/sainnhe/everforest) |
|
||||
| `ayu` | Basado en el tema oscuro de [Ayu](https://github.com/ayu-theme) |
|
||||
| `catppuccin` | Basado en el tema [Catppuccin](https://github.com/catppuccin) |
|
||||
| `catppuccin-macchiato` | Basado en el tema [Catppuccin](https://github.com/catppuccin) |
|
||||
| `gruvbox` | Basado en el tema [Gruvbox](https://github.com/morhetz/gruvbox) |
|
||||
| `kanagawa` | Basado en el tema [Kanagawa](https://github.com/rebelot/kanagawa.nvim) |
|
||||
| `nord` | Basado en el tema [Nord](https://github.com/nordtheme/nord) |
|
||||
| `matrix` | Verde estilo hacker sobre el tema negro |
|
||||
| `one-dark` | Basado en el tema oscuro [Atom One](https://github.com/Th3Whit3Wolf/one-nvim) |
|
||||
|
||||
Y más, constantemente agregamos nuevos temas.
|
||||
|
||||
|
||||
@@ -62,37 +62,37 @@ Se le cobra por solicitud y puede agregar créditos a su cuenta.
|
||||
|
||||
También puede acceder a nuestros modelos a través de los siguientes puntos finales API.
|
||||
|
||||
| Modelo | Identificación del modelo | Punto final | Paquete SDK de IA |
|
||||
| ------------------ | ------------------ | -------------------------------------------------- | --------------------------- |
|
||||
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Códice GPT 5.2 | gpt-5.2-códice | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Códice GPT 5.1 | gpt-5.1-códice | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5.1 Códice Máximo | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5.1 Códice Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Códice GPT 5 | gpt-5-códice | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT5Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Claude Soneto 4.5 | soneto-claude-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Soneto 4 | claude-soneto-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Géminis 3 Pro | geminis-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
|
||||
| Géminis 3 Flash | geminis-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
|
||||
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| MiniMax M2.1 Gratis | minimax-m2.1-libre | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| GLM 4.7 Gratis | glm-4.7-libre | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Kimi K2.5 Gratis | kimi-k2.5-libre | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Pensamiento Kimi K2 | kimi-k2-pensando | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Codificador Qwen3 480B | codificador qwen3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Gran pepinillo | gran pepinillo | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Modelo | Identificación del modelo | Punto final | Paquete SDK de IA |
|
||||
| ---------------------- | ------------------------- | -------------------------------------------------- | --------------------------- |
|
||||
| GPT 5.2 | gpt-5.2 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Códice GPT 5.2 | gpt-5.2-códice | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5.1 | gpt-5.1 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Códice GPT 5.1 | gpt-5.1-códice | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5.1 Códice Máximo | gpt-5.1-codex-max | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5.1 Códice Mini | gpt-5.1-codex-mini | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT 5 | gpt-5 | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Códice GPT 5 | gpt-5-códice | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| GPT5Nano | gpt-5-nano | `https://opencode.ai/zen/v1/responses` | `@ai-sdk/openai` |
|
||||
| Claude Soneto 4.5 | soneto-claude-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Soneto 4 | claude-soneto-4 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Haiku 4.5 | claude-haiku-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Haiku 3.5 | claude-3-5-haiku | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Opus 4.6 | claude-opus-4-6 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Opus 4.5 | claude-opus-4-5 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Claude Opus 4.1 | claude-opus-4-1 | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| Géminis 3 Pro | geminis-3-pro | `https://opencode.ai/zen/v1/models/gemini-3-pro` | `@ai-sdk/google` |
|
||||
| Géminis 3 Flash | geminis-3-flash | `https://opencode.ai/zen/v1/models/gemini-3-flash` | `@ai-sdk/google` |
|
||||
| MiniMax M2.1 | minimax-m2.1 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| MiniMax M2.1 Gratis | minimax-m2.1-libre | `https://opencode.ai/zen/v1/messages` | `@ai-sdk/anthropic` |
|
||||
| GLM 4.7 | glm-4.7 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| GLM 4.7 Gratis | glm-4.7-libre | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| GLM 4.6 | glm-4.6 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Kimi K2.5 | kimi-k2.5 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Kimi K2.5 Gratis | kimi-k2.5-libre | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Pensamiento Kimi K2 | kimi-k2-pensando | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Kimi K2 | kimi-k2 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Codificador Qwen3 480B | codificador qwen3 | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
| Gran pepinillo | gran pepinillo | `https://opencode.ai/zen/v1/chat/completions` | `@ai-sdk/openai-compatible` |
|
||||
|
||||
El [ID del modelo](/docs/config/#models) en su configuración OpenCode
|
||||
utiliza el formato `opencode/<model-id>`. Por ejemplo, para el Codex GPT 5.2, deberías
|
||||
@@ -114,41 +114,41 @@ https://opencode.ai/zen/v1/models
|
||||
|
||||
Apoyamos un modelo de pago por uso. A continuación se muestran los precios **por 1 millón de tokens**.
|
||||
|
||||
| Modelo | Entrada | Salida | Lectura en caché | Escritura en caché |
|
||||
| --------------------------------- | ------ | ------ | ----------- | ------------ |
|
||||
| Gran pepinillo | Gratis | Gratis | Gratis | - |
|
||||
| MiniMax M2.1 Gratis | Gratis | Gratis | Gratis | - |
|
||||
| MiniMax M2.1 | $0,30 | $1,20 | $0,10 | - |
|
||||
| GLM 4.7 Gratis | Gratis | Gratis | Gratis | - |
|
||||
| GLM 4.7 | $0,60 | $2.20 | $0,10 | - |
|
||||
| GLM 4.6 | $0,60 | $2.20 | $0,10 | - |
|
||||
| Kimi K2.5 Gratis | Gratis | Gratis | Gratis | - |
|
||||
| Kimi K2.5 | $0,60 | $3.00 | $0,08 | - |
|
||||
| Pensamiento Kimi K2 | $0,40 | $2.50 | - | - |
|
||||
| Kimi K2 | $0,40 | $2.50 | - | - |
|
||||
| Codificador Qwen3 480B | $0,45 | $1,50 | - | - |
|
||||
| Claude Sonnet 4.5 (≤ 200.000 tokens) | $3.00 | $15.00 | $0,30 | $3,75 |
|
||||
| Claude Sonnet 4.5 (> 200.000 tokens) | $6.00 | $22,50 | $0,60 | $7.50 |
|
||||
| Claude Soneto 4 (≤ 200.000 fichas) | $3.00 | $15.00 | $0,30 | $3,75 |
|
||||
| Claude Sonnet 4 (> 200.000 fichas) | $6.00 | $22,50 | $0,60 | $7.50 |
|
||||
| Claude Haiku 4.5 | $1.00 | $5.00 | $0,10 | $1,25 |
|
||||
| Claude Haiku 3.5 | $0,80 | $4.00 | $0,08 | $1.00 |
|
||||
| Claude Opus 4.6 (≤ 200.000 tokens) | $5.00 | $25.00 | $0,50 | $6.25 |
|
||||
| Claude Opus 4.6 (> 200K fichas) | $10.00 | $37,50 | $1.00 | $12,50 |
|
||||
| Claude Opus 4.5 | $5.00 | $25.00 | $0,50 | $6.25 |
|
||||
| Claude Opus 4.1 | $15.00 | $75.00 | $1,50 | $18,75 |
|
||||
| Géminis 3 Pro (≤ 200.000 tokens) | $2.00 | $12.00 | $0,20 | - |
|
||||
| Géminis 3 Pro (> 200.000 tokens) | $4.00 | $18.00 | $0,40 | - |
|
||||
| Géminis 3 Flash | $0,50 | $3.00 | $0,05 | - |
|
||||
| GPT 5.2 | $1,75 | $14.00 | $0,175 | - |
|
||||
| Códice GPT 5.2 | $1,75 | $14.00 | $0,175 | - |
|
||||
| GPT 5.1 | $1.07 | $8,50 | $0,107 | - |
|
||||
| Códice GPT 5.1 | $1.07 | $8,50 | $0,107 | - |
|
||||
| GPT 5.1 Códice Máximo | $1,25 | $10.00 | $0,125 | - |
|
||||
| GPT 5.1 Códice Mini | $0,25 | $2.00 | $0,025 | - |
|
||||
| GPT 5 | $1.07 | $8,50 | $0,107 | - |
|
||||
| Códice GPT 5 | $1.07 | $8,50 | $0,107 | - |
|
||||
| GPT5Nano | Gratis | Gratis | Gratis | - |
|
||||
| Modelo | Entrada | Salida | Lectura en caché | Escritura en caché |
|
||||
| ------------------------------------ | ------- | ------ | ---------------- | ------------------ |
|
||||
| Gran pepinillo | Gratis | Gratis | Gratis | - |
|
||||
| MiniMax M2.1 Gratis | Gratis | Gratis | Gratis | - |
|
||||
| MiniMax M2.1 | $0,30 | $1,20 | $0,10 | - |
|
||||
| GLM 4.7 Gratis | Gratis | Gratis | Gratis | - |
|
||||
| GLM 4.7 | $0,60 | $2.20 | $0,10 | - |
|
||||
| GLM 4.6 | $0,60 | $2.20 | $0,10 | - |
|
||||
| Kimi K2.5 Gratis | Gratis | Gratis | Gratis | - |
|
||||
| Kimi K2.5 | $0,60 | $3.00 | $0,08 | - |
|
||||
| Pensamiento Kimi K2 | $0,40 | $2.50 | - | - |
|
||||
| Kimi K2 | $0,40 | $2.50 | - | - |
|
||||
| Codificador Qwen3 480B | $0,45 | $1,50 | - | - |
|
||||
| Claude Sonnet 4.5 (≤ 200.000 tokens) | $3.00 | $15.00 | $0,30 | $3,75 |
|
||||
| Claude Sonnet 4.5 (> 200.000 tokens) | $6.00 | $22,50 | $0,60 | $7.50 |
|
||||
| Claude Soneto 4 (≤ 200.000 fichas) | $3.00 | $15.00 | $0,30 | $3,75 |
|
||||
| Claude Sonnet 4 (> 200.000 fichas) | $6.00 | $22,50 | $0,60 | $7.50 |
|
||||
| Claude Haiku 4.5 | $1.00 | $5.00 | $0,10 | $1,25 |
|
||||
| Claude Haiku 3.5 | $0,80 | $4.00 | $0,08 | $1.00 |
|
||||
| Claude Opus 4.6 (≤ 200.000 tokens) | $5.00 | $25.00 | $0,50 | $6.25 |
|
||||
| Claude Opus 4.6 (> 200K fichas) | $10.00 | $37,50 | $1.00 | $12,50 |
|
||||
| Claude Opus 4.5 | $5.00 | $25.00 | $0,50 | $6.25 |
|
||||
| Claude Opus 4.1 | $15.00 | $75.00 | $1,50 | $18,75 |
|
||||
| Géminis 3 Pro (≤ 200.000 tokens) | $2.00 | $12.00 | $0,20 | - |
|
||||
| Géminis 3 Pro (> 200.000 tokens) | $4.00 | $18.00 | $0,40 | - |
|
||||
| Géminis 3 Flash | $0,50 | $3.00 | $0,05 | - |
|
||||
| GPT 5.2 | $1,75 | $14.00 | $0,175 | - |
|
||||
| Códice GPT 5.2 | $1,75 | $14.00 | $0,175 | - |
|
||||
| GPT 5.1 | $1.07 | $8,50 | $0,107 | - |
|
||||
| Códice GPT 5.1 | $1.07 | $8,50 | $0,107 | - |
|
||||
| GPT 5.1 Códice Máximo | $1,25 | $10.00 | $0,125 | - |
|
||||
| GPT 5.1 Códice Mini | $0,25 | $2.00 | $0,025 | - |
|
||||
| GPT 5 | $1.07 | $8,50 | $0,107 | - |
|
||||
| Códice GPT 5 | $1.07 | $8,50 | $0,107 | - |
|
||||
| GPT5Nano | Gratis | Gratis | Gratis | - |
|
||||
|
||||
Es posible que notes _Claude Haiku 3.5_ en tu historial de uso. Este es un [modelo de bajo costo](/docs/config/#models) que se utiliza para generar los títulos de tus sesiones.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user