Communitygithub.com

mvanhorn/printing-press-library

Erstes CLI für Great Clips Online Check-In: Jeder Endpunkt und jede Route, bereit für echte Aufrufe nach dem Cookie-Setzen. Trigger-Phrasen: «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».

Was ist printing-press-library?

Diese Skill-Anweisung steuert die `greatclips-pp-cli`-Binärdatei, ein CLI zur Interaktion mit dem Online-Check-In-Dienst von Great Clips. Sie generiert die exakten HTTP-Anfragen, die auch die Single-Page-Webanwendung von Great Clips sendet, und gibt den Anfragekörper sowie das Routing aus – nützlich, um den API-Workflow zu verstehen, ohne eine echte Anmeldung. Das CLI deckt Endpunkte wie Anmeldung, Wartezeit, Laden- und Kundensuche sowie Profilabfragen ab und eignet sich daher ideal für Agenten, die Check-In- und Informationsworkflows automatisieren möchten. Es benötigt für Live-Aufrufe HttpOnly-Session-Cookies, die über eine Entwickler-Chrome-Sitzung erfasst werden können, und bietet für Entwicklungs- und Testzwecke Dry-Run- und JSON-Ausgabe. Zudem unterstützt es die MCP-Serverinstallation, konfigurierbare Profile, Agenten-Modus (mit nicht-interaktiven, pipe-fähigen Ausgaben), ausführliche Exit-Codes und mehrere Senken für die Ausgabe.

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

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Great Clips — Printing Press CLI

Voraussetzungen: CLI installieren

Diese Skill-Anweisung steuert die Binärdatei greatclips-pp-cli. Sie müssen überprüfen, ob das CLI installiert ist, bevor Sie einen Befehl aus dieser Skill-Anweisung ausführen. Wenn es fehlt, installieren Sie es zuerst:

  1. Installation über das Printing-Press-Installationsprogramm. Es installiert Binärdateien standardmäßig in $HOME/.local/bin unter macOS/Linux und in %LOCALAPPDATA%\Programme\PrintingPress\bin unter Windows:
    npx -y @mvanhorn/printing-press-library install greatclips --cli-only
    
  2. Überprüfen: greatclips-pp-cli --version
  3. Stellen Sie sicher, dass das gemeldete Installationsverzeichnis im $PATH für den Agenten/die Laufzeitumgebung liegt, die diesen Skill aufruft.

Falls die npx-Installation fehlschlägt (kein Node, offline usw.), greifen Sie auf eine direkte Go-Installation zurück (erfordert Go 1.26.6 oder neuer):

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

Wenn --version nach der Installation „command not found“ meldet, kann die Laufzeitumgebung das Binärverzeichnis im $PATH nicht finden. Fahren Sie nicht mit Skill-Befehlen fort, bis die Überprüfung erfolgreich war.

Wann dieses CLI verwendet werden sollte

Verwenden Sie dieses CLI, um die exakten HTTP-Anfragen zu senden, die die Great Clips Online Check-In SPA sendet – von der Kommandozeile aus, mit Dry-Run und --json-Ausgabe. v0.1 liefert die Anfragestruktur jedes Endpunkts, damit ein Agent darauf aufbauende Abläufe erstellen kann; für echte Aufrufe ist das manuelle Erfassen von Cookies aus einer angemeldeten Chrome-Sitzung erforderlich.

HTTP-Transport

Dieses CLI verwendet einen Chrome-kompatiblen HTTP-Transport für browserbasierte Endpunkte. Es benötigt keinen residenten Browserprozess für normale API-Aufrufe.

Erkennungssignale

Dieses CLI wurde mit dem Kontext des im Browser beobachteten Traffics generiert.

  • Erfassungsabdeckung: 9 API-Einträge von insgesamt 22 Netzwerkeinträgen
  • Protokolle: (0 % Konfidenz), (0 % Konfidenz), (0 % Konfidenz)
  • Generierungshinweise: Zwei-Host-Einzel-Auth: einen Bearer-Token-Client ausgeben, der sowohl webservices.greatclips.com als auch www.stylewaretouch.net bedient. POST /api/store/waitTime akzeptiert einen JSON-Array-Body mit {storeNumber}-Objekten, kein einzelnes Objekt. Einzel-Salon-Aufruf sendet ein Array der Länge 1. Auth live via Claude-in-Chrome MCP aus einer angemeldeten Chrome-Sitzung erfasst; das ausgegebene CLI sollte einen auth login --chrome-Hilfsbefehl für den äquivalenten Ablauf mitliefern.

Befehlsreferenz

cancel — Aktiven Check-in stornieren

  • greatclips-pp-cli cancel — Aktiven Check-in für dieses Konto stornieren

checkin — Check-in für sich selbst plus eine Gruppe (1-5 Personen) einreichen

  • greatclips-pp-cli checkin — Sich selbst und optional andere Gruppenmitglieder zur Warteliste eines Salons hinzufügen

customer — Great-Clips-Kundenprofil lesen (Name, Telefon, Favoriten, letzte Besuche)

  • greatclips-pp-cli customer — Profil des authentifizierten Kunden abrufen

geo — Eine Postleitzahl oder einen Ortsbegriff in Breiten-/Längengrad auflösen

  • greatclips-pp-cli geo — Postleitzahl in Breitengrad/Längengrad/Ort/Bundesland auflösen

hours — Salon-Öffnungszeiten lesen (heute plus 14-Tage-Vorhersage mit Sonderöffnungszeiten)

  • greatclips-pp-cli hours — 14-Tage-Öffnungszeitenvorhersage für einen Salon abrufen

salons — Great-Clips-Salons suchen und abrufen

  • greatclips-pp-cli salons get — Einen einzelnen Salon anhand seiner Salonnummer abrufen
  • greatclips-pp-cli salons search — Salons nach Postleitzahl, Ort oder Koordinaten innerhalb eines Radius suchen

status — Aktuelle Position in der Warteschlange für einen aktiven Check-in überprüfen

  • greatclips-pp-cli status — Status des aktiven Check-ins abrufen (Position in der Warteschlange, geschätzte Wartezeit)

wait — Geschätzte Wartezeiten vom ICS Net Check-In-Dienst lesen

  • greatclips-pp-cli wait — Wartezeit für einen Salon abrufen (Body ist ein Ein-Element-Array von {storeNumber})

Den richtigen Befehl finden

Wenn Sie wissen, was Sie tun möchten, aber nicht, welcher Befehl es tut, fragen Sie das CLI direkt:

greatclips-pp-cli which "<Fähigkeit in eigenen Worten>"

which löst eine natürlichsprachliche Fähigkeitsabfrage in den am besten passenden Befehl aus dem kuratierten Feature-Index dieses CLIs auf. Exit-Code 0 bedeutet mindestens eine Übereinstimmung; Exit-Code 2 bedeutet keine sichere Übereinstimmung – greifen Sie auf --help zurück oder verwenden Sie eine engere Abfrage.

Rezepte

Anforderungskörper für Check-in einer Vierergruppe

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

Gibt den exakten JSON-Body aus, der für eine Vierergruppe im Island Square an www.stylewaretouch.net/api/customer/checkIn POST-gesendet wird.

Wartezeitanfrage für einen Salon

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

Anfragestruktur für den ICS Net Check-In waitTime-Endpunkt.

Salons in der Nähe einer Postleitzahl

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

Anfragestruktur für den Salon-Suche/Begriff-Endpunkt mit einem Radius von 5 Meilen.

14-Tage-Öffnungszeitenvorhersage

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

Ruft salon-hours/upcoming für einen Salon auf; die Antwort enthält Sonderöffnungszeiten und Feiertagsschließungen.

Postleitzahl geokodieren

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

Löst eine Postleitzahl in Breitengrad/Längengrad/Ort/Bundesland über den Geo-Namen-Endpunkt auf.

Authentifizierungseinrichtung

Great Clips verwendet HttpOnly-Sitzungscookies von einem Auth0-Mandanten unter cid.greatclips.com. Browser-Sniff bestätigte, dass alle Aufrufe über die vom Browser angehängten Cookies erfolgreich sind, nicht über einen Authorization-Header. v0.1 dieses CLIs liefert die Anfragestruktur und das Host-Routing; für echte Aufrufe fügen Sie die Cookies aus einer angemeldeten Chrome-Sitzung in ~/.config/greatclips-pp-cli/config.toml ein. Setzen Sie GREATCLIPS_TOKEN auf einen beliebigen Platzhalter, damit der Arzt-Test besteht (die Umgebungsvariable wird für v0.2 beibehalten, falls Bearer-Support eintrifft).

Führen Sie greatclips-pp-cli doctor aus, um die Einrichtung zu überprüfen.

Agenten-Modus

