Ultracode en Claude Code: qué es, cómo activarlo y cuándo usarlo
Ultracode no es un modelo ni un nivel de effort: es un ajuste de Claude Code que hace que Claude orqueste dynamic workflows con varios subagentes. Te explico cómo activarlo, qué requisitos pide, cuánto consume y cuándo vale la pena.
- Javi Mata
- Actualizado el
- 10 min de lectura
Tabla de contenido
- Qué es ultracode (y qué no es)
- Cómo funcionan los dynamic workflows
- Requisitos
- Formas de activarlo
- /effort ultracode
- claude --effort ultracode
- La llave ultracode en settings
- La palabra clave en un solo prompt
- Cómo apagarlo
- Costo y consumo de límites
- Guía de tamaño
- Cuándo sí conviene y cuándo no
- Ultracode vs. ultrathink vs. /deep-research
- Ejemplo práctico
- Información desactualizada que vas a encontrar
- Fuentes
Ultracode es un ajuste de Claude Code que le permite a Claude resolver con un dynamic workflow las tareas que lo ameriten: un script que reparte el trabajo entre muchos subagentes, verifica los resultados y te entrega una sola respuesta.
Nota: todo lo de este artículo está verificado contra la documentación oficial al 15 de octubre de 2026, con Claude Code v2.1.300 (publicada el 14 de octubre de 2026). Claude Code cambia seguido; revisa las fuentes del final.
Qué es ultracode (y qué no es)
La documentación de configuración de modelos lo define como “a Claude Code setting rather than a model effort level”. Es decir:
- No es un modelo. Sigues usando el que tengas seleccionado (Opus 5.5, Sonnet 5.5, Fable 5.1, etc.).
- No es un nivel de effort. Aparece dentro del menú
/effort, pero como un interruptor aparte delow,medium,high,xhighymax. - Sí es un interruptor de orquestación. Con ultracode encendido, Claude decide por su cuenta cuándo una tarea merece un workflow y lo arma sin que se lo pidas. Una sola petición puede convertirse en varios workflows seguidos: uno para entender el código, otro para hacer el cambio y otro para verificarlo.
Cómo funcionan los dynamic workflows
Según la página oficial de workflows, un dynamic workflow es un script de JavaScript que Claude escribe para tu tarea y que un runtime ejecuta en segundo plano mientras tu sesión sigue libre. La diferencia con los subagentes de siempre está en quién lleva el plan:
| Subagentes | Dynamic workflows | |
|---|---|---|
| Quién decide el siguiente paso | Claude, turno por turno | El script |
| Dónde viven los resultados intermedios | En el contexto de Claude | En variables del script |
| Escala | Unas cuantas tareas por turno | De decenas a cientos de agentes por ejecución |
| Si se interrumpe | Se reinicia el turno | Se puede reanudar en la misma sesión |

