Capitulo 20: Tips de Productividad

Por: Artiko
opencodeaiproductividadtipsconfiguracion

Capitulo 20: Tips de Productividad

< Volver al Indice del Tutorial

Este capítulo reúne consejos, configuraciones avanzadas y técnicas probadas para sacar el máximo provecho de OpenCode en tu flujo de trabajo diario. Cubriremos todos los comandos de la TUI, la gestión de sesiones múltiples, compaction automática, variables de entorno y las mejores prácticas que hemos recopilado a lo largo de los capítulos anteriores.

Comandos TUI Completos

La TUI de OpenCode tiene un conjunto completo de comandos slash que controlan todos los aspectos de la interfaz. Conocerlos todos es fundamental para ser productivo. Aquí está la referencia completa actualizada para v1.3.15:

ComandoAtajoFunción
/connectAñadir un nuevo proveedor de LLM
/compactCtrl+X CCompactar la sesión actual (resumir historial)
/detailsCtrl+X DAlternar vista de detalles de ejecución
/editorCtrl+X EAbrir editor externo para mensajes largos
/exitCtrl+X QSalir de OpenCode
/exportCtrl+X XExportar sesión actual a Markdown
/helpCtrl+X HMostrar ayuda con todos los comandos
/initCtrl+X IGenerar o configurar AGENTS.md
/modelsCtrl+X MListar y seleccionar modelos disponibles
/newCtrl+X NCrear nueva sesión
/redoCtrl+X RRehacer el último cambio deshecho
/sessionsCtrl+X LListar y alternar entre sesiones
/shareCtrl+X SCompartir la sesión actual
/themesCtrl+X TListar y cambiar temas visuales
/thinkingAlternar visibilidad de bloques de razonamiento
/undoCtrl+X UDeshacer el último mensaje del agente
/unshareDejar de compartir la sesión actual

Atajos que Debes Memorizar

Los atajos más usados en el día a día son:

Todos los atajos siguen el patrón Ctrl+X seguido de una letra mnemónica. Esto evita conflictos con los atajos del terminal y del propio editor de texto de la TUI.

El Comando /details

/details o Ctrl+X D es un comando que muchos usuarios desconocen pero que es extremadamente útil. Cuando está activado, muestra información detallada sobre cada paso del agente:

Activa /details cuando estés debuggeando por qué el agente tomó cierta decisión o cuando necesites optimizar el consumo de tokens.

El Comando /thinking

/thinking alterna la visibilidad de los bloques de razonamiento del modelo. Cuando está activo, puedes ver el proceso de pensamiento del LLM antes de que ejecute acciones. Esto es útil para:

En producción puedes desactivarlo para ahorrar espacio visual, pero durante el aprendizaje es valioso tenerlo activo.

Multi-Sesión

Una de las features más poderosas introducidas en v1.3.x es la capacidad de ejecutar múltiples agentes en paralelo en el mismo proyecto. Esto transforma radicalmente cómo trabajas con OpenCode.

Concepto

Tradicionalmente, trabajar con un agente AI era secuencial: le pedías una cosa, esperabas, le pedías otra. Con multi-sesión, puedes tener múltiples conversaciones activas simultáneamente:

flowchart TD
    P[Proyecto] --> S1[Sesión 1: Refactorizar módulo auth]
    P --> S2[Sesión 2: Escribir tests para API]
    P --> S3[Sesión 3: Actualizar documentación]
    
    S1 --> A1[Agente trabajando...]
    S2 --> A2[Agente trabajando...]
    S3 --> A3[Agente trabajando...]

Flujo de Trabajo Multi-Sesión

  1. Crea una sesión para cada tarea independiente con /new o Ctrl+X N
  2. Asigna nombres descriptivos a cada sesión para identificarlas
  3. Navega entre sesiones con /sessions o Ctrl+X L
  4. Cada sesión mantiene su propio contexto e historial
  5. Las sesiones pueden trabajar en paralelo sobre diferentes archivos

Cuándo Usar Multi-Sesión

Precauciones

Ten cuidado con sesiones que modifican los mismos archivos simultáneamente. OpenCode no tiene un sistema de bloqueo de archivos, así que dos sesiones podrían sobrescribir los cambios de la otra. La regla práctica es: cada sesión debe trabajar en archivos diferentes.