Fügen Sie --agent zu jedem Befehl hinzu. Expandiert zu: --json --compact --no-input --no-color --yes.

  • In Pipeline verwendbar — JSON auf stdout, Fehler auf stderr

  • Filterbar — --select behält eine Teilmenge von Feldern. Gepunktete Pfade steigen in verschachtelte Strukturen ab; Arrays werden elementweise durchlaufen. Entscheidend, um den Kontext bei ausführlichen APIs klein zu halten:

    greatclips-pp-cli salons get --num example-value --agent --select id,name,status
    
  • Vorschau — --dry-run zeigt die Anfrage, ohne sie zu senden

  • Nicht interaktiv — fordert nie zur Eingabe auf, jede Eingabe ist ein Flag

  • Explizite Wiederholungen — verwenden Sie --idempotent nur, wenn ein bereits vorhandenes Erstellen als Erfolg gewertet werden soll

Agenten-Feedback

Wenn Ihnen (oder dem Agenten) etwas an diesem CLI auffällt, notieren Sie es:

greatclips-pp-cli feedback "der --since-Flag ist inklusiv, aber die Dokumentation sagt exklusiv"
greatclips-pp-cli feedback --stdin < notes.txt
greatclips-pp-cli feedback list --json --limit 10

Einträge werden lokal unter ~/.greatclips-pp-cli/feedback.jsonl gespeichert. Sie werden niemals per POST gesendet, es sei denn, GREATCLIPS_FEEDBACK_ENDPOINT ist gesetzt UND entweder --send wird übergeben oder GREATCLIPS_FEEDBACK_AUTO_SEND=true. Standardverhalten ist nur lokal.

Schreiben Sie, was Sie überrascht hat, keinen Fehlerbericht. Kurz, spezifisch, eine Zeile: Das ist der Teil, der sich summiert.

Ausgabeauslieferung

Jeder Befehl akzeptiert --deliver <Senke>. Die Ausgabe wird an die benannte Senke zusätzlich zu (oder anstelle von) stdout gesendet, sodass Agenten Befehlsergebnisse ohne manuelle Pipe weiterleiten können. Drei Senken werden unterstützt:

SenkeEffekt
stdoutStandard; nur auf stdout schreiben
file:<Pfad>Ausgabe atomar in <Pfad> schreiben (tmp + umbenennen)
webhook:<URL>Den Ausgabekörper an die URL POSTen (application/json oder application/x-ndjson bei --compact)

Unbekannte Schemata werden mit einem strukturierten Fehler abgelehnt, der die unterstützte Menge nennt. Webhook-Fehler geben einen Nicht-Null-Wert zurück und protokollieren die URL + HTTP-Status auf stderr.

Benannte Profile

Ein Profil ist ein gespeicherter Satz von Flag-Werten, der über Aufrufe hinweg wiederverwendet wird. Verwenden Sie es, wenn ein geplanter Agent denselben Befehl bei jeder Ausführung mit derselben Konfiguration aufruft – das „Beacon“-Muster von 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

Explizite Flags gewinnen immer über Profilwerte; Profilwerte gewinnen über Standardwerte. agent-context listet alle verfügbaren Profile unter available_profiles auf, damit sich selbst erforschende Agenten sie zur Laufzeit entdecken.

Exit-Codes

CodeBedeutung
0Erfolg
2Nutzungsfehler (falsche Argumente)
3Ressource nicht gefunden
4Authentifizierung erforderlich
5API-Fehler (Problem beim Upstream)
7Ratenlimit erreicht (warten und wiederholen)
10Konfigurationsfehler

Argument-Parsing

Parsen Sie $ARGUMENTS:

  1. Leer, help oder --help → greatclips-pp-cli --help-Ausgabe anzeigen
  2. Beginnt mit install → endet mit mcp → MCP-Installation; andernfalls → siehe Voraussetzungen oben
  3. Alles andere → Direkte Verwendung (als CLI-Befehl mit --agent ausführen)

MCP-Server-Installation

Installieren Sie die MCP-Binärdatei aus dem veröffentlichten öffentlichen Library-Eintrag dieses CLIs oder dem vorab erstellten Release und registrieren Sie sie dann:

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

Überprüfen: claude mcp list

Direkte Verwendung

  1. Prüfen Sie, ob installiert: which greatclips-pp-cli Wenn nicht gefunden, Installation anbieten (siehe Voraussetzungen oben in dieser Skill-Anweisung).
  2. Ordnen Sie die Benutzerabfrage dem besten Befehl aus den oben genannten Fähigkeiten und der Befehlsreferenz zu.
  3. Mit dem --agent-Flag ausführen:
    greatclips-pp-cli <Befehl> [Unterbefehl] [Argumente] --agent
    
  4. Bei Unklarheit in die Hilfe des Unterbefehls einsteigen: greatclips-pp-cli <Befehl> --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`.

Verwandte Skills