Communitygithub.com

mvanhorn/printing-press-library

Great Clips 線上報到 CLI:包含所有端點請求格式與主機路由,取得 Cookie 後即可進行實際呼叫。觸發短語:`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`。

printing-press-library 是什麼?

這項技能提供一個基於 CLI 的工具,用於驅動 Great Clips 線上報到系統的功能。它建構在 `greatclips-pp-cli` 二進位檔之上,封裝了官方 Great Clips SPA 使用的所有 HTTP 端點請求格式。開發人員或 AI 代理程式可以使用它來執行檢查等候時間、搜尋沙龍、管理報到以及取得客戶資料等操作,全部透過 JSON 輸出與 `--dry-run` 模式進行,非常適合非互動式的自動化場景。 此 CLI 使用 Chrome 相容的 HTTP 傳輸層,不需常駐瀏覽器。它支援多種平台(macOS/Linux/Windows),並可透過 `npx` 或 `go install` 安裝。預設情況下,它會輸出要求形狀(request shape),讓代理程式可以建立流程;實際呼叫需要從已登入的 Chrome 工作階段手動擷取 Cookie。 為代理程式最佳化,此 CLI 支援 `--agent` 旗標,可啟用 JSON 輸出、非互動式執行與過濾功能(使用 `--select`)。它也包含一個自然語言 `which` 子命令,可將使用者意圖對應到正確的 CLI 命令、提供反饋機制,並支援 `--deliver` 選項,可將輸出導向檔案或 Webhook。這使其成為將 Great Clips 功能整合到大型自動化工作流程中的理想組合。

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

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

Great Clips — Printing Press CLI

先決條件:安裝 CLI

此技能驅動 greatclips-pp-cli 二進位檔。在執行此技能的任何命令之前,您必須確認 CLI 已安裝。 如果缺少,請先安裝:

  1. 透過 Printing Press 安裝程式進行安裝。它在 macOS/Linux 上預設將二進位檔安裝到 $HOME/.local/bin,在 Windows 上安裝到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install greatclips --cli-only
    
  2. 驗證:greatclips-pp-cli --version
  3. 確保回報的安裝目錄存在於將呼叫此技能的代理程式/執行環境的 $PATH 環境變數中。

如果 npx 安裝失敗(無 Node.js、離線等),請改用直接 Go 安裝(需要 Go 1.26.6 或更新版本):

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

如果安裝後 --version 回報「找不到命令」,表示執行環境無法在 $PATH 中找到二進位檔目錄。在驗證成功之前,請勿繼續執行此技能的命令。

何時使用此 CLI

使用此 CLI 可從命令列發送 Great Clips 線上報到 SPA 發送的確切 HTTP 請求,並支援 --dry-run 和 --json 輸出。v0.1 版本提供每個端點的請求格式,讓代理程式可以在其上建構流程;實際呼叫需要從已登入的 Chrome 工作階段手動擷取 Cookie。

HTTP 傳輸

此 CLI 針對瀏覽器端端點使用 Chrome 相容的 HTTP 傳輸。進行一般 API 呼叫時不需要常駐的瀏覽器程序。

探索訊號

此 CLI 是根據瀏覽器觀測到的流量上下文所產生。

  • 捕獲範圍:22 個網路項目中的 9 個 API 項目
  • 通訊協定:(0% 信心度),(0% 信心度),(0% 信心度)
  • 產生的提示:雙主機單一驗證:產生一個 bearer token 客戶端,同時處理 webservices.greatclips.com 和 www.stylewaretouch.net。,`POST /api/store/waitTime接收一個包含{storeNumber}物件的 JSON 陣列,而非單一物件。單一沙龍呼叫會發送長度為 1 的陣列。,驗證資訊透過登入 Chrome 工作階段的 Claude-in-Chrome MCP 即時捕獲;產生的 CLI 應提供一個auth login --chrome` 輔助命令以進行等效流程。

命令參考

cancel — 取消您的有效報到

  • greatclips-pp-cli cancel — 取消此帳號的有效報到

checkin — 為您自己及同行者(1-5 人)提交報到

  • greatclips-pp-cli checkin — 將您自己及可選的其他同行者加入沙龍等候清單

customer — 讀取您的 Great Clips 客戶資料(姓名、電話、常用設定、近期到訪記錄)

  • greatclips-pp-cli customer — 取得已驗證客戶的個人資料

geo — 將郵遞區號或城市名稱解析為經緯度

  • greatclips-pp-cli geo — 將郵遞區號解析為緯度/經度/城市/州

hours — 讀取沙龍營業時間(今日起算,含特殊營業時間的 14 天預測)

  • greatclips-pp-cli hours — 取得一個沙龍的 14 天營業時間預測

salons — 搜尋及查詢 Great Clips 沙龍

  • greatclips-pp-cli salons get — 依沙龍編號取得單一沙龍
  • greatclips-pp-cli salons search — 依郵遞區號、城市或指定半徑內的座標搜尋沙龍

status — 檢查您目前在有效報到隊伍中的位置

  • greatclips-pp-cli status — 取得您的有效報到狀態(隊伍位置、預估等候時間)

wait — 從 ICS Net Check-In 服務讀取預估等候時間

  • greatclips-pp-cli wait — 取得一個沙龍的等候時間(請求主體為包含單一 {storeNumber} 物件的陣列)

尋找正確的命令

當您知道想做什麼,但不確定哪個命令能達成時,可以直接詢問 CLI:

greatclips-pp-cli which "<以您自己的話描述的功能>"

which 會將自然語言的功能查詢解析為此 CLI 精選功能索引中最匹配的命令。結束代碼 0 表示至少有一個匹配;結束代碼 2 表示沒有確定的匹配 — 請改用 --help 或使用更具體的字詞進行查詢。

實用範例

四人同行報到請求主體

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

輸出 POST 到 www.stylewaretouch.net/api/customer/checkIn,用於 Island Square 四人同行的確切 JSON 請求主體。

沙龍等候時間請求

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

ICS Net Check-In 的 waitTime 端點請求格式。

依郵遞區號搜尋附近沙龍

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

半徑 5 英里的 salon-search/term 端點請求格式。

14 天營業時間預測

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

呼叫一個沙龍的 salon-hours/upcoming;回應包含特殊營業時間和節假日休息資訊。

地理編碼郵遞區號

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

透過 geo-names 端點將郵遞區號解析為緯度/經度/城市/州。

驗證設定

Great Clips 使用來自 cid.greatclips.com 的 Auth0 租戶的 HttpOnly 工作階段 Cookie。瀏覽器嗅探確認所有呼叫皆透過瀏覽器附加的 Cookie 成功,而非透過 Authorization 標頭。此 CLI 的 v0.1 版本提供請求格式與主機路由;要進行實際呼叫,請將已登入 Chrome 工作階段的 Cookie 貼入 ~/.config/greatclips-pp-cli/config.toml。將 GREATCLIPS_TOKEN 設定為任何佔位值,以便通過 doctor 檢查(保留此環境變數是為了 v0.2 可能加入 bearer 支援)。

執行 greatclips-pp-cli doctor 以驗證設定。

代理模式

在任何命令後加上 --agent。展開為:--json --compact --no-input --no-color --yes。

  • 可管線化 — JSON 輸出至標準輸出,錯誤輸出至標準錯誤

  • 可過濾 — --select 保留欄位的子集合。點分隔路徑會深入巢狀結構;陣列會逐項展開。對於在資訊量大的 API 上保持上下文精簡至關重要:

    greatclips-pp-cli salons get --num example-value --agent --select id,name,status
    
  • 可預覽 — --dry-run 顯示請求而不實際發送

  • 非互動式 — 永不提示,所有輸入皆為旗標

  • 明確重試 — 僅在已存在的建立操作應視為成功時使用 --idempotent

代理反饋

當您(或代理程式)發現此 CLI 有任何異常時,請記錄下來:

greatclips-pp-cli feedback "--since 旗標是包含性的,但文件說是非包含性的"
greatclips-pp-cli feedback --stdin < notes.txt
greatclips-pp-cli feedback list --json --limit 10

記錄會儲存在本機的 ~/.greatclips-pp-cli/feedback.jsonl。除非設定了 GREATCLIPS_FEEDBACK_ENDPOINT 並且傳遞了 --send 或設定了 GREATCLIPS_FEEDBACK_AUTO_SEND=true,否則永遠不會被 POST。預設行為僅限本機。

請寫下讓您感到意外的事情,而非錯誤報告。簡短、具體、一行:這才是能夠累積產生價值的部分。

輸出傳遞

每個命令都接受 --deliver <sink>。輸出會傳送到指定的接收端,作為標準輸出的補充或替代,以便代理程式可以路由命令結果而無需手動管線化。支援三種接收端:

接收端效果
stdout預設;僅輸出到標準輸出
file:<path>原子性地將輸出寫入 <path>(暫存檔 + 重新命名)
webhook:<url>將輸出內容 POST 到該 URL(當使用 --compact 時,內容類型為 application/json 或 application/x-ndjson)

不支援的配置會被拒絕,並回傳包含支援集合的結構化錯誤。Webhook 失敗會回傳非零結束代碼,並在標準錯誤輸出記錄 URL 和 HTTP 狀態。

命名設定檔

設定檔是一組已儲存的旗標值,可在多次調用中重複使用。當排程代理程式每次執行都使用相同配置呼叫相同命令時使用 — 例如 HeyGen 的「Beacon」模式。

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

明確的旗標值優先於設定檔的值;設定檔的值優先於預設值。agent-context 會列出 available_profiles 下的所有可用設定檔,以便內省代理程式在執行階段發現它們。

結束代碼

代碼意義
0成功
2使用錯誤(參數錯誤)
3找不到資源
4需要驗證
5API 錯誤(上游問題)
7達到速率限制(請等待後重試)
10配置錯誤

參數解析

解析 $ARGUMENTS:

  1. 空值、help 或 --help → 顯示 greatclips-pp-cli --help 輸出
  2. 以 install 開頭 → 結尾為 mcp → MCP 安裝;否則 → 請參閱上方先決條件
  3. 其他任何情況 → 直接使用(以 CLI 命令形式執行,並加上 --agent)

MCP 伺服器安裝

從此 CLI 的已發布公共函式庫項目或預先建置的發行版本安裝 MCP 二進位檔,然後註冊:

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

驗證:claude mcp list

直接使用

  1. 檢查是否已安裝:which greatclips-pp-cli 如果找不到,提議進行安裝(請參閱此技能頂部的先決條件)。
  2. 將使用者的查詢與上方獨特功能和命令參考中最匹配的命令進行配對。
  3. 使用 --agent 旗標執行:
    greatclips-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果不明確,請深入查詢子命令的說明:greatclips-pp-cli <command> --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`.

相關技能