CLI
Todos os comandos seguem o formato slash <comando> [opções] e rodam na pasta em que você está. module, backup e admin aceitam --dir <pasta> para apontar outra pasta. Com --help depois do comando, o slash mostra só o uso dele.
uso: slash <comando> [opções]
slash create <pasta> [--template landing-page|one-page|multi-page|blog] [--model <modelo>] [--modules <id,…>] [--github owner/repo]
slash check [--watch]
slash approve
slash verify [--background] [--update-baseline] [--if-changed]
slash module list [--dir <pasta>]
slash module add <id> [--dir <pasta>]
slash backup [--restore <arquivo>] [--dir <pasta>]
slash admin create --email <e-mail> [--dir <pasta>]
[saída: 0]
Os comandos saem com código 0 quando dão certo. Um erro esperado, como uma opção desconhecida ou uma pasta que não é projeto, sai com 1 e uma mensagem em português. Uma falha inesperada sai com 2 e mostra a pilha de chamadas.
slash create
uso: slash create <pasta> [--template landing-page|one-page|multi-page|blog] [--model <modelo>] [--modules <id,…>] [--github owner/repo] Cria um projeto novo em <pasta>. A pasta não pode existir e não pode ficar dentro de um workspace do bun. Os programas bun e git precisam estar no PATH.
--template:landing-page(padrão),one-page,multi-pageoublog.--model: modelo visual do template. Emlanding-pageo padrão évendas(tambémproduto,evento,lancamentoecaptura); emmulti-page,classico(oucatalogo); emblog,revista(ouautorecentral).one-pagenão tem modelo.--modules: ids dos módulos separados por vírgula. Só vale com--template blog. Sem a opção, o blog recebe todos os módulos oficiais.--github owner/repo: cria um repositório privado com oghe envia o projeto. Exige oghinstalado.
Projeto criado em <projeto>.
Próximos passos, dentro da pasta:
slash check confere conteúdo, contraste e SEO
slash approve libera o conteúdo fictício aprovado
bun run dev servidor local
slash verify --update-baseline grava as bases visuais e verifica tudo
[saída: 0]
slash check
uso: slash check [--watch] Confere o conteúdo, o contraste das cores e o SEO do projeto. Sem problemas, a saída é check ok. Com --watch, o comando roda de novo a cada mudança em src/ e termina com Ctrl+C.
approve
Seção intitulada “approve”slash approve
uso: slash approve Lista o conteúdo fictício ou marcado como de origem do Claude que ainda não foi liberado, pede confirmação e grava content-release.json. A liberação leva o nome do git config user.name. Conteúdo pendente, placeholder ou problema de origem não é liberado: o comando recusa e diz o que corrigir. Se você recusar a confirmação, o comando sai com 1 e imprime Cancelado..
about.numbers[0] (fictitious): {"value":"12 anos","label":"de confeitaria"}
about.numbers[1] (fictitious): {"value":"3.400","label":"alunas formadas"}
about.numbers[2] (fictitious): {"value":"4,9","label":"nota média das avaliações"}
about.numbers[3] (fictitious): {"value":"27","label":"estados com alunas ativas"}
about.paragraphs[0] (fictitious): Sou a Marina, confeiteira há 12 anos. Comecei vendendo bolos…
about.paragraphs[1] (fictitious): Criei este curso para encurtar o caminho que levei anos para…
about.title (claude): Quem ensina
consent.text (claude): Usamos cookies para medir o uso da página e melhorar a ofert…
cta.cta.href (fictitious): https://pay.example.com/checkout/curso
cta.cta.label (claude): Quero garantir minha vaga
cta.text (claude): Garantia de 7 dias: se não gostar, devolvemos o valor.
cta.title (claude): Pronta para vender seus primeiros doces?
faq.items[0].answer (claude): Não. O curso começa do zero e avança passo a passo.
faq.items[0].question (claude): Preciso de experiência?
faq.items[1].answer (claude): Para sempre, com todas as atualizações futuras.
faq.items[1].question (claude): Por quanto tempo tenho acesso?
faq.items[2].answer (claude): Sim, em até 12 vezes, além de Pix e boleto.
faq.items[2].question (claude): Posso pagar no cartão?
faq.items[3].answer (claude): Você tem 7 dias para pedir o reembolso, sem burocracia.
faq.items[3].question (claude): E se eu não gostar?
faq.title (claude): Perguntas frequentes
features.intro (claude): Quatro pilares que tiram você do improviso e colocam pedidos…
features.items[0].text (claude): Mais de 40 receitas com rendimento e custo calculados.
features.items[0].title (claude): Receitas testadas
features.items[1].text (claude): Planilha pronta para saber quanto cobrar em cada doce.
features.items[1].title (claude): Preço sem achismo
features.items[2].text (claude): Modelos de mensagem e cardápio para fechar encomendas.
features.items[2].title (claude): Vendas pelo WhatsApp
features.items[3].text (claude): Tire dúvidas com a professora em dias úteis.
features.items[3].title (claude): Suporte de verdade
features.title (claude): Tudo para começar a vender já na primeira semana
featureSplit.eyebrow (claude): Como funciona
featureSplit.points[0] (claude): Aulas curtas, de até 12 minutos
featureSplit.points[1] (claude): Passo a passo com fotos e vídeos
featureSplit.points[2] (claude): Certificado ao concluir
featureSplit.text (claude): Cada módulo termina com uma tarefa prática, para você aplica…
featureSplit.title (claude): Do primeiro bolo à primeira encomenda
hero.cta.label (claude): Quero ver a aula de apresentação
hero.eyebrow (claude): Curso online de confeitaria
hero.rating (fictitious): {"value":4.9,"count":1280}
hero.subtitle (claude): Aprenda receitas, preço e vendas em 30 dias, no seu ritmo, d…
hero.title (claude): Transforme sua cozinha em um negócio que vende todo dia
pricing.guarantee.text (claude): Se não gostar, devolvemos o valor integral.
pricing.guarantee.title (claude): Garantia de 7 dias
pricing.intro (claude): Pague uma vez e tenha acesso para sempre.
pricing.plans[0].cta.href (fictitious): https://pay.example.com/checkout/curso
pricing.plans[0].cta.label (claude): Quero garantir minha vaga
pricing.plans[0].features[0] (claude): Acesso vitalício às aulas
pricing.plans[0].features[1] (claude): Planilhas e modelos prontos
pricing.plans[0].features[2] (claude): Comunidade de alunas
pricing.plans[0].features[3] (claude): Certificado de conclusão
pricing.plans[0].name (claude): Curso completo
pricing.plans[0].note (fictitious): ou 12x de R$ 51,40 no cartão
pricing.plans[0].price (fictitious): {"amount":497,"currency":"BRL","period":"once"}
pricing.title (claude): Um preço simples, sem surpresas
site.business (fictitious): {"name":"Doces Lucrativos","legalId":"12.345.678/0001-90"}
site.checkoutUrl (fictitious): https://pay.example.com/checkout/curso
site.gtmId (fictitious): GTM-TEST000
site.whatsapp (fictitious): {"number":"11999999999","message":"Olá! Quero saber mais sob…
testimonials.items[0] (fictitious): {"quote":"Na terceira semana já fechei minha primeira encome…
testimonials.items[1] (fictitious): {"quote":"A planilha de preços mudou minha margem. Eu vendia…
testimonials.items[2] (fictitious): {"quote":"Aulas curtas, que cabem na rotina de quem tem filh…
testimonials.title (claude): Quem fez o curso conta como foi
Liberar 63 item(ns) de conteúdo fictício/Claude? [s/N]
[saída: 0]
slash verify
uso: slash verify [--background] [--update-baseline] [--if-changed] Roda, em ordem, as bases visuais, o lint (quando o projeto declara um script lint), o typecheck com os testes, o check, o build, a conferência do HTML, o orçamento de tamanho, o Playwright e o Lighthouse. A primeira etapa que falha para a execução.
--update-baseline: regrava as imagens de referência das bases visuais.--if-changed: não roda nada quando a árvore do projeto é igual à da última execução verde e à do último commit.--background: roda em segundo plano. O andamento vai para.slash/verify.loge o resultado para.slash/verify.json.
✓ typecheck + testes (<n> s)
✓ check (<n> s)
✓ build (<n> s)
✓ html (<n> s)
✓ orçamento (<n> s)
✓ playwright (<n> s)
✓ lighthouse (<n> s)
[saída: 0]
slash module
uso: slash module list [--dir <pasta>]
uso: slash module add <id> [--dir <pasta>] Só existe em projetos blog, que têm o arquivo slash.lock.
slash module listmostra os módulos instalados e os disponíveis no catálogo oficial deste slash-kit.slash module add <id>copia o módulo e as dependências que o projeto ainda não tem, na ordem do catálogo. Depois regenerasrc/modules/index.tse grava os módulos noslash.lock. Se você editou o índice à mão, o comando acrescenta a linha do módulo ao seu arquivo, desde que consiga reconhecer a lista. Se não conseguir, recusa e não copia nada.
Reinicie o servidor para o painel carregar o módulo.
Instalados:
posts 1.0.0 v1.1.0
Disponíveis:
categorias 1.0.0 depende de: posts
comentarios 1.0.0 depende de: posts
metricas 1.0.0 depende de: posts
newsletter 1.0.0 sem dependências
paginas 1.0.0 sem dependências
redirecionamentos 1.0.0 sem dependências
seo 1.0.0 depende de: posts, paginas
tags 1.0.0 depende de: posts
[saída: 0]
Instalado: tags 1.0.0.
Reinicie o servidor (bun run start) para o painel carregar o que entrou.
[saída: 0]
Fora de um projeto blog, o comando recusa e diz o que falta:
Esta pasta não é um projeto blog do slash: slash.lock não encontrado em <pasta>. Rode o comando dentro de um projeto criado com "slash create <pasta> --template blog" ou use --dir <pasta>.
[saída: 1]
slash backup
uso: slash backup [--restore <arquivo>] [--dir <pasta>] Só existe em projetos blog. Sem opções, faz um backup manual em storage/backups, com o banco, as imagens da mídia e o slash.lock. A pasta do banco vem de DATABASE_URL; sem ela, é storage/db.sqlite.
Com --restore <arquivo>, o comando pede confirmação e substitui o banco e as imagens pelo conteúdo do arquivo. Antes, guarda um backup do estado atual. O arquivo pode ser um caminho ou só o nome de um backup de storage/backups. Depois da restauração, todos saem do painel e os convites e links de recuperação deixam de valer. A linha de comando não publica o site: republique pela tela Publicação do painel.
Backup criado: storage/backups/backup-<data>-manual.tar.gz
[saída: 0]
slash admin
uso: slash admin create --email <e-mail> [--dir <pasta>] Só existe em projetos blog. Cria um administrador que pode entrar no painel, útil no primeiro acesso ou quando a conta se perde. A senha é pedida duas vezes no terminal, sem eco, e nunca vem em uma opção. Ela precisa ter pelo menos 12 caracteres caracteres. O e-mail é gravado em minúsculas, e um e-mail já cadastrado é recusado.
Senha: Repita a senha: Administrador criado: admin@exemplo.com.br
[saída: 0]