Communitygithub.com

mvanhorn/printing-press-library

Première interface en ligne de commande pour l'enregistrement en ligne de Great Clips : chaque forme d'endpoint et itinéraire hôte, prêt pour de véritables appels une fois les cookies récupérés...

Qu'est-ce que printing-press-library ?

Cette compétence fournit une interface CLI complète pour interagir avec l'API d'enregistrement en ligne de Great Clips. Elle expose chaque endpoint du service, incluant la vérification des temps d'attente, l'enregistrement individuel ou en groupe, la recherche de salons, la consultation des horaires sur 14 jours, et la géolocalisation par code postal. Le CLI est généré à partir de l'observation du trafic navigateur et utilise un transport HTTP compatible Chrome. L'authentification repose sur des cookies de session HttpOnly (Auth0), et les appels réels nécessitent de capturer manuellement ces cookies depuis une session Chrome authentifiée via la commande `auth login --chrome`. La compétence inclut un mode agent (`--agent`) qui produit du JSON compact et non interactif, des profils nommés pour réutiliser des configurations, et une fonction de feedback local. Elle est idéale pour les agents automatisés souhaitant interagir avec Great Clips sans interface graphique, mais nécessite une configuration préalable pour les appels réels.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Great Clips — CLI Printing Press

Prérequis : Installer le CLI

Cette compétence pilote le binaire greatclips-pp-cli. Vous devez vérifier que le CLI est installé avant d'invoquer toute commande de cette compétence. S'il est manquant, installez-le d'abord :

  1. Installez via le programme d'installation de Printing Press. Les binaires sont placés par défaut dans $HOME/.local/bin sur macOS/Linux et %LOCALAPPDATA%\Programs\PrintingPress\bin sur Windows :
    npx -y @mvanhorn/printing-press-library install greatclips --cli-only
    
  2. Vérifiez : greatclips-pp-cli --version
  3. Assurez-vous que le répertoire d'installation indiqué est dans le $PATH de l'agent ou de l'environnement d'exécution qui invoquera cette compétence.

Si l'installation par npx échoue (pas de Node, hors ligne, etc.), utilisez une installation directe via Go (nécessite Go 1.26.6 ou plus récent) :

go install github.com/mvanhorn/printing-press-library/library/other/greatclips/cmd/greatclips-pp-cli@latest

Si --version signale "command not found" après l'installation, l'environnement d'exécution ne voit pas le répertoire du binaire dans le $PATH. Ne continuez pas avec les commandes de la compétence avant une vérification réussie.

Quand utiliser ce CLI

Utilisez ce CLI pour envoyer exactement les requêtes HTTP qu'envoie l'application SPA d'enregistrement en ligne de Great Clips, depuis la ligne de commande, avec des options dry-run et une sortie --json. La version v0.1 livre la structure de requête de chaque endpoint afin qu'un agent puisse construire des flux par-dessus ; les appels réels nécessitent une capture manuelle des cookies à partir d'une session Chrome connectée.

Transport HTTP

Ce CLI utilise un transport HTTP compatible Chrome pour les endpoints destinés au navigateur. Il ne nécessite pas de processus navigateur résident pour les appels API normaux.

Signaux de découverte

Ce CLI a été généré avec un contexte de trafic observé par navigateur.

  • Couverture de capture : 9 entrées API sur 22 entrées réseau totales
  • Protocoles : (0% de confiance), (0% de confiance), (0% de confiance)
  • Indices de génération : Double hôte, authentification unique : émettez un client à jeton bearer qui gère à la fois webservices.greatclips.com et www.stylewaretouch.net., l'endpoint POST /api/store/waitTime prend un corps de tableau JSON d'objets {storeNumber}, pas un objet unique. Un appel pour un seul salon envoie un tableau de longueur 1., Authentification capturée en direct via Claude-in-Chrome MCP à partir d'une session Chrome connectée ; le CLI publié devrait inclure une commande d'aide auth login --chrome pour le flux équivalent.

Référence des commandes

cancel — Annuler votre enregistrement actif

  • greatclips-pp-cli cancel — Annule l'enregistrement actif pour ce compte

checkin — Soumettre un enregistrement pour vous-même et un groupe (1 à 5 personnes)

  • greatclips-pp-cli checkin — Ajoutez-vous, ainsi qu'éventuellement d'autres membres du groupe, à la liste d'attente d'un salon

customer — Lire votre profil client Great Clips (nom, téléphone, favoris, visites récentes)

  • greatclips-pp-cli customer — Obtient le profil du client authentifié

geo — Résoudre un code postal ou un nom de ville en latitude/longitude

  • greatclips-pp-cli geo — Résout un code postal en lat/lng/ville/état

hours — Lire les horaires d'un salon (aujourd'hui plus prévisions sur 14 jours avec horaires spéciaux)

  • greatclips-pp-cli hours — Obtient les prévisions d'horaires sur 14 jours pour un salon

salons — Rechercher et consulter les salons Great Clips

  • greatclips-pp-cli salons get — Obtient un seul salon par son numéro de salon
  • greatclips-pp-cli salons search — Recherche des salons par code postal, ville ou coordonnées dans un rayon donné

status — Vérifier votre position actuelle dans la file d'attente pour un enregistrement actif

  • greatclips-pp-cli status — Obtient le statut de votre enregistrement actif (position dans la file, temps d'attente estimé)

wait — Lire les temps d'attente estimés depuis le service ICS Net Check-In

  • greatclips-pp-cli wait — Obtient le temps d'attente pour un salon (le corps est un tableau d'un seul élément {storeNumber})

Trouver la bonne commande

Lorsque vous savez ce que vous voulez faire mais pas quelle commande le fait, demandez directement au CLI :

greatclips-pp-cli which "<capacité dans vos propres mots>"

which résout une requête de capacité en langage naturel vers la commande la mieux adaptée dans l'index de fonctionnalités organisé de ce CLI. Le code de sortie 0 signifie qu'au moins une correspondance a été trouvée ; le code de sortie 2 signifie aucune correspondance fiable — utilisez --help ou une requête plus précise.

Recettes

Corps de requête d'enregistrement pour un groupe de quatre

greatclips-pp-cli checkin --first-name Matt --last-name VanHorn --phone-number '(206) 555-0100' --salon-number 8991 --guests 4 --dry-run --json

Émet le corps JSON exact envoyé en POST à www.stylewaretouch.net/api/customer/checkIn pour un groupe de quatre au salon Island Square.

Requête de temps d'attente pour un salon

greatclips-pp-cli wait --store-number 8991 --dry-run --json

Forme de la requête pour l'endpoint waitTime du service ICS Net Check-In.

Salons près d'un code postal

greatclips-pp-cli salons search --term 98040 --radius 5 --dry-run --json

Forme de la requête pour l'endpoint salon-search/term avec un rayon de 5 miles.

Prévisions d'horaires sur 14 jours

greatclips-pp-cli hours --salon 8991 --dry-run

Appelle salon-hours/upcoming pour un salon ; la réponse inclut les horaires spéciaux et les fermetures pour jours fériés.

Géocoder un code postal

greatclips-pp-cli geo --query 98040 --dry-run --json --select results.city,results.state,results.lat,results.lng

Résout un code postal en lat/lng/ville/état via l'endpoint geo-names.

Configuration de l'authentification

Great Clips utilise des cookies de session HttpOnly provenant d'un tenant Auth0 sur cid.greatclips.com. La capture du trafic navigateur a confirmé que tous les appels réussissent via les cookies attachés par le navigateur, et non via un en-tête Authorization. La version v0.1 de ce CLI fournit la structure de requête et le routage hôte ; pour effectuer de véritables appels, collez les cookies d'une session Chrome connectée dans ~/.config/greatclips-pp-cli/config.toml. Définissez GREATCLIPS_TOKEN sur n'importe quel espace réservé pour que la commande doctor réussisse (la variable d'environnement est conservée pour la v0.2 lorsqu'une prise en charge des jetons bearer pourrait arriver).

Exécutez greatclips-pp-cli doctor pour vérifier la configuration.

Mode Agent

Ajoutez --agent à n'importe quelle commande. Se développe en : --json --compact --no-input --no-color --yes.

  • Acheminable — JSON sur stdout, erreurs sur stderr

  • Filtrable — --select conserve un sous-ensemble de champs. Les chemins pointés descendent dans les structures imbriquées ; les tableaux sont parcourus élément par élément. Essentiel pour garder le contexte petit sur des API verbeuses :

    greatclips-pp-cli salons get --num example-value --agent --select id,name,status
    
  • Aperçu — --dry-run montre la requête sans l'envoyer

  • Non interactif — jamais d'invite, chaque entrée est un drapeau

  • Nouvelles tentatives explicites — utilisez --idempotent uniquement lorsqu'une création déjà existante doit être considérée comme un succès