Esquema simplificado. Según la documentación, con ultracode una sola petición puede convertirse en varios workflows seguidos (uno para entender el código, otro para hacer el cambio y otro para verificarlo), y cada uno reparte su trabajo entre subagentes.
Así se ve un script pequeño. Es el ejemplo de la documentación oficial, no algo que yo haya generado:
export const meta = {
name: 'audit-routes',
description: 'Audit every route handler for missing auth checks',
}
const found = await agent('List every .ts file under src/routes/.', {
schema: { type: 'object', required: ['files'], properties: { files: { type: 'array', items: { type: 'string' } } } },
})
const audits = await pipeline(found.files, file =>
agent(`Audit ${file} for missing authentication checks.`, { label: file }),
)
return audits.filter(Boolean)
agent() lanza un subagente, pipeline() lanza uno por cada elemento de una lista y parallel() corre varios a la vez y espera a todos. Como el plan vive en código, el workflow puede aplicar patrones de calidad, como poner a agentes independientes a intentar refutar los hallazgos de otros antes de reportarlos.
El runtime tiene límites fijos: hasta 16 agentes simultáneos por defecto (menos si tu máquina tiene pocos núcleos de CPU), 4,096 elementos por llamada a parallel() o pipeline() y 1,000 agentes en total por ejecución.
Requisitos
-
Versión de Claude Code. Los dynamic workflows llegaron en la v2.1.154 (28 de mayo de 2026), según el changelog. El comportamiento que describo aquí (interruptor independiente del effort y
/effort ultracode off) requiere la v2.1.284 o posterior. Revisa la tuya y actualiza:claude --version claude update -
Un modelo con soporte para
xhigh. Ultracode no está disponible si el modelo no soporta ese nivel. Hoy son compatibles Fable 5.1, Fable 5, Opus 5.5, Sonnet 5.5, Haiku 5.5, Opus 5, Sonnet 5, Opus 4.8 y Opus 4.7. Opus 4.6 y Sonnet 4.6 no. En Microsoft Foundry el aliasopusapunta a Opus 4.6. -
Workflows activados. Están encendidos por defecto en Max, Team, Enterprise y al usar Claude Code con la API. En Pro vienen apagados: actívalos desde la fila Dynamic workflows de
/config. Si un administrador los desactivó condisableWorkflows, ultracode tampoco aparece.
Formas de activarlo
| Método | Alcance | ¿Cambia el effort? |
|---|---|---|
/effort ultracode | Sesión actual | No |
claude --effort ultracode | Una sesión, desde el arranque | Sí, lo sube a xhigh |
"ultracode": true en settings | Todas las sesiones | No |
Palabra clave ultracode en un prompt | Solo esa tarea | No |
/effort ultracode
Dentro de una sesión:
/effort ultracode
También puedes abrir el slider con /effort, presionar Tab para cambiar el interruptor Ultracode y confirmar con Enter. Elegir otro nivel de effort después no apaga ultracode.
claude --effort ultracode
claude --effort ultracode
Arranca con ultracode encendido y con effort en xhigh. Puedes combinarlo con un modelo:
claude --model opus --effort ultracode
En la API de Anthropic, el alias opus hoy apunta a Opus 5.5. Este flag requiere la v2.1.203 o posterior.
La llave ultracode en settings
Para que todas las sesiones empiecen con ultracode, agrega la llave ultracode a tu settings.json:
{
"ultracode": true
}
Claude Code lee esta llave pero nunca la escribe: /effort ultracode solo afecta la sesión actual. Importante: ni la llave effortLevel ni la variable CLAUDE_CODE_EFFORT_LEVEL aceptan ultracode como valor.
La palabra clave en un solo prompt
Si no quieres cambiar la sesión, escribe ultracode en el prompt y Claude arma un workflow solo para esa tarea:
ultracode: audit every API endpoint under src/routes/ for missing auth checks
Pedirlo con tus palabras (“use a workflow”) también funciona. La palabra clave solo cuenta en prompts que escribes tú: no se activa con -p, tareas programadas, webhooks ni comentarios de pull requests.
Cómo apagarlo
/effort ultracode off
Si escribiste la palabra clave sin querer, presiona Option+W (macOS) o Alt+W (Windows y Linux), o la tecla de borrar justo después de la palabra resaltada. Para que la palabra deje de activar workflows, apaga Ultracode keyword trigger en /config (equivale a "workflowKeywordTriggerEnabled": false).
Costo y consumo de límites
Con ultracode cada petición usa más tokens y tarda más; con suscripción, eso agota antes tus límites de sesión y semanales.
Además, al encender ultracode se desactivan tres protecciones, porque Claude Code asume que ya aceptaste ejecuciones grandes:
- El aviso
Large workflowno aparece. Normalmente aparece cuando un workflow planea más de 25 agentes o se estima que pasará de 1.5 millones de tokens. - El límite de subagentes simultáneos no se aplica a los que Claude lanza con la herramienta Agent. Por defecto, ese límite es de 20.
- En modo auto, no te pide aprobar el primer workflow.
Guía de tamaño
La guía de tamaño le dice a Claude cuántos agentes buscar. Es un consejo, no un tope:
| Valor | Agentes que busca Claude |
|---|---|
small | Menos de 5 |
medium | Menos de 10 |
large | Menos de 50 |
unrestricted | Sin guía, según la tarea |
El valor por defecto es medium, o small en Pro desde la v2.1.271. Cámbialo en /config (fila Dynamic workflow size), con /config workflowSizeGuideline=small o con la llave workflowSizeGuideline en settings.
Si nada más les asigna un modelo (el script, la definición del subagente o CLAUDE_CODE_SUBAGENT_MODEL), los agentes usan el modelo de tu sesión, así que revisa /model antes de una ejecución grande. Y desde la v2.1.271, si llegas a tu límite de uso, el workflow puede pausarse y seguir solo, siempre que sea una sesión interactiva con suscripción, autoContinueAtUsageLimit esté activo y el límite se restablezca en menos de 24 horas. Si no, los agentes afectados fallan.
Cuándo sí conviene y cuándo no
La documentación menciona como casos típicos una búsqueda de bugs en todo el código, una migración de 500 archivos, una investigación que contrasta fuentes y un plan difícil que vale la pena analizar desde varios ángulos.
Mi recomendación, a partir de eso:
- Sí: auditorías de seguridad o autenticación de todo un repositorio, migraciones grandes (de JavaScript a TypeScript, cambios de framework), investigaciones con fuentes cruzadas y decisiones de arquitectura difíciles de revertir.
- No: corregir un bug puntual, renombrar una variable, ajustar estilos o el trabajo diario en general. Ahí ultracode solo gasta más tokens y tiempo. La propia documentación sugiere apagarlo “when you return to routine work”.
Para tareas grandes pero aisladas, prefiero usar la palabra clave en un prompt en lugar de dejar ultracode encendido toda la sesión.
Ultracode vs. ultrathink vs. /deep-research
| Ultracode | ultrathink | /deep-research | |
|---|---|---|---|
| Qué es | Ajuste de Claude Code | Palabra clave en un prompt | Workflow incluido en Claude Code |
| Qué hace | Claude escribe workflows con muchos subagentes | Pide razonar más en ese turno | Busca en la web desde varios ángulos, contrasta fuentes y entrega un reporte citado |
| ¿Lanza subagentes? | Sí | No | Sí |
| ¿Cambia el effort? | Solo con --effort ultracode (o effortLevel en el Agent SDK) | No, el effort enviado a la API no cambia | No |
Además, /deep-research solo corre cuando lo invocas y necesita la herramienta WebSearch, y ultrathink solo afecta ese turno.
Ejemplo práctico
Este prompt es un ejemplo mío, no salida real:
ultracode: revisa todos los snippets y secciones de mi tema de Shopify en sections/ y snippets/, encuentra imágenes sin atributos width/height o sin loading="lazy", y verifica cada hallazgo con un segundo agente antes de reportarlo
Lo que pasa después, según la documentación de workflows:
- Aprobación. En modo manual o accept edits ves las fases planeadas con las opciones Yes, run it, View raw script y No.
- Ejecución en segundo plano. Tu sesión queda libre. Con
/workflowsves cada fase con sus agentes y tokens;ppausa yxdetiene. - Un solo reporte final en la sesión, en lugar de una transcripción turno por turno.
- Reutilización. Si te sirvió, guárdalo con
sen.claude/workflows/(compartido con el repo) o en~/.claude/workflows/(solo para ti) y córrelo después como/<nombre>.
La documentación recomienda probar primero con una porción pequeña, como una sola carpeta, para medir el consumo antes de lanzarlo sobre todo el proyecto.
Información desactualizada que vas a encontrar
Varios blogs repiten datos de versiones anteriores. Esto cambió, según la documentación y el changelog oficial:
- “
--effortno aceptaultracode”: antes de la v2.1.203 respondíaUnknown --effort value 'ultracode'. Hoy sí lo acepta. - “Ultracode siempre pone el effort en
xhigh”: era así antes de la v2.1.284 (28 de septiembre de 2026). Ahora, en la CLI, solo lo sube--effort ultracode. - “La palabra clave es
workflow”: cambió aultracodeen la v2.1.160. - “La guía
mediumes de menos de 15 agentes”: bajó a menos de 10 en la v2.1.271. - “
/deep-researchse lanza solo”: desde la v2.1.218 solo corre cuando lo invocas.
Fuentes
- Orchestrate subagents at scale with dynamic workflows: documentación oficial de Claude Code
- Model configuration: niveles de effort, ultracode y ultrathink
- All settings: llaves
ultracode,workflowSizeGuideline,workflowKeywordTriggerEnabled,enableWorkflowsydisableWorkflows - Create custom subagents: límite de subagentes simultáneos
- Introducing dynamic workflows in Claude Code: blog de Anthropic, 28 de mayo de 2026
- Claude Code changelog y CHANGELOG.md en GitHub: versiones v2.1.154 a v2.1.300
Etiquetas:
Compartir: