Great Clips — CLI de Printing Press
Prerrequisitos: Instalar el CLI
Este skill utiliza el binario greatclips-pp-cli. Debes verificar que el CLI esté instalado antes de ejecutar cualquier comando de este skill. Si no está, instálalo primero:
- Instálalo a través del instalador de Printing Press. Por defecto, los binarios se colocan en
$HOME/.local/binen macOS/Linux y en%LOCALAPPDATA%\Programs\PrintingPress\binen Windows:npx -y @mvanhorn/printing-press-library install greatclips --cli-only - Verifica:
greatclips-pp-cli --version - Asegúrate de que el directorio de instalación informado esté en
$PATHpara el agente/entorno de ejecución que invocará este skill.
Si la instalación con npx falla (sin Node, sin conexión, etc.), usa como alternativa una instalación directa con Go (requiere Go 1.26.6 o superior):
go install github.com/mvanhorn/printing-press-library/library/other/greatclips/cmd/greatclips-pp-cli@latest
Si --version informa "command not found" después de la instalación, el entorno de ejecución no puede ver el directorio del binario en $PATH. No continúes con los comandos del skill hasta que la verificación sea exitosa.
Cuándo usar este CLI
Usa este CLI para enviar las solicitudes HTTP exactas que envía la SPA de registro en línea de Great Clips, desde la línea de comandos, con salida --dry-run y --json. La v0.1 incluye la forma de cada endpoint para que un agente pueda construir flujos sobre ella; las llamadas reales requieren la captura manual de cookies desde una sesión de Chrome con sesión iniciada.
Transporte HTTP
Este CLI utiliza transporte HTTP compatible con Chrome para los endpoints orientados al navegador. No requiere un proceso de navegador residente para llamadas API normales.
Señales de descubrimiento
Este CLI se generó con contexto de tráfico observado en el navegador.
- Cobertura de captura: 9 entradas API de 22 entradas de red totales
- Protocolos: (0% de confianza), (0% de confianza), (0% de confianza)
- Sugerencias de generación: Cliente de un solo host con dos hosts de autenticación: genera un cliente con token bearer que maneje tanto webservices.greatclips.com como www.stylewaretouch.net., POST /api/store/waitTime toma un cuerpo JSON de arreglo de objetos {storeNumber}, no un objeto único. Una llamada de un solo salón envía un arreglo de longitud 1., Autenticación capturada en vivo a través de Claude-in-Chrome MCP desde una sesión de Chrome con sesión iniciada; el CLI generado debería incluir un comando auxiliar
auth login --chromepara el flujo equivalente.
Referencia de comandos
cancel — Cancela tu registro activo
greatclips-pp-cli cancel— Cancela el registro activo para esta cuenta
checkin — Envía un registro para ti y un acompañante (1-5 personas)
greatclips-pp-cli checkin— Agrega a ti mismo y opcionalmente a otros miembros a la lista de espera de un salón
customer — Lee tu perfil de cliente de Great Clips (nombre, teléfono, favoritos, visitas recientes)
greatclips-pp-cli customer— Obtiene el perfil del cliente autenticado
geo — Resuelve un código postal o término de ciudad a latitud/longitud
greatclips-pp-cli geo— Resuelve un código postal a lat/lng/ciudad/estado
hours — Lee los horarios del salón (hoy más un pronóstico de 14 días con horarios especiales)
greatclips-pp-cli hours— Obtiene el pronóstico de horarios de 14 días para un salón
salons — Busca y consulta salones de Great Clips
greatclips-pp-cli salons get— Obtiene un solo salón por su número de salóngreatclips-pp-cli salons search— Busca salones por código postal, ciudad o coordenadas dentro de un radio
status — Verifica tu posición actual en la fila para un registro activo
greatclips-pp-cli status— Obtiene el estado de tu registro activo (posición en la fila, tiempo de espera estimado)
wait — Lee los tiempos de espera estimados del servicio ICS Net Check-In
greatclips-pp-cli wait— Obtiene el tiempo de espera para un salón (el cuerpo es un arreglo de un solo elemento de {storeNumber})
Encontrar el comando correcto
Cuando sepas lo que quieres hacer pero no qué comando lo hace, pregúntale directamente al CLI:
greatclips-pp-cli which "<capacidad en tus propias palabras>"
which resuelve una consulta de capacidad en lenguaje natural al comando que mejor coincide del índice de funciones seleccionadas de este CLI. El código de salida 0 significa al menos una coincidencia; el código de salida 2 significa que no hay una coincidencia segura: recurre a --help o usa una consulta más específica.
Recetas
Cuerpo de solicitud de registro para cuatro personas
greatclips-pp-cli checkin --first-name Matt --last-name VanHorn --phone-number '(206) 555-0100' --salon-number 8991 --guests 4 --dry-run --json
Emite el cuerpo JSON exacto que se envía por POST a www.stylewaretouch.net/api/customer/checkIn para un grupo de cuatro en Island Square.
Solicitud de tiempo de espera para un salón
greatclips-pp-cli wait --store-number 8991 --dry-run --json
Forma de la solicitud para el endpoint waitTime de ICS Net Check-In.
Salones cerca de un código postal
greatclips-pp-cli salons search --term 98040 --radius 5 --dry-run --json
Forma de la solicitud para el endpoint salon-search/term con un radio de 5 millas.
Pronóstico de horarios de 14 días
greatclips-pp-cli hours --salon 8991 --dry-run
Llama a salon-hours/upcoming para un salón; la respuesta incluye horarios especiales y cierres por festivos.
Geocodificar un código postal
greatclips-pp-cli geo --query 98040 --dry-run --json --select results.city,results.state,results.lat,results.lng
Resuelve un código postal a lat/lng/ciudad/estado a través del endpoint geo-names.
Configuración de autenticación
Great Clips utiliza cookies de sesión HttpOnly de un inquilino de Auth0 en cid.greatclips.com. La inspección del navegador confirmó que todas las llamadas se realizan correctamente mediante cookies adjuntadas por el navegador, no mediante un encabezado Authorization. La v0.1 de este CLI incluye la forma de la solicitud y el enrutamiento del host; para hacer llamadas reales, pega las cookies de una sesión de Chrome con sesión iniciada en ~/.config/greatclips-pp-cli/config.toml. Establece GREATCLIPS_TOKEN en cualquier marcador de posición para que el doctor pase (la variable de entorno se mantiene para la v0.2 cuando pueda llegar el soporte de bearer).
Ejecuta greatclips-pp-cli doctor para verificar la configuración.
Modo agente
Agrega --agent a cualquier comando. Se expande a: --json --compact --no-input --no-color --yes.
-
Encadenable — JSON en stdout, errores en stderr
-
Filtrable —
--selectmantiene un subconjunto de campos. Las rutas con puntos descienden en estructuras anidadas; los arreglos se recorren elemento por elemento. Es fundamental para mantener el contexto pequeño en APIs detalladas:greatclips-pp-cli salons get --num ejemplo-valor --agent --select id,name,status -
Previsualizable —
--dry-runmuestra la solicitud sin enviarla -
No interactivo — nunca solicita entrada, cada entrada es una bandera
-
Reintentos explícitos — usa
--idempotentsolo cuando una creación ya existente deba contarse como éxito
Comentarios del agente
Cuando tú (o el agente) notes algo extraño en este CLI, regístralo:
greatclips-pp-cli feedback "la bandera --since es inclusiva pero la documentación dice exclusiva"
greatclips-pp-cli feedback --stdin < notas.txt
greatclips-pp-cli feedback list --json --limit 10
Las entradas se almacenan localmente en ~/.greatclips-pp-cli/feedback.jsonl. Nunca se envían por POST a menos que GREATCLIPS_FEEDBACK_ENDPOINT esté configurado Y se pase --send o GREATCLIPS_FEEDBACK_AUTO_SEND=true. El comportamiento predeterminado es solo local.
Escribe lo que te sorprendió, no un informe de error. Corto, específico, una línea: esa es la parte que se acumula.
Entrega de salida
Cada comando acepta --deliver <destino>. La salida se envía al destino nombrado además de (o en lugar de) stdout, para que los agentes puedan enrutar los resultados de los comandos sin tener que redirigir manualmente. Se admiten tres destinos:
| Destino | Efecto |
|---|---|
stdout | Predeterminado; escribe solo en stdout |
file:<ruta> | Escribe atómicamente la salida en <ruta> (tmp + renombrar) |
webhook:<url> | Envía por POST el cuerpo de la salida a la URL (application/json o application/x-ndjson cuando se usa --compact) |
Los esquemas desconocidos se rechazan con un error estructurado que indica el conjunto admitido. Las fallas de webhook devuelven un código distinto de cero y registran la URL + el estado HTTP en stderr.
Perfiles con nombre
Un perfil es un conjunto guardado de valores de banderas, reutilizado en varias invocaciones. Úsalo cuando un agente programado llame al mismo comando cada ejecución con la misma configuración — el patrón "Beacon" de HeyGen.
greatclips-pp-cli profile save briefing --json
greatclips-pp-cli --profile briefing salons get --num ejemplo-valor
greatclips-pp-cli profile list --json
greatclips-pp-cli profile show briefing
greatclips-pp-cli profile delete briefing --yes
Las banderas explícitas siempre ganan a los valores del perfil; los valores del perfil ganan a los valores predeterminados. agent-context enumera todos los perfiles disponibles en available_profiles para que los agentes de introspección los descubran en tiempo de ejecución.
Códigos de salida
| Código | Significado |
|---|---|
| 0 | Éxito |
| 2 | Error de uso (argumentos incorrectos) |
| 3 | Recurso no encontrado |
| 4 | Autenticación requerida |
| 5 | Error de API (problema ascendente) |
| 7 | Límite de velocidad alcanzado (esperar y reintentar) |
| 10 | Error de configuración |
Análisis de argumentos
Analiza $ARGUMENTS:
- Vacío,
helpo--help→ muestra la salida degreatclips-pp-cli --help - Comienza con
install→ termina conmcp→ instalación de MCP; de lo contrario → consulta los Prerrequisitos anteriores - Cualquier otra cosa → Uso directo (ejecutar como comando CLI con
--agent)
Instalación del servidor MCP
Instala el binario MCP desde la entrada de biblioteca pública publicada de este CLI o desde una versión precompilada, luego regístralo:
claude mcp add greatclips-pp-mcp -- greatclips-pp-mcp
Verifica: claude mcp list
Uso directo
- Verifica si está instalado:
which greatclips-pp-cliSi no se encuentra, ofrece instalarlo (consulta los Prerrequisitos al inicio de este skill). - Empareja la consulta del usuario con el mejor comando de las Capacidades únicas y la Referencia de comandos anterior.
- Ejecuta con la bandera
--agent:greatclips-pp-cli <comando> [subcomando] [argumentos] --agent - Si es ambiguo, profundiza en la ayuda del subcomando:
greatclips-pp-cli <comando> --help.