Guia CLI

intake proporciona 19 comandos y subcomandos. Todos siguen el patron:

intake <comando> [argumentos] [opciones]

Para ver la ayuda de cualquier comando:

intake --help
intake <comando> --help

intake init

Genera una spec completa a partir de fuentes de requisitos. Este es el comando principal.

intake init <DESCRIPCION> -s <fuente> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
DESCRIPCIONtextoSiFrase corta describiendo que construir. Se convierte en slug para el nombre del directorio (max 50 caracteres).

Opciones

FlagCortoTipoDefaultRequeridoDescripcion
--source-stextoSiFuente de requisitos (repetible). Path a archivo, URL, o - para stdin.
--modeopcionautoNoModo de generacion: quick, standard, enterprise. Si no se especifica, se auto-clasifica.
--model-mtextoconfig o claude-sonnet-4NoModelo LLM a usar para el analisis.
--lang-ltextoconfig o enNoIdioma del contenido generado en la spec.
--project-dir-ppath.NoDirectorio del proyecto existente (para auto-deteccion del stack).
--stacktextoauto-detectadoNoStack tecnologico. Ej: python,fastapi,postgresql.
--output-opath./specsNoDirectorio de salida para la spec.
--format-fopcionconfig o ningunoNoFormato de exportacion: architect, claude-code, cursor, kiro, copilot, generic.
--presetopcionningunoNoPreset de configuracion: minimal, standard, enterprise.
--interactive-iflagfalseNoModo interactivo: pregunta antes de generar cada seccion.
--dry-runflagfalseNoMuestra que haria sin generar archivos.
--verbose-vflagfalseNoOutput detallado.

Ejemplos

# Desde un archivo Markdown
intake init "API de usuarios" -s requirements.md

# Desde multiples fuentes
intake init "Pasarela de pagos" -s jira.json -s confluence.html -s notas.md

# Con modelo especifico y preset enterprise
intake init "Sistema critico" -s reqs.yaml --model gpt-4o --preset enterprise

# Con stack manual y formato de exportacion
intake init "Microservicio" -s reqs.md --stack python,fastapi -f architect

# Spec en espanol
intake init "Carrito de compras" -s historias.md --lang es

# Modo rapido (solo context.md + tasks.md)
intake init "Fix login bug" -s notas.txt --mode quick

# Modo enterprise (todos los archivos + riesgos detallados)
intake init "Sistema critico" -s reqs.yaml --mode enterprise

# Desde una URL
intake init "API review" -s https://wiki.company.com/rfc/auth

# Desde un export de Slack
intake init "Decisiones de sprint" -s slack_export.json

# Desde GitHub Issues
intake init "Bug fixes" -s issues.json

# Desde conectores API directos (requiere config en .intake.yaml)
intake init "Sprint tasks" -s jira://PROJ-123
intake init "Spec review" -s confluence://SPACE/Page-Title
intake init "Bug triage" -s github://org/repo/issues?labels=bug&state=open

# Dry run para ver que haria
intake init "Prototipo" -s ideas.txt --dry-run

# Desde stdin
cat requisitos.txt | intake init "Feature X" -s -

