Herramientas de usuario

Herramientas del sitio


cursos:sdd:03-opencode

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
Próxima revisión
Revisión previa
cursos:sdd:03-opencode [2026/10/26 13:13] – [4. Skills] Lorenzocursos:sdd:03-opencode [2026/10/29 22:34] (actual) – [6. Comandos] claude
Línea 73: Línea 73:
 ===== 3. Agentes ===== ===== 3. Agentes =====
  
-Qué es un subagente y para qué sirve está en el [[cursos:sdd:02-skills-agentes-mcp#agentes|tema 2]]. Plan y Build ([[#plan_y_buildla_tecla_tab|sección 6]]) también son agentes: son los //principales//, los que hablan contigo. De serie, OpenCode trae dos subagentes:+Qué es un subagente y para qué sirve está en el [[cursos:sdd:07-agentes|tema de Agentes]]. Plan y Build ([[#modosplan_y_build|sección 5]]) también son agentes: son los //principales//, los que hablan contigo. De serie, OpenCode trae dos subagentes:
  
   * ''general'': para tareas de varios pasos que investigan y cambian código.   * ''general'': para tareas de varios pasos que investigan y cambian código.
Línea 99: Línea 99:
   * ''~/.config/opencode/agents/'' **en tu ordenador**: para compartirlo entre proyectos.   * ''~/.config/opencode/agents/'' **en tu ordenador**: para compartirlo entre proyectos.
  
-OpenCode también lee ''.claude/agents/'' y ''~/.claude/agents/'', así que un mismo subagente vale para las dos herramientas.+<note important>Un subagente de Claude Code **no vale en OpenCode**: OpenCode no lee ''.claude/agents/'' y su frontmatter es otro (''mode'', ''permission'', el modelo con proveedor). Las diferencias, en [[cursos:sdd:07-agentes#crear_un_agente_en_opencode|Agentes]].</note>
  
 ---- ----
Línea 105: Línea 105:
 ===== 4. Skills ===== ===== 4. Skills =====
  
-Qué es una //skill// y cómo se escribe está en el [[cursos:sdd:02-skills-agentes-mcp#skills|tema 2]].+Qué es una //skill// y cómo se escribe está en el [[cursos:sdd:08-skills|tema de Skills]].
  
 ==== Cómo se lanza ==== ==== Cómo se lanza ====
Línea 132: Línea 132:
 ---- ----
  
-===== 5. La caja de entrada: cuatro formas de escribir ===== +===== 5. Modos: Plan y Build =====
- +
-Todo lo que se hace con OpenCode se escribe en la misma caja. Lo que cambia es con qué empieza la línea. +
- +
-^ Empieza por ^ Qué hace ^ Ejemplo ^ +
-| //texto// | Le hablas al agente. Gasta tokens. | ''arregla el error de validación del formulario'' | +
-| ''@'' | Referencia un fichero **concreto**, o ejecuta un //skill// o un [[#agentes|subagente]]. Al escribir ''@'' se despliega la lista para elegir. | ''@src/api/login.ts revisa el manejo de errores'' | +
-| ''!'' | Ejecuta un comando de shell. **No llama al modelo**, pero la salida queda en la conversación y la ve en el siguiente prompt. | ''!npm test'' | +
-| ''/'' | Comando de OpenCode. Escribiendo solo ''/'' salen todos. | ''/compact'' | +
- +
- +
-<note tip>''Mayús+Enter'' inserta un salto de línea sin enviar el prompt. Las flechas ''↑'' / ''↓'' recorren los prompts que ya has mandado, para reenviarlos sin volver a escribirlos.</note> +
- +
----- +
- +
-===== 6. Plan y Build: la tecla Tab =====+
  
 OpenCode tiene **dos modos: Plan y Build**, y se cambia entre ellos con **''Tab''**. OpenCode tiene **dos modos: Plan y Build**, y se cambia entre ellos con **''Tab''**.
Línea 165: Línea 150:
 <note warning>Build no revisa los comandos que lanza: un ''rm'' o un ''git checkout'' los ejecuta igual que un ''ls''. Trabaja siempre con todo commiteado, para poder volver atrás.</note> <note warning>Build no revisa los comandos que lanza: un ''rm'' o un ''git checkout'' los ejecuta igual que un ''ls''. Trabaja siempre con todo commiteado, para poder volver atrás.</note>
  
-==== Mientras trabaja ====+----
  
-  * **''Esc Esc''** lo interrumpe en seco, esté pensando o a media tarea. +===== 6. Comandos =====
-  * Cuando va a hacer algo sensible, sale el **diálogo de permisos**: permitir una vez, permitir siempre o rechazar. +
-  * Puedes seguir escribiendo mientras trabaja: los mensajes se **encolan** y los recoge cuando llega a un punto en el que encajan.+
  
-<note important>''/undo'' quita el último mensaje de la conversación **y deshace los cambios que hizo en los ficheros**; ''/redo'' lo vuelve a aplicar. Solo sabe deshacer lo que hizo OpenCode: el deshacer de verdad sigue siendo ''git'', así que commitea a menudo y revisa el ''diff'' antes de seguir.</note>+==== /init ====
  
-----+Genera ''AGENTS.md'', las instrucciones fijas del proyecto: analiza el código y escribe en la raíz qué es el proyecto, su arquitectura y los comandos habituales (arrancar, probar, construir). Se lee solo en cada sesión. Es un punto de partida: revísalo y edítalo a mano.
  
-===== 7. AGENTS.md: las instrucciones fijas del proyecto =====+==== /new ====
  
-Sin él acabas repitiendo las mismas restricciones en cada prompt: «nada de TypeScript», «usa el gestor de paquetes del proyecto», «no añadas dependencias». Eso se escribe **una vez** en un fichero:+Empieza de cero: sesión nueva y contexto vacío. Se hace **cada vez que cambias de tarea**.
  
-<code bash> +==== /undo ====
-/init +
-</code>+
  
-''/init'' analiza el código y genera ''AGENTS.md'' en la raíz: qué es el proyecto, arquitectura, dependencias y comandos habituales (arrancar, probar, construir). Se lee automáticamente en cada sesión.+Deshace: quita el último mensaje de la conversación y deshace los cambios que hizo en los ficheros. ''/redo'' lo vuelve a aplicar.
  
-  * **Revísalo y edítalo a mano.** Lo que genera es un punto de partida, no la verdad. +<note important>Solo deshace lo que OpenCode **editó con sus herramientas**. Lo que hizo con un comando de shell (un ''rm'', un ''mv'', un ''git checkout'') no se recupera. El deshacer de verdad sigue siendo ''git''.</note>
-  * **Breve y concreto.** Ocupa contexto en todas las peticiones, así que cada línea de relleno se paga en cada prompt. +
-  * **Va al repositorio**, como cualquier otro fichero del proyecto. +
-  * Es un estándar abierto: el mismo ''AGENTS.md'' lo entienden otras herramientas.+
  
-Lo que escribas en el prompt **siempre manda** sobre lo que ponga en el fichero.+==== /compact ====
  
-----+Resume la conversación para liberar contexto y seguir en la misma sesión. 
 + 
 +<note warning>**No uses ''/compact''**: antes de llegar a él, usa ''/new''. El resumen lo hace el modelo, que no sabe qué es lo importante para ti, y sigues trabajando con un contexto peor sin darte cuenta.</note>
  
-===== 8. La sesión y el contexto =====+==== /copy ====
  
-Abajo, junto a la caja de entrada, hay un indicador con los tokens consumidos, el **porcentaje de contexto** ocupado y el coste. Sube siempre, porque en cada petición se manda de nuevo toda la conversación: el historial se paga entero cada vez.+Copia al portapapeles la última respuesta de OpenCode
  
-^ Comando ^ Cuándo ^ 
-| ''/compact'' | La conversación sigue siendo la buena pero el contexto va alto. Condensa el historial en un resumen (objetivo, restricciones, progreso) y sigues donde estabas. | 
-| ''/new'' | Cambias de tarea. Sesión nueva, contexto a cero. | 
  
-La regla práctica: **una sesión por tarea**. Arrastrar el historial de lo anterior no ayuda al modelo, lo despista y encima cuesta dinero.+==== /export ====
  
-Al cerrar OpenCode, la terminal imprime el nombre de la sesión y **el comando exacto para retomarla**. Cópialo y la recuperas entera, con su historial, al día siguiente.+Exporta toda la conversación (no solo la última respuesta) 
 + 
 + 
 +==== ESC ESC ==== 
 + 
 +No es un comando, son dos pulsaciones de tecla: paran al agente en seco, esté pensando o a media tarea. La primera solo avisa: hasta la segunda no se para. Lo que ya ha hecho se queda hecho: le dices qué cambiar y sigue.
  
 ---- ----
  
-===== 9. Plugins =====+===== 7. Plugins =====
  
 Los plugins añaden a OpenCode funciones que no trae de serie. Son paquetes de npm (o de Git) y se gestionan desde la terminal con ''opencode plugin''. Se guardan en la configuración global, así que valen para todos los proyectos. Los plugins añaden a OpenCode funciones que no trae de serie. Son paquetes de npm (o de Git) y se gestionan desde la terminal con ''opencode plugin''. Se guardan en la configuración global, así que valen para todos los proyectos.
Línea 217: Línea 199:
 </code> </code>
  
-  * Instalar un plugin. Por ejemplo, [[#quotacuanto_credito_te_queda|Quota]]:+  * Instalar un plugin. Por ejemplo, [[https://github.com/slkiser/opencode-quota|Quota]]:
 <code bash> <code bash>
 opencode plugin add @slkiser/opencode-quota opencode plugin add @slkiser/opencode-quota
Línea 239: Línea 221:
 ---- ----
  
-===== 10. Plugins a instalar ===== 
- 
-==== Quota: cuánto crédito te queda ==== 
- 
-[[https://github.com/slkiser/opencode-quota|opencode-quota]] muestra lo que te queda de cuota o de saldo en cada proveedor (OpenCode Zen, OpenRouter, GitHub Copilot, OpenAI...) y los tokens que has gastado, sin ocupar contexto. Una vez instalado y reiniciado OpenCode, **se ve directamente en pantalla**, en el panel lateral, sin escribir nada. Si quieres el detalle, tiene además sus comandos: 
- 
-^ Comando ^ Qué muestra ^ 
-| ''/quota'' | Lo que te queda en cada proveedor | 
-| ''/tokens_session'' | Tokens gastados en esta sesión | 
-| ''/tokens_monthly'' | Tokens de los últimos 30 días, con su coste | 
- 
----- 
- 
-===== 11. Chuleta ===== 
- 
-^ ^ ^ 
-| ''opencode'' | Arrancar en la carpeta actual | 
-| ''/'' | Ver todos los comandos | 
-| ''Ctrl+P'' | Paleta de comandos | 
-| ''Tab'' | Cambiar entre Plan y Build | 
-| ''Esc Esc'' | Parar al agente | 
-| ''Mayús+Enter'' | Salto de línea | 
-| ''↑'' / ''↓'' | Historial de prompts | 
-| ''@fichero'' / ''@skill'' / ''@agente'' | Referenciar un fichero, o ejecutar un //skill// o un subagente | 
-| ''!comando'' | Shell, sin llamar al modelo | 
-| ''/connect'' | Conectar un proveedor | 
-| ''/models'' | Cambiar de modelo | 
-| ''/init'' | Generar ''AGENTS.md'' | 
-| ''/compact'' | Condensar el contexto | 
-| ''/undo'' | Deshacer el último mensaje y sus cambios | 
-| ''/new'' | Sesión nueva | 
-| ''/quota'' | Crédito que te queda (plugin Quota) | 
- 
----- 
  
-===== 12. Enlaces =====+===== 8. Enlaces =====
  
   * [[https://opencode.ai|opencode.ai]]   * [[https://opencode.ai|opencode.ai]]
cursos/sdd/03-opencode.1793016832.txt.gz · Última modificación: por Lorenzo