Compaction Automática

La compaction es el mecanismo que permite mantener conversaciones largas sin agotar la ventana de contexto del modelo. Entender cómo funciona y configurarla correctamente es clave para sesiones productivas.

Cómo Funciona

Cuando la conversación supera cierto umbral de tokens, OpenCode resume los mensajes anteriores conservando la información esencial. El resumen se convierte en un nuevo mensaje de sistema que reemplaza al historial completo.

flowchart LR
    A[Historial largo: 50 mensajes] --> B[Compaction]
    B --> C[Resumen: 1 mensaje + últimos 5 mensajes]
    C --> D[Contexto libre para continuar]

Configuración Avanzada

Configura la compaction automática en opencode.json:

{
  "compaction": {
    "auto": true,
    "prune": true,
    "reserved": 10000
  }
}
OpciónTipoDescripción
autobooleanActiva compaction automática cuando se acerca al límite
prunebooleanElimina mensajes antiguos después de compactar
reservednumberTokens reservados para el contexto de trabajo (no se comprimen)

La opción reserved es crítica. Define cuántos tokens se mantienen libres después de la compaction para que el agente tenga espacio suficiente para trabajar. Un valor de 10000 es razonable para la mayoría de modelos.

Compaction Manual

Usa /compact o Ctrl+X C cuando:

Compaction por Error 413

A partir de v1.2.16, cuando el servidor del proveedor responde con error 413 Request Entity Too Large, OpenCode compacta automáticamente el contexto y reintenta la petición. Esto significa que nunca perderás una solicitud porque el contexto era demasiado grande; OpenCode lo maneja transparentemente.

AGENTS.md

El archivo AGENTS.md es el mecanismo principal para darle contexto a OpenCode sobre tu proyecto. Es el equivalente a las instrucciones de sistema pero específicas para tu codebase.

Generar AGENTS.md

El comando /init o Ctrl+X I analiza tu proyecto y genera un AGENTS.md con información relevante:

Estructura Recomendada

Un buen AGENTS.md incluye:

# Reglas del Proyecto

## Stack
- Framework: Next.js 15 con App Router
- Lenguaje: TypeScript strict
- Estilos: Tailwind CSS
- Tests: Vitest + Testing Library
- Base de datos: PostgreSQL con Prisma

## Convenciones
- Commits en formato conventional commits
- Código en inglés, documentación en español
- Archivos máximo 150 líneas
- Componentes en PascalCase, hooks con prefijo use

## Comandos
- `npm run dev`: servidor de desarrollo
- `npm run test`: ejecutar tests
- `npm run lint`: verificar linting
- `npm run build`: build de producción

## Arquitectura
- `src/app/`: rutas y páginas (App Router)
- `src/components/`: componentes reutilizables
- `src/lib/`: lógica de negocio
- `src/services/`: integraciones externas

Directorio de Reglas

Para proyectos grandes, organiza las reglas en múltiples archivos dentro de .opencode/rules/:

.opencode/
  rules/
    general.md      # Reglas generales del proyecto
    testing.md      # Convenciones de testing
    deployment.md   # Reglas de deployment
    security.md     # Políticas de seguridad

OpenCode lee todos los archivos .md del directorio de reglas y los incluye como contexto del sistema. Esto es más mantenible que un solo archivo enorme y permite que diferentes miembros del equipo mantengan las secciones relevantes.

Variables de Entorno

OpenCode responde a varias variables de entorno que permiten personalizar su comportamiento sin modificar archivos de configuración:

VariableDescripciónEjemplo
OPENCODE_CONFIGRuta a archivo de configuración personalizado/home/user/.config/opencode.json
OPENCODE_CONFIG_CONTENTContenido JSON de configuración inline{"model": {"default": "gpt-4o"}}
EDITOREditor externo para /editornvim, code --wait, vim
OPENCODE_SERVER_PASSWORDPassword para autenticación del servidormi-password-seguro

OPENCODE_CONFIG

Útil cuando tienes configuraciones diferentes para diferentes entornos:

# Configuración para desarrollo
OPENCODE_CONFIG=~/.config/opencode-dev.json opencode

# Configuración para CI
OPENCODE_CONFIG=/etc/opencode-ci.json opencode run "ejecuta tests"

OPENCODE_CONFIG_CONTENT

