Communitygithub.com

mvanhorn/printing-press-library

Primer CLI para el registro en línea de Great Clips: cada forma de endpoint y ruta de host, listo para llamadas reales una vez que se tengan las cookies. Frases activadoras: `great clips wait time`, `check me into great clips`, `how long is the wait at great clips`, `add me and my kids to the great clips wait list`, `great clips request shape`, `use greatclips`, `run greatclips`.

¿Qué es printing-press-library?

Este skill proporciona un CLI (`greatclips-pp-cli`) que refleja exactamente las solicitudes HTTP que envía la SPA de registro en línea de Great Clips, permitiendo a un agente de IA interactuar con el sistema de forma programática desde la línea de comandos. Es útil para desarrolladores y agentes que necesitan automatizar flujos como consultar tiempos de espera, realizar check-ins, buscar salones, obtener pronósticos de horarios y verificar el estado de un registro activo. El CLI se instala mediante el instalador de Printing Press (`npx -y @mvanhorn/printing-press-library install greatclips --cli-only`) o, como alternativa, con `go install`. Para realizar llamadas reales, es necesario capturar manualmente las cookies de sesión desde una sesión autenticada de Chrome y colocarlas en el archivo de configuración (`~/.config/greatclips-pp-cli/config.toml`). El skill soporta el modo `--agent` para salida JSON estructurada, salidas `--dry-run` para previsualizar solicitudes sin enviarlas, y comandos de feedback para que el agente registre observaciones. También incluye perfiles con nombre, entrega de resultados a diferentes destinos (archivo, webhook) y un comando `which` para resolver capacidades en lenguaje natural al comando correspondiente.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/mvanhorn/printing-press-library/tree/HEAD/cli-skills/pp-greatclips

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

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:

  1. Instálalo a través del instalador de Printing Press. Por defecto, los binarios se colocan en $HOME/.local/bin en macOS/Linux y en %LOCALAPPDATA%\Programs\PrintingPress\bin en Windows:
    npx -y @mvanhorn/printing-press-library install greatclips --cli-only
    
  2. Verifica: greatclips-pp-cli --version
  3. Asegúrate de que el directorio de instalación informado esté en $PATH para 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 --chrome para 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ón
  • greatclips-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 — --select mantiene 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-run muestra la solicitud sin enviarla

  • No interactivo — nunca solicita entrada, cada entrada es una bandera

  • Reintentos explícitos — usa --idempotent solo 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:

DestinoEfecto
stdoutPredeterminado; 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ódigoSignificado
0Éxito
2Error de uso (argumentos incorrectos)
3Recurso no encontrado
4Autenticación requerida
5Error de API (problema ascendente)
7Límite de velocidad alcanzado (esperar y reintentar)
10Error de configuración

Análisis de argumentos

Analiza $ARGUMENTS:

  1. Vacío, help o --help → muestra la salida de greatclips-pp-cli --help
  2. Comienza con install → termina con mcp → instalación de MCP; de lo contrario → consulta los Prerrequisitos anteriores
  3. 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

  1. Verifica si está instalado: which greatclips-pp-cli Si no se encuentra, ofrece instalarlo (consulta los Prerrequisitos al inicio de este skill).
  2. Empareja la consulta del usuario con el mejor comando de las Capacidades únicas y la Referencia de comandos anterior.
  3. Ejecuta con la bandera --agent:
    greatclips-pp-cli <comando> [subcomando] [argumentos] --agent
    
  4. Si es ambiguo, profundiza en la ayuda del subcomando: greatclips-pp-cli <comando> --help.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

mvanhorn/pp-espn

Use this skill whenever the user asks about live sports scores, standings, team stats, game summaries (with box score, leaders, scoring plays, odds, and win probability), NFL / NBA / MLB / NHL / NCAA / MLS / EPL / WNBA games, team schedules, polls, or rankings. ESPN sports CLI with live scores across 10 leagues, offline search, head-to-head comparisons, and rich per-game summary payloads. No API key required. Triggers on natural phrasings like 'what's the score of the Lakers game', 'Patriots schedule this week', 'NFL standings', 'box score for tonight's Mavs game', 'Chiefs vs Eagles head to head', 'who's on top of the AP poll'.

mvanhorn/pp-flight-goat

Search Google Flights, scan Kayak long-haul routes, and join FlightAware AeroAPI reliability, alerts, and tracking from one CLI.

mvanhorn/pp-movie-goat

The movie CLI that combines TMDb's discovery engine with OMDb's multi-source ratings — and ships a SQLite watchlist that flags what's streaming on your services right now. Trigger phrases: `what should I watch tonight`, `where can I stream <title>`, `rate <title>`, `compare <title> and <title>`, `what's <person>'s filmography`, `plan a <franchise> marathon`, `use movie-goat`, `run movie-goat`.

mvanhorn/pp-recipe-goat

Find the best version of any recipe across 37 trusted sites — with offline cookbook, pantry match, substitution lookup, meal planning, and USDA-backed nutrition. Trigger phrases: `find the best recipe for`, `what can I make with`, `substitute for <ingredient>`, `nutrition for <recipe>`, `use recipe-goat`.

Skills relacionados