Que hace internamente

  1. Carga la configuracion (preset + .intake.yaml + flags CLI)
  2. Auto-detecta el stack tecnologico del proyecto (si no se especifica --stack)
  3. Slugifica la descripcion para el nombre del directorio
  4. Resolucion de fuentes: cada fuente se resuelve via parse_source():
    • Archivos locales → se parsean con el registry
    • URLs (http://, https://) → se procesan con UrlParser
    • URIs de esquema (jira://, confluence://, github://) → se resuelven via conectores API (ver Conectores)
    • Stdin (-) → se lee como texto plano
    • Texto libre → se trata como plaintext
  5. Clasificacion de complejidad: si no se especifica --mode, se auto-clasifica:
    • quick: <500 palabras, 1 fuente, sin estructura
    • standard: caso por defecto
    • enterprise: 4+ fuentes O >5000 palabras
  6. Fase 1 — Ingest: parsea todas las fuentes via el registry
  7. Fase 2 — Analyze: extraccion LLM, deduplicacion, validacion, riesgos, diseno
  8. Fase 3 — Generate: renderiza archivos segun el modo (quick: 2, standard/enterprise: 6) + spec.lock.yaml
  9. Fase 5 — Export: exporta al formato elegido (si se especifico --format)

intake add

Agrega fuentes a una spec existente.

intake add <SPEC_DIR> -s <fuente> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec existente.

Opciones

FlagCortoTipoDefaultDescripcion
--source-stextoNuevas fuentes a agregar (repetible).
--regenerateflagfalseRegenerar toda la spec incluyendo las nuevas fuentes.
--verbose-vflagfalseOutput detallado.

Ejemplo

# Agregar una fuente nueva a una spec existente
intake add specs/api-de-usuarios/ -s feedback-qa.md

# Agregar y regenerar todo
intake add specs/api-de-usuarios/ -s nuevos-reqs.yaml --regenerate

intake verify

Verifica que la implementacion cumple con la spec ejecutando los checks de acceptance.yaml.

intake verify <SPEC_DIR> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec.

Opciones

FlagCortoTipoDefaultDescripcion
--project-dir-ppath.Directorio del proyecto a verificar.
--format-fopcionterminalFormato del reporte: terminal, json, junit.
--tags-ttextotodosSolo ejecutar checks con estos tags (repetible).
--fail-fastflagfalseDetenerse en el primer check requerido que falle.

Exit codes

CodigoSignificado
0Todos los checks requeridos pasaron
1Al menos un check requerido fallo
2Error de ejecucion (spec no encontrada, YAML invalido, etc.)

Ejemplos

# Verificar con reporte en terminal
intake verify specs/api-de-usuarios/ -p .

# Solo checks con tag "api"
intake verify specs/api-de-usuarios/ -p . -t api

# Formato JUnit para CI
intake verify specs/api-de-usuarios/ -p . -f junit > test-results.xml

# Fail fast
intake verify specs/api-de-usuarios/ -p . --fail-fast

# Formato JSON
intake verify specs/api-de-usuarios/ -p . -f json

intake export

Exporta una spec a un formato listo para un agente IA.

intake export <SPEC_DIR> -f <formato> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec.

Opciones

FlagCortoTipoDefaultDescripcion
--format-fopcionFormato: architect, claude-code, cursor, kiro, copilot, generic. Requerido.
--output-opath.Directorio de salida.

Ejemplos

# Exportar para architect
intake export specs/api-de-usuarios/ -f architect -o output/

# Exportar formato generico
intake export specs/api-de-usuarios/ -f generic -o output/

# Exportar para Claude Code (genera CLAUDE.md + .intake/)
intake export specs/api-de-usuarios/ -f claude-code -o .

# Exportar para Cursor (genera .cursor/rules/)
intake export specs/api-de-usuarios/ -f cursor -o .

# Exportar para Kiro (formato nativo con checkboxes)
intake export specs/api-de-usuarios/ -f kiro -o .

# Exportar para GitHub Copilot (genera .github/copilot-instructions.md)
intake export specs/api-de-usuarios/ -f copilot -o .

intake show

Muestra un resumen de una spec: requisitos, tareas, checks, costos.

intake show <SPEC_DIR>

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec.

Que muestra

  • Archivos en la spec
  • Modelo LLM usado
  • Cantidad de requisitos
  • Cantidad de tareas
  • Costo total del analisis
  • Fecha de creacion
  • Cantidad de fuentes
  • Cantidad de checks de aceptacion

Ejemplo

intake show specs/api-de-usuarios/

intake list

Lista todas las specs en un directorio.

intake list [opciones]

Opciones

FlagCortoTipoDefaultDescripcion
--dir-dpath./specsDirectorio donde buscar specs.

Detecta subdirectorios que contengan requirements.md o acceptance.yaml.

Ejemplo

# Listar specs en el directorio por defecto
intake list

# Listar specs en otro directorio
intake list -d ./mi-proyecto/specs

intake diff

Compara dos versiones de una spec y muestra los cambios.

intake diff <SPEC_A> <SPEC_B> [opciones]

Argumentos

ArgumentoTipoRequeridoDescripcion
SPEC_ApathSiPrimera version de la spec.
SPEC_BpathSiSegunda version de la spec.

Opciones

FlagTipoDefaultDescripcion
--sectionopcionallQue seccion comparar: requirements, design, tasks, acceptance, all.

Que compara

  • requirements: Requisitos por ID (FR-XX, NFR-XX)
  • tasks: Tareas por numero
  • acceptance: Checks por ID

Los cambios se muestran como:

  • Added (verde): elementos nuevos en SPEC_B
  • Removed (rojo): elementos que estaban en SPEC_A pero no en SPEC_B
  • Modified (amarillo): elementos con cambios

Ejemplo

# Comparar dos versiones completas
intake diff specs/v1/ specs/v2/

# Solo comparar requisitos
intake diff specs/v1/ specs/v2/ --section requirements

intake doctor

Diagnostica el entorno y la configuracion.

intake doctor [opciones]

Opciones

FlagCortoTipoDefaultDescripcion
--fixflagfalseIntentar corregir los problemas detectados automaticamente.
--verbose-vflagfalseOutput detallado.

Checks que ejecuta

CheckQue verificaAuto-fixable
Python versionPython >= 3.12No
LLM API keyANTHROPIC_API_KEY o OPENAI_API_KEY definidaNo
pdfplumberPaquete instaladoSi
python-docxPaquete instaladoSi
beautifulsoup4Paquete instaladoSi
markdownifyPaquete instaladoSi
litellmPaquete instaladoSi
jinja2Paquete instaladoSi
Config file.intake.yaml existe y es YAML validoSi (crea uno basico)

—fix

Con --fix, intake intenta corregir automaticamente:

  • Paquetes faltantes: ejecuta pip install <paquete> (detecta pip3.12, pip3 o pip)
  • Config faltante: crea un .intake.yaml basico con defaults

Ejemplos

# Solo diagnosticar
intake doctor

# Diagnosticar y corregir
intake doctor --fix

# Con output detallado
intake doctor -v

intake plugins list

Lista todos los plugins descubiertos (parsers, exporters, connectors).

intake plugins list [opciones]

Opciones

FlagCortoTipoDefaultDescripcion
--verbose-vflagfalseMostrar columnas adicionales: modulo y errores de carga.

Que muestra

Una tabla con:

ColumnaDescripcion
NameNombre del plugin
GroupGrupo: parsers, exporters, connectors
VersionVersion del paquete que lo provee
V2Si implementa el protocolo V2
Built-inSi es un plugin built-in de intake

Con -v se agregan columnas de modulo y errores de carga.

Ejemplo

# Lista basica
intake plugins list

# Con detalles
intake plugins list -v

intake plugins check

Valida la compatibilidad de todos los plugins descubiertos.

intake plugins check

Ejecuta check_compatibility() en cada plugin y reporta OK o FAIL con detalles del error.


intake task list

Lista las tareas de una spec con su estado actual.

intake task list <SPEC_DIR> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec.

Opciones

FlagTipoDefaultDescripcion
--statusopciontodosFiltrar por estado (repetible): pending, in_progress, done, blocked.

Que muestra

  • Tabla con ID, titulo y estado de cada tarea
  • Resumen de progreso: total, pending, in_progress, done, blocked

Ejemplo

# Listar todas las tareas
intake task list specs/mi-feature/

# Solo tareas pendientes y en progreso
intake task list specs/mi-feature/ --status pending --status in_progress

intake task update

Actualiza el estado de una tarea en tasks.md.

intake task update <SPEC_DIR> <TASK_ID> <STATUS> [opciones]

Argumentos

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec.
TASK_IDenteroSiID de la tarea a actualizar.
STATUSopcionSiNuevo estado: pending, in_progress, done, blocked.

Opciones

FlagTipoDefaultDescripcion
--notetextoningunoNota o anotacion para agregar a la actualizacion.

Ejemplo

# Marcar tarea 1 como completada
intake task update specs/mi-feature/ 1 done

# Marcar como en progreso con nota
intake task update specs/mi-feature/ 2 in_progress --note "Iniciando implementacion"

# Marcar como bloqueada
intake task update specs/mi-feature/ 3 blocked --note "Esperando API de terceros"

intake feedback

Analiza fallos de verificacion y sugiere correcciones a la spec o la implementacion.

intake feedback <SPEC_DIR> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec.

Opciones

FlagCortoTipoDefaultDescripcion
--verify-report-rpathningunoArchivo JSON con reporte de verificacion. Si no se proporciona, ejecuta verify primero.
--project-dir-ppath.Directorio del proyecto.
--applyflagfalseAplicar enmiendas sugeridas directamente a la spec.
--agent-formatopciongenericFormato de sugerencias: generic, claude-code, cursor.
--verbose-vflagfalseOutput detallado.

Que hace

  1. Carga el reporte de verificacion: si no se proporciona --verify-report, ejecuta intake verify primero para obtener uno
  2. Analisis LLM: envia los checks fallidos junto con la spec al LLM para analisis de causa raiz
  3. Genera sugerencias: para cada fallo, produce:
    • Causa raiz
    • Sugerencia de correccion
    • Severidad (critical, major, minor)
    • Tareas afectadas
    • Enmienda propuesta a la spec (opcional)
  4. Aplica enmiendas (si --apply o feedback.auto_amend_spec en config): modifica la spec directamente

Ejemplos

# Analizar fallos con reporte existente
intake feedback specs/mi-feature/ --verify-report report.json

# Ejecutar verify + analizar todo en un paso
intake feedback specs/mi-feature/ -p .

# Aplicar enmiendas automaticamente
intake feedback specs/mi-feature/ -p . --apply

# Sugerencias en formato para Claude Code
intake feedback specs/mi-feature/ -p . --agent-format claude-code

Exit codes

CodigoSignificado
0Analisis completado (con o sin sugerencias)
2Error de ejecucion

intake mcp serve

Inicia el servidor MCP (Model Context Protocol) para integracion con agentes IA.

intake mcp serve [opciones]

Opciones

FlagTipoDefaultDescripcion
--transportopcionstdioTransporte: stdio (para agentes CLI) o sse (HTTP para IDEs).
--portentero8080Puerto para transporte SSE.
--specs-dirpath./specsDirectorio base donde viven las specs.
--project-dirpath.Directorio del proyecto para verificacion.

Que expone

7 Tools:

ToolDescripcion
intake_showMuestra resumen del spec con contenido de archivos
intake_get_contextLee context.md del spec
intake_get_tasksLista tareas con filtro por status (all/pending/in_progress/done/blocked)
intake_update_taskActualiza el status de una tarea con nota opcional
intake_verifyEjecuta checks de aceptacion con filtro por tags
intake_feedbackVerifica + genera feedback sobre fallos
intake_list_specsLista specs disponibles

6 Resources via URIs intake://specs/{name}/{section}:

  • requirements, tasks, context, acceptance, design, sources

2 Prompts:

  • implement_next_task: contexto del spec + siguiente tarea pendiente + instrucciones
  • verify_and_fix: loop de verificar -> arreglar -> re-verificar

Ejemplos

# Iniciar con transporte stdio (para Claude Code, etc.)
intake mcp serve --transport stdio

# Iniciar con transporte SSE (HTTP)
intake mcp serve --transport sse --port 8080

# Con directorio de specs personalizado
intake mcp serve --specs-dir ./my-specs --project-dir /path/to/project

Requisitos

Requiere el paquete mcp: pip install intake-ai-cli[mcp]


intake watch

Monitorea archivos del proyecto y re-ejecuta verificacion automaticamente ante cambios.

intake watch <SPEC_DIR> [opciones]

Argumento

ArgumentoTipoRequeridoDescripcion
SPEC_DIRpathSiDirectorio de la spec con acceptance.yaml.

Opciones

FlagCortoTipoDefaultDescripcion
--project-dir-ppath.Directorio del proyecto a monitorear.
--tags-ttextotodosSolo ejecutar checks con estos tags (repetible).
--debouncefloat2.0Segundos de espera antes de re-ejecutar (debouncing).
--verbose-vflagfalseOutput detallado con archivos cambiados.

Que hace

  1. Carga acceptance.yaml del directorio de spec
  2. Ejecuta una verificacion inicial (equivalente a run_once())
  3. Monitorea el directorio del proyecto usando watchfiles (Rust-based, eficiente)
  4. Cuando detecta cambios en archivos:
    • Filtra archivos ignorados (*.pyc, pycache, .git, node_modules, .intake)
    • Espera el tiempo de debounce configurado
    • Re-ejecuta los checks de aceptacion
    • Muestra resultados en terminal con Rich

Patrones ignorados por defecto

  • *.pyc
  • __pycache__
  • .git
  • node_modules
  • .intake

Personalizables via watch.ignore_patterns en .intake.yaml.

Ejemplos

# Watch basico
intake watch specs/mi-feature/ -p .

# Con filtro de tags y verbose
intake watch specs/mi-feature/ -p . -t tests -t lint --verbose

# Con debounce personalizado
intake watch specs/mi-feature/ -p . --debounce 5

# Solo checks de seguridad
intake watch specs/mi-feature/ -p . -t security

Requisitos

Requiere el paquete watchfiles: pip install intake-ai-cli[watch]


Opciones globales

FlagDescripcion
--versionMuestra la version de intake
--helpMuestra la ayuda del comando
intake --version    # intake, version 0.5.0
intake --help       # Ayuda general
intake init --help  # Ayuda del comando init

Exit codes

Todos los comandos siguen un esquema de exit codes consistente:

CodigoSignificado
0Exito
1Check requerido fallo (solo verify)
2Error de ejecucion