Permite pasar toda la configuración como JSON inline, sin necesidad de un archivo. Especialmente útil en contenedores Docker o pipelines de CI donde no quieres montar archivos de configuración:

OPENCODE_CONFIG_CONTENT='{"model":{"default":"claude-sonnet-4-20250514"}}' opencode run "analiza el código"

EDITOR

Define qué editor se abre cuando usas /editor o Ctrl+X E. El editor debe soportar la flag de “esperar” para que OpenCode sepa cuándo terminaste de editar:

# Neovim
export EDITOR="nvim"

# VS Code (con --wait para que bloquee)
export EDITOR="code --wait"

# Vim
export EDITOR="vim"

# Nano
export EDITOR="nano"

Keybinds Personalizados

Personaliza los atajos de teclado en la sección tui de tu configuración:

{
  "tui": {
    "keybinds": {
      "submit": "ctrl+enter",
      "paste": "ctrl+v",
      "cancel": "escape"
    }
  }
}

Revisa los keybinds disponibles con /help dentro de la TUI para ver la lista completa de acciones configurables.

Themes

Cambia el tema visual de la TUI para adaptarlo a tu preferencia:

{
  "tui": {
    "theme": "catppuccin-mocha"
  }
}

Usa /themes o Ctrl+X T para ver todos los temas disponibles y probarlos en tiempo real. OpenCode incluye temas claros y oscuros, además de variantes populares como Catppuccin, Dracula y Nord.

Sessions Management

Las sesiones son el corazón del flujo de trabajo en OpenCode:

Las sesiones se persisten en SQLite, así que sobreviven a reinicios y puedes buscar entre ellas.

Nombrar Sesiones

Asigna nombres descriptivos a tus sesiones para encontrarlas fácilmente. En lugar de “Session 47”, usa nombres como “refactor-auth-module” o “fix-payment-bug”. Esto se vuelve crítico cuando trabajas con múltiples sesiones simultáneamente.

opencode stats

Monitorea tu consumo de tokens y costos acumulados:

opencode stats

Muestra un desglose por proveedor y modelo:

Esto es fundamental para controlar costos, especialmente cuando usas modelos premium en proyectos grandes. Revisa stats regularmente para identificar si algún patrón de uso está consumiendo tokens innecesariamente.

Watcher

OpenCode observa cambios en el filesystem para mantener el contexto actualizado. Configura patrones de ignore para evitar ruido:

{
  "watcher": {
    "ignore": [
      "node_modules",
      ".git",
      "dist",
      "build",
      ".next",
      "__pycache__",
      "*.log",
      ".turbo",
      "coverage"
    ]
  }
}

Sin esta configuración, el watcher podría reaccionar a miles de cambios cuando instalas dependencias o compilas el proyecto, consumiendo tokens innecesariamente al incluir archivos irrelevantes en el contexto.

Modo No Interactivo

Ejecuta OpenCode sin la TUI para scripts y pipelines:

opencode run "genera tests unitarios para src/utils/math.ts"

El comando run ejecuta el prompt, imprime el resultado y termina. Ideal para:

Puedes combinarlo con pipes para pasar contexto adicional:

cat error.log | opencode run "analiza este log y sugiere fixes"
git diff HEAD~1 | opencode run "revisa estos cambios y reporta problemas"

Checklist de Productividad

Configuraciones recomendadas para maximizar tu productividad con OpenCode:

Resumen del Tutorial

A lo largo de 20 capítulos cubrimos OpenCode desde la instalación básica hasta integraciones avanzadas:

OpenCode es una herramienta en constante evolución. Consulta la documentación oficial y el repositorio en GitHub para mantenerte al día con las nuevas funcionalidades. La comunidad es activa y constantemente surgen nuevos MCP servers, extensiones y configuraciones que amplían las capacidades del agente.

La clave para ser productivo con OpenCode no es memorizar cada feature, sino entender el modelo mental: OpenCode es un agente que opera sobre tu proyecto usando herramientas. Cuanto mejor le describas tu proyecto (via AGENTS.md), mejor será su trabajo. Cuantas más herramientas le des (via MCP), más capaz será. Y cuanto mejor entiendas los modos de ejecución (TUI, server, SDK), más escenarios podrás cubrir.


< Volver al Indice del Tutorial