Retour d'information de l'agent

Lorsque vous (ou l'agent) remarquez quelque chose d'anormal avec ce CLI, enregistrez-le :

greatclips-pp-cli feedback "le drapeau --since est inclusif mais la documentation dit exclusif"
greatclips-pp-cli feedback --stdin < notes.txt
greatclips-pp-cli feedback list --json --limit 10

Les entrées sont stockées localement dans ~/.greatclips-pp-cli/feedback.jsonl. Elles ne sont jamais envoyées en POST sauf si GREATCLIPS_FEEDBACK_ENDPOINT est défini ET que --send est passé ou que GREATCLIPS_FEEDBACK_AUTO_SEND=true. Le comportement par défaut est local uniquement.

Écrivez ce qui vous a surpris, pas un rapport de bug. Court, spécifique, une ligne : c'est cela qui s'accumule.

Livraison de la sortie

Chaque commande accepte --deliver <destination>. La sortie est envoyée à la destination nommée en plus (ou à la place) de stdout, afin que les agents puissent acheminer les résultats des commandes sans avoir à faire des redirections manuelles. Trois destinations sont prises en charge :

DestinationEffet
stdoutPar défaut ; écrit uniquement sur stdout
file:<chemin>Écrit atomiquement la sortie dans <chemin> (tmp + renommage)
webhook:<url>Envoie le corps de la sortie en POST à l'URL (application/json ou application/x-ndjson avec --compact)

Les schémas inconnus sont refusés avec une erreur structurée indiquant l'ensemble des destinations prises en charge. Les échecs de webhook renvoient un code non nul et enregistrent l'URL + le code d'état HTTP sur stderr.

Profils nommés

Un profil est un ensemble enregistré de valeurs de drapeaux, réutilisé entre les invocations. Utilisez-le lorsqu'un agent planifié appelle la même commande à chaque exécution avec la même configuration — le modèle "Beacon" de HeyGen.

greatclips-pp-cli profile save briefing --json
greatclips-pp-cli --profile briefing salons get --num example-value
greatclips-pp-cli profile list --json
greatclips-pp-cli profile show briefing
greatclips-pp-cli profile delete briefing --yes

Les drapeaux explicites l'emportent toujours sur les valeurs du profil ; les valeurs du profil l'emportent sur les valeurs par défaut. agent-context liste tous les profils disponibles sous available_profiles afin que les agents d'introspection les découvrent à l'exécution.

Codes de sortie

CodeSignification
0Succès
2Erreur d'utilisation (mauvais arguments)
3Ressource non trouvée
4Authentification requise
5Erreur API (problème amont)
7Limite de débit atteinte (attendez et réessayez)
10Erreur de configuration

Analyse des arguments

Analysez $ARGUMENTS :

  1. Vide, help, ou --help → affiche la sortie de greatclips-pp-cli --help
  2. Commence par install → se termine par mcp → installation MCP ; sinon → voir Prérequis ci-dessus
  3. Tout autre chose → Utilisation directe (exécutez comme une commande CLI avec --agent)

Installation du serveur MCP

Installez le binaire MCP à partir de l'entrée de bibliothèque publique publiée de ce CLI ou d'une version pré-construite, puis enregistrez-le :

claude mcp add greatclips-pp-mcp -- greatclips-pp-mcp

Vérifiez : claude mcp list

Utilisation directe

  1. Vérifiez si installé : which greatclips-pp-cli Si introuvable, proposez d'installer (voir Prérequis en haut de cette compétence).
  2. Faites correspondre la requête de l'utilisateur à la meilleure commande parmi les Capacités uniques et la Référence des commandes ci-dessus.
  3. Exécutez avec le drapeau --agent :
    greatclips-pp-cli <commande> [sous-commande] [arguments] --agent
    
  4. En cas d'ambiguïté, affinez en consultant l'aide de la sous-commande : greatclips-pp-cli <commande> --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 associés