Capitulo 20: Tips de Productividad
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:
| Comando | Atajo | Función |
|---|---|---|
/connect | — | Añadir un nuevo proveedor de LLM |
/compact | Ctrl+X C | Compactar la sesión actual (resumir historial) |
/details | Ctrl+X D | Alternar vista de detalles de ejecución |
/editor | Ctrl+X E | Abrir editor externo para mensajes largos |
/exit | Ctrl+X Q | Salir de OpenCode |
/export | Ctrl+X X | Exportar sesión actual a Markdown |
/help | Ctrl+X H | Mostrar ayuda con todos los comandos |
/init | Ctrl+X I | Generar o configurar AGENTS.md |
/models | Ctrl+X M | Listar y seleccionar modelos disponibles |
/new | Ctrl+X N | Crear nueva sesión |
/redo | Ctrl+X R | Rehacer el último cambio deshecho |
/sessions | Ctrl+X L | Listar y alternar entre sesiones |
/share | Ctrl+X S | Compartir la sesión actual |
/themes | Ctrl+X T | Listar y cambiar temas visuales |
/thinking | — | Alternar visibilidad de bloques de razonamiento |
/undo | Ctrl+X U | Deshacer el último mensaje del agente |
/unshare | — | Dejar de compartir la sesión actual |
Atajos que Debes Memorizar
Los atajos más usados en el día a día son:
Ctrl+X N: nueva sesión. Úsalo cuando cambias de tarea para mantener el contexto limpio.Ctrl+X C: compactar. Cuando la conversación se alarga y el agente empieza a ser lento.Ctrl+X U: undo. Si el agente hizo algo incorrecto, deshaz su último cambio.Ctrl+X L: sesiones. Para navegar entre tareas abiertas sin perder contexto.Ctrl+X E: editor. Cuando necesitas escribir un prompt largo o multi-línea, es más cómodo usar tu editor favorito.
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:
- Qué herramientas invocó y con qué parámetros
- Cuántos tokens consumió cada mensaje
- El tiempo de respuesta de cada llamada al LLM
- Los diagnósticos LSP recibidos después de cada edición
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:
- Entender por qué el agente eligió cierta aproximación
- Detectar cuando el agente está confundido o mal interpretó tu solicitud
- Aprender de las estrategias de resolución del modelo
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
- Crea una sesión para cada tarea independiente con
/newoCtrl+X N - Asigna nombres descriptivos a cada sesión para identificarlas
- Navega entre sesiones con
/sessionsoCtrl+X L - Cada sesión mantiene su propio contexto e historial
- Las sesiones pueden trabajar en paralelo sobre diferentes archivos
Cuándo Usar Multi-Sesión
- Tareas independientes: refactorizar un módulo mientras se escriben tests para otro
- Exploración vs implementación: una sesión para investigar y otra para implementar
- Revisión de código: una sesión revisa mientras otra implementa fixes
- Documentación: una sesión escribe docs mientras otra modifica código
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ón | Tipo | Descripción |
|---|---|---|
auto | boolean | Activa compaction automática cuando se acerca al límite |
prune | boolean | Elimina mensajes antiguos después de compactar |
reserved | number | Tokens 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:
- La conversación se siente lenta (muchos tokens en contexto)
- Cambiaste de tema y el historial anterior ya no es relevante
- Quieres “resetear” parcialmente la conversación sin perder el trabajo hecho
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:
- Stack tecnológico detectado
- Estructura de directorios
- Convenciones de código observadas
- Dependencias principales
- Comandos de build y test
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:
| Variable | Descripción | Ejemplo |
|---|---|---|
OPENCODE_CONFIG | Ruta a archivo de configuración personalizado | /home/user/.config/opencode.json |
OPENCODE_CONFIG_CONTENT | Contenido JSON de configuración inline | {"model": {"default": "gpt-4o"}} |
EDITOR | Editor externo para /editor | nvim, code --wait, vim |
OPENCODE_SERVER_PASSWORD | Password para autenticación del servidor | mi-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:
/sessionsoCtrl+X L: lista y alterna entre sesiones--continue: retoma la última sesión al iniciaropencode --continue--fork: crea una nueva sesión bifurcando la actual (conserva el historial)/shareoCtrl+X S: comparte la sesión generando un link/exportoCtrl+X X: exporta la sesión como archivo Markdown
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:
- Tokens de entrada consumidos
- Tokens de salida generados
- Costo total acumulado por modelo
- Histórico de uso por período
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:
- Scripts de CI/CD que necesitan análisis de código
- Pre-commit hooks que validan cambios
- Automatización con bash scripts
- Pipelines de procesamiento de código
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:
- Configurar AGENTS.md con las convenciones y stack del proyecto
- Definir comandos custom para tareas repetitivas (deploy, test, lint)
- Configurar formatters para auto-formateo después de cada edición
- Configurar LSP para diagnósticos en tiempo real
- Activar compaction automática para sesiones largas
- Usar Plan antes de Build para features complejas o multi-archivo
- Configurar MCP servers para las herramientas externas que usas
- Monitorear costos con
opencode statsregularmente - Configurar watcher ignore para evitar ruido de node_modules y build
- Nombrar sesiones para poder retomarlas fácilmente
- Configurar keybinds adaptados a tu flujo de trabajo
- Usar
--continuepara retomar sesiones entre reinicios - Configurar variables de entorno para diferentes contextos
- Memorizar atajos Ctrl+X para navegación rápida en la TUI
Resumen del Tutorial
A lo largo de 20 capítulos cubrimos OpenCode desde la instalación básica hasta integraciones avanzadas:
- Fundamentos: instalación, configuración, primeros pasos con la TUI
- Agentes: built-in, custom, herramientas del sistema y custom tools
- Proveedores: cloud, modelos locales con Ollama, Zen Mode
- Extensibilidad: MCP, Skills, comandos custom, plugins
- Integraciones: GitHub Actions, LSP, formatters, IDE, ACP
- Avanzado: SDK, server mode, sessions, tips de productividad
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.