True
Saltar a contenido

Coding Agentes: Commands en Claude (Codex y OpenCode)

Serie de artículos sobre funcionalidades para inyectar contexto en los coding agents:
  1. Funcionalidades de "inyección de contexto"
  2. Commands en Cursor
  3. Commands en Gemini
  4. Commands en Claude (Codex y OpenCode)

Claude describe la mayoría de estas funcionalidades cómo "extension layer: features you add to customize what Claude knows, connect it to external services, and automate workflows.".

Y los divide en:

  • CLAUDE.md adds persistent context Claude sees every session
  • Skills add reusable knowledge and invocable workflows. load on demand. Claude sees skill descriptions at session start, but the full content only loads when a skill is used. For skills you invoke manually, set disable-model-invocation: true to keep descriptions out of context until you need them.
  • MCP connects Claude to external services and tools
  • Hooks run outside the loop entirely as deterministic scripts
  • Plugins and marketplaces package and distribute these features

En este grupo también subagents y agent teams.

La documentación es más extensa que en Cursor y Gemini y en varios puntos comparan las funcionalidades entre sí para explicar que usar en cada caso, lo cual se agradece.

Commands

Lo primero que vemos es que Claude no tiene documentación concreta sobre commands pero hay varias referencias veladas.

Pero lo más relevante está en la página de skills. Ahí indican claramente que los custom commands han sido integrados en las skills.

Agent Skills

El Agent Skills es un formato desarrollado originalmente por Anthropic y publicado cómo estándar abierto.

La spec oficial dice que el name y description de un skill se cargan automáticamente al iniciar una sesión y se recomienda que se puedan "activar" bajo criterio del modelo o bajo invocación del usuario.

Cómo contábamos en un post anterior

A 50-100 tokens por skill, 20-40 skills es un 1% del contexto habitual de 200k.

Pero Claude Code tiene varias extensiones al estándar, entre ellos una propiedad disable-model-invocation: true en el frontmatter de SKILL.md que hace que sólo el usuario y no el modelo pueda invocar la skill y que no se cargue al inicio.

De este modo funciona cómo un substituto perfecto y más potente que los custom commands. Dejando a parte la sobre carga de tener que ir creando directorios todos con el mismo fichero SKILL.md dentro.

Otra de las extensiones dynamic context, da una función parecida a la de interpolación de los comandos de gemini.

Gemini no tiene soporte para esta funcionalidad aunque hay una issue abierta. Cursor soporta exactamente la misma propiedad.

OpenAI Codex CLI

En un vistazo rápido a la documentación de Codex no he encontrado referencias a custom commands.

La página de skills hace referencia a un parámetro allow_implicit_invocation con comportamiento similar a disable-model-invocation pero no indican si se carga al inicio o no.

No le he dado muchas más vueltas porqué no uso Codex, pero en este ticket hay algo de discusión sobre el tema y tickets abiertos relacionados.

OpenCode

OpenCode tiene documentación sobre custom commands. Pueden definirse en JSON o Markdown y tienen opciones de interpolación.

La documentación de skills hace referencia a alguna forma de evitar que carguen al inicio, pero sin experiencia en OpenCode me resulta confusa.

Cómo en Codex hay alguna issue abierta al respecto.

Conclusiones

La forma en que Cursor y Claude implementan las Skills, permite dejar de lado los custom commands y usar únicamente Skills.

OpenCode y Gemini le dan un poco más de magia a los commands con las opciones de interpolación pero:

  • No tengo claro que sea útil
  • No tengo claro que no se puede replicar con un workflow algo más complicado en la skill
  • Seguramente acaben implementando disable-model-invocation

Si el resto de Coding Agents siguen copiando a Claude, también acabarán metiendo interpolación en las skills.