Communitygithub.com

mvanhorn/printing-press-library

Primeiro CLI para o Check-In Online da Great Clips: todos os formatos de endpoint e rotas de host, pronto para chamadas reais após capturar cookies. Frases de ativação: `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`.

O que é printing-press-library?

Esta skill capacita agentes de IA a interagir programaticamente com o serviço de check-in online da Great Clips usando o CLI `greatclips-pp-cli`. Ela mapeia todos os endpoints HTTP observados no navegador da SPA oficial, incluindo check-in, consulta de tempo de espera, pesquisa de salões, obtenção de horários e geolocalização. O CLI gera requisições com formato exato e suporta modos de saída JSON e dry-run, permitindo que agentes modelem fluxos sem fazer chamadas reais. As chamadas ativas exigem cookies de sessão de um navegador Chrome logado, que são colados manualmente na configuração. A skill também fornece perfis nomeados, um comando de feedback para anotações do agente e modos de entrega para rotear saída para arquivos ou webhooks. Seu resumo de AI deve explicar claramente que esta skill se destina a desenvolvedores ou agentes que precisam automatizar o check-in da Great Clips, que ela depende de um CLI instalado separadamente e que as requisições reais exigem captura manual de cookies de autenticação.

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

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Great Clips — Printing Press CLI

Pré-requisitos: Instalar o CLI

Esta skill utiliza o binário greatclips-pp-cli. Você deve verificar se o CLI está instalado antes de invocar qualquer comando desta skill. Se estiver ausente, instale-o primeiro:

  1. Instale via o instalador do Printing Press. Por padrão, os binários vão para $HOME/.local/bin no macOS/Linux e %LOCALAPPDATA%\Programs\PrintingPress\bin no Windows:
    npx -y @mvanhorn/printing-press-library install greatclips --cli-only
    
  2. Verifique: greatclips-pp-cli --version
  3. Certifique-se de que o diretório de instalação informado esteja no $PATH do agente/runtime que invocará esta skill.

Se a instalação via npx falhar (sem Node, offline, etc.), recorra a uma instalação direta com Go (requer Go 1.26.6 ou mais recente):

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

Se --version exibir "comando não encontrado" após a instalação, o runtime não consegue enxergar o diretório do binário no $PATH. Não prossiga com os comandos da skill até que a verificação seja bem-sucedida.

Quando Usar Este CLI

Use este CLI para enviar as requisições HTTP exatas que a SPA de Check-In Online da Great Clips envia, a partir da linha de comando, com suporte a dry-run e saída --json. A v0.1 disponibiliza o formato de requisição de cada endpoint para que um agente possa construir fluxos em cima deles; chamadas reais exigem captura manual de cookies de uma sessão Chrome logada.

Transporte HTTP

Este CLI utiliza transporte HTTP compatível com Chrome para endpoints voltados ao navegador. Ele não requer um processo de navegador residente para chamadas de API normais.

Sinais de Descoberta

Este CLI foi gerado com contexto de tráfego observado no navegador.

  • Cobertura de captura: 9 entradas de API de um total de 22 entradas de rede
  • Protocolos: (0% de confiança), (0% de confiança), (0% de confiança)
  • Dicas de geração: Dois hosts, uma autenticação: emite um cliente de token bearer que lida tanto com webservices.greatclips.com quanto com www.stylewaretouch.net., POST /api/store/waitTime recebe um corpo de array JSON de objetos {storeNumber}, não um único objeto. Chamada de salão único envia um array de tamanho 1., Autenticação capturada ao vivo via Claude-in-Chrome MCP de uma sessão Chrome logada; o CLI gerado deve incluir um comando auxiliar auth login --chrome para o fluxo equivalente.

Referência de Comandos

cancel — Cancela seu check-in ativo

  • greatclips-pp-cli cancel — Cancela o check-in ativo desta conta

checkin — Submete um check-in para você e um grupo (1-5 pessoas)

  • greatclips-pp-cli checkin — Adiciona você e opcionalmente outros membros do grupo a uma lista de espera de salão

customer — Lê seu perfil de cliente Great Clips (nome, telefone, favoritos, visitas recentes)

  • greatclips-pp-cli customer — Obtém o perfil do cliente autenticado

geo — Resolve um CEP ou termo de cidade para latitude/longitude

  • greatclips-pp-cli geo — Resolve um código postal para lat/lng/cidade/estado

hours — Lê os horários do salão (hoje mais previsão de 14 dias com horários especiais)

  • greatclips-pp-cli hours — Obtém a previsão de horários de 14 dias para um salão

salons — Pesquisa e consulta salões da Great Clips

  • greatclips-pp-cli salons get — Obtém um salão pelo seu número
  • greatclips-pp-cli salons search — Pesquisa salões por CEP, cidade ou coordenadas dentro de um raio

status — Verifica sua posição atual na fila de um check-in ativo

  • greatclips-pp-cli status — Obtém o status do seu check-in ativo (posição na fila, tempo estimado de espera)

wait — Lê os tempos de espera estimados do serviço ICS Net Check-In

  • greatclips-pp-cli wait — Obtém o tempo de espera para um salão (corpo é um array de um elemento de {storeNumber})

Encontrando o comando certo

Quando você sabe o que quer fazer mas não sabe qual comando executa, pergunte diretamente ao CLI:

greatclips-pp-cli which "<capacidade em suas próprias palavras>"

which resolve uma consulta de capacidade em linguagem natural para o melhor comando correspondente a partir do índice de recursos selecionado deste CLI. Código de saída 0 significa pelo menos uma correspondência; código de saída 2 significa nenhuma correspondência confiante — recorra a --help ou use uma consulta mais específica.

Receitas

Corpo da requisição de check-in para grupo de quatro

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

Emite o JSON exato do corpo POSTado para www.stylewaretouch.net/api/customer/checkIn para um grupo de quatro no Island Square.

Requisição de tempo de espera para um salão

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

Formato da requisição para o endpoint waitTime do ICS Net Check-In.

Salões perto de um CEP

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

Formato da requisição para o endpoint salon-search/term com raio de 5 milhas.

Previsão de horários de 14 dias

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

Chama salon-hours/upcoming para um salão; a resposta inclui horários especiais e fechamentos em feriados.

Geocodificar um código postal

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

Resolve um CEP para lat/lng/cidade/estado via o endpoint geo-names.

Configuração de Autenticação

A Great Clips utiliza cookies de sessão HttpOnly de um tenant Auth0 em cid.greatclips.com. A captura do navegador confirmou que todas as chamadas são bem-sucedidas via cookies anexados pelo navegador, não via cabeçalho Authorization. A v0.1 deste CLI disponibiliza o formato da requisição e o roteamento de host; para fazer chamadas reais, cole os cookies de uma sessão Chrome logada em ~/.config/greatclips-pp-cli/config.toml. Defina GREATCLIPS_TOKEN como qualquer valor fictício para que o doctor passe (a variável de ambiente é mantida para a v0.2, quando o suporte a bearer pode chegar).

Execute greatclips-pp-cli doctor para verificar a configuração.

Modo Agente

Adicione --agent a qualquer comando. Expande para: --json --compact --no-input --no-color --yes.

  • Pipeável — JSON no stdout, erros no stderr

  • Filtrável — --select mantém um subconjunto de campos. Caminhos com pontos descem em estruturas aninhadas; arrays percorrem elemento por elemento. Crucial para manter o contexto pequeno em APIs verbosas:

    greatclips-pp-cli salons get --num exemplo-valor --agent --select id,name,status
    
  • Visualizável — --dry-run mostra a requisição sem enviá-la

  • Não interativo — nunca solicita entrada, toda entrada é uma flag

  • Retentativas explícitas — use --idempotent apenas quando uma criação já existente deve ser considerada sucesso

Feedback do Agente

Quando você (ou o agente) notar algo errado neste CLI, registre:

greatclips-pp-cli feedback "a flag --since é inclusiva mas a documentação diz exclusiva"
greatclips-pp-cli feedback --stdin < notes.txt
greatclips-pp-cli feedback list --json --limit 10

As entradas são armazenadas localmente em ~/.greatclips-pp-cli/feedback.jsonl. Elas nunca são POSTadas a menos que GREATCLIPS_FEEDBACK_ENDPOINT esteja definido E --send seja passado ou GREATCLIPS_FEEDBACK_AUTO_SEND=true. O comportamento padrão é apenas local.

Escreva o que surpreendeu você, não um relatório de bug. Curto, específico, uma linha: essa é a parte que se acumula.

Entrega de Saída

Todo comando aceita --deliver <destino>. A saída vai para o destino nomeado além de (ou no lugar de) stdout, para que agentes possam rotear resultados de comandos sem redirecionamento manual. Três destinos são suportados:

DestinoEfeito
stdoutPadrão; escreve apenas no stdout
file:<caminho>Escreve atomicamente a saída em <caminho> (tmp + renomear)
webhook:<url>POSTa o corpo da saída para a URL (application/json ou application/x-ndjson quando --compact)

Esquemas desconhecidos são recusados com um erro estruturado nomeando o conjunto suportado. Falhas de webhook retornam código diferente de zero e registram a URL + código HTTP no stderr.

Perfis Nomeados

Um perfil é um conjunto salvo de valores de flag, reutilizado entre invocações. Use-o quando um agente agendado chama o mesmo comando toda execução com a mesma configuração — o padrão "Beacon" do HeyGen.

greatclips-pp-cli profile save briefing --json
greatclips-pp-cli --profile briefing salons get --num exemplo-valor
greatclips-pp-cli profile list --json
greatclips-pp-cli profile show briefing
greatclips-pp-cli profile delete briefing --yes

Flags explícitas sempre vencem sobre valores de perfil; valores de perfil vencem sobre padrões. agent-context lista todos os perfis disponíveis sob available_profiles, para que agentes introspecção os descubram em tempo de execução.

Códigos de Saída

CódigoSignificado
0Sucesso
2Erro de uso (argumentos errados)
3Recurso não encontrado
4Autenticação necessária
5Erro de API (problema upstream)
7Limite de taxa atingido (aguarde e tente novamente)
10Erro de configuração

Análise de Argumentos

Analise $ARGUMENTS:

  1. Vazio, help ou --help → mostra a saída de greatclips-pp-cli --help
  2. Começa com install → termina com mcp → instalação MCP; caso contrário → veja Pré-requisitos acima
  3. Qualquer outra coisa → Uso Direto (executa como comando CLI com --agent)

Instalação do Servidor MCP

Instale o binário MCP a partir da entrada de biblioteca pública publicada deste CLI ou de uma release pré-compilada e registre-o:

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

Verifique: claude mcp list

Uso Direto

  1. Verifique se está instalado: which greatclips-pp-cli Se não for encontrado, ofereça-se para instalar (veja Pré-requisitos no topo desta skill).
  2. Corresponda a consulta do usuário ao melhor comando das Capacidades Únicas e Referência de Comandos acima.
  3. Execute com a flag --agent:
    greatclips-pp-cli <comando> [subcomando] [argumentos] --agent
    
  4. Se ambíguo, detalhe a ajuda do 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`.

Habilidades Relacionadas