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:
- Instale via o instalador do Printing Press. Por padrão, os binários vão para
$HOME/.local/binno macOS/Linux e%LOCALAPPDATA%\Programs\PrintingPress\binno Windows:npx -y @mvanhorn/printing-press-library install greatclips --cli-only - Verifique:
greatclips-pp-cli --version - Certifique-se de que o diretório de instalação informado esteja no
$PATHdo 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 --chromepara 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úmerogreatclips-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 —
--selectmanté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-runmostra a requisição sem enviá-la -
Não interativo — nunca solicita entrada, toda entrada é uma flag
-
Retentativas explícitas — use
--idempotentapenas 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:
| Destino | Efeito |
|---|---|
stdout | Padrã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ódigo | Significado |
|---|---|
| 0 | Sucesso |
| 2 | Erro de uso (argumentos errados) |
| 3 | Recurso não encontrado |
| 4 | Autenticação necessária |
| 5 | Erro de API (problema upstream) |
| 7 | Limite de taxa atingido (aguarde e tente novamente) |
| 10 | Erro de configuração |
Análise de Argumentos
Analise $ARGUMENTS:
- Vazio,
helpou--help→ mostra a saída degreatclips-pp-cli --help - Começa com
install→ termina commcp→ instalação MCP; caso contrário → veja Pré-requisitos acima - 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
- Verifique se está instalado:
which greatclips-pp-cliSe não for encontrado, ofereça-se para instalar (veja Pré-requisitos no topo desta skill). - Corresponda a consulta do usuário ao melhor comando das Capacidades Únicas e Referência de Comandos acima.
- Execute com a flag
--agent:greatclips-pp-cli <comando> [subcomando] [argumentos] --agent - Se ambíguo, detalhe a ajuda do subcomando:
greatclips-pp-cli <comando> --help.