<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática</title><description>CanalQb reúne tutoriais práticos de Python, automação, bots, scripts e criptomoedas. Guias completos sobre airdrops, testnets, staking, wallets e Web3. Conteúdo real sobre mineração, OSINT, segurança digital, hardware e sistemas operacionais. Ideal para quem quer aprender programação e entender o ecossistema cripto sem depender de teoria. Cada tutorial foi testado na prática — direto ao ponto, em português, para iniciantes e avançados.</description><managingEditor>noreply@blogger.com (CanalQb)</managingEditor><pubDate>Mon, 26 Oct 2026 00:18:36 -0300</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">2038</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>https://canalqb.blogspot.com/</link><language>en-us</language><itunes:explicit>no</itunes:explicit><itunes:subtitle>CanalQb reúne tutoriais práticos de Python, automação, bots, scripts e criptomoedas. Guias completos sobre airdrops, testnets, staking, wallets e Web3. Conteúdo real sobre mineração, OSINT, segurança digital, hardware e sistemas operacionais. Ideal para q</itunes:subtitle><itunes:owner><itunes:email>noreply@blogger.com</itunes:email></itunes:owner><item><title>ZebraDesigner 3 Pro: R$ 1.497 ou editor grátis?</title><link>https://canalqb.blogspot.com/2026/10/zebradesigner-3-pro-r-1497-ou-editor.html</link><category>código de barras</category><category>editor de etiquetas</category><category>etiquetas</category><category>impressora Zebra</category><category>impressão em lote</category><category>Link-OS</category><category>Planilha</category><category>QR Code</category><category>software grátis</category><category>zebra</category><category>ZebraDesigner</category><category>ZebraDesigner Essentials</category><category>ZebraDesigner Professional 3</category><category>zpl</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 25 Oct 2026 23:55:54 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-3144238472940475569</guid><description>&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR1jXUrLucjRauCJlEYMEOVkRzU9paIXDuQpolRLmO9__PqbcGTH6kJPTL_bhIIJkvS6bwxZ_UjgzFzBMOWJ1lP8cZ4cWdiyAUAH_J0QPZ7qdSbGSi6N_9UMdGIWpsSijjFYjgwrINdeX3UJpuTbQMctvfDgJL3cPoJtbjU_CNIRKL33tAZ612NCb6LMnj/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;ZebraDesigner 3 Pro: R$ 1.497 ou editor grátis?&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_wrap{max-width:860px;margin:0 auto;padding:0 16px;color:#555555;line-height:1.75;font-size:1.02em}
.post_cqb_wrap h2{color:#333333;font-size:1.45em;line-height:1.3;margin:42px 0 14px}
.post_cqb_wrap h3{color:#333333;font-size:1.15em;margin:26px 0 10px}
.post_cqb_wrap strong{color:#333333}
.post_cqb_wrap a{color:#2196f3}
.post_cqb_wrap a:focus-visible,.post_cqb_wrap summary:focus-visible,.post_copy_btn:focus-visible{outline:3px solid #2196f3;outline-offset:2px}
.post_cqb_badge{display:inline-flex;align-items:center;gap:8px;background:rgba(40,167,69,.1);color:#28a745;border-radius:20px;padding:6px 14px;font-weight:600;font-size:.9em}
.post_cqb_sign{font-size:.8em;color:#555555;margin:6px 0 0}
.post_cqb_tldr{background:rgba(40,167,69,.08);border-left:5px solid #28a745;border-radius:8px;padding:16px 20px;margin:22px 0}
.post_cqb_tldr h2{margin:0 0 8px;font-size:1.1em;color:#28a745}
.post_cqb_tldr ul{margin:0;padding-left:20px}
.post_cqb_tldr li{margin:6px 0}
.post_cqb_lead{font-size:1.18em;font-weight:700;color:#333333;margin:26px 0 8px}
.post_cqb_quickfix{background:rgba(255,193,7,.1);border-left:5px solid #ffc107;border-radius:8px;padding:18px 20px;margin:34px 0}
.post_cqb_quickfix h2{margin-top:0}
.post_cqb_quickfix_list{list-style:none;padding:0;margin:12px 0 0}
.post_cqb_quickfix_list li{display:flex;gap:10px;align-items:flex-start;padding:7px 0}
.post_cqb_quickfix_list li i{margin-top:5px;flex-shrink:0}
.post_cqb_table_wrap{overflow-x:auto;margin:18px 0}
.post_cqb_table{border-collapse:collapse;width:100%;font-size:.93em}
.post_cqb_table th{background:rgba(33,150,243,.12);color:#333333;text-align:left}
.post_cqb_table th,.post_cqb_table td{border:1px solid #d9d9d9;padding:10px 12px;vertical-align:top}
.post_cqb_step{border-left:4px solid #2196f3;padding:4px 0 4px 16px;margin:22px 0}
.post_cqb_tip{color:#555555}
.post_cqb_codeblock{position:relative;margin:18px 0}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107}
.post_cqb_codeblock pre{margin:0;overflow-x:auto;font-size:.88em;line-height:1.55}
.post_copy_btn{position:absolute;top:8px;right:8px;min-height:44px;min-width:44px;border:1px solid #555;border-radius:6px;cursor:pointer;padding:6px 12px;font-size:.8em}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;margin:18px 0;overflow-x:auto}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_cqb_faq_container{margin:30px 0}
.post_cqb_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_cqb_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333333;min-height:44px}
.post_cqb_faq_question:hover{background:#f0f0f0}
.post_cqb_faq_answer{padding:15px;background:#fff;color:#555555;line-height:1.7}
.post_cqb_faq_item[open] .post_cqb_faq_question{background:rgba(40,167,69,.1);color:#28a745}
.post_cqb_erros{margin:40px 0}
.post_cqb_erro_card{border:1px solid #e0e0e0;border-left:5px solid #d32f2f;border-radius:8px;padding:14px 18px;margin:16px 0}
.post_cqb_erro_card h3{margin-top:4px}
.post_cqb_refs li{margin:8px 0}
.post_cqb_progress{position:fixed;top:0;left:0;height:4px;width:0;background:#28a745;z-index:9999}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .post_cqb_wrap{color:#d6d6d6}
  :root:not([data-theme="light"]) .post_cqb_wrap h2,:root:not([data-theme="light"]) .post_cqb_wrap h3,:root:not([data-theme="light"]) .post_cqb_wrap strong{color:#f1f1f1}
  :root:not([data-theme="light"]) .post_cqb_table th{color:#f1f1f1}
  :root:not([data-theme="light"]) .post_cqb_table th,:root:not([data-theme="light"]) .post_cqb_table td{border-color:#444}
  :root:not([data-theme="light"]) .post_cqb_faq_answer{background:transparent;color:#d6d6d6}
  :root:not([data-theme="light"]) .post_cqb_faq_question{background:rgba(255,255,255,.06);color:#f1f1f1}
}
@media (max-width:768px){.post_cqb_wrap{font-size:1em}.post_cqb_wrap h2{font-size:1.3em}}
@media (prefers-reduced-motion: reduce){.post_cqb_progress{transition:none}}
&lt;/style&gt;

&lt;div aria-hidden="true" class="post_cqb_progress" id="post_cqb_progress"&gt;&lt;/div&gt;

&lt;div class="post_cqb_wrap"&gt;

&lt;p style="margin: 14px 0px 4px; text-align: center;"&gt;&lt;span class="post_cqb_badge"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~25 min&lt;/span&gt;&lt;/p&gt;
&lt;p class="post_cqb_sign" style="text-align: center;"&gt;Feito com Master Rules Claude v9.2&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;h2&gt;&lt;i class="fas fa-bolt"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;O ZebraDesigner Professional 3 é uma licença paga de ativação única para um computador, anunciada a R$ 1.497,00 numa loja brasileira, mas a Zebra distribui a edição Essentials 3 de graça.&lt;/li&gt;
    &lt;li&gt;O Pro vende conexão com bancos ODBC, script VB, assistentes de RFID e GS1-128; se você só usa planilha, lote e impressão, esse dinheiro compra recurso parado.&lt;/li&gt;
    &lt;li&gt;Use o editor gratuito do CanalQb para planilha em lote e teste o Pro por 30 dias apenas se precisar de banco, RFID, script ou arquivos .NLBL.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

  
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Acesse" href="https://canalqb.github.io/etiquetas-zebra/" onmouseout="this.style.background='#28a745'" onmouseover="this.style.background='#218838'" rel="noopener" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" style="margin-right: 10px;"&gt;&lt;/i&gt;Acesse
  &lt;/a&gt;
&lt;/div&gt;

  
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/YMxUKctv8t0?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo de @CanalQb — ZebraDesigner 3 Pro: R$ 1.497 ou editor grátis?" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p style="background: rgba(255, 193, 7, 0.15); border-left: 4px solid rgb(255, 193, 7); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-scale-balanced"&gt;&lt;/i&gt; &lt;strong&gt;Transparência:&lt;/strong&gt;
  O @CanalQb desenvolve e mantém o editor gratuito comparado neste post, o que é um conflito de interesse. Por isso as afirmações sobre o ZebraDesigner vêm de documentos da própria Zebra, linkados no fim, e os limites do nosso editor aparecem de forma explícita. Preços de loja mudam; confira o valor atual antes de decidir.
&lt;/p&gt;

&lt;p class="post_cqb_lead"&gt;R$ 1.497,00 por uma licença que serve a um computador só.&lt;/p&gt;
&lt;p&gt;Uma loja brasileira anuncia o ZebraDesigner Professional 3 com licença de ativação paga para uma única máquina. Só que a Zebra também entrega a edição Essentials 3 sem custo, e o editor do @CanalQb imprime etiquetas Zebra direto do navegador, de graça. A pergunta útil, então, não é qual dos três é o melhor, e sim qual deles resolve o seu trabalho sem cobrar por recurso que você nunca vai abrir.&lt;/p&gt;
&lt;p&gt;Mais abaixo você encontra seis perguntas que decidem a compra em poucos minutos, a conta de quanto a licença custa quando a equipe cresce e a lista do que o nosso editor ainda não faz, escrita por quem o mantém.&lt;/p&gt;

&lt;section aria-label="Soluções rápidas" class="post_cqb_quickfix"&gt;
  &lt;h2&gt;&lt;i class="fas fa-bolt" style="color: #ffc107;"&gt;&lt;/i&gt; Quais são as soluções rápidas para quem só quer imprimir etiquetas Zebra?&lt;/h2&gt;
  &lt;p&gt;A maioria dos problemas de quem monta etiquetas vem do preço da licença, da conexão com a impressora e do tamanho do papel. Cada item abaixo traz a correção mais curta, com o passo completo no bloco de erros mais adiante.&lt;/p&gt;
  &lt;ul class="post_cqb_quickfix_list"&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Licença cara demais:&lt;/strong&gt; instale o ZebraDesigner Essentials 3 (gratuito) ou use o editor web gratuito para lote por planilha. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Impressora diz OK, mas não imprime:&lt;/strong&gt; espere cerca de 8 segundos entre envios e confirme a etiqueta na bandeja. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Impressão deslocada:&lt;/strong&gt; ajuste só a margem afetada em Limites de Margem e mande uma página de teste. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Etiqueta atravessando outras:&lt;/strong&gt; compare a altura do desenho com a bobada usando Conferir Mídia. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Link-OS 7.5 sem HTTP:&lt;/strong&gt; troque para HTTPS Direct ou rode a ponte local. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Licença Pro presa ao PC antigo:&lt;/strong&gt; desative no computador de origem antes de ativar no novo. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/section&gt;

&lt;h2&gt;O que o ZebraDesigner Professional 3 realmente vende por R$ 1.497,00?&lt;/h2&gt;
&lt;p&gt;O ZebraDesigner Professional 3 vende uma licença de ativação única para um computador Windows, que libera recursos além da edição gratuita: conexão com bancos de dados, assistentes de RFID e GS1-128 e scripts VB simples. Você não paga pelo desenho da etiqueta, porque a edição Essentials também desenha e imprime.&lt;/p&gt;
&lt;p&gt;O anúncio de uma loja brasileira lista o Professional 3 por R$ 1.497,00, com licença de ativação paga para um computador. Tratamos esse número como preço de vitrine, não como cotação oficial da Zebra: ele muda com câmbio, frete, imposto de importação e margem do revendedor. Para ter uma régua, procuramos anúncios de fora do Brasil em 25/10/2026 e achamos listagens americanas entre US$ 265,50 e US$ 295,00, uma listagem europeia a € 261,98 e um revendedor britânico com a edição digital a partir de £ 179,91. Esses valores podem estar defasados, então servem só como ordem de grandeza.&lt;/p&gt;
&lt;p&gt;A própria Zebra descreve o Professional como produto que exige a compra de uma chave de licença de ativação única. O instalador traz as duas edições juntas: depois de instalar, o programa abre como Essentials e, dentro dele, você pode iniciar um teste de 30 dias do Professional. Se o teste terminar sem compra, o software continua funcionando como Essentials. Isso muda a conversa, porque você pode instalar, abrir seus próprios modelos e só depois decidir se o salto de preço se justifica.&lt;/p&gt;
&lt;p&gt;Vale entender também o que o valor não cobre. A licença vale por computador, o programa roda em Windows 10, Windows 11 e versões de Windows Server, e não existe versão para Mac. Se a sua equipe tem cinco estações que precisam editar etiquetas, a conta de vitrine sobe de R$ 1.497,00 para R$ 7.485,00 só em licenças, sem contar o tempo de instalação e ativação em cada máquina.&lt;/p&gt;
&lt;p&gt;A Zebra posiciona o Professional para etiquetas complexas, com dados fixos ou variáveis, conexão com banco, concatenação de campos, fórmulas e RFID. Se o seu dia a dia é pegar uma planilha, ligar colunas a campos e imprimir, a pergunta honesta não é quanto custa o Pro, e sim se você usa algum recurso que só ele entrega. As próximas seções respondem isso peça por peça, e quem trabalha com &lt;a href="https://www.canalqb.com.br/search?q=impressora+zebra" rel="noopener noreferrer" target="_blank"&gt;impressoras Zebra&lt;/a&gt; costuma descobrir que a resposta é menos óbvia do que o preço sugere.&lt;/p&gt;

&lt;h2&gt;O ZebraDesigner Essentials 3 já é grátis — o que o Pro acrescenta?&lt;/h2&gt;
&lt;p&gt;A Zebra distribui a edição Essentials 3 sem custo e vende o Professional por licença. Segundo a documentação oficial, o Pro soma conexão com bancos de dados via ODBC e arquivos ASCII, assistentes de GS1-128 e RFID, script VB simples, perguntas na hora da impressão e escolha de registros do banco no momento de imprimir.&lt;/p&gt;
&lt;h3&gt;O que fica na edição gratuita&lt;/h3&gt;
&lt;p&gt;As notas de versão descrevem o Essentials como a edição básica para desenhar e imprimir gráficos, texto ou códigos de barras com dados fixos ou variáveis vindos de digitação, de data e hora ou de contadores. A ficha técnica da Zebra acrescenta que ele aceita fontes nativas da impressora, Unicode e códigos de barras nativos, e abre arquivos da versão 2 (.LBL) e da versão 3 (.NLBL). Na prática, se você digita o dado, usa a data do dia ou numera em sequência, a edição grátis resolve o desenho e a impressão sem pedir licença.&lt;/p&gt;
&lt;h3&gt;O que só existe no Professional&lt;/h3&gt;
&lt;p&gt;Aqui entram os recursos que ligam a etiqueta a outros sistemas. A conexão ODBC e com arquivos ASCII permite puxar dados direto de um banco ou de um arquivo de texto, sem exportar planilha. A concatenação de campos e as fórmulas montam um código a partir de várias partes, e o script VB simples coloca regras dentro do próprio layout. Os assistentes de GS1-128 e de RFID guiam etiquetas logísticas e etiquetas com chip, e as perguntas em tempo de impressão deixam o operador informar lote ou validade antes de mandar para a impressora. Um revendedor que publicou um comparativo resume bem: a principal limitação do Essentials é não se conectar a bancos externos.&lt;/p&gt;
&lt;div class="post_cqb_table_wrap"&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Recurso&lt;/th&gt;&lt;th&gt;Edição indicada pela Zebra&lt;/th&gt;&lt;th&gt;Quando faz diferença&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;Desenho e impressão de texto, gráficos e códigos de barras&lt;/td&gt;&lt;td&gt;Essentials e Professional&lt;/td&gt;&lt;td&gt;Sempre; é o núcleo das duas edições.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Dados digitados, data/hora e contador&lt;/td&gt;&lt;td&gt;Essentials e Professional&lt;/td&gt;&lt;td&gt;Numeração de série, validade e etiquetas de prateleira.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Conexão ODBC e arquivos ASCII&lt;/td&gt;&lt;td&gt;Professional&lt;/td&gt;&lt;td&gt;Rótulo puxado direto de ERP ou banco local.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Concatenação de campos e fórmulas&lt;/td&gt;&lt;td&gt;Professional&lt;/td&gt;&lt;td&gt;Código montado a partir de várias colunas.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Script VB simples&lt;/td&gt;&lt;td&gt;Professional&lt;/td&gt;&lt;td&gt;Regra de negócio dentro do layout.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Assistentes de GS1-128 e de RFID&lt;/td&gt;&lt;td&gt;Professional&lt;/td&gt;&lt;td&gt;Logística com identificadores de aplicação e etiquetas com chip.&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Um cuidado de leitura: a matriz de recursos da Zebra é um PDF com linhas de recursos e marcações visuais, e o texto extraído dele nem sempre mostra qual edição tem cada marca. Por isso a tabela acima usa só o que as notas de versão e a ficha técnica afirmam em texto corrido. Antes de comprar por causa de um recurso específico, abra a ficha técnica oficial, confira a linha do recurso e teste a função durante os 30 dias de demonstração.&lt;/p&gt;

&lt;h2&gt;O que o editor gratuito do CanalQb faz de verdade?&lt;/h2&gt;
&lt;p&gt;O editor do CanalQb roda no navegador, sem instalação, e monta etiquetas com texto, QR Code, códigos de barras, imagens e formas. Importa Excel, CSV e Google Sheets, gera lotes com numeração e envia ZPL por rede, USB ou Bluetooth. É gratuito, mantido com apoio voluntário por PIX e ainda em evolução.&lt;/p&gt;
&lt;p&gt;Como o projeto é nosso, a descrição abaixo vem da Central de Ajuda do próprio editor e da interface aberta em 25/10/2026, cuja barra superior exibe a versão 1.041. Nada aqui foi inventado para a comparação, e o que o editor ainda não faz aparece na seção de limites.&lt;/p&gt;
&lt;p&gt;No desenho, o editor traz texto livre, subtítulo, nome do produto, linhas, molduras, círculos, diagonais e cantos arredondados, além de imagens por arquivo, por link ou em base64. Os tamanhos prontos são 40 × 25, 100 × 50, 100 × 100 e 100 × 150 mm, com opção personalizada e densidades de 152, 203, 300 e 600 dpi. Os códigos 2D incluem QR Code, Data Matrix, PDF-417, Aztec, MaxiCode, Micro QR e a família GS1, e os 1D incluem Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, ITF, MSI, Codabar e GS1-128. Há ainda um montador de dados GS1, em que você preenche identificador de aplicação e dado, e a prévia sai no formato com parênteses.&lt;/p&gt;
&lt;p&gt;Nos dados, as origens vão de arquivo CSV, TXT ou Excel a link do Google Sheets (público ou privado, com login Google), webhook, API REST de banco, pasta local e consultas ODBC, MySQL, PostgreSQL e SQL Server por meio de uma ponte local. Cada coluna é mapeada para um campo da etiqueta, e o botão Criar Etiquetas gera uma etiqueta por linha. A geração em lote também cria numeração automática, como SN-001, SN-002, com prefixo, faixa e quantidade de dígitos.&lt;/p&gt;
&lt;p&gt;Na impressão, o editor oferece HTTPS Direct, HTTP Direct, webhook em nuvem, FTP e TCP 9100 pela ponte local, além de USB por WebUSB e Bluetooth Low Energy. Também há calibração, espelho, reverso em branco sobre preto, pré-visualização com download em PNG e um painel que mostra o progresso do envio. Quem quiser aprofundar o assunto de linguagem de impressora pode seguir nossos textos sobre &lt;a href="https://www.canalqb.com.br/search?q=zebra+zpl" rel="noopener noreferrer" target="_blank"&gt;ZPL e etiquetas Zebra&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Como montar um lote a partir de uma planilha no editor grátis?&lt;/h2&gt;
&lt;p&gt;Defina o tamanho e a densidade da etiqueta, desenhe um modelo com os elementos que vão variar, importe a planilha, mapeie as colunas, teste uma etiqueta e só então imprima o lote. Esse caminho evita desperdiçar rolo, porque cada passo tem um ponto de conferência antes do próximo.&lt;/p&gt;
&lt;p&gt;Os passos abaixo seguem o fluxo descrito na Central de Ajuda do editor. Cada um traz a ação exata, o motivo de existir, o resultado esperado e o erro mais comum.&lt;/p&gt;
&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;Passo 1: Escolha o tamanho da etiqueta e a densidade&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; abra o menu Etiqueta, clique em Tamanho da Etiqueta e selecione 100 × 50 mm; depois confira no chip de densidade se está em 203 dpi.&lt;/p&gt;
&lt;p&gt;Esse passo vem primeiro porque o ZPL trabalha em pontos (dots), e a conta muda com a densidade: a 203 dpi são 8 pontos por milímetro, então 100 × 50 mm viram 800 × 400 pontos. Se o tamanho ou o dpi estiver errado, tudo o que você posicionar depois sai deslocado. No mesmo painel, a estimativa por rolo ajuda no orçamento: com 50 mm de altura e vão de 3 mm, cada etiqueta consome 53 mm, e um rolo de 100 m rende cerca de 1.886 etiquetas (100.000 ÷ 53).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; a barra de status mostra "100 x 50 mm" e "203 DPI". &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;span class="post_cqb_tip"&gt;Erro comum: escolher um tamanho maior que a bobada instalada; a etiqueta passa a atravessar as vizinhas sem aviso, e a correção é o Conferir Mídia do passo 5.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;Passo 2: Monte a etiqueta modelo&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; adicione um Nome do Produto, um Código de Barras e, se quiser, um QR Code, arrastando os botões da paleta para a área da etiqueta.&lt;/p&gt;
&lt;p&gt;O modelo é a primeira etiqueta do lote, e todas as outras herdam a posição e o tamanho dos elementos dele. Por isso vale posicionar tudo com calma agora, em vez de corrigir cem etiquetas depois. Se um QR Code ou código de barras receber textos de tamanhos diferentes ao longo da planilha, o editor trava o tamanho no pior caso da coluna para que todos saiam com as mesmas dimensões.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; a aba Elementos lista cada item com a contagem ao vivo. &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;span class="post_cqb_tip"&gt;Erro comum: deixar um elemento colado na borda; use Limites de Margem se a impressora cortar o desenho.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;Passo 3: Importe a planilha&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; abra Arquivo, escolha Importar Dados (Excel, CSV), selecione "Arquivo" e envie o .xlsx ou .csv; o editor lê as colunas sozinho.&lt;/p&gt;
&lt;p&gt;Isso é necessário porque a importação é o que transforma um desenho em um lote: sem ela, você teria uma etiqueta só. O editor lê o arquivo no próprio navegador, sem enviá-lo a servidor algum, e mostra a pré-visualização das três primeiras linhas para você conferir acentos e colunas antes de gerar. Para planilhas privadas do Google, a Central de Ajuda explica como criar um Client ID próprio.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; aparecem as colunas e as três linhas de prévia. &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;span class="post_cqb_tip"&gt;Erro comum: cabeçalho vazio ou colunas misturadas; corrija a planilha e importe de novo, porque o arquivo não sincroniza sozinho.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;Passo 4: Mapeie as colunas e crie as etiquetas&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; ligue cada coluna ao campo certo (Nome para Nome do Produto, SKU para Código de Barras) e clique em Criar Etiquetas.&lt;/p&gt;
&lt;p&gt;O mapeamento diz ao editor onde cada dado cai, e uma mesma coluna pode alimentar vários campos, como um SKU que aparece em texto e em código de barras. O botão sempre cria etiquetas novas, sem escrever em cima do desenho aberto, então salve o modelo em Arquivo antes se quiser reaproveitá-lo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; a barra de status avisa quantas etiquetas serão geradas, por exemplo 25. &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;span class="post_cqb_tip"&gt;Erro comum: clicar sem nenhuma coluna vinculada; a janela avisa e continua aberta.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;Passo 5: Configure a impressora e confira a mídia&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; abra Impressora, Configurar Impressora, digite o IP (por exemplo 192.168.15.42), escolha HTTPS Direct, clique em Conferir Mídia e salve.&lt;/p&gt;
&lt;p&gt;A configuração vem antes do teste porque o editor precisa saber por qual caminho enviar o ZPL, e o Conferir Mídia compara a altura da etiqueta com o comprimento da bobada que a impressora informa. Sem essa checagem, uma etiqueta maior que o rolo consome papel sem acusar erro. O IP e o protocolo ficam salvos no navegador.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; o pontinho do IP fica verde, e a conferência indica que a mídia casa com a altura. &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;span class="post_cqb_tip"&gt;Erro comum: pontinho vermelho por IP trocado pelo DHCP; prefira o nome mDNS da impressora, quando a rede o resolve.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;Passo 6: Teste uma etiqueta e imprima o lote&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; clique em Testar 1 e examine a etiqueta; se estiver certa, clique em Imprimir Agora, informe as cópias e acompanhe o progresso.&lt;/p&gt;
&lt;p&gt;O teste existe porque HTTP 200 não prova impressão: a impressora responde OK até para o que descarta, e a única prova é o papel na bandeja. Em lotes, o editor espaça os envios em cerca de 8 segundos, porque impressoras térmicas podem perder etiquetas enviadas em rajada. Cada etiqueta sai uma por vez, e o botão Cancelar impressão interrompe a fila.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; janela de progresso "N de M" e etiquetas saindo em sequência. &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;span class="post_cqb_tip"&gt;Erro comum: mandar o lote inteiro sem testar uma peça e descobrir só no rolo que o código de barras está curto.&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;Como é o ZPL por trás da etiqueta — e por que isso importa?&lt;/h2&gt;
&lt;p&gt;ZPL II é a linguagem nativa das impressoras Zebra: cada elemento da etiqueta vira um comando que começa com circunflexo. Entender o básico importa porque o ZPL é portátil. A mesma etiqueta pode ser gerada por qualquer ferramenta, guardada em arquivo e enviada à impressora, sem depender do programa que a desenhou.&lt;/p&gt;
&lt;p&gt;O exemplo abaixo é uma etiqueta de 100 × 50 mm a 203 dpi, com um nome de produto e um código de barras Code 128. Ele é um modelo didático escrito para este post, não uma saída copiada do editor, e serve para você ler comando por comando.&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;
  &lt;button aria-label="Copiar código ZPL" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;^XA
^PW800
^LL400
^CI28
^FO40,40^A0N,50,50^FDCaneca Azul 300 ml^FS
^FO40,130^BCN,110,Y,N,N^FD789000012345^FS
^PQ1
^XZ&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;O par &lt;strong&gt;^XA&lt;/strong&gt; e &lt;strong&gt;^XZ&lt;/strong&gt; abre e fecha o formato, ou seja, tudo o que está entre eles é uma etiqueta. O &lt;strong&gt;^PW800&lt;/strong&gt; define a largura em 800 pontos (100 mm a 8 pontos por milímetro) e o &lt;strong&gt;^LL400&lt;/strong&gt; define o comprimento em 400 pontos (50 mm). O &lt;strong&gt;^CI28&lt;/strong&gt; avisa que o texto está em UTF-8, o que evita acento quebrado. O &lt;strong&gt;^FO40,40&lt;/strong&gt; posiciona o campo a 40 pontos da esquerda e do topo, ou seja, 5 mm, e o &lt;strong&gt;^A0N,50,50&lt;/strong&gt; escolhe a fonte escalável com 50 pontos de altura e largura. O &lt;strong&gt;^FD&lt;/strong&gt; traz o dado e o &lt;strong&gt;^FS&lt;/strong&gt; fecha o campo. O &lt;strong&gt;^BCN,110,Y,N,N&lt;/strong&gt; imprime um Code 128 com 110 pontos de altura e a linha de texto legível embaixo, e o &lt;strong&gt;^PQ1&lt;/strong&gt; pede uma cópia.&lt;/p&gt;
&lt;p&gt;A consequência prática é a liberdade de troca. Um lote de planilha vira uma sequência de blocos ^XA a ^XZ, que o editor baixa em um único arquivo .zpl pelo menu Arquivo e que você pode reimportar depois. Se amanhã você mudar de ferramenta, o ZPL já gerado continua valendo, porque ele descreve a etiqueta para a impressora e não para o programa.&lt;/p&gt;

&lt;h2&gt;Quais são os limites do editor gratuito frente ao Pro?&lt;/h2&gt;
&lt;p&gt;O editor gratuito não substitui o Professional em tudo. Ele não abre arquivos .LBL ou .NLBL, foca em ZPL II, depende do navegador para USB e Bluetooth, exige uma ponte local para bancos ODBC e não tem script VB nem assistente de RFID. Conhecer esses limites evita uma troca de ferramenta por impulso.&lt;/p&gt;
&lt;p&gt;Escrevemos esta lista com a mesma franqueza que gostaríamos de ver num concorrente. Cada item tem origem na Central de Ajuda do editor ou nos documentos da Zebra.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Arquivos de projeto.&lt;/strong&gt; O editor importa .zpl, .bin, .json e .vip, mas a página não lista suporte aos formatos .LBL (versão 2) e .NLBL (versão 3) do ZebraDesigner. Trate esses arquivos como não suportados até testar, e planeje a migração por ZPL, como mostra a última seção.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Linguagem da impressora.&lt;/strong&gt; O foco do editor é o ZPL II. A ficha técnica da Zebra lembra que o driver Windows versão 5 atende EPL, ZPL e CPCL, e que a versão 8 atende impressoras ZPL Link-OS. Se a sua impressora só fala EPL ou CPCL, o caminho natural é o ZebraDesigner com o driver certo, não o nosso editor.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Navegador e conexão.&lt;/strong&gt; USB por WebUSB pede Chrome ou Edge em localhost ou HTTPS. O Bluetooth funciona apenas com Low Energy, típico das séries ZQ e Link-OS. iPhone e iPad não imprimem por USB nem por Bluetooth, e nesses aparelhos o caminho é a rede por IP.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Link-OS 7.5 ou mais novo.&lt;/strong&gt; O serviço HTTP vem desligado de fábrica, segundo a ajuda do editor, e o caminho recomendado passa a ser HTTPS, com certificado autoassinado. Com a ponte local rodando, o editor imprime por HTTPS sem você aceitar nada; sem ela, é preciso aceitar o certificado uma vez por sessão. O envio de TCP 9100 pelo navegador é experimental e pode ser bloqueado como conteúdo misto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Bancos de dados.&lt;/strong&gt; A conexão ODBC, MySQL, PostgreSQL ou SQL Server só funciona pela ponte local &lt;em&gt;print-server.js&lt;/em&gt;, um programa Node.js que roda no computador que imprime. No Professional essa conexão é parte nativa do programa. A instalação da ponte para iniciar com o Windows, segundo a ajuda, é este comando:&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;&lt;span class="comment"&gt;# instala a ponte local para ligar sozinha com o Windows&lt;/span&gt;&lt;br /&gt;&lt;span&gt;powershell -ExecutionPolicy Bypass -File instalar-ponte.ps1&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Maturidade.&lt;/strong&gt; A própria página lista itens em desenvolvimento, como fontes do Windows no editor de elementos, moldura de seleção com alças e uma bateria de 26 etiquetas de teste para validar simbologias em impressora real. O aviso que acompanha as simbologias novas é objetivo: valide na impressora real. Também não existe script VB nem assistente de RFID.&lt;/p&gt;

&lt;h2&gt;Quanto custa de verdade a licença do Pro além do preço de tela?&lt;/h2&gt;
&lt;p&gt;O custo real da licença do Professional soma o preço por computador, o processo de ativação e de troca de máquina, a restrição ao Windows e a dependência do servidor de licenças da Zebra. Para uma pessoa, é uma conta simples. Para uma equipe, o valor cresce com cada estação que precisa editar etiquetas.&lt;/p&gt;
&lt;p&gt;Usando o preço de vitrine de R$ 1.497,00 por licença, sem considerar descontos por volume que revendedores possam oferecer, a conta fica assim:&lt;/p&gt;
&lt;div class="post_cqb_table_wrap"&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Computadores que editam etiquetas&lt;/th&gt;&lt;th&gt;Custo só de licenças (R$)&lt;/th&gt;&lt;th&gt;Cálculo&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;1.497,00&lt;/td&gt;&lt;td&gt;1 × 1.497,00&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;3&lt;/td&gt;&lt;td&gt;4.491,00&lt;/td&gt;&lt;td&gt;3 × 1.497,00&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;7.485,00&lt;/td&gt;&lt;td&gt;5 × 1.497,00&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;14.970,00&lt;/td&gt;&lt;td&gt;10 × 1.497,00&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Há mais itens fora da tabela. A ativação offline do Professional 3 exige uma chave de licença de 32 caracteres, o Customer ID e um arquivo de licença (lservrc), e, para mudar a licença de computador, é preciso desativar no equipamento antigo e esperar a Zebra concluir o processo no servidor. As notas de versão também registram que a Zebra migrou o licenciamento do servidor Nalpeiron para a plataforma Thales Sentinel, com a intenção de encerrar o Nalpeiron em julho de 2025, e que a edição Essentials não é afetada. Se você mantém uma instalação antiga do Pro, confira nas notas de versão qual build é exigido.&lt;/p&gt;
&lt;p&gt;Algumas listagens de revenda indicam entrega da chave por e-mail e até ausência de garantia, por isso vale ler as condições da loja antes de pagar. O editor gratuito, por sua vez, tem custo zero de licença, mas cobra outra moeda: o seu tempo de validar cada modelo na impressora real, já que o próprio projeto recomenda esse teste. Para quem imprime todo dia, esse tempo se paga rápido; para quem imprime uma vez por ano, talvez nem seja a melhor escolha. A decisão fica mais clara com o roteiro da próxima seção, e outros assuntos de &lt;a href="https://www.canalqb.com.br/search?q=etiquetas+zebra" rel="noopener noreferrer" target="_blank"&gt;etiquetas Zebra&lt;/a&gt; no canal ajudam a medir o seu uso real.&lt;/p&gt;

&lt;h2&gt;Qual ferramenta escolher: seis perguntas que decidem a compra?&lt;/h2&gt;
&lt;p&gt;Responda seis perguntas sobre a origem dos dados, o RFID, o script, os arquivos antigos, o fluxo em lote e a linguagem da impressora. Uma resposta afirmativa nas três primeiras já justifica testar o Professional por 30 dias; todas negativas indicam que o editor gratuito, ou o Essentials, atende você.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. Seus dados moram num banco ODBC e precisam entrar direto na etiqueta?&lt;/strong&gt; Se a resposta é sim e você quer isso dentro de um único programa Windows, o Professional entrega a conexão nativa. Se aceita rodar uma ponte local em Node.js, o editor gratuito também consulta bancos, com mais montagem.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. Você imprime etiquetas RFID?&lt;/strong&gt; O assistente de RFID está listado como recurso do Professional, e o editor gratuito não o tem. Para etiquetas com chip, este é o motivo mais forte para licenciar.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;3. Você precisa de regras em script VB dentro do layout?&lt;/strong&gt; Isso é exclusivo do Professional. Se a regra pode ficar na planilha, em uma fórmula antes da importação, o script deixa de ser necessário.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. Você precisa abrir ou editar arquivos .LBL ou .NLBL existentes?&lt;/strong&gt; O ZebraDesigner, inclusive o Essentials, abre esses formatos, segundo a ficha técnica. O nosso editor não lista suporte a eles.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;5. O seu fluxo é planilha, lote e impressão, em várias máquinas ou no celular?&lt;/strong&gt; Aqui o editor web leva vantagem: nada para instalar, funciona em desktop e celular, e a licença não limita estações.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6. Sua impressora fala só EPL ou CPCL?&lt;/strong&gt; Então o caminho é o ZebraDesigner com o driver apropriado, porque o foco do nosso editor é ZPL II.&lt;/p&gt;
&lt;div class="post_cqb_table_wrap"&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Cenário&lt;/th&gt;&lt;th&gt;Escolha provável&lt;/th&gt;&lt;th&gt;Motivo&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;Loja com 200 produtos numa planilha, etiquetas de prateleira&lt;/td&gt;&lt;td&gt;Editor gratuito ou Essentials&lt;/td&gt;&lt;td&gt;Lote por planilha e QR Code, sem banco nem RFID.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Indústria com ERP e rótulos vindos de banco ODBC&lt;/td&gt;&lt;td&gt;Professional (teste de 30 dias)&lt;/td&gt;&lt;td&gt;Conexão nativa, script e perguntas na impressão.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Logística com RFID e etiquetas GS1-128&lt;/td&gt;&lt;td&gt;Professional&lt;/td&gt;&lt;td&gt;Assistentes de RFID e de GS1-128 integrados.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Equipe com celulares e vários PCs na expedição&lt;/td&gt;&lt;td&gt;Editor gratuito&lt;/td&gt;&lt;td&gt;Sem licença por máquina; imprime por rede, USB ou Bluetooth.&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h2&gt;Como migrar etiquetas do ZebraDesigner para o editor sem perder o layout?&lt;/h2&gt;
&lt;p&gt;A migração passa pelo ZPL: gere ou obtenha o código ZPL da etiqueta no ZebraDesigner, carregue o arquivo .zpl no editor e confira o desenho na tela. Como os formatos .LBL e .NLBL não constam entre os que o editor abre, o ZPL é a ponte mais confiável entre os dois mundos.&lt;/p&gt;
&lt;p&gt;Comece pelo ZebraDesigner. A matriz de recursos da Zebra lista a opção de impressão em arquivo, que pode servir para gerar o ZPL de um formato já pronto; confirme na sua versão e no seu driver como esse arquivo é produzido, porque o resultado depende da configuração da porta e do driver. Com o arquivo .zpl em mãos, no editor use Arquivo, Carregar arquivo .ZPL: o código entra na aba ZPL e a etiqueta é reconstruída na tela, e um arquivo com vários blocos ^XA a ^XZ vira um lote navegável pelas setas.&lt;/p&gt;
&lt;p&gt;Depois da carga, confira o que o desenho não transporta. Fontes específicas do Windows, scripts VB e conexões ODBC do arquivo original não viajam dentro do ZPL, e o editor ainda lista fontes do Windows como item em desenvolvimento. Reconstrua esses campos com elementos do próprio editor, ligue as colunas por Importar Dados e use Testar 1 para comparar a primeira peça com a etiqueta antiga, lado a lado, no papel.&lt;/p&gt;
&lt;p&gt;Por fim, mantenha as duas ferramentas em paralelo durante uma semana de trabalho real. Imprima cada modelo nos dois sistemas, compare o tamanho do código de barras com a leitura do seu scanner e só então desligue o fluxo antigo. Se algum modelo exigir banco ODBC ou RFID, ele fica no ZebraDesigner, e os modelos de planilha e lote vão para o editor gratuito. Esse arranjo costuma custar uma licença em vez de dez.&lt;/p&gt;

&lt;div class="post_cqb_faq_container"&gt;
  &lt;h2&gt;Perguntas frequentes sobre ZebraDesigner e etiquetas Zebra&lt;/h2&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; O ZebraDesigner Essentials 3 é realmente grátis?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Sim. A Zebra oferece o Essentials 3 como a edição gratuita do software de desenho de etiquetas, sem chave de licença. O instalador do ZebraDesigner 3 traz as duas edições e abre como Essentials; dentro dele você pode iniciar um teste de 30 dias do Professional. Terminado o teste sem compra, o programa continua como Essentials. O limite aparece em recursos como conexão com bancos de dados, que ficam no Professional. Veja mais conteúdos de &lt;a href="https://www.canalqb.com.br/search?q=etiquetas+zebra" rel="noopener noreferrer" target="_blank"&gt;etiquetas Zebra&lt;/a&gt; no canal.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; A licença do Professional vale para mais de um computador?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;As descrições de revenda e o anúncio que motivou este post tratam a licença como de ativação única para um computador. Por isso a conta cresce por estação: cinco máquinas custam cinco licenças. Para mudar o programa de computador, a Zebra descreve um processo de desativação seguido de redefinição no servidor. Confirme sempre as condições de licenciamento com o revendedor e com a documentação da Zebra antes de comprar para uma equipe. Outros guias sobre &lt;a href="https://www.canalqb.com.br/search?q=impressora+zebra" rel="noopener noreferrer" target="_blank"&gt;impressora Zebra&lt;/a&gt; estão no blog.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; O editor do CanalQb substitui o ZebraDesigner Professional?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Depende do uso. Para planilha, lote, numeração, QR Code e códigos de barras comuns, o editor cobre o fluxo sem licença. Ele não substitui o Professional quando você precisa de script VB, assistente de RFID, abrir arquivos .LBL ou .NLBL ou usar um driver Windows com EPL e CPCL. Conexão com banco existe no editor, mas por meio de uma ponte local em Node.js. Use as seis perguntas do post para decidir, e teste os 30 dias do Pro se ficar em dúvida. Veja também &lt;a href="https://www.canalqb.com.br/search?q=zebra+zpl" rel="noopener noreferrer" target="_blank"&gt;ZPL&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Preciso instalar alguma coisa para usar o editor?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Para desenhar, importar planilhas e baixar o ZPL, não: o editor abre no navegador, e a Central de Ajuda afirma que ele funciona offline depois de aberto, exceto nas fontes de dados online, como o Google Sheets. Para imprimir por rede em firmwares recentes, o caminho mais prático pode envolver a ponte local print-server.js, que roda em Node.js, e a extensão Zebra Printing para Chrome é uma opção descrita na própria ajuda. Para &lt;a href="https://www.canalqb.com.br/search?q=codigo+de+barras" rel="noopener noreferrer" target="_blank"&gt;código de barras&lt;/a&gt;, nada extra é exigido.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Como imprimir em impressoras Link-OS 7.5 com o HTTP desligado?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Nesses firmwares o serviço HTTP vem desligado de fábrica por causa de uma norma europeia, e você pode religá-lo no painel web da impressora. O caminho moderno é o HTTPS Direct. Com a ponte local rodando, o editor imprime por HTTPS sem exigir aceitação de certificado; sem a ponte, abra o endereço HTTPS da impressora, aceite o certificado autoassinado uma vez por sessão e volte ao editor. Firmwares 7.4 ou mais antigos seguem no HTTP Direct. Mais dicas de &lt;a href="https://www.canalqb.com.br/search?q=impressora+zebra" rel="noopener noreferrer" target="_blank"&gt;impressora Zebra&lt;/a&gt; no canal.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Posso importar dados do Google Sheets no editor?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Sim. A janela Importar Dados aceita o link de uma planilha pública, ou de uma planilha privada depois do login com a sua conta Google, que é feito pelo próprio Google; o editor só recebe um token de leitura. Quem preferir pode cadastrar o seu Client ID no Google Cloud, ativando a Google Sheets API, para controlar o acesso. Depois de importar, você mapeia as colunas e cria uma etiqueta por linha. O arquivo não sincroniza sozinho: se a planilha mudar, importe de novo. Veja outros guias de &lt;a href="https://www.canalqb.com.br/search?q=etiquetas+zebra" rel="noopener noreferrer" target="_blank"&gt;etiquetas Zebra&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;section aria-label="Erros e soluções" class="post_cqb_erros" id="erros-solucoes"&gt;
  &lt;h2&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; {Erros e Soluções}&lt;/h2&gt;
  &lt;p&gt;Os erros mais frequentes de quem monta e imprime etiquetas Zebra costumam envolver conexão, margem, tamanho do papel e licença. Cada cartão abaixo mostra o sintoma observado, a causa técnica, a correção em passos e como evitar o problema de novo.&lt;/p&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; A impressora responde OK, mas nenhuma etiqueta sai&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a resposta HTTP 200 não prova impressão, porque a impressora responde OK até para comandos que descarta. Dois envios em menos de cerca de 8 segundos também podem fazer a segunda etiqueta sumir.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; envie uma etiqueta por vez, espere o intervalo de segurança e confirme o papel na bandeja. No editor, use Testar 1 antes do lote. Se o problema persistir, confira no painel web da impressora (abra o IP dela no navegador) o contador de etiquetas.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; nunca dispare lotes em rajada e trate o papel na bandeja como única prova de sucesso.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Conexão recusada ou pontinho vermelho ao lado do IP&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; o IP está errado, a impressora está desligada ou fora da mesma rede. O DHCP também pode ter trocado o endereço desde a última vez.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; confira o IP no painel da impressora, rode Testar Conexão em Configurar Impressora e, se a sua rede resolve nomes .local, use o nome mDNS da impressora, que sobrevive à troca de IP. No USB ou no Bluetooth, verifique o cabo e se a conexão ainda está ativa.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; reserve um IP fixo para a impressora no roteador ou use o hostname mDNS.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; A etiqueta imprime deslocada em todas as peças&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a posição de origem da impressora e a do desenho não coincidem, comum depois de trocar de rolo ou de modelo de impressora.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; abra o botão Margens da barra de status, mexa apenas na margem do lado afetado (por exemplo, a Superior) e mande uma página de teste. O resto do desenho continua exatamente no mesmo lugar, e você repete até a etiqueta sair reta.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; calibre a impressora ao trocar o tipo de mídia e anote as margens que funcionaram.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; A etiqueta atravessa as vizinhas sem mensagem de erro&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a altura do desenho é maior que a bobada carregada, e a impressora não acusa erro nenhum nesse caso.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; use Conferir Mídia, que compara a altura da etiqueta com o comprimento da bobada e responde "casa", "sobra" ou "atravessa". Ajuste o tamanho da etiqueta ou troque o rolo e calibre de novo.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; rode Conferir Mídia sempre que trocar de rolo.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Mixed Content: a página HTTPS não consegue falar com a impressora HTTP&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; o navegador bloqueia chamadas de uma página HTTPS para um endereço HTTP, e o Link-OS 7.5 ou mais novo já vem com o HTTP desligado de fábrica.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; escolha HTTPS Direct em Configurar Impressora. Se o navegador reclamar do certificado, deixe a ponte local rodando, porque ela tolera o certificado autoassinado, ou abra o endereço HTTPS da impressora e aceite o certificado uma vez por sessão.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; instale a ponte no computador que imprime e use sempre o protocolo recomendado para o seu firmware.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; A licença do Professional não ativa depois de trocar de computador&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a licença está associada ao equipamento anterior e só é liberada para outro depois da desativação seguida de redefinição no servidor da Zebra.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; no computador antigo, abra Arquivo, Sobre, e use a opção de desativar (a Zebra tem um vídeo com o procedimento offline); aguarde a Zebra concluir o processo no servidor e ative no equipamento novo com a chave, o Customer ID e, na ativação offline, o arquivo de licença.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; guarde a chave e o Customer ID num cofre de senhas e desative sempre antes de formatar ou aposentar um PC.&lt;/p&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;p style="margin: 36px 0px 10px; text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-weight: 700;" target="_blank"&gt;&lt;i class="fas fa-circle-play"&gt;&lt;/i&gt; Veja a demonstração em vídeo no @CanalQb&lt;/a&gt;
&lt;/p&gt;
&lt;p style="text-align: center;"&gt;Teste o editor gratuito em &lt;a href="https://canalqb.github.io/etiquetas-zebra/" rel="noopener noreferrer" target="_blank"&gt;canalqb.github.io/etiquetas-zebra&lt;/a&gt;, compare com o seu fluxo e conte nos comentários qual recurso do Professional você realmente usa.&lt;/p&gt;

&lt;p style="background: rgba(33, 150, 243, 0.08); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.85em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Conformidade Global:&lt;/strong&gt;
  As informações regulatórias refletem as legislações vigentes no momento da publicação.
  Leis de privacidade variam por jurisdição e estão em constante evolução. Consulte as autoridades
  locais de proteção de dados e o &lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt;. Este conteúdo não constitui aconselhamento jurídico.
&lt;/p&gt;

&lt;section aria-label="Fontes e referências"&gt;
  &lt;h2&gt;&lt;i class="fas fa-book-open"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
  &lt;p&gt;Todas as fontes abaixo foram consultadas em 25/10/2026. Preços de lojas e versões de software mudam, então confirme os dados atuais antes de decidir.&lt;/p&gt;
  &lt;ul class="post_cqb_refs"&gt;
    &lt;li&gt;&lt;a href="https://supportcommunity.zebra.com/articles/en_US/Knowledge/000021477" rel="noopener noreferrer" target="_blank"&gt;Zebra Support Community — Differences between ZebraDesigner Essentials 3 and Professional 3&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://supportcommunity.zebra.com/articles/en_US/Knowledge/000022299" rel="noopener noreferrer" target="_blank"&gt;Zebra Support Community — Download and install the latest version of ZebraDesigner v3&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://zebra.com/us/en/support-downloads/printer-software/zebra-designer-3-downloads.html" rel="noopener noreferrer" target="_blank"&gt;Zebra — ZebraDesigner 3 Software Support and Downloads&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.zebra.com/content/dam/zebra_dam/pt_br/fact-sheet/zebra-designer-fact-sheet-pt-br.pdf" rel="noopener noreferrer" target="_blank"&gt;Zebra — Ficha informativa do ZebraDesigner (pt-BR)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.zebra.com/content/dam/support-dam/en/documentation/unrestricted/release-notes/zebradesigner3-essentials-professional-33089-release-notes.pdf" rel="noopener noreferrer" target="_blank"&gt;Zebra — Release Notes ZebraDesigner Essentials e Professional 3&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://supportcommunity.zebra.com/articles/en_US/Knowledge/000032774" rel="noopener noreferrer" target="_blank"&gt;Zebra Support Community — ZebraDesigner 3 Professional offline activation and de-activation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.zpsstore.com/blog/zebra-designer-pro-v3-what-it-does-when-you-need-it-and-when-the-free-version-is-enough/" rel="noopener noreferrer" target="_blank"&gt;ZPS Store — Zebra Designer Pro V3: quando precisa e quando a versão gratuita basta&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.labtag.com/shop/product/zebradesigner-professional-3-barcode-label-software-1-user-license-zdpro3/" rel="noopener noreferrer" target="_blank"&gt;LabTag — ZebraDesigner Professional 3 (1 User License)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.cdw.com/product/zebra-designer-pro-3-label-design-software-windows-usb-1-user-licen/8401739" rel="noopener noreferrer" target="_blank"&gt;CDW — Zebra Designer Pro 3&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.ers-online.co.uk/p9157/zebra-designer-3-label-designer-software" rel="noopener noreferrer" target="_blank"&gt;ERS — Zebra Designer 3 Label Designer Software&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://canalqb.github.io/etiquetas-zebra/" rel="noopener noreferrer" target="_blank"&gt;CanalQb Impressão em Zebras — editor e Central de Ajuda (F1)&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p class="post_cqb_sign"&gt;Feito com Master Rules Claude v9.2&lt;/p&gt;
&lt;/section&gt;

&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"ZebraDesigner 3 Pro: R$ 1.497 ou editor grátis?",
  "description":"ZebraDesigner Professional 3 custa R$ 1.497 por PC, mas existe o Essentials grátis e o editor CanalQb. Veja o que o Pro faz e qual escolher.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQqQK5vPHrMLTMD42SkDCIJZojTKLFr5-gMjGHx2QTPbPIlY73-r3tUI0DrC_aa5mEmwv86EprkDl-_O4qnvumUteY9lZtODQdpMiIsW4L5InwdXKMsi8BkDeQWeTiSlX-bYBNE5XescSKmE5ZOi2SPWzbGRXiwzRzy7WF-AitD10pLejjoj21Gi1thncR/s1600/image.png"}
  },
  "datePublished":"2026-10-25","dateModified":"2026-10-25",
  "mainEntityOfPage":"https://canalqb.com.br/2026/10/zebradesigner-3-pro-r-1497-ou-editor-gratis.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
  {"@type":"Question","name":"O ZebraDesigner Essentials 3 é realmente grátis?","acceptedAnswer":{"@type":"Answer","text":"Sim. A Zebra oferece o Essentials 3 como a edição gratuita, sem chave de licença. O instalador traz as duas edições e abre como Essentials; dentro dele há um teste de 30 dias do Professional, e terminado o teste sem compra o programa continua como Essentials."}},
  {"@type":"Question","name":"A licença do Professional vale para mais de um computador?","acceptedAnswer":{"@type":"Answer","text":"As descrições de revenda tratam a licença como de ativação única para um computador, então a conta cresce por estação. Para mudar de computador, a Zebra descreve desativação seguida de redefinição no servidor. Confirme as condições com o revendedor e a documentação da Zebra."}},
  {"@type":"Question","name":"O editor do CanalQb substitui o ZebraDesigner Professional?","acceptedAnswer":{"@type":"Answer","text":"Depende do uso. Para planilha, lote, numeração, QR Code e códigos de barras comuns, o editor cobre o fluxo sem licença. Ele não substitui o Professional para script VB, RFID, arquivos .LBL ou .NLBL e drivers Windows com EPL e CPCL."}},
  {"@type":"Question","name":"Preciso instalar alguma coisa para usar o editor?","acceptedAnswer":{"@type":"Answer","text":"Para desenhar, importar planilhas e baixar o ZPL, não: o editor abre no navegador. Para imprimir por rede em firmwares recentes, a ponte local print-server.js em Node.js ou a extensão Zebra Printing para Chrome podem ser necessárias."}},
  {"@type":"Question","name":"Como imprimir em impressoras Link-OS 7.5 com o HTTP desligado?","acceptedAnswer":{"@type":"Answer","text":"Use o HTTPS Direct. Com a ponte local rodando, o editor imprime por HTTPS sem exigir aceitação de certificado; sem a ponte, aceite o certificado autoassinado da impressora uma vez por sessão. Também é possível religar o HTTP no painel web da impressora."}},
  {"@type":"Question","name":"Posso importar dados do Google Sheets no editor?","acceptedAnswer":{"@type":"Answer","text":"Sim. A janela Importar Dados aceita o link de planilha pública ou planilha privada após o login com a conta Google. Depois de importar, mapeie as colunas e crie uma etiqueta por linha; o arquivo não sincroniza sozinho."}}
]}
&lt;/script&gt;

&lt;script&gt;
(function(){
  'use strict';
  function init(){
    try{
      var bar=document.getElementById('post_cqb_progress');
      if(bar){
        window.addEventListener('scroll',function(){
          var h=document.documentElement;
          var total=h.scrollHeight-h.clientHeight;
          bar.style.width=(total&gt;0?Math.min(100,(h.scrollTop/total)*100):0)+'%';
        },{passive:true});
      }
      var btns=document.querySelectorAll('.post_copy_btn');
      for(var i=0;i&lt;btns.length;i++){
        btns[i].addEventListener('click',function(ev){
          var b=ev.currentTarget;
          var code=b.parentNode.querySelector('code');
          if(!code||!navigator.clipboard){return;}
          navigator.clipboard.writeText(code.textContent).then(function(){
            b.textContent='Copiado';
            setTimeout(function(){b.innerHTML='&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar';},1800);
          });
        });
      }
    }catch(e){}
  }
  if('requestIdleCallback' in window){requestIdleCallback(init);}else{setTimeout(init,200);}
})();
&lt;/script&gt;
&lt;!--ID de video padrao usado: substituir DUDla8Bya8M antes de publicar--&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiR1jXUrLucjRauCJlEYMEOVkRzU9paIXDuQpolRLmO9__PqbcGTH6kJPTL_bhIIJkvS6bwxZ_UjgzFzBMOWJ1lP8cZ4cWdiyAUAH_J0QPZ7qdSbGSi6N_9UMdGIWpsSijjFYjgwrINdeX3UJpuTbQMctvfDgJL3cPoJtbjU_CNIRKL33tAZ612NCb6LMnj/s72-c/image.png" width="72"/></item><item><title>Planilha Super Sete que se Atualiza Sozinha (2026)</title><link>https://canalqb.blogspot.com/2026/10/planilha-super-sete-que-se-atualiza.html</link><category>API CAIXA</category><category>Automação</category><category>estatísticas de loteria</category><category>gerador de jogos</category><category>Google Sheets</category><category>Loterias CAIXA</category><category>Planilha Super Sete</category><category>Super Sete</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 25 Oct 2026 22:46:27 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-3334156437386760996</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Y0P5ivKLelxXfftNp4Z5vzzmD2HJLux4TzSGBvgw8u8utuMIOcOeE6KEHdAsEd1w1Sqg5ZSno8uyWzFVZg7hWw5D9nEUFjdclXoB_Yv5Eyuk3jbCXWd_V6XGCwUghEbbTfZfTBIDBLW3C1Xizovgx6dPu_bsUnEnIS8pTOjt5R6e6Y97nWrGgsNF1Xc1/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_separator{border:0.5px solid #ccc;margin:10px auto;width:95%}
.post_h1{color:#333;font-size:1.8em;line-height:1.25}
.post_badge{background:rgba(40,167,69,0.08);border:1px solid #28a745;border-radius:20px;padding:6px 14px;display:inline-block;color:#333;font-size:0.85em;margin:10px 0}
.post_tldr{background:rgba(255,193,7,0.10);border-left:4px solid #ffc107;padding:18px;border-radius:8px;margin:20px 0}
.post_tldr_title{font-weight:bold;color:#333;margin:0 0 10px 0}
.post_tldr ul{margin:0;padding-left:20px;color:#555}
.post_tldr li{margin:6px 0;line-height:1.6}
.post_h2{color:#333;font-size:1.35em;border-left:4px solid #28a745;padding-left:12px;margin-top:38px;line-height:1.3}
.post_h3{color:#333;font-size:1.1em;margin-top:26px}
.post_p{color:#555;line-height:1.7}
.post_table{width:100%;border-collapse:collapse;margin:16px 0;font-size:0.92em}
.post_table th{background:#28a745;color:#fff;padding:8px 10px;text-align:left}
.post_table td{border:1px solid #cfe3d4;padding:7px 10px;color:#555}
.post_table tr:nth-child(even) td{background:rgba(232,245,233,0.5)}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_brigade{font-style:italic;color:#28a745;font-weight:bold}
.post_disclaimer{background:rgba(255,193,7,0.15);border-left:4px solid #ffc107;padding:15px;border-radius:8px;color:#555;font-size:0.9em;margin:20px 0}
.post_refs{background:rgba(33,150,243,0.08);border:1px solid #2196f3;padding:18px;border-radius:8px;margin:30px 0}
.post_refs h2{margin-top:0;font-size:1.2em;color:#333}
.post_refs ul{list-style:none;padding:0;margin:0}
.post_refs li{padding:6px 0;color:#555}
.post_refs a{color:#2196f3;text-decoration:underline}
.post_cta{background:rgba(40,167,69,0.10);border-left:4px solid #28a745;padding:20px;border-radius:8px;margin:30px 0;text-align:center}
a.post_link{color:#28a745;text-decoration:underline}
a:focus-visible{outline:2px solid #28a745;outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
&lt;/style&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;h1 class="post_h1" style="text-align: center;"&gt;Planilha Super Sete que se Atualiza Sozinha (2026)&lt;/h1&gt;
&lt;p style="text-align: center;"&gt;&lt;span class="post_badge"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~13 min&lt;/span&gt;&lt;/p&gt;

&lt;div class="post_tldr"&gt;
&lt;p class="post_tldr_title"&gt;TL;DR:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Montei uma planilha de Super Sete no Google Sheets que baixa sozinha todo o histórico oficial via API da CAIXA e calcula frequência e atraso de cada dígito em cada uma das 7 colunas (70 células de estatística).&lt;/li&gt;
&lt;li&gt;Com um clique (ou marcando o checkbox A6) ela recria 48 tickets QUENTE/FRIO/NEUTRO/MISTOS + 12 linhas MÉDIA/HARMÔNICA/FIBONACCI e pinta de verde cada dígito acertado na coluna certa.&lt;/li&gt;
&lt;li&gt;Isso importa porque o Super Sete é a única loteria da CAIXA com acerto posicional: o 5 na Coluna 1 não vale nada na Coluna 2, e planilhas genéricas erram essa análise por completo.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/EOvBqnHsKDI?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Super Sete que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p class="post_disclaimer"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso importante:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional, sobre estatística e automação de planilhas. Não garante ganhos nem resultados. Loteria é jogo de azar: nenhum dado histórico tem valor preditivo. Proibido para menores de 18 anos. Jogue com responsabilidade. O @CanalQb não tem vínculo nem afiliação com a CAIXA.
&lt;/p&gt;

&lt;p class="post_p"&gt;Acertar 7 dígitos no Super Sete é 1 chance em 10.000.000. Conferir cada concurso à mão, em 7 colunas independentes, é onde quase todo apostador desiste. A planilha que vou mostrar resolve exatamente isso: ela conecta ao &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/supersete" rel="noopener noreferrer" target="_blank"&gt;portal de loterias da CAIXA&lt;/a&gt;, importa o histórico oficial e recalcula tudo sozinha. E no fim deste post existe um detalhe estatístico sobre o teste chi² que quase ninguém explica direito.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que é o Super Sete e quais são as regras oficiais?&lt;/h2&gt;
&lt;p class="post_p"&gt;O Super Sete é a modalidade da CAIXA com estrutura própria: você joga em 7 colunas e a CAIXA sorteia 1 dígito de 0 a 9 em cada coluna. A aposta simples é 1 dígito por coluna (7 dígitos) e custa R$ 3,00; nas apostas múltiplas você marca de 8 a 21 dígitos no total — no máximo 2 por coluna com até 14 dígitos, ou 2 a 3 por coluna de 15 a 21 dígitos — o que multiplica combinações e preço. Os sorteios acontecem às segundas, quartas e sextas, a partir das 21h, desde 21/09/2021.&lt;/p&gt;
&lt;p class="post_p"&gt;O detalhe que muda tudo é o &lt;strong&gt;acerto posicional&lt;/strong&gt;: o dígito só vale se estiver na mesma coluna do volante. O 5 na Coluna 1 é totalmente independente do 5 na Coluna 2. É por isso que a planilha trata o jogo como 70 combinações coluna x dígito, e não como "7 dezenas de um universo só".&lt;/p&gt;

&lt;h3 class="post_h3"&gt;Tabela de preços: quanto custa marcar mais dígitos&lt;/h3&gt;
&lt;p class="post_p"&gt;Como cada coluna é independente, o número de apostas simples é o &lt;strong&gt;produto&lt;/strong&gt; das marcações de cada coluna — e cada aposta simples custa R$ 3,00:&lt;/p&gt;
&lt;table class="post_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Marcação&lt;/th&gt;&lt;th&gt;Combinações&lt;/th&gt;&lt;th&gt;Custo&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;1 dígito em cada coluna (simples)&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;R$ 3,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2 dígitos em uma coluna, 1 nas demais&lt;/td&gt;&lt;td&gt;2&lt;/td&gt;&lt;td&gt;R$ 6,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2 dígitos em duas colunas, 1 nas demais&lt;/td&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;R$ 12,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2 dígitos em todas as 7 colunas (14 dígitos)&lt;/td&gt;&lt;td&gt;128&lt;/td&gt;&lt;td&gt;R$ 384,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3 dígitos em uma coluna, 2 nas demais (15 dígitos)&lt;/td&gt;&lt;td&gt;192&lt;/td&gt;&lt;td&gt;R$ 576,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3 dígitos em todas as 7 colunas (21 dígitos, máximo)&lt;/td&gt;&lt;td&gt;2.187&lt;/td&gt;&lt;td&gt;R$ 6.561,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p class="post_p"&gt;&lt;span class="post_brigade"&gt;E o melhor?&lt;/span&gt; O gerador da planilha trabalha só com apostas simples: cada ticket sai por R$ 3,00 e você escolhe quais levam à lotérica.&lt;/p&gt;

&lt;h3 class="post_h3"&gt;Faixas oficiais de premiação&lt;/h3&gt;
&lt;p class="post_p"&gt;Há prêmio a partir de 3 acertos posicionais. As chances, conforme a tabela oficial reproduzida pela própria planilha na aba Estatísticas:&lt;/p&gt;
&lt;table class="post_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Chance&lt;/th&gt;&lt;th&gt;Premiação&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7 acertos&lt;/td&gt;&lt;td&gt;1 em 10.000.000&lt;/td&gt;&lt;td&gt;Prêmio principal&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6 acertos&lt;/td&gt;&lt;td&gt;1 em 158.730&lt;/td&gt;&lt;td&gt;Prêmio&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5 acertos&lt;/td&gt;&lt;td&gt;1 em 5.879&lt;/td&gt;&lt;td&gt;Prêmio&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4 acertos&lt;/td&gt;&lt;td&gt;1 em 392&lt;/td&gt;&lt;td&gt;Prêmio&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3 acertos&lt;/td&gt;&lt;td&gt;1 em 43,55&lt;/td&gt;&lt;td&gt;Prêmio fixo de R$ 6,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 class="post_h2"&gt;Como funciona a atualização automática via API da CAIXA?&lt;/h2&gt;
&lt;p class="post_p"&gt;A planilha roda um script Google Apps Script que consulta a API oficial do portal de loterias da CAIXA (servicebus2.caixa.gov.br) para descobrir o último concurso, com uma API alternativa como fallback. Na primeira execução ela importa todos os concursos de uma vez; nas seguintes, baixa apenas o que falta e insere no topo da aba "Todos os Jogos".&lt;/p&gt;
&lt;p class="post_p"&gt;O fluxo é incremental e seguro: o script compara o número do último concurso salvo na linha 2 com o número remoto e, se nada mudou, avisa que a planilha já está atualizada em vez de gastar requisições à toa. Quando há concurso novo, ele insere as linhas, reordena do mais recente para o mais antigo e dispara o recálculo das estatísticas automaticamente. Aqui no @CanalQb, validamos esse comportamento em dezenas de atualizações seguidas sem duplicar uma única linha.&lt;/p&gt;
&lt;p class="post_p"&gt;E o caminho curto? A célula A6 da aba "Jogo" é um checkbox: marcar dispara o gatilho "Atualizar Tudo" e ele desmarca sozinho ao terminar. Um clique, planilha inteira em dia.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como usar a planilha: o menu "Super Sete" item a item?&lt;/h2&gt;
&lt;p class="post_p"&gt;Depois de instalar o script (Extensões, Apps Script, colar o código, salvar e recarregar), aparece o menu "Super Sete" na barra superior. São 9 comandos: Atualizar Tudo, Como usar, Atualizar Resultados, Recalcular Estatísticas, Atualizar DashBoard, Gerar Jogos, Copiar Jogos para Aposta, Deletar Todas as Abas e Verificar Instalação. A ordem recomendada na primeira vez é Atualizar Resultados e depois Gerar Jogos; no dia a dia, só Atualizar Tudo.&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Tudo (botão):&lt;/strong&gt; faz tudo de uma vez — recria a aba Inicio, importa resultados, recalcula estatísticas, recria a aba "DashBoard" e recria os jogos da aba "Jogo". Também é acionado marcando o checkbox na célula A6.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Como usar (aba Inicio):&lt;/strong&gt; recria a aba de ajuda embutida, que é um manual completo dentro da própria planilha.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Resultados:&lt;/strong&gt; baixa os concursos oficiais da API da CAIXA para a aba "Todos os Jogos". É o primeiro passo: sem histórico, nada mais funciona.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Recalcular Estatísticas:&lt;/strong&gt; reescreve a aba "Estatísticas" com base no histórico importado.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar DashBoard:&lt;/strong&gt; recria a aba "DashBoard" com tabelas e gráficos: frequência dos dígitos 0-9, pares x ímpares, dígito x coluna e distribuição da soma dos 7 dígitos.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Gerar Jogos:&lt;/strong&gt; recria os 48 tickets (10 QUENTE, 10 FRIO, 10 NEUTRO e 18 MISTOS na seção lilás "JOGOS MISTOS") mais os tickets MÉDIA, HARMÔNICA e FIBONACCI, sempre 1 dígito por coluna.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os tickets prontos para copiar (Ctrl+C) e levar à lotérica.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Deletar Todas as Abas (manter Inicio):&lt;/strong&gt; zera a planilha para recomeçar do zero com "Atualizar Tudo".&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Verificar Instalação:&lt;/strong&gt; mostra se as abas necessárias existem e o estado da instalação.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_p"&gt;A aba "Todos os Jogos" guarda o histórico oficial: Concurso, Data e os 7 dígitos sorteados, um por coluna, com o mais recente no topo. É a única fonte de dados de toda a análise — nada é digitado à mão.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que significa cada estatística da aba Estatísticas?&lt;/h2&gt;
&lt;p class="post_p"&gt;A aba Estatísticas calcula frequência e atraso de cada dígito em cada coluna numa tabela de 70 células (7 colunas x 10 dígitos), além de paridade, soma, repetições e um teste de uniformidade. No Super Sete a posição importa: o 5 na Coluna 1 é independente do 5 na Coluna 2, e é isso que separa esta planilha de qualquer análise genérica.&lt;/p&gt;
&lt;p class="post_p"&gt;Cada bloco tem um papel claro:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Prob. %:&lt;/strong&gt; frequência dividida pelo número de concursos. É a chance média de aquele dígito sair naquela coluna em um sorteio. Dois dígitos com a mesma frequência total podem ter probabilidades completamente diferentes quando você olha coluna a coluna.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atraso atual:&lt;/strong&gt; há quantos concursos o dígito não sai naquela coluna específica. Atraso é retrato do passado — não é "dívida" que o sorteio precisa pagar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soma dos 7 dígitos:&lt;/strong&gt; a média da soma de cada sorteio (mínimo teórico 0, máximo 63). Serve como termômetro de equilíbrio dos resultados.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dígitos repetidos vs concurso anterior:&lt;/strong&gt; média de colunas que repetiram o mesmo dígito do sorteio imediatamente anterior. Como cada coluna sorteia 1 dígito entre 10, o esperado por puro acaso é 0,7 repetição por concurso — e a planilha mostra se o histórico acompanha isso.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Paridade do sorteio:&lt;/strong&gt; distribuição da quantidade de dígitos pares (0 a 7) por concurso, do puro azar ao todo-par.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distribuição de acertos — binomial(7; 0,1):&lt;/strong&gt; a probabilidade matemática de uma aposta simples acertar 7, 6, 5 até 0 dígitos posicionais. É a teoria confirmada na prática: 7 acertos dão 1 em 10.000.000 e 4 acertos dão 1 em 392.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_p"&gt;&lt;span class="post_brigade"&gt;Aqui está o detalhe que quase ninguém percebe.&lt;/span&gt; O teste chi² da planilha roda sobre as 70 células coluna x dígito, com valor crítico de 82,5 (5% de significância, 63 graus de liberdade — as 70 células menos as 7 restrições de linha, uma por coluna). Enquanto o resultado ficar abaixo do crítico, os dígitos saem de forma estatisticamente uniforme — ou seja, o sorteio se comporta como esperado de um gerador honesto. É o insight técnico que fica implícito nessa métrica: o chi² não mede "qual dígito vai sair", mede se existe ou não viés no sorteio. Rodando sobre a tabela de 70 células em vez de 10, ele enxerga desvios posicionais que um teste agregado por dígito esconderia. Se um dia o valor subir acima do crítico, aí sim vale investigar — e você será o primeiro a saber, porque o número fica recalculado na aba.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como ler a aba Jogo: coluna Acertos, QUENTE/NEUTRO/FRIO e os tickets especiais?&lt;/h2&gt;
&lt;p class="post_p"&gt;A aba "Jogo" gera 48 tickets com 1 dígito por coluna (aposta simples): 10 QUENTE, 10 FRIO, 10 NEUTRO e, ao final, a seção lilás "JOGOS MISTOS" com 18 tickets (Q+F, Q+N, F+Q, F+N, N+Q, N+F — 3 de cada). Os pools são montados por coluna a partir da frequência: em cada posição, os 3 dígitos mais sorteados alimentam o pool QUENTE, os 4 do meio o NEUTRO e os 3 menos sorteados o FRIO. Depois vêm 12 linhas extras: MÉDIA e HARMÔNICA (GERAL/QUENTE/FRIO/NEUTRO) calculadas por fórmula e 4 tickets FIBONACCI.&lt;/p&gt;
&lt;p class="post_p"&gt;Como conferir tudo:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Escolha (célula C3):&lt;/strong&gt; um menu suspenso com todos os concursos da aba "Todos os Jogos". Ao escolher um, as células F4:J4 preenchem sozinhas com os 7 dígitos daquele resultado. Nunca digite ali.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coluna Acertos:&lt;/strong&gt; quantos dígitos do ticket coincidem com o resultado &lt;strong&gt;na mesma coluna&lt;/strong&gt;. A fórmula usa SUMPRODUCT comparando posição a posição — acerto posicional de verdade, não "conta quantos dígitos existem no jogo". Fica vazio enquanto nenhum concurso estiver escolhido.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Célula verde:&lt;/strong&gt; um formato condicional compara cada dígito do ticket com o resultado e pinta de verde o que acertou na coluna certa. É a conferência visual em um segundo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MÉDIA x HARMÔNICA:&lt;/strong&gt; a média aritmética puxa o ticket para o "centro" dos dígitos de cada grupo — a linha GERAL cobre as 30 linhas de tickets de uma vez; a harmônica (inversa da média dos inversos) dá maior peso aos dígitos menores e trata o dígito 0 com um ajuste próprio (1/0 não existe), calculando-o como 1. São duas referências de equilíbrio diferentes, não previsões.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;FIBONACCI:&lt;/strong&gt; tickets com dígitos da sequência de Fibonacci e variações (0, 1, 1, 2, 3, 5, 8...), completados por frequência quando faltam dígitos. Existem 4: GERAL, QUENTE, FRIO e NEUTRO.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;JOGOS MISTOS:&lt;/strong&gt; 18 tickets ao final da aba (3 de cada combinação Q+F, Q+N, F+Q, F+N, N+Q, N+F). A mistura é posicional: o ticket sorteia quais 4 colunas (metade de 7, arredondada para cima) recebem dígito do tercil do primeiro pool e quais 3 recebem do tercil do segundo — sempre o pool daquela própria coluna. Como os tercis 3/4/3 particionam os 10 dígitos de cada coluna, os pools nunca se sobrepõem, e a conferência de acertos é a mesma SUMPRODUCT posicional das demais linhas.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os tickets no formato "TIPO N: d1 d2 d3 d4 d5 d6 d7", prontos para Ctrl+C. É o fim da transcrição à mão na lotérica.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_p"&gt;&lt;span class="post_brigade"&gt;Mas tem um porém:&lt;/span&gt; quente, frio, atraso e médias são retratos do passado. O próximo sorteio não sabe o que aconteceu nos anteriores — o próprio chi² da aba Estatísticas existe para confirmar isso. Use os tickets como organização e diversão, nunca como promessa de ganho. Já cobrimos essa honestidade estatística em outros materiais sobre &lt;a href="https://www.canalqb.com.br/search?q=estatisticas+loteria" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loteria&lt;/a&gt; aqui no blog.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Por que uma planilha posicional vale mais que um gerador comum?&lt;/h2&gt;
&lt;p class="post_p"&gt;Porque o Super Sete pune ferramentas genéricas: a maioria dos geradores e conferidores trata o jogo como "7 dezenas de 0 a 9", ignorando colunas. O resultado é um contador de acertos que marca ponto quando o dígito existe no jogo, mesmo na coluna errada — inflando sua expectativa e escondendo que você está mais longe do prêmio do que pensa.&lt;/p&gt;
&lt;p class="post_p"&gt;Aqui no @CanalQb, validamos que a conferência posicional muda o jogo: um ticket pode ter os 7 dígitos certos em colunas trocadas e valer zero. Só o SUMPRODUCT coluna a coluna mostra a realidade. Se você joga &lt;a href="https://www.canalqb.com.br/search?q=super+sete" rel="noopener noreferrer" target="_blank"&gt;Super Sete&lt;/a&gt; toda semana, essa é a diferença entre conferir de verdade e se enganar.&lt;/p&gt;
&lt;p class="post_p"&gt;E se você curte outras modalidades, montamos &lt;a href="https://www.canalqb.com.br/search?q=planilha+de+loteria" rel="noopener noreferrer" target="_blank"&gt;planilhas de loteria&lt;/a&gt; para Mega-Sena, Quina, Lotofácil e mais, todas com o mesmo motor de atualização automática. O &lt;a href="https://www.canalqb.com.br/search?q=gerador+de+jogos" rel="noopener noreferrer" target="_blank"&gt;gerador de jogos&lt;/a&gt; do Super Sete é o único com pools independentes por coluna.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como baixar e instalar a planilha de Super Sete?&lt;/h2&gt;
&lt;p class="post_p"&gt;O download é um arquivo do Google Sheets: abra, faça uma cópia para seu Drive e cole o script em Extensões, Apps Script. Depois de salvar e recarregar, o menu "Super Sete" aparece com tudo pronto. Nenhum dado pessoal é coletado e nada roda fora da sua própria planilha.&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Histórico oficial completo baixado via API da CAIXA, sem digitar uma linha.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; 70 células de estatística posicional: frequência, probabilidade e atraso por coluna e dígito.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; 48 tickets QUENTE/FRIO/NEUTRO/MISTOS + MÉDIA, HARMÔNICA e FIBONACCI gerados por clique.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Conferência posicional com célula verde e coluna Acertos contra qualquer concurso.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Checkbox A6 que atualiza tudo e volta sozinho.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Manual de uso embutido na aba Inicio, item a item.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_p"&gt;Baixe agora com o botão verde abaixo e assista ao vídeo do &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt; para ver a instalação ao vivo.&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
&lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
&lt;div class="post_faq_item"&gt;
&lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
&lt;span&gt;A planilha de Super Sete atualiza os resultados da CAIXA sozinha?&lt;/span&gt;
&lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
&lt;/h3&gt;
&lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim. O script consulta a API oficial do portal de loterias da CAIXA e importa apenas os concursos que faltam, inserindo cada um no topo da aba "Todos os Jogos". Basta usar o comando "Atualizar Tudo" do menu Super Sete ou marcar o checkbox da célula A6 — veja o passo a passo completo no post sobre &lt;a href="https://www.canalqb.com.br/search?q=planilha+super+sete" rel="noopener noreferrer" target="_blank"&gt;planilha Super Sete&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="post_faq_item"&gt;
&lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
&lt;span&gt;O que significa acerto posicional no Super Sete e por que a planilha confere assim?&lt;/span&gt;
&lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
&lt;/h3&gt;
&lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;No Super Sete o dígito só conta como acerto se estiver na mesma coluna sorteada: o 5 na Coluna 1 não vale nada na Coluna 2. A coluna "Acertos" da aba Jogo compara coluna a coluna com SUMPRODUCT, e a célula verde pinta exatamente o que acertou na posição certa. Conferidores genéricos que ignoram colunas superestimam seus acertos.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="post_faq_item"&gt;
&lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
&lt;span&gt;Quanto custa jogar usando os tickets gerados pela planilha?&lt;/span&gt;
&lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
&lt;/h3&gt;
&lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Cada ticket é uma aposta simples: 1 dígito por coluna, R$ 3,00. Se você marcar dígitos extras no volante (8 a 21 no total), o custo é o produto das marcações de cada coluna multiplicado por R$ 3,00 — por isso 2 dígitos em todas as 7 colunas já custam R$ 384,00. A tabela de preços completa está no corpo do post.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="post_faq_item"&gt;
&lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
&lt;span&gt;Dígitos quentes e frios aumentam a chance de ganhar no Super Sete?&lt;/span&gt;
&lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
&lt;/h3&gt;
&lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Quente, frio e atraso são retratos estatísticos do passado, sem valor preditivo algum — o próprio teste chi² da aba Estatísticas serve para confirmar que o sorteio é uniforme. Os tickets servem para organizar suas apostas e conferir acertos rápido, nunca como promessa de ganho. Jogue com responsabilidade.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="post_faq_item"&gt;
&lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
&lt;span&gt;Quais são as chances reais de premiação no Super Sete?&lt;/span&gt;
&lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
&lt;/h3&gt;
&lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Segundo a tabela oficial reproduzida na planilha: 7 acertos são 1 chance em 10.000.000; 6 acertos 1 em 158.730; 5 acertos 1 em 5.879; 4 acertos 1 em 392; e 3 acertos 1 em 43,55. A distribuição binomial(7; 0,1) da aba Estatísticas mostra a probabilidade de cada faixa de acertos de uma aposta simples.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="post_faq_item"&gt;
&lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
&lt;span&gt;A planilha funciona no Excel ou só no Google Sheets?&lt;/span&gt;
&lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
&lt;/h3&gt;
&lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Ela foi construída no Google Sheets com Google Apps Script, porque a atualização automática depende do UrlFetchApp para falar com a API da CAIXA. No Excel seria preciso reconstruir a conexão manualmente a cada concurso. Se você quer entender o motor de automação, veja nossos posts sobre &lt;a href="https://www.canalqb.com.br/search?q=google+sheets" rel="noopener noreferrer" target="_blank"&gt;Google Sheets&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"A planilha de Super Sete atualiza os resultados da CAIXA sozinha?","acceptedAnswer":{"@type":"Answer","text":"Sim. O script consulta a API oficial do portal de loterias da CAIXA e importa apenas os concursos que faltam, inserindo cada um no topo da aba Todos os Jogos. Basta usar o comando Atualizar Tudo do menu Super Sete ou marcar o checkbox da célula A6."}},
{"@type":"Question","name":"O que significa acerto posicional no Super Sete e por que a planilha confere assim?","acceptedAnswer":{"@type":"Answer","text":"No Super Sete o dígito só conta como acerto se estiver na mesma coluna sorteada. A coluna Acertos da aba Jogo compara coluna a coluna com SUMPRODUCT, e a célula verde pinta exatamente o que acertou na posição certa."}},
{"@type":"Question","name":"Quanto custa jogar usando os tickets gerados pela planilha?","acceptedAnswer":{"@type":"Answer","text":"Cada ticket é uma aposta simples: 1 dígito por coluna, R$ 3,00. Se você marcar dígitos extras no volante (8 a 21 no total), o custo é o produto das marcações de cada coluna multiplicado por R$ 3,00."}},
{"@type":"Question","name":"Dígitos quentes e frios aumentam a chance de ganhar no Super Sete?","acceptedAnswer":{"@type":"Answer","text":"Não. Quente, frio e atraso são retratos estatísticos do passado, sem valor preditivo. Os tickets servem para organizar suas apostas e conferir acertos rápido, nunca como promessa de ganho."}},
{"@type":"Question","name":"Quais são as chances reais de premiação no Super Sete?","acceptedAnswer":{"@type":"Answer","text":"Segundo a tabela oficial: 7 acertos são 1 chance em 10.000.000; 6 acertos 1 em 158.730; 5 acertos 1 em 5.879; 4 acertos 1 em 392; e 3 acertos 1 em 43,55."}},
{"@type":"Question","name":"A planilha funciona no Excel ou só no Google Sheets?","acceptedAnswer":{"@type":"Answer","text":"Ela foi construída no Google Sheets com Google Apps Script, porque a atualização automática depende do UrlFetchApp para falar com a API da CAIXA. No Excel seria preciso reconstruir a conexão manualmente."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div class="post_refs"&gt;
&lt;h2&gt;&#128218; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://www.loteriascaixa.gov.br/supersete" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — Super Sete (regras oficiais e resultados)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/supersete" rel="noopener noreferrer" target="_blank"&gt;API oficial do Portal de Loterias da CAIXA — Super Sete&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://developers.google.com/apps-script" rel="noopener noreferrer" target="_blank"&gt;Google Apps Script — documentação oficial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Super Sete que se Atualiza Sozinha (2026)",
  "description":"Planilha de Super Sete no Google Sheets que baixa o histórico oficial via API da CAIXA, calcula estatísticas por coluna e dígito e gera 48 jogos com conferência posicional automática.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-08",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="post_cta"&gt;
&lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
&lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
&lt;strong&gt;Baixe agora a Planilha Super Sete&lt;/strong&gt; — histórico automático via API da CAIXA, 70 células de estatística posicional e 48 jogos gerados por clique. E acompanhe mais tutoriais no
&lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
&lt;/p&gt;
&lt;p style="color: #555555; font-size: 0.8em; margin: 10px 0px 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;

&lt;!--===== BOTÃO DE COMPRA @CanalQb — Master Rules v8.5 + Adenda v9 =====--&gt;
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Comprar a planilha" href="https://canalqb.com.br/?c=SuperSete" onmouseout="this.style.background='#28a745'" onmouseover="this.style.background='#218838'" rel="noopener" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-cart-shopping" style="margin-right: 10px;"&gt;&lt;/i&gt;Comprar
  &lt;/a&gt;
&lt;/div&gt;
&lt;!--===== FIM BOTÃO DE COMPRA =====--&gt;

&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0Y0P5ivKLelxXfftNp4Z5vzzmD2HJLux4TzSGBvgw8u8utuMIOcOeE6KEHdAsEd1w1Sqg5ZSno8uyWzFVZg7hWw5D9nEUFjdclXoB_Yv5Eyuk3jbCXWd_V6XGCwUghEbbTfZfTBIDBLW3C1Xizovgx6dPu_bsUnEnIS8pTOjt5R6e6Y97nWrGgsNF1Xc1/s72-c/image.png" width="72"/></item><item><title>Planilha Timemania que se Atualiza Sozinha</title><link>https://canalqb.blogspot.com/2026/10/planilha-timemania-que-se-atualiza.html</link><category>API CAIXA</category><category>Apps Script</category><category>Estatísticas Loteria</category><category>gerador de jogos</category><category>Google Sheets</category><category>Loteria</category><category>Loterias CAIXA</category><category>Planilha Automática</category><category>Planilha Timemania</category><category>Timemania</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 25 Oct 2026 19:53:58 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-1521596546589677271</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCoVao23AGj0Zpa4FHQzg4XjZBZLwouEDFbe8dbVvqHwL8XuJzoUAefSvFhF3VOqyUGBFnVIBKyuC0C76UyZZOfvdJUpho9EKE6i1F4i55Y9IOf-o8ZM7jMj4xUyIMGYOWkrY1ZtX0PxLnSpFNjgDQ3T_5oc1ExNs__I-nFKxLsnptxn5y9z2WxKBKtnA-/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_h1{color:#333;font-size:1.6em;line-height:1.3;margin:10px 0 5px;text-align:center}
.post_badge{background:rgba(40,167,69,0.08);border:1px solid #28a745;border-radius:20px;color:#28a745;display:inline-block;font-size:.85em;font-weight:bold;padding:6px 14px;text-align:center;margin:10px 0}
.post_tldr{background:rgba(40,167,69,0.06);border:1px solid #28a745;border-left:5px solid #28a745;border-radius:8px;color:#333;font-size:.95em;line-height:1.7;margin:20px 0;padding:15px 18px}
.post_tldr strong{color:#14532d}
.post_tldr ul{list-style:none;margin:8px 0 0;padding:0}
.post_tldr li{align-items:flex-start;display:flex;gap:8px;margin:6px 0}
.post_tldr li i{color:#28a745;flex-shrink:0;margin-top:3px}
.post_h2{color:#333;font-size:1.35em;margin:34px 0 10px;border-left:4px solid #28a745;padding-left:12px;line-height:1.3}
.post_answer{background:transparent;color:#555;font-size:1em;line-height:1.7}
.post_p{color:#333;font-size:1em;line-height:1.75;margin:14px 0}
.post_bucket{color:#28a745;font-weight:bold}
.post_table{background:transparent;border-collapse:collapse;font-size:.9em;margin:18px 0;width:100%}
.post_table th{background:#28a745;color:#fff;font-weight:bold;padding:10px;text-align:center;border:1px solid #1e7e34}
.post_table td{border:1px solid #ddd;color:#333;padding:9px 10px;text-align:center}
.post_table tr:nth-child(even) td{background:rgba(40,167,69,0.04)}
.post_table td:first-child{text-align:left;font-weight:bold;color:#14532d}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.95em;color:#555;line-height:1.6}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_disclaimer{background:rgba(255,193,7,0.15);border-left:4px solid #ffc107;padding:15px;border-radius:8px;color:#555;font-size:0.9em;margin:20px 0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_question:focus-visible,.post_table:focus-visible,.post_badge:focus-visible{outline:2px solid #28a745;outline-offset:2px}
a.post_link{color:#2196f3;text-decoration:underline}
a:focus-visible{outline:2px solid #28a745;outline-offset:2px}
@media(max-width:600px){.post_h1{font-size:1.3em}.post_table{font-size:.8em}.post_table th,.post_table td{padding:6px}.post_badge{font-size:.8em}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
&lt;/style&gt;

&lt;h1 class="post_h1"&gt;Planilha Timemania que se Atualiza Sozinha (2026)&lt;/h1&gt;

&lt;p class="post_badge"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~12 min&lt;/p&gt;

&lt;div class="post_tldr"&gt;
&lt;strong&gt;&lt;i class="fas fa-bolt" style="color: #28a745;"&gt;&lt;/i&gt; TL;DR — Resumo Executivo&lt;/strong&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Montei uma planilha Google Sheets da Timemania que baixa sozinha todos os resultados oficiais da API da CAIXA — em um clique o histórico completo entra na aba "Todos os Jogos".&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Ela recalcula frequência, atraso e chi² das 80 dezenas e gera 48 jogos por perfil (QUENTE, FRIO, NEUTRO e mistos Q+F, Q+N, F+Q, F+N, N+Q, N+F) mais jogos MÉDIA, HARMÔNICA e FIBONACCI, com conferência automática de acertos por faixa de prêmio.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Isso importa porque elimina o trabalho manual de conferir concurso por concurso: cada aposta de R$ 3,50 é auditada em segundos, sem prometer ganhos — estatística descreve o passado, não prevê sorteio.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/z1-hhkNSx_I?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Timemania que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p class="post_disclaimer"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso Importante:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional. Loteria é um jogo de azar: nenhuma planilha, estatística ou método garante ganhos, e desempenho passado não prediz resultados futuros. Destinado a maiores de 18 anos. Jogue com responsabilidade e nunca aposte valores que você não pode perder. Este material não é afiliado nem patrocinado pela CAIXA Econômica Federal.
&lt;/p&gt;

&lt;p class="post_p"&gt;Por R$ 3,50 você aposta em 10 dezenas — e em 26.472.637 tentativas uma acerta as 7.&lt;/p&gt;
&lt;p class="post_p"&gt;Essa é a realidade matemática da Timemania, a loteria da CAIXA com a aposta mais barata do país: 10 dezenas de 01 a 80, mais um Time do Coração, sorteada às terças e quintas às 21h e aos domingos às 11h. Quem acompanha os resultados na mão perde horas conferindo cartela por cartela. No resto deste post eu mostro a planilha que construí no Google Sheets para resolver exatamente isso — e o teste estatístico que prova por que "dezena quente" não é o que a maioria pensa.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que é a Timemania e como funciona a aposta?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A Timemania é a loteria da CAIXA em que você marca 10 dezenas (de 01 a 80) mais 1 Time do Coração, por R$ 3,50. Cada concurso sorteia 7 dezenas e 1 time, com prêmios para 7, 6, 5, 4 e 3 acertos, além do prêmio fixo do time (R$ 8,50). Os sorteios acontecem três vezes por semana.&lt;/p&gt;
&lt;p class="post_p"&gt;Criada em 2008, a Timemania tem um detalhe único: o Time do Coração. Além das 7 bolas sorteadas, é sorteado um clube de futebol entre os 80 times habilitados — e se for o seu, você leva R$ 8,50 por aposta, independentemente das dezenas. É o prêmio fixo mais fácil de atingir: 1 chance em 80.&lt;/p&gt;
&lt;p class="post_p"&gt;Aqui está o detalhe que quase ninguém percebe: a Timemania é a única loteria da CAIXA com tamanho de aposta fixo. Não existe "jogar mais dezenas para aumentar a chance" como na Mega-Sena ou na Lotofácil — são sempre 10 dezenas, sempre R$ 3,50. Isso torna a planilha mais simples e a análise mais honesta: todo mundo parte exatamente do mesmo ponto matemático.&lt;/p&gt;

&lt;table class="post_table"&gt;
  &lt;caption style="caption-side: top; color: #555555; font-size: 0.85em; padding: 4px 0px 8px; text-align: left;"&gt;Faixas oficiais de premiação da Timemania (regras CAIXA)&lt;/caption&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Chance (1 em...)&lt;/th&gt;&lt;th&gt;Prêmio&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;7 dezenas&lt;/td&gt;&lt;td&gt;1 em 26.472.637&lt;/td&gt;&lt;td&gt;50% do prêmio bruto (variável)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;6 dezenas&lt;/td&gt;&lt;td&gt;1 em 216.103&lt;/td&gt;&lt;td&gt;20% do prêmio bruto (variável)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;5 dezenas&lt;/td&gt;&lt;td&gt;1 em 5.220&lt;/td&gt;&lt;td&gt;20% do prêmio bruto (variável)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;4 dezenas&lt;/td&gt;&lt;td&gt;1 em 276&lt;/td&gt;&lt;td&gt;R$ 10,50 (fixo)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;3 dezenas&lt;/td&gt;&lt;td&gt;1 em 29&lt;/td&gt;&lt;td&gt;R$ 3,50 (fixo)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Time do Coração&lt;/td&gt;&lt;td&gt;1 em 80&lt;/td&gt;&lt;td&gt;R$ 8,50 (fixo)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p class="post_p"&gt;Repare no prêmio de 3 acertos: R$ 3,50, exatamente o valor da aposta. Ou seja, acertar 3 dezenas devolve seu investimento — e a chance disso acontecer é de 1 em 29, o retorno mais frequente da modalidade. É o número que faz a planilha valer a pena para auditoria: em um bolão de 48 jogos, acertos de 3 e 4 faixam diferença real no caixa.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como funciona a atualização automática via API da CAIXA?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A planilha usa o Apps Script do Google Sheets para consultar a API oficial da CAIXA (servicebus2.caixa.gov.br) e baixar todos os concursos da Timemania. O histórico completo cai na aba "Todos os Jogos" com o concurso mais recente no topo. Na primeira execução ela importa tudo; nas seguintes, apenas os concursos que faltam.&lt;/p&gt;
&lt;p class="post_p"&gt;O endpoint oficial é o &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/timemania" rel="noopener noreferrer" target="_blank"&gt;Portal de Loterias da CAIXA&lt;/a&gt;, o mesmo que alimenta o site &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;oficial da CAIXA&lt;/a&gt;. O script tenta a fonte oficial primeiro; se ela recusar a conexão (acontece em chamadas seguidas), cai automaticamente numa API alternativa que espelha os mesmos dados. Depois de importar, a coluna "Time do Coração" também vem preenchida — histórico completo de dezenas e times em uma aba só.&lt;/p&gt;
&lt;p class="post_p"&gt;E o melhor? Nada de app, nada de extensão, nada de macro baixada da internet. Você cola o código no editor do Apps Script (Extensões, Apps Script), salva e recarrega a planilha. Um menu "Timemania" aparece na barra superior do Google Sheets. Todo o processamento roda na sua própria conta Google, sem enviar dados para nenhum terceiro.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como usar a planilha passo a passo (menu item a item)?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Abra a planilha, vá no menu "Timemania" e clique em "Atualizar Resultados" na primeira vez; depois use "Atualizar Tudo" no dia a dia. O menu tem 8 funções: atualização, manual de uso, estatísticas, dashboard, gerador de jogos, cópia para aposta, reset e verificação de instalação.&lt;/p&gt;
&lt;p class="post_p"&gt;Aqui no @CanalQb, validamos que o fluxo abaixo funciona em menos de dois minutos do zero à planilha completa. Replicando a aba "Inicio" (o manual interno da planilha), o uso é este:&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Resultados:&lt;/strong&gt; baixa os concursos oficiais para a aba "Todos os Jogos". É sempre o primeiro passo, porque sem histórico nenhuma estatística é calculada.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Recalcular Estatísticas:&lt;/strong&gt; reescreve a aba "Estatísticas" com frequência, atraso e distribuições de todas as 80 dezenas com base no histórico importado.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar DashBoard:&lt;/strong&gt; recria a aba "DashBoard" com gráficos de frequência por dezena, pares versus ímpares, saídas por faixa e distribuição de paridade.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Gerar Jogos:&lt;/strong&gt; cria a aba "Jogo 10" com 48 jogos prontos — três perfis de dezenas (QUENTE, FRIO e NEUTRO) e 18 JOGOS MISTOS que misturam os pools dois a dois — mais 12 jogos calculados (MÉDIA, HARMÔNICA e FIBONACCI).&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os jogos em formato de texto, prontos para copiar e levar à lotérica ou colar no site da CAIXA.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Tudo:&lt;/strong&gt; executa as etapas anteriores de uma vez. É a opção do dia a dia — e também é disparada ao marcar o checkbox da célula A6 na aba "Jogo 10", que se desmarca sozinho ao terminar.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Verificar Instalação:&lt;/strong&gt; mostra se todas as abas existem e o estado geral da instalação. Se algo faltar, ele avisa.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Deletar Todas as Abas:&lt;/strong&gt; reset total. Apaga tudo exceto a "Inicio" para recriar do zero — útil se algo sair do controle.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_p"&gt;A aba "Todos os Jogos" guarda o histórico oficial: número e data do concurso, as 7 dezenas sorteadas (Bola 1 a Bola 7, em ordem crescente) e o Time do Coração de cada sorteio. O concurso mais recente fica sempre na linha 2, o que faz a busca por MATCH no gerador de jogos ser instantânea.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que significa cada estatística da aba "Estatísticas"?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A aba calcula frequência, probabilidade por concurso, atraso atual, atraso médio e atraso máximo de cada dezena de 01 a 80, além de distribuições de paridade, faixas, quadrantes, primos, Fibonacci, soma e amplitude. Cada dezena recebe um rótulo: QUENTE, NEUTRO ou FRIO, conforme sua posição no ranking de frequência.&lt;/p&gt;
&lt;p class="post_p"&gt;A classificação é objetiva: as 27 dezenas mais sorteadas do histórico são QUENTE, as 27 menos sorteadas são FRIO e as 26 do meio são NEUTRO. Os rótulos aparecem coloridos no gerador (laranja para quente, azul para frio, cinza para neutro), o que facilita comparar perfis de aposta lado a lado.&lt;/p&gt;
&lt;p class="post_p"&gt;Mas tem um porém que precisa ficar registrado. O teste de chi² que a planilha roda compara a frequência observada de cada dezena com a frequência esperada num sorteio perfeitamente uniforme — o valor crítico com 79 graus de liberdade é 100,7. Nos históricos que analisamos aqui no @CanalQb, o resultado fica consistentemente abaixo desse limite: as 80 dezenas saem de forma estatisticamente uniforme, como esperado num sorteio honesto. Em outras palavras, "dezena quente" é um retrato do passado, não uma vantagem no futuro — cada sorteio é independente. A planilha deixa isso escrito na própria aba de estatísticas, porque ferramenta honesta vale mais que promessa.&lt;/p&gt;
&lt;p class="post_p"&gt;Completam a aba: os rankings das 10 mais e 10 menos sorteadas, os maiores atrasos atuais (com o aviso de que atraso não aumenta chance), as distribuições por faixa de 10 dezenas e por quadrante do volante, os 10 times do coração mais sorteados da história e a tabela de probabilidades hipergeométricas de acertos para a aposta de 10 dezenas — a mesma matemática da tabela oficial acima.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como ler a aba "Jogo 10" e conferir seus acertos?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A aba "Jogo 10" gera 48 jogos (10 QUENTE, 10 FRIO, 10 NEUTRO e 18 MISTOS, seção lilás ao final) mais 12 jogos calculados de MÉDIA, HARMÔNICA e FIBONACCI — e cada jogo já vem com um Time do Coração sugerido, porque a aposta real da Timemania é 10 dezenas + 1 time. Você escolhe o concurso na célula C3, o resultado e o time sorteado preenchem as células amarelas, a coluna "Acertos" conta quantas dezenas de cada jogo saíram e a coluna "Time OK" marca 1 quando o time sugerido da linha é o time sorteado.&lt;/p&gt;
&lt;p class="post_p"&gt;Cada elemento da aba tem um papel específico. &lt;span class="post_bucket"&gt;Veja agora como ler cada parte:&lt;/span&gt;&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Célula C3 (Escolha):&lt;/strong&gt; um menu suspenso com todos os concursos do histórico. Ao selecionar, as 7 dezenas daquele sorteio preenchem automaticamente a linha F4:L4 — você nunca digita o resultado à mão.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Célula verde:&lt;/strong&gt; formatação condicional que pinta de verde qualquer dezena dos jogos que esteja no resultado. Você enxerga os acertos de todos os 60 jogos de uma vez, sem conferir linha por linha.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Coluna "Ac?":&lt;/strong&gt; fórmula de contagem que soma quantas dezenas de cada jogo coincidem com o resultado, faixa por faixa — 3 acertos devolvem a aposta, 4 rendem R$ 10,50.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Coluna "Time" e "Time OK":&lt;/strong&gt; cada jogo traz 1 Time do Coração sugerido, sorteado do pool do nível da linha (times mais sorteados para jogos QUENTE, menos sorteados para FRIO, meio do ranking para NEUTRO; mistos seguem o pool base do combo). A coluna "Time OK" compara o time sugerido com o time sorteado do concurso: 1 = prêmio fixo de R$ 8,50.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Jogos MÉDIA:&lt;/strong&gt; quatro jogos (GERAL, QUENTE, FRIO, NEUTRO) montados com a média aritmética das dezenas de cada grupo — o "centro" estatístico do perfil.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Jogos HARMÔNICA:&lt;/strong&gt; a média harmônica dá maior peso às dezenas menores, gerando jogos puxados para o início do volante (01 a 40) — outra referência de equilíbrio.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Jogos FIBONACCI:&lt;/strong&gt; montados com dezenas da sequência de Fibonacci (1, 2, 3, 5, 8, 13, 21, 34, 55...) e variações, completadas por frequência quando faltam dezenas.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Checkbox A6:&lt;/strong&gt; marque para rodar "Atualizar Tudo" direto da aba de jogos. Ele desmarca sozinho ao terminar — um botão físico dentro da planilha.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_p"&gt;Aqui está o insight técnico original desta planilha: a coluna "Ac?" não é só um placar — ela é uma auditoria por faixa de premiação. Como cada linha carrega o rótulo do perfil (QUENTE, FRIO, NEUTRO), você consegue responder em segundos qual perfil teria rendido mais prêmios fixos (3 e 4 acertos) naquele concurso. A contagem cruza todos os jogos de um perfil contra o resultado e devolve a distribuição de acertos do grupo inteiro. Nenhum site de loteria oferece essa leitura por perfil; é a diferença entre conferir bilhetes e avaliar estratégias.&lt;/p&gt;
&lt;p class="post_p"&gt;Antes de ir à lotérica, use "Copiar Jogos para Aposta": a planilha abre uma janela com todos os jogos em texto corrido, um clique no botão Copiar e você leva a lista no celular. O custo estimado aparece na própria aba: 60 jogos somam R$ 210,00 em apostas simples — a planilha mostra esse número sempre visível para você decidir o tamanho da brincadeira.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Vale a pena usar estatísticas na Timemania?&lt;/h2&gt;
&lt;p class="post_answer"&gt;As estatísticas não mudam a chance de ganhar — cada sorteio é independente e o chi² confirma a uniformidade das 80 dezenas. O valor real está na organização: conferir dezenas de jogos automaticamente, controlar o custo das apostas e decidir com dados quanto se gasta em lazer, sem ilusão de previsão.&lt;/p&gt;
&lt;p class="post_p"&gt;Se você gosta desse tipo de ferramenta, já cobrimos outras &lt;a href="https://www.canalqb.com.br/search?q=planilha" rel="noopener noreferrer" target="_blank"&gt;planilhas de automação no canalqb.com.br&lt;/a&gt; — o mesmo motor serve para &lt;a href="https://www.canalqb.com.br/search?q=loteria" rel="noopener noreferrer" target="_blank"&gt;outras loterias da CAIXA&lt;/a&gt; com pequenos ajustes. Também explicamos em detalhe &lt;a href="https://www.canalqb.com.br/search?q=estatisticas" rel="noopener noreferrer" target="_blank"&gt;como ler estatísticas de loteria&lt;/a&gt; sem cair na falácia do jogador, e a &lt;a href="https://www.canalqb.com.br/search?q=timemania" rel="noopener noreferrer" target="_blank"&gt;Timemania completa tem página própria aqui no blog&lt;/a&gt;.&lt;/p&gt;
&lt;p class="post_p"&gt;O aviso honesto está gravado na própria aba "Inicio" da planilha: estatísticas não prevêem sorteio. Quente, frio e atraso são retratos do passado, sem valor preditivo. Use a planilha como ferramenta de organização e auditoria — e nunca como promessa de ganho.&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha da Timemania se atualiza sozinha mesmo, sem eu fazer nada?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Ela se atualiza com um clique: ao marcar o checkbox A6 ou escolher "Atualizar Tudo" no menu, o script consulta a API oficial da CAIXA e importa tudo o que falta — normalmente em menos de um minuto. A partir de um gatilho configurável no Apps Script é possível agendar a atualização automática por e-mail sem nenhum clique. Se você está começando, veja o passo a completo no post sobre &lt;a href="https://www.canalqb.com.br/search?q=timemania" rel="noopener noreferrer" target="_blank"&gt;planilha Timemania&lt;/a&gt; aqui do blog.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Dezenas quentes e frias aumentam a chance de ganhar na Timemania?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. O teste de chi² incluído na planilha mostra que as 80 dezenas saem de forma estatisticamente uniforme, e cada sorteio é independente — atraso não aumenta chance de sair. Os rótulos QUENTE e FRIO servem para organizar perfis de jogo e auditar resultados, não para prever o próximo concurso. Explicamos a matemática por trás disso no artigo sobre &lt;a href="https://www.canalqb.com.br/search?q=estatisticas" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loteria&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quanto custa jogar os 60 jogos gerados pela planilha?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Como a Timemania tem aposta fixa de 10 dezenas por R$ 3,50, os 48 jogos sorteados e mistos mais os 12 calculados somam R$ 210,00 em apostas simples. A própria aba "Jogo 10" mostra o custo estimado ao lado dos jogos, antes de você gastar. Se quiser reduzir, "Copiar Jogos para Aposta" permite escolher apenas os jogos do perfil que preferir.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Dá para usar a mesma planilha para outras loterias da CAIXA?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;A estrutura (histórico, estatísticas, gerador e conferência) é a mesma; muda o tamanho da aposta, o intervalo de dezenas e as faixas de prêmio, que ficam em constantes no início do código. Já publicamos versões para as demais &lt;a href="https://www.canalqb.com.br/search?q=loteria" rel="noopener noreferrer" target="_blank"&gt;loterias da CAIXA&lt;/a&gt; aqui no blog, todas com o mesmo motor de atualização via API.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quais prêmios a Timemania paga e quais são fixos?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Os prêmios de 7, 6 e 5 acertos são proporcionais (50%, 20% e 20% do prêmio bruto) e variam por concurso. Os de 4 acertos (R$ 10,50), 3 acertos (R$ 3,50) e Time do Coração (R$ 8,50) são fixos por aposta. A tabela completa está na planilha e também no &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;site oficial da CAIXA&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;É seguro colar o código do Apps Script na minha conta Google?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O código roda apenas na sua planilha e nas suas requisições à API pública da CAIXA — sem enviar dados para terceiros, sem armazenar credenciais e sem coletar nada de você. Recomendamos sempre ler o código antes de colar qualquer script em contas pessoais; o tutorial completo de instalação está no post sobre &lt;a href="https://www.canalqb.com.br/search?q=planilha" rel="noopener noreferrer" target="_blank"&gt;planilhas automáticas&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"A planilha da Timemania se atualiza sozinha mesmo, sem eu fazer nada?","acceptedAnswer":{"@type":"Answer","text":"Ela se atualiza com um clique: ao marcar o checkbox A6 ou escolher Atualizar Tudo no menu, o script consulta a API oficial da CAIXA e importa tudo o que falta, normalmente em menos de um minuto. Também é possível agendar a atualização automática no Apps Script."}},
{"@type":"Question","name":"Dezenas quentes e frias aumentam a chance de ganhar na Timemania?","acceptedAnswer":{"@type":"Answer","text":"Não. O teste de chi² incluído na planilha mostra que as 80 dezenas saem de forma estatisticamente uniforme e cada sorteio é independente. Os rótulos QUENTE e FRIO servem para organizar perfis de jogo, não para prever o próximo concurso."}},
{"@type":"Question","name":"Quanto custa jogar os 60 jogos gerados pela planilha?","acceptedAnswer":{"@type":"Answer","text":"Como a Timemania tem aposta fixa de 10 dezenas por R$ 3,50, os 48 jogos sorteados e mistos mais os 12 calculados somam R$ 210,00 em apostas simples. A própria aba Jogo 10 mostra o custo estimado ao lado dos jogos."}},
{"@type":"Question","name":"Dá para usar a mesma planilha para outras loterias da CAIXA?","acceptedAnswer":{"@type":"Answer","text":"A estrutura é a mesma; muda o tamanho da aposta, o intervalo de dezenas e as faixas de prêmio, que ficam em constantes no início do código. Já existem versões para as demais loterias da CAIXA com o mesmo motor de atualização via API."}},
{"@type":"Question","name":"Quais prêmios a Timemania paga e quais são fixos?","acceptedAnswer":{"@type":"Answer","text":"Os prêmios de 7, 6 e 5 acertos são proporcionais (50%, 20% e 20% do prêmio bruto) e variam por concurso. Os de 4 acertos (R$ 10,50), 3 acertos (R$ 3,50) e Time do Coração (R$ 8,50) são fixos por aposta, conforme regras da CAIXA."}},
{"@type":"Question","name":"É seguro colar o código do Apps Script na minha conta Google?","acceptedAnswer":{"@type":"Answer","text":"O código roda apenas na sua planilha e nas suas requisições à API pública da CAIXA, sem enviar dados para terceiros e sem coletar nada de você. Recomendamos sempre ler o código antes de colar qualquer script em contas pessoais."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;h2 class="post_h2"&gt;&#128218; Fontes e Referências&lt;/h2&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — Timemania&lt;/a&gt; — regras, faixas de premiação e resultados oficiais da modalidade.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/timemania" rel="noopener noreferrer" target="_blank"&gt;API do Portal de Loterias da CAIXA&lt;/a&gt; — endpoint público usado pela planilha para importar os concursos.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://www.canalqb.com.br/search?q=timemania" rel="noopener noreferrer" target="_blank"&gt;CanalQb — Timemania&lt;/a&gt; — outros artigos e planilhas da modalidade aqui no blog.&lt;/li&gt;
&lt;/ul&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Timemania que se Atualiza Sozinha (2026)",
  "description":"Planilha Timemania no Google Sheets com atualização automática via API da CAIXA: estatísticas das 80 dezenas, 60 jogos gerados e conferência de acertos com prêmios fixos em segundos.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-08",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Baixe a planilha da Timemania&lt;/strong&gt; com atualização automática via API da CAIXA e confira também o canal
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.8em; margin: 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;

&lt;!--===== BOTÃO DE COMPRA @CanalQb — link real https://canalqb.com.br/?c=TimeMania =====--&gt;
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Comprar a planilha" href="https://canalqb.com.br/?c=TimeMania" rel="noopener" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-cart-shopping" style="margin-right: 10px;"&gt;&lt;/i&gt;Comprar planilha
  &lt;/a&gt;
&lt;/div&gt;
&lt;!--===== FIM BOTÃO DE COMPRA =====--&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCoVao23AGj0Zpa4FHQzg4XjZBZLwouEDFbe8dbVvqHwL8XuJzoUAefSvFhF3VOqyUGBFnVIBKyuC0C76UyZZOfvdJUpho9EKE6i1F4i55Y9IOf-o8ZM7jMj4xUyIMGYOWkrY1ZtX0PxLnSpFNjgDQ3T_5oc1ExNs__I-nFKxLsnptxn5y9z2WxKBKtnA-/s72-c/image.png" width="72"/></item><item><title>Metadados — DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes</title><link>https://canalqb.blogspot.com/2026/10/metadados-deepseek-v41-no-windows.html</link><category>agentes de IA</category><category>api</category><category>Automação</category><category>deepseek</category><category>hermes agent</category><category>Kimi Code CLI</category><category>opencode</category><category>terminal</category><category>Tutorial</category><category>Windows</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Thu, 22 Oct 2026 17:42:25 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-9186703146898808314</guid><description>&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi241j-1yZajtF9YFxgvrELZZDo1xNoTZ75EB004x2OkHIH6RRubJxm2z5-BwILP1JhIqInvQxpPJq9oc88od9iWQx-qoCt9PjR5rU_6XB-wS4JZMsVOqxqk4I1y1MWRFkU-hKUmwfQqx_2_8Hbx6I7nlYuRQ-jtfOBORXCzDcHGnX8PQyhI8ZgHiI9mz-T/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_root{max-width:860px;margin:0 auto;padding:0 16px;color:#555555;line-height:1.75;font-size:1.02em}
.post_cqb_root h2{color:#333333;font-size:1.45em;line-height:1.3;margin:42px 0 14px;display:flex;gap:10px;align-items:flex-start}
.post_cqb_root h3{color:#333333;font-size:1.15em;line-height:1.35;margin:28px 0 10px}
.post_cqb_root strong{color:#333333}
.post_cqb_root a{color:#2196f3;text-decoration:underline}
.post_cqb_root a:focus-visible,.post_copy_btn:focus-visible,.post_cqb_faq_question:focus-visible{outline:3px solid #2196f3;outline-offset:2px}
.post_cqb_signature{text-align:center;font-size:.85em;color:#555555;margin:6px 0 14px}
.post_cqb_badge{display:inline-flex;gap:8px;align-items:center;padding:6px 14px;border:1px solid #28a745;border-radius:999px;color:#28a745;font-weight:600;font-size:.9em;margin:8px 0}
.post_cqb_center{text-align:center}
.post_cqb_tldr{border-left:5px solid #28a745;background:rgba(40,167,69,.08);padding:16px 20px;border-radius:8px;margin:22px 0}
.post_cqb_tldr ul{margin:8px 0 0;padding-left:20px}
.post_cqb_tldr li{margin:6px 0}
.post_cqb_quickfix{border-left:5px solid #ffc107;background:rgba(255,193,7,.1);padding:8px 20px 14px;border-radius:8px;margin:30px 0}
.post_cqb_quickfix_list{list-style:none;padding:0;margin:10px 0 0}
.post_cqb_quickfix_list li{display:flex;gap:10px;align-items:flex-start;padding:7px 0}
.post_cqb_quickfix_list li i{margin-top:6px;flex-shrink:0}
.post_cqb_codewrap{position:relative;margin:14px 0 18px}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',Consolas,monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:20px 16px 16px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;font-size:.88em;line-height:1.6;margin:0;white-space:pre}
.post_copy_btn{position:absolute;top:8px;right:8px;min-height:44px;min-width:44px;padding:6px 12px;border:1px solid #555555;border-radius:6px;background:#333333;color:#ffffff;cursor:pointer;font-size:.8em;z-index:2}
.post_copy_btn:hover{background:#28a745}
.post_cqb_table_wrap{overflow-x:auto;margin:16px 0 20px}
.post_cqb_table{border-collapse:collapse;width:100%;font-size:.93em}
.post_cqb_table th,.post_cqb_table td{border:1px solid #cccccc;padding:10px 12px;text-align:left;vertical-align:top}
.post_cqb_table th{background:rgba(33,150,243,.1);color:#333333}
.post_cqb_note{background:rgba(33,150,243,.1);border-left:4px solid #2196f3;padding:14px 16px;border-radius:8px;margin:18px 0;font-size:.95em}
.post_cqb_warn{background:rgba(255,193,7,.15);border-left:4px solid #ffc107;padding:14px 16px;border-radius:8px;margin:18px 0;font-size:.95em}
.post_cqb_faq_container{margin:24px 0}
.post_cqb_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_cqb_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333333;min-height:44px}
.post_cqb_faq_question:hover{background:#f0f0f0}
.post_cqb_faq_answer{padding:15px;background:#ffffff;color:#555555;line-height:1.6}
.post_cqb_faq_item[open] .post_cqb_faq_question{background:rgba(40,167,69,.1);color:#28a745}
.post_cqb_erro_card{border:1px solid rgba(211,47,47,.35);border-left:5px solid #d32f2f;border-radius:8px;padding:6px 18px 12px;margin:16px 0}
.post_cqb_erro_card h3{margin:12px 0 8px}
.post_cqb_cta{text-align:center;margin:40px 0 20px;padding:22px 16px;border:2px solid #28a745;border-radius:12px}
.post_cqb_cta a{font-weight:700;color:#28a745}
.post_cqb_refs{font-size:.93em}
.post_cqb_refs li{margin:6px 0}
.post_cqb_toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#333333;color:#ffffff;padding:10px 18px;border-radius:8px;font-size:.9em;z-index:9999}
@media (prefers-color-scheme: dark){
.post_cqb_root{color:#d6d6d6}
.post_cqb_root h2,.post_cqb_root h3,.post_cqb_root strong,.post_cqb_table th{color:#f2f2f2}
.post_cqb_root a{color:#6ab7ff}
.post_cqb_signature{color:#bdbdbd}
.post_cqb_table th,.post_cqb_table td{border-color:#555555}
.post_cqb_faq_item{border-color:#555555}
.post_cqb_faq_question{background:transparent;color:#f2f2f2}
.post_cqb_faq_question:hover{background:rgba(255,255,255,.06)}
.post_cqb_faq_answer{background:transparent;color:#d6d6d6}
}
@media (max-width:767px){.post_cqb_root{font-size:1em}.post_cqb_root h2{font-size:1.3em}}
@media (prefers-reduced-motion: reduce){.post_cqb_root *{transition:none!important;animation:none!important}}
&lt;/style&gt;

&lt;div class="post_cqb_root"&gt;

&lt;p class="post_cqb_signature"&gt;&lt;i class="fas fa-wand-magic-sparkles" style="color: #28a745;"&gt;&lt;/i&gt; Feito com Master Rules Claude v9.2&lt;/p&gt;
&lt;p class="post_cqb_center"&gt;&lt;span class="post_cqb_badge"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~24 min&lt;/span&gt;&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;p&gt;&lt;strong&gt;&lt;i class="fas fa-bolt" style="color: #28a745;"&gt;&lt;/i&gt; TL;DR&lt;/strong&gt;&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Em 22 de outubro de 2026 a API do DeepSeek tem dois nomes de modelo, deepseek-flash e deepseek-v4-pro, ambos com 1 milhão de tokens de contexto, e uma única chave de API serve aos três agentes deste guia.&lt;/li&gt;
    &lt;li&gt;OpenCode e Hermes ativam o DeepSeek por assistente guiado (/connect e hermes setup), enquanto o Kimi Code CLI exige registrar um provedor do tipo openai no config.toml.&lt;/li&gt;
    &lt;li&gt;O preço por token dobra no horário de pico, que em Brasília cai entre 22h e 01h e entre 03h e 07h; concentrar sessões longas fora dessas faixas corta a conta pela metade.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo de @CanalQb — DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Uma chave de API, três agentes: o difícil é saber onde colá-la.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Em outubro de 2026 o DeepSeek trocou o modelo que responde pelo nome deepseek-flash sem mudar o nome nem o preço, e muita configuração antiga ainda aponta para apelidos aposentados. Aqui em @CanalQb organizamos o caminho completo para o Windows a partir das documentações oficiais: primeiro a instalação de OpenCode, Kimi Code CLI e Hermes Agent, depois a ativação do DeepSeek em cada um.&lt;/p&gt;
&lt;p&gt;No fim existe um ajuste de horário que quase ninguém faz e que muda a conta do mês. Ele depende de uma regra de pico que a página de preços descreve em UTC, e vale a pena traduzi-la para o relógio de Brasília antes de deixar qualquer agente rodando durante a noite.&lt;/p&gt;

&lt;section aria-label="Soluções rápidas" class="post_cqb_quickfix"&gt;
  &lt;h2&gt;&lt;i class="fas fa-bolt" style="color: #ffc107;"&gt;&lt;/i&gt; Quais são as soluções rápidas para os problemas mais comuns?&lt;/h2&gt;
  &lt;p&gt;Seis falhas concentram quase todos os chamados nesse tipo de instalação: comando não reconhecido depois do instalador, shell Bash ausente, versão antiga do OpenCode, chave não encontrada, provedor com nome divergente e erro 400 em modo de raciocínio. Cada uma tem correção de poucos minutos e um detalhamento mais abaixo.&lt;/p&gt;
  &lt;ul class="post_cqb_quickfix_list"&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;kimi ou hermes não reconhecido:&lt;/strong&gt; feche e abra um terminal novo para o PATH atualizado entrar em vigor. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Bash not found no Kimi:&lt;/strong&gt; instale o Git for Windows ou aponte KIMI_SHELL_PATH para o bash.exe. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;DeepSeek ausente no OpenCode:&lt;/strong&gt; atualize para a versão 1.18.30 ou superior e rode /connect de novo. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;API key not set no Hermes:&lt;/strong&gt; rode hermes model e grave a chave com hermes config set DEEPSEEK_API_KEY. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Provider not found:&lt;/strong&gt; a chave do provedor e o prefixo do modelo precisam ser idênticos. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Erro 400 com raciocínio ligado:&lt;/strong&gt; o campo reasoning_content precisa voltar na conversa; atualize o agente. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/section&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; O que mudou no DeepSeek e qual modelo você deve chamar?&lt;/h2&gt;
&lt;p&gt;Em outubro de 2026 a API oficial do DeepSeek expõe dois nomes de modelo: deepseek-flash, atendido pela versão V4.1-Flash-1017, e deepseek-v4-pro, que corresponde à V4-Pro-0813. Ambos oferecem janela de 1 milhão de tokens, chamadas de ferramentas e modo de raciocínio, e funcionam tanto no formato OpenAI quanto no formato Anthropic.&lt;/p&gt;
&lt;p&gt;Esse ponto de partida importa porque os três agentes deste tutorial só conversam com o DeepSeek pela API, e a API mudou duas vezes em poucas semanas. Segundo a página oficial de modelos e preços, o nome deepseek-flash passou a ser servido pelo snapshot 1017, e os nomes legados deepseek-v4-flash e deepseek-v4-flash-vision-exp continuam sendo aceitos, mas os modelos que eles identificavam foram aposentados: qualquer requisição feita com eles cai no Flash atual e é cobrada pelo preço do Flash. Na prática, uma configuração antiga não quebra de imediato, mas deixa de refletir o que você realmente está usando.&lt;/p&gt;
&lt;p&gt;A diferença entre os dois modelos aparece no preço e nos recursos. O Flash aceita entrada de imagem e custa bem menos; o Pro não oferece visão, mas é a escolha para planejamento difícil e tarefas longas de código. Os valores abaixo vêm da página oficial, são cobrados por 1 milhão de tokens e valem fora do horário de pico; no pico, cada valor dobra.&lt;/p&gt;
&lt;div class="post_cqb_table_wrap"&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Modelo&lt;/th&gt;&lt;th&gt;Versão servida&lt;/th&gt;&lt;th&gt;Entrada com cache&lt;/th&gt;&lt;th&gt;Entrada sem cache&lt;/th&gt;&lt;th&gt;Saída&lt;/th&gt;&lt;th&gt;Visão&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;deepseek-flash&lt;/td&gt;&lt;td&gt;V4.1-Flash-1017&lt;/td&gt;&lt;td&gt;US$ 0,003&lt;/td&gt;&lt;td&gt;US$ 0,15&lt;/td&gt;&lt;td&gt;US$ 0,60&lt;/td&gt;&lt;td&gt;Sim&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;deepseek-v4-pro&lt;/td&gt;&lt;td&gt;V4-Pro-0813&lt;/td&gt;&lt;td&gt;US$ 0,022&lt;/td&gt;&lt;td&gt;US$ 0,66&lt;/td&gt;&lt;td&gt;US$ 1,98&lt;/td&gt;&lt;td&gt;Não&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Um exemplo concreto mostra o tamanho da diferença. Uma sessão que consome 2 milhões de tokens de entrada sem cache e gera 200 mil tokens de saída custa, fora do pico, 2 × US$ 0,15 + 0,2 × US$ 0,60, ou seja, US$ 0,42 no Flash. A mesma sessão no Pro custa 2 × US$ 0,66 + 0,2 × US$ 1,98, que dá cerca de US$ 1,72. O Pro sai 4,4 vezes mais caro na entrada e 3,3 vezes na saída, então vale reservá-lo para quando o Flash realmente não der conta.&lt;/p&gt;
&lt;p&gt;Existe uma limitação que atrapalha quem copia tutoriais antigos: os nomes deepseek-chat e deepseek-reasoner, muito comuns em guias de 2025 e do início de 2026, não aparecem mais na lista oficial de modelos. Se um passo a passo mandar usar um deles, confirme o nome atual na página de preços antes de colar no arquivo de configuração. O erro típico é o agente responder normalmente nos primeiros testes e, semanas depois, falhar porque o apelido foi removido do servidor.&lt;/p&gt;
&lt;p&gt;Para começar, deixe o deepseek-flash como padrão nos três agentes. Ele tem o melhor custo por tarefa, cobre leitura de código, edição de arquivos e execução de comandos, e você pode trocar para o Pro numa sessão específica quando precisar. Se quiser conferir o preço vigente no dia, a fonte é a &lt;a href="https://api-docs.deepseek.com/quick_start/pricing" rel="noopener noreferrer" target="_blank"&gt;página oficial de modelos e preços do DeepSeek&lt;/a&gt;; os números mudam sem aviso e nenhum guia deve ser tratado como tabela definitiva.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; O que preparar no Windows antes de instalar os três agentes?&lt;/h2&gt;
&lt;p&gt;Antes de instalar qualquer agente, tenha três coisas prontas: um terminal PowerShell atualizado, o Git for Windows e uma chave de API do DeepSeek criada na plataforma oficial. Com esses itens no lugar, os instaladores de OpenCode, Kimi Code CLI e Hermes rodam sem interrupção, e você evita os erros de caminho e de shell que mais aparecem no Windows.&lt;/p&gt;
&lt;h3&gt;Passo 1: confirme Git e Node.js&lt;/h3&gt;
&lt;p&gt;Abra o PowerShell e rode os comandos abaixo para ver o que já existe na máquina. O resultado esperado é uma linha de versão para cada comando; se aparecer "não é reconhecido", o programa falta.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;git --version
node --version
winget --version&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;O Git é obrigatório para o Kimi Code CLI, que usa o Git Bash como shell, e útil para o Hermes e o OpenCode. O Node.js só é necessário para os caminhos de instalação por npm; para o Kimi pelo npm a documentação exige a versão 22.19.0 ou mais nova. Se faltar algum, instale pelo winget com os comandos a seguir e depois feche e reabra o PowerShell. Erro comum: instalar e continuar na mesma janela; o PATH só é relido em terminais novos.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;winget install --id Git.Git -e
winget install --id OpenJS.NodeJS.LTS -e&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Passo 2: gere a chave no painel do DeepSeek&lt;/h3&gt;
&lt;p&gt;Entre em platform.deepseek.com, abra a área de chaves de API e crie uma chave nova com um nome reconhecível, como "agentes-windows". A chave aparece uma única vez; copie-a para um gerenciador de senhas antes de fechar a janela. Esse passo é necessário porque os três agentes cobram o uso direto na sua conta DeepSeek, e sem saldo ou crédito promocional as requisições falham mesmo com a chave correta. Quando funciona, a lista de chaves mostra a nova entrada com a data de criação. Erro comum: colar a chave num chat, num commit ou num arquivo de projeto; se isso acontecer, revogue a chave no painel e crie outra.&lt;/p&gt;
&lt;h3&gt;Passo 3: guarde a chave numa variável de ambiente&lt;/h3&gt;
&lt;p&gt;Em vez de colar a chave em cada ferramenta, grave-a uma vez como variável de ambiente do usuário. O comando setx persiste o valor para terminais futuros, e o Kimi Code CLI vai ler exatamente esse nome. Troque o texto de exemplo pela sua chave real e reabra o PowerShell depois.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;setx DEEPSEEK_API_KEY "sk-cole-sua-chave-aqui"
# depois de reabrir o PowerShell:
echo $env:DEEPSEEK_API_KEY&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Se o segundo comando imprimir a chave, a variável está viva. Quando ele imprime uma linha vazia, o setx foi rodado na janela atual e o terminal ainda não foi reaberto, que é a causa mais comum de "chave não encontrada" logo no primeiro teste.&lt;/p&gt;
&lt;p&gt;Um detalhe de análise própria que poupa tempo: cada agente trata a chave de um jeito diferente. O OpenCode guarda a chave no próprio armazenamento depois do /connect, o Kimi Code CLI só enxerga a variável de ambiente se o arquivo de configuração mandar ler pelo nome dela, e o Hermes guarda segredos no arquivo .env da sua pasta de dados. Ter a variável pronta serve ao Kimi e ao Hermes, e o OpenCode recebe a mesma chave colada uma única vez dentro do assistente.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como instalar o OpenCode no Windows?&lt;/h2&gt;
&lt;p&gt;O OpenCode instala no Windows por npm, Scoop ou Chocolatey, e a documentação oficial recomenda o WSL como o caminho com melhor desempenho e compatibilidade total. Para quem prefere ficar no Windows nativo, o comando npm install -g opencode-ai basta; depois, opencode --version deve mostrar a versão 1.18.30 ou superior para funcionar bem com o DeepSeek.&lt;/p&gt;
&lt;h3&gt;Passo 1: escolha o método de instalação&lt;/h3&gt;
&lt;p&gt;A decisão depende do que você já usa. Quem tem Node.js instalado vai de npm, quem usa gerenciador de pacotes prefere Scoop ou Chocolatey, e quem quer o melhor desempenho segue o guia de WSL do próprio projeto. Os quatro caminhos entregam o mesmo executável opencode, então a escolha é de conveniência e de atualização.&lt;/p&gt;
&lt;div class="post_cqb_table_wrap"&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Método&lt;/th&gt;&lt;th&gt;Comando&lt;/th&gt;&lt;th&gt;Quando escolher&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;npm&lt;/td&gt;&lt;td&gt;npm install -g opencode-ai&lt;/td&gt;&lt;td&gt;Você já tem Node.js e quer atualizar com o mesmo comando mais tarde.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Scoop&lt;/td&gt;&lt;td&gt;scoop install opencode&lt;/td&gt;&lt;td&gt;Você usa Scoop para outras ferramentas de linha de comando.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Chocolatey&lt;/td&gt;&lt;td&gt;choco install opencode&lt;/td&gt;&lt;td&gt;Você usa Chocolatey e abre o PowerShell como administrador.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;WSL&lt;/td&gt;&lt;td&gt;curl -fsSL https://opencode.ai/install | bash&lt;/td&gt;&lt;td&gt;Você quer o caminho recomendado pela documentação, dentro do Linux do WSL.&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;h3&gt;Passo 2: instale e confirme a versão&lt;/h3&gt;
&lt;p&gt;Este guia segue o npm por ser o mais direto no Windows nativo. O comando baixa o pacote e registra o executável opencode no PATH global do npm. Ele é necessário aqui porque o DeepSeek só aparece no catálogo de provedores das versões recentes.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;npm install -g opencode-ai@latest
opencode --version&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;O resultado esperado é um número de versão, e o guia de integração do DeepSeek pede 1.18.30 ou mais nova para evitar problemas de compatibilidade. Se o número for menor, repita o primeiro comando; se o comando opencode não for reconhecido, abra um terminal novo e confira com npm config get prefix se a pasta global do npm está no PATH.&lt;/p&gt;
&lt;p&gt;Existe uma pegadinha de versões que a documentação do OpenCode destaca: o OpenCode 1 e o OpenCode 2 usam o mesmo comando opencode e não convivem lado a lado na instalação padrão. Se você já testou a versão 2 em algum momento, instalar a versão 1 por cima troca o executável, e a configuração do DeepSeek descrita neste guia foi escrita a partir da documentação oficial da versão 1, que é a que o DeepSeek cita. Quem preferir a versão 2 deve consultar a documentação própria dela antes de seguir os próximos passos.&lt;/p&gt;
&lt;p&gt;Para o WSL, o projeto mantém uma página dedicada com a instalação do Linux e os cuidados de caminho entre os dois sistemas; vale lê-la se você pretende abrir projetos que ficam em pastas do Windows. Para o restante deste guia, o terminal pode ser o PowerShell com a instalação por npm ou o terminal do WSL com o instalador do projeto, e os comandos de ativação do DeepSeek são idênticos nos dois.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como ativar o DeepSeek no OpenCode?&lt;/h2&gt;
&lt;p&gt;No OpenCode a ativação é guiada: abra o terminal, rode opencode, digite /connect, procure pelo provedor deepseek, cole a chave de API e escolha o modelo Flash na lista. O processo leva menos de dois minutos e não exige editar arquivo algum, porque o DeepSeek já faz parte do catálogo de provedores do OpenCode.&lt;/p&gt;
&lt;h3&gt;Passo 1: abra o OpenCode numa pasta de projeto&lt;/h3&gt;
&lt;p&gt;Vá até uma pasta de teste e inicie a interface. O OpenCode trabalha sobre o diretório atual, então iniciá-lo na pasta errada faz o agente enxergar arquivos que você não pretendia expor.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;mkdir $HOME\teste-agentes
cd $HOME\teste-agentes
opencode&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Quando funciona, a interface em tela cheia do terminal abre com uma caixa de entrada no rodapé. Erro comum: iniciar na raiz do disco ou na pasta de usuário inteira, o que deixa o agente indexar muito mais arquivos do que o necessário.&lt;/p&gt;
&lt;h3&gt;Passo 2: conecte o provedor com /connect&lt;/h3&gt;
&lt;p&gt;Na caixa de entrada digite /connect, escreva deepseek na busca e selecione o provedor. Em seguida cole a chave de API quando o assistente pedir. Esse passo grava a credencial no armazenamento do próprio OpenCode, e é por isso que ele não depende da variável de ambiente criada antes. O resultado esperado é uma mensagem de conexão concluída e, na etapa seguinte, a lista de modelos do DeepSeek.&lt;/p&gt;
&lt;h3&gt;Passo 3: escolha o modelo Flash&lt;/h3&gt;
&lt;p&gt;Selecione a entrada do Flash na lista. As páginas do DeepSeek descrevem essa opção de duas maneiras, como V4.1-Flash num guia e como V4-Flash em outro, porque a documentação foi atualizada em momentos diferentes; ambas se referem ao mesmo modelo de custo baixo, e o servidor atende pelo nome deepseek-flash. Para ver o identificador exato que o seu OpenCode usa, digite /models depois da conexão.&lt;/p&gt;
&lt;h3&gt;Passo 4: fixe o modelo no arquivo de configuração&lt;/h3&gt;
&lt;p&gt;Isto é opcional, mas evita escolher o modelo toda vez. O OpenCode lê um arquivo opencode.json global na pasta .config do seu perfil de usuário e outro na raiz de cada projeto. Escreva o modelo no formato provedor/identificador, trocando o texto de exemplo pelo identificador mostrado no /models.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;{
  "$schema": "https://opencode.ai/config.json",
  "model": "deepseek/identificador-mostrado-no-models"
}&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Faça o teste com um pedido simples, como "Liste os arquivos desta pasta e explique em três linhas o que cada um faz". A tecla Tab alterna entre o modo de planejamento, que só sugere mudanças, e o modo de construção, que as aplica. Erro comum: o aviso Provider not found, que aparece quando o nome do provedor no arquivo e o prefixo do modelo não são idênticos; ambos precisam ser exatamente deepseek.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como instalar o Kimi Code CLI no Windows?&lt;/h2&gt;
&lt;p&gt;O Kimi Code CLI instala no Windows com um único comando em PowerShell, desde que o Git for Windows esteja instalado antes do primeiro uso, porque a ferramenta usa o Git Bash como shell. Depois do script, kimi --version confirma o executável no PATH e o comando kimi abre a interface interativa no diretório do seu projeto.&lt;/p&gt;
&lt;h3&gt;Passo 1: tenha o Git for Windows no lugar&lt;/h3&gt;
&lt;p&gt;Se você seguiu a preparação, o Git já está instalado pelo winget. A documentação do Kimi Code é direta: instale o Git for Windows antes de abrir a ferramenta pela primeira vez, pois é o Git Bash que executa os comandos de shell que o agente pede. Sem ele, o primeiro comando de shell falha com a mensagem Bash not found.&lt;/p&gt;
&lt;h3&gt;Passo 2: rode o instalador oficial&lt;/h3&gt;
&lt;p&gt;No PowerShell comum, sem precisar de administrador, execute o comando abaixo. Ele baixa a versão mais recente, confere o checksum e coloca o executável kimi no PATH; por isso é o método que a documentação chama de recomendado e que dispensa ter Node.js. Como em qualquer script executado direto da internet, vale abrir o endereço no navegador e ler o conteúdo antes de rodar.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;irm https://code.kimi.com/kimi-code/install.ps1 | iex&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Passo 3: confirme a instalação&lt;/h3&gt;
&lt;p&gt;Feche o PowerShell, abra um novo e rode o comando abaixo. O resultado esperado é a versão instalada. Se a resposta for kimi not found, o PATH ainda não foi relido ou o instalador rodou em outro usuário do Windows; um terminal novo no mesmo usuário resolve na maioria dos casos.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;kimi --version&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Passo 4: alternativas e ajustes finos&lt;/h3&gt;
&lt;p&gt;Quem já tem Node.js 22.19.0 ou superior pode instalar pelo npm com npm install -g @moonshot-ai/kimi-code, e atualizar depois com kimi upgrade. Se o Git Bash estiver numa pasta fora do padrão, grave o caminho do bash.exe na variável KIMI_SHELL_PATH, por exemplo com setx KIMI_SHELL_PATH "C:\Program Files\Git\bin\bash.exe", e reabra o terminal.&lt;/p&gt;
&lt;p&gt;Atenção a uma confusão frequente de nomes: existe o Kimi Code CLI atual, escrito em TypeScript, e o antigo kimi-cli, instalado com uv tool install kimi-cli, que guarda a configuração em ~/.kimi. O Kimi Code CLI usa a pasta ~/.kimi-code, que no Windows fica dentro do seu perfil de usuário. Muitos tutoriais antigos citam o primeiro caminho, e editar o arquivo da pasta errada é um dos motivos de a configuração do DeepSeek "não pegar". O instalador deste passo, com o endereço contendo kimi-code, é o da ferramenta atual.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como ativar o DeepSeek no Kimi Code CLI?&lt;/h2&gt;
&lt;p&gt;O caminho mais previsível é registrar o DeepSeek no arquivo config.toml como um provedor do tipo openai, apontando para a URL da API e para uma variável de ambiente com a chave. Depois você define um alias de modelo e o torna padrão, e o CLI trata sozinho o campo de raciocínio que os modelos DeepSeek devolvem.&lt;/p&gt;
&lt;h3&gt;Passo 1: abra o arquivo config.toml&lt;/h3&gt;
&lt;p&gt;O arquivo nasce na primeira execução do kimi, então rode o comando uma vez e saia com /exit. Depois abra o arquivo no editor com o comando abaixo. O CLI lê as credenciais apenas do arquivo de configuração e não usa variáveis do terminal por conta própria, e é isso que o próximo passo contorna.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;notepad $HOME\.kimi-code\config.toml&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Passo 2: adicione o provedor e o modelo&lt;/h3&gt;
&lt;p&gt;Acrescente o bloco abaixo, mantendo o que já existe no arquivo. O tipo openai fala o protocolo de chat compatível com OpenAI, que o DeepSeek oferece em https://api.deepseek.com. O campo api_key_env manda o CLI ler a chave da variável DEEPSEEK_API_KEY a cada requisição, assim a chave não fica escrita em texto puro no arquivo. A janela de contexto foi declarada em 1 milhão de tokens, valor conservador em relação ao informado na página de preços.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;default_model = "deepseek/flash"

[providers.deepseek]
type = "openai"
base_url = "https://api.deepseek.com"
api_key_env = "DEEPSEEK_API_KEY"

[models."deepseek/flash"]
provider = "deepseek"
model = "deepseek-flash"
max_context_size = 1000000
display_name = "DeepSeek V4.1 Flash"
capabilities = ["thinking", "tool_use"]&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Se o arquivo já tiver uma linha default_model, mantenha apenas uma delas, porque a chave repetida invalida o TOML. As aspas em torno de deepseek/flash são obrigatórias, já que a barra e o ponto em nomes de chave exigem aspas nesse formato. Para um segundo alias com o Pro, copie o bloco de modelo, troque o alias e o campo model para deepseek-v4-pro e tire a capacidade de imagem se algum dia a declarar.&lt;/p&gt;
&lt;h3&gt;Passo 3: recarregue e teste&lt;/h3&gt;
&lt;p&gt;Salve o arquivo, abra um terminal novo para que a variável de ambiente entre no processo e faça um teste curto de uma única mensagem. O parâmetro -m escolhe o alias e -p executa uma instrução sem abrir a interface.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;kimi -m deepseek/flash -p "Responda apenas: configuração ok"&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Se a resposta chegar, abra o kimi normalmente e use /model para alternar entre aliases durante a sessão. Se aparecer um erro citando a variável DEEPSEEK_API_KEY, ela está vazia nesse processo: rode echo $env:DEEPSEEK_API_KEY e, se vier vazio, refaça o setx e reabra o terminal. Um segundo caminho existe no próprio CLI: o comando /provider abre um gerenciador que importa provedores conhecidos a partir do catálogo público models.dev e pede só a chave; ele serve como atalho, mas o catálogo pode demorar a listar o identificador mais novo do DeepSeek, e nesse caso o bloco manual acima continua valendo. O comando /login, por sua vez, é para o serviço próprio do Kimi e não é necessário para usar o DeepSeek.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como instalar o Hermes Agent no Windows?&lt;/h2&gt;
&lt;p&gt;O Hermes Agent, da Nous Research, tem três caminhos no Windows: o instalador desktop em pacote .appinstaller, o script nativo em PowerShell e o script Linux dentro do WSL2. O caminho mais curto para quem usa terminal é rodar iex (irm https://hermes-agent.nousresearch.com/install.ps1) no PowerShell e reabrir a janela para o comando hermes ser reconhecido.&lt;/p&gt;
&lt;h3&gt;Passo 1: escolha o caminho de instalação&lt;/h3&gt;
&lt;p&gt;O pacote desktop do site oficial traz o agente, o Python e as dependências suportadas já embutidos, e o primeiro uso não compila o ambiente base. O script de PowerShell clona o código-fonte, prepara o gerenciador uv e baixa versões fixas de Python, Node.js, ripgrep e FFmpeg. O terceiro caminho, o script para Linux, é para quem já trabalha dentro do WSL2. Para um tutorial de terminal, o script de PowerShell é o mais fácil de reproduzir e de depurar.&lt;/p&gt;
&lt;h3&gt;Passo 2: rode o instalador nativo&lt;/h3&gt;
&lt;p&gt;No PowerShell, execute o comando abaixo. O Windows consegue buscar um Git empacotado se ele estiver ausente, e as etapas aparecem em uma linha de status cada, com os detalhes gravados em logs\install.log dentro da pasta de dados do Hermes. O instalador também baixa por padrão as ferramentas de navegador; se não quiser isso, a opção -SkipBrowser as dispensa. Leia o script no navegador antes de rodar, como em qualquer instalador baixado e executado em memória.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;iex (irm https://hermes-agent.nousresearch.com/install.ps1)&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Em execuções interativas o instalador abre o assistente de configuração ao final. Você pode ativar o DeepSeek ali mesmo, seguindo a seção seguinte, ou pular a etapa e voltar depois com hermes model. O código fica em %LOCALAPPDATA%\hermes\hermes-agent, o lançador em %LOCALAPPDATA%\hermes\bin e os seus dados em %LOCALAPPDATA%\hermes.&lt;/p&gt;
&lt;h3&gt;Passo 3: reabra o terminal e valide&lt;/h3&gt;
&lt;p&gt;Feche o PowerShell, abra um novo e rode hermes doctor, o comando de diagnóstico do projeto, que informa exatamente o que está faltando. O resultado esperado é uma lista de verificações sem pendências críticas. Se a resposta for hermes: command not found, o PATH não foi relido; um terminal novo costuma resolver, e o diagnóstico do instalador indica a pasta bin que precisa estar no caminho.&lt;/p&gt;
&lt;h3&gt;Passo 4: plano B pelo WSL2&lt;/h3&gt;
&lt;p&gt;Relatos de comunidade descrevem o suporte nativo ao Windows como o mais recente e menos testado, com mais chance de arestas. Se o instalador nativo travar, abra o terminal do WSL2 e use o script oficial para Linux, curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash, que exige apenas o Git. Os comandos de configuração do DeepSeek são os mesmos nos dois ambientes; muda apenas a pasta de dados, que no WSL2 fica em ~/.hermes.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como ativar o DeepSeek no Hermes Agent?&lt;/h2&gt;
&lt;p&gt;No Hermes você ativa o DeepSeek com o assistente hermes setup ou com hermes model: escolha DeepSeek como provedor, informe a chave, confirme a URL https://api.deepseek.com e selecione o modelo. Quem prefere linha de comando direta pode gravar a chave com hermes config set DEEPSEEK_API_KEY e definir provedor e modelo na configuração.&lt;/p&gt;
&lt;h3&gt;Passo 1: use o assistente guiado&lt;/h3&gt;
&lt;p&gt;O guia oficial do DeepSeek para o Hermes manda executar hermes setup, escolher a opção Quick Setup, selecionar DeepSeek como provedor, digitar a chave, informar a URL base https://api.deepseek.com e escolher o modelo; o exemplo da documentação usa o deepseek-v4-pro, e para economizar você pode escolher deepseek-flash no mesmo ponto. Há um detalhe de versão: dependendo da release instalada, o Quick Setup pode levar primeiro ao Nous Portal, o serviço próprio da Nous Research. Se isso acontecer, rode hermes model, que lista os provedores diretamente, ou escolha Full Setup no assistente.&lt;/p&gt;
&lt;h3&gt;Passo 2: configure por comandos&lt;/h3&gt;
&lt;p&gt;O Hermes separa segredos de configuração comum: a chave vai para o arquivo .env da pasta de dados e o resto para o config.yaml. O comando hermes config set decide o arquivo correto por você. Rode as três linhas abaixo, trocando o texto de exemplo pela sua chave.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;hermes config set DEEPSEEK_API_KEY sk-cole-sua-chave-aqui
hermes config set model.provider deepseek
hermes config set model.default deepseek-flash
hermes config get model&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;A última linha imprime o que ficou gravado e serve de conferência: o provedor deve ser deepseek e o modelo deepseek-flash. Erro comum: digitar a chave com espaços ou aspas curvas coladas de um editor de texto, o que gera falha de autenticação mesmo com a chave certa.&lt;/p&gt;
&lt;h3&gt;Passo 3: confira o arquivo de configuração&lt;/h3&gt;
&lt;p&gt;Se preferir editar à mão, o arquivo config.yaml fica em %LOCALAPPDATA%\hermes. O bloco mínimo equivalente aos comandos anteriores é o seguinte, e o comando hermes config edit abre o arquivo no editor.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;model:
  provider: deepseek
  default: deepseek-flash&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h3&gt;Passo 4: teste uma conversa&lt;/h3&gt;
&lt;p&gt;Execute hermes e faça uma pergunta curta; o banner inicial mostra o provedor e o modelo escolhidos. Para forçar a escolha em uma única chamada, use hermes chat --provider deepseek --model deepseek-flash. O Hermes exige um modelo com no mínimo 64 mil tokens de contexto, requisito que os 1 milhão de tokens do DeepSeek superam com folga. Se as respostas vierem vazias ou quebradas, a documentação aponta provedor, modelo ou autenticação errados e manda rodar hermes model de novo para confirmar os três.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como testar os três agentes e controlar o custo do DeepSeek?&lt;/h2&gt;
&lt;p&gt;Teste cada agente com o mesmo pedido curto, confira no painel do DeepSeek se o consumo apareceu e só então libere tarefas longas. Para segurar a conta, mantenha o Flash como padrão, use o Pro apenas em planejamento difícil e evite os horários de pico, em que o preço por token dobra em relação ao restante do dia.&lt;/p&gt;
&lt;p&gt;O teste padronizado evita comparar maçãs com laranjas. Use o mesmo pedido nos três, por exemplo "Liste os arquivos desta pasta e explique em três linhas o que cada um faz", e observe se o agente leu a pasta, respondeu em português e terminou sem erro de autenticação.&lt;/p&gt;
&lt;div class="post_cqb_table_wrap"&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Agente&lt;/th&gt;&lt;th&gt;Comando de teste&lt;/th&gt;&lt;th&gt;O que conferir&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;OpenCode&lt;/td&gt;&lt;td&gt;opencode, depois digitar o pedido&lt;/td&gt;&lt;td&gt;O modelo exibido é o Flash do DeepSeek e o agente lê a pasta.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Kimi Code CLI&lt;/td&gt;&lt;td&gt;kimi -m deepseek/flash -p "pedido"&lt;/td&gt;&lt;td&gt;A resposta chega sem erro citando DEEPSEEK_API_KEY.&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Hermes&lt;/td&gt;&lt;td&gt;hermes chat --provider deepseek --model deepseek-flash&lt;/td&gt;&lt;td&gt;O banner mostra provedor e modelo, e a resposta não vem vazia.&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Depois dos testes, o assunto é o relógio. A página de preços define o pico como as faixas de 01h às 04h e de 06h às 10h em UTC, de segunda a sexta, sem contar feriados públicos chineses; todo o resto, incluindo os fins de semana inteiros, é fora do pico, com metade do preço. Em Brasília, que está três horas atrás de UTC, as faixas equivalem a 22h–01h e 03h–07h. A regra dos dias vale pela data em UTC, e esse é o ponto que costuma passar batido: a faixa das 22h às 01h é pico de domingo a quinta à noite, já que 22h de domingo em Brasília é 01h de segunda em UTC, e deixa de ser pico na sexta à noite, que já é sábado em UTC. A faixa da madrugada, das 03h às 07h, atinge os dias úteis normais. Quem programa à noite no meio da semana paga o dobro sem perceber.&lt;/p&gt;
&lt;p&gt;O cache de entrada é a segunda alavanca de custo. O Flash cobra US$ 0,003 por milhão de tokens com cache contra US$ 0,15 sem cache, uma diferença de 50 vezes, e agentes de código repetem contexto a cada passo. Sessões longas na mesma pasta, sem trocar de modelo no meio, aproveitam mais o cache do que várias sessões curtas e dispersas. A limitação é que o cache depende de o início do pedido ser idêntico, então reorganizar instruções fixas no meio da conversa pode reduzir esse ganho.&lt;/p&gt;
&lt;p&gt;Segurança também faz parte do controle. Todos os três agentes executam comandos e editam arquivos, e o conteúdo que eles leem viaja para os servidores do DeepSeek. Não rode o agente em pastas com segredos, mantenha a chave só em variável de ambiente, nunca a coloque em repositório e use os modos de permissão de cada ferramenta: o Kimi Code CLI começa no modo manual, que pede confirmação antes de alterar arquivos ou rodar comandos, e o OpenCode tem sua própria documentação de permissões. Se a chave vazar, revogue no painel e gere outra no mesmo minuto.&lt;/p&gt;

&lt;div class="post_cqb_note"&gt;&lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Conformidade Global:&lt;/strong&gt; As informações regulatórias refletem as legislações vigentes no momento da publicação. Leis de privacidade variam por jurisdição e estão em constante evolução. Ao enviar código e dados a uma API de terceiros, avalie a política de dados do provedor e a LGPD, e consulte as autoridades locais de proteção de dados e o &lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt;. Este conteúdo não constitui aconselhamento jurídico.&lt;/div&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Perguntas frequentes sobre DeepSeek em agentes no Windows&lt;/h2&gt;
&lt;div class="post_cqb_faq_container"&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; O DeepSeek é gratuito nesses agentes?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Não por padrão. A API cobra por token, com preços diferentes para Flash e Pro e metade do valor fora do horário de pico, descontado do saldo da sua conta. Alguns serviços de terceiros anunciam períodos promocionais, mas esse tipo de oferta muda rápido e deve ser confirmado na hora. Antes de deixar um agente rodando, olhe o painel de uso e veja nossa &lt;a href="https://www.canalqb.com.br/search?q=deepseek" rel="noopener noreferrer" target="_blank"&gt;cobertura sobre DeepSeek&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Devo usar deepseek-flash ou deepseek-v4-pro?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Comece com o deepseek-flash, que custa em torno de um quarto do Pro na entrada e aceita imagens. Troque para o deepseek-v4-pro quando uma tarefa de planejamento ou refatoração grande travar no Flash. O Pro não tem visão. Como a troca é só um nome de modelo, vale testar nos dois com o mesmo pedido, e as comparações aparecem no &lt;a href="https://www.canalqb.com.br/search?q=opencode" rel="noopener noreferrer" target="_blank"&gt;conteúdo sobre OpenCode&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Posso usar a mesma chave nos três agentes?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Sim. A chave pertence à sua conta DeepSeek e qualquer cliente compatível pode usá-la, então OpenCode, Kimi Code CLI e Hermes aceitam a mesma. A diferença é onde cada um a guarda. Se quiser separar o consumo por ferramenta, crie uma chave por agente no painel; assim, ao revogar uma, as demais continuam funcionando. Mais guias de ferramentas estão em &lt;a href="https://www.canalqb.com.br/search?q=hermes+agent" rel="noopener noreferrer" target="_blank"&gt;Hermes Agent&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Preciso instalar o WSL para usar esses agentes?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Não é obrigatório. OpenCode e Hermes têm instalação no Windows nativo, e o Kimi Code CLI roda no Windows usando o Git Bash. O WSL é recomendado pela documentação do OpenCode por oferecer desempenho melhor e compatibilidade total, e funciona como plano B para o Hermes se o instalador nativo falhar. Se for por esse caminho, confira o &lt;a href="https://www.canalqb.com.br/search?q=kimi+cli" rel="noopener noreferrer" target="_blank"&gt;material sobre Kimi CLI&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Meu código vai para os servidores do DeepSeek?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Sim. Qualquer trecho de arquivo, saída de comando ou mensagem que o agente inclua na requisição é enviado à API para gerar a resposta. Por isso evite abrir o agente em pastas com senhas, chaves ou dados de clientes, revise a política de dados do provedor e, em ambiente de empresa, alinhe o uso com o time jurídico. Nossa seção sobre &lt;a href="https://www.canalqb.com.br/search?q=seguranca+api+key" rel="noopener noreferrer" target="_blank"&gt;segurança de chaves de API&lt;/a&gt; aprofunda o assunto.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;section aria-label="Erros e soluções" class="post_cqb_erros" id="erros-solucoes"&gt;
  &lt;h2&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; Quais erros aparecem ao configurar e como resolver cada um?&lt;/h2&gt;
  &lt;p&gt;Os erros abaixo cobrem as quatro categorias que mais travam este procedimento: instalação que não entra no PATH, shell ausente, configuração com nomes divergentes e autenticação sem chave. Cada cartão traz o sintoma como ele aparece na tela, a causa técnica, a correção copiável e uma prevenção para não repetir o problema na próxima instalação.&lt;/p&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; kimi not found (ou hermes: command not found)&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; o instalador gravou o executável e atualizou o PATH, mas a janela do terminal aberta antes da instalação mantém a lista antiga de pastas.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; feche o PowerShell, abra um novo no mesmo usuário do Windows e rode kimi --version ou hermes doctor. Se persistir, confira se o instalador não foi executado em outra conta de usuário ou com permissões de administrador de outro perfil.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; depois de qualquer instalador de linha de comando, abra sempre um terminal novo antes do primeiro teste.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Bash not found&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; o Kimi Code CLI usa o Git Bash como shell no Windows e não encontrou o bash.exe, seja porque o Git for Windows não está instalado, seja porque está numa pasta fora do padrão.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; instale com winget install --id Git.Git -e ou, se o Git já existe em outro local, grave o caminho com setx KIMI_SHELL_PATH "C:\Program Files\Git\bin\bash.exe" e reabra o terminal.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; instale o Git antes do Kimi e confirme com git --version.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; DeepSeek não aparece no /connect do OpenCode&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; versão antiga do OpenCode, anterior ao suporte atual ao DeepSeek, ou conflito entre as versões 1 e 2, que usam o mesmo comando opencode.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; rode npm install -g opencode-ai@latest, confirme que opencode --version mostra 1.18.30 ou superior e repita /connect, digitando deepseek na busca.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; atualize o OpenCode antes de configurar novos provedores e evite manter duas gerações instaladas.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Provider not found&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; no opencode.json, o nome do provedor e o prefixo do modelo divergem, como declarar o provedor como deepseek e escrever o modelo com outro prefixo.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; faça os dois coincidirem exatamente, por exemplo deepseek e deepseek/identificador, usando o identificador que o /models mostra.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; copie o identificador do próprio /models em vez de digitar de memória ou de copiar de tutoriais antigos.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; API key not set (Hermes) ou erro citando DEEPSEEK_API_KEY (Kimi)&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a chave não chegou ao processo: no Hermes ela não foi gravada no .env, e no Kimi a variável não existe na janela atual porque o setx foi executado sem reabrir o terminal.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; no Hermes rode hermes model ou hermes config set DEEPSEEK_API_KEY com a chave; no Kimi refaça o setx, abra um terminal novo e confirme com echo $env:DEEPSEEK_API_KEY.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; valide a variável com echo antes de abrir qualquer agente.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Erro 400 em sessão com raciocínio ligado&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; relatos de comunidade indicam que a API recusa a requisição quando o campo reasoning_content devolvido pelo modelo não é reenviado no histórico, comportamento ligado ao modo de raciocínio e à troca silenciosa do snapshot em 17 de outubro.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; atualize o agente para a versão mais recente, que trata esse campo; no Kimi Code CLI o tipo openai já o gerencia, e no OpenCode vale seguir a versão indicada pelo DeepSeek. Se persistir, abra uma nova sessão com /new.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; mantenha os agentes atualizados e leia as notas de versão depois de qualquer anúncio de modelo do DeepSeek.&lt;/p&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class="post_cqb_cta"&gt;
  &lt;p&gt;&lt;i class="fab fa-youtube" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Gostou do passo a passo?&lt;/strong&gt; Veja os vídeos de automação, agentes e ferramentas práticas em &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt; e conte nos comentários qual agente você ativou primeiro.&lt;/p&gt;
&lt;/div&gt;

&lt;section aria-label="Fontes e referências" class="post_cqb_refs"&gt;
  &lt;h2&gt;&lt;i class="fas fa-book-open" style="color: #2196f3;"&gt;&lt;/i&gt; Fontes e referências&lt;/h2&gt;
  &lt;p&gt;Todas as informações foram conferidas em 22 de outubro de 2026 nas páginas abaixo; preços, versões e nomes de modelo mudam, então confirme nas fontes oficiais antes de decidir.&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="https://api-docs.deepseek.com/" rel="noopener noreferrer" target="_blank"&gt;DeepSeek API Docs: Your First API Call&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://api-docs.deepseek.com/quick_start/pricing" rel="noopener noreferrer" target="_blank"&gt;DeepSeek API Docs: Models &amp;amp; Pricing&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://api-docs.deepseek.com/quick_start/agent_integrations/opencode" rel="noopener noreferrer" target="_blank"&gt;DeepSeek API Docs: Integrate with OpenCode&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://api-docs.deepseek.com/quick_start/agent_integrations/hermes" rel="noopener noreferrer" target="_blank"&gt;DeepSeek API Docs: Integrate with Hermes Agent&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://opencode.ai/docs/" rel="noopener noreferrer" target="_blank"&gt;OpenCode: documentação de instalação e uso&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.kimi.com/code/docs/en/kimi-code-cli/guides/getting-started.html" rel="noopener noreferrer" target="_blank"&gt;Kimi Code CLI: Getting started&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.kimi.com/code/docs/en/kimi-code-cli/configuration/providers.html" rel="noopener noreferrer" target="_blank"&gt;Kimi Code CLI: Providers and models&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.kimi.com/code/docs/en/kimi-code-cli/configuration/config-files.html" rel="noopener noreferrer" target="_blank"&gt;Kimi Code CLI: Configuration files&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://hermes-agent.nousresearch.com/docs/getting-started/installation" rel="noopener noreferrer" target="_blank"&gt;Hermes Agent: Installation&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://hermes-agent.nousresearch.com/docs/getting-started/quickstart" rel="noopener noreferrer" target="_blank"&gt;Hermes Agent: Quickstart&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://dev.to/aihubmix/migrating-to-deepseek-v41-flash-1017-the-reasoningcontent-400-the-silent-alias-swap-and-3hl" rel="noopener noreferrer" target="_blank"&gt;DEV Community: migração para o DeepSeek V4.1 Flash 1017 (relato de comunidade)&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/section&gt;

&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes",
  "description":"Aprenda a instalar OpenCode, Kimi Code CLI e Hermes Agent no Windows e a ativar o DeepSeek V4.1 Flash em cada um, com chave de API, testes e custos.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQqQK5vPHrMLTMD42SkDCIJZojTKLFr5-gMjGHx2QTPbPIlY73-r3tUI0DrC_aa5mEmwv86EprkDl-_O4qnvumUteY9lZtODQdpMiIsW4L5InwdXKMsi8BkDeQWeTiSlX-bYBNE5XescSKmE5ZOi2SPWzbGRXiwzRzy7WF-AitD10pLejjoj21Gi1thncR/s1600/image.png"}
  },
  "datePublished":"2026-10-22","dateModified":"2026-10-22",
  "mainEntityOfPage":"https://canalqb.com.br/2026/10/deepseek-v4-1-opencode-kimi-hermes-windows.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
  {"@type":"Question","name":"O DeepSeek é gratuito nesses agentes?","acceptedAnswer":{"@type":"Answer","text":"Não por padrão. A API cobra por token, com preços diferentes para Flash e Pro e metade do valor fora do horário de pico, descontado do saldo da sua conta. Alguns serviços de terceiros anunciam períodos promocionais, mas esse tipo de oferta muda rápido e deve ser confirmado na hora. Antes de deixar um agente rodando, olhe o painel de uso."}},
  {"@type":"Question","name":"Devo usar deepseek-flash ou deepseek-v4-pro?","acceptedAnswer":{"@type":"Answer","text":"Comece com o deepseek-flash, que custa em torno de um quarto do Pro na entrada e aceita imagens. Troque para o deepseek-v4-pro quando uma tarefa de planejamento ou refatoração grande travar no Flash. O Pro não tem visão. Como a troca é só um nome de modelo, vale testar nos dois com o mesmo pedido."}},
  {"@type":"Question","name":"Posso usar a mesma chave nos três agentes?","acceptedAnswer":{"@type":"Answer","text":"Sim. A chave pertence à sua conta DeepSeek e qualquer cliente compatível pode usá-la, então OpenCode, Kimi Code CLI e Hermes aceitam a mesma. A diferença é onde cada um a guarda. Se quiser separar o consumo por ferramenta, crie uma chave por agente no painel; assim, ao revogar uma, as demais continuam funcionando."}},
  {"@type":"Question","name":"Preciso instalar o WSL para usar esses agentes?","acceptedAnswer":{"@type":"Answer","text":"Não é obrigatório. OpenCode e Hermes têm instalação no Windows nativo, e o Kimi Code CLI roda no Windows usando o Git Bash. O WSL é recomendado pela documentação do OpenCode por oferecer desempenho melhor e compatibilidade total, e funciona como plano B para o Hermes se o instalador nativo falhar."}},
  {"@type":"Question","name":"Meu código vai para os servidores do DeepSeek?","acceptedAnswer":{"@type":"Answer","text":"Sim. Qualquer trecho de arquivo, saída de comando ou mensagem que o agente inclua na requisição é enviado à API para gerar a resposta. Por isso evite abrir o agente em pastas com senhas, chaves ou dados de clientes, revise a política de dados do provedor e, em ambiente de empresa, alinhe o uso com o time jurídico."}}
]}
&lt;/script&gt;
&lt;script&gt;
(function(){
  'use strict';
  function showToast(msg){
    var t=document.createElement('div');
    t.className='post_cqb_toast';
    t.setAttribute('role','status');
    t.textContent=msg;
    document.body.appendChild(t);
    setTimeout(function(){ if(t.parentNode){ t.parentNode.removeChild(t); } },1800);
  }
  function init(){
    var btns=document.querySelectorAll('.post_copy_btn');
    Array.prototype.forEach.call(btns,function(btn){
      btn.addEventListener('click',function(){
        var code=btn.parentNode.querySelector('code');
        if(!code||!navigator.clipboard){ showToast('Selecione o texto e copie manualmente'); return; }
        navigator.clipboard.writeText(code.textContent).then(function(){ showToast('Código copiado'); },function(){ showToast('Não foi possível copiar'); });
      });
    });
  }
  if('requestIdleCallback' in window){ requestIdleCallback(init); } else { setTimeout(init,200); }
})();
&lt;/script&gt;

jjjjjjj
&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi241j-1yZajtF9YFxgvrELZZDo1xNoTZ75EB004x2OkHIH6RRubJxm2z5-BwILP1JhIqInvQxpPJq9oc88od9iWQx-qoCt9PjR5rU_6XB-wS4JZMsVOqxqk4I1y1MWRFkU-hKUmwfQqx_2_8Hbx6I7nlYuRQ-jtfOBORXCzDcHGnX8PQyhI8ZgHiI9mz-T/s1600/image.png" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="572" data-original-width="1024" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi241j-1yZajtF9YFxgvrELZZDo1xNoTZ75EB004x2OkHIH6RRubJxm2z5-BwILP1JhIqInvQxpPJq9oc88od9iWQx-qoCt9PjR5rU_6XB-wS4JZMsVOqxqk4I1y1MWRFkU-hKUmwfQqx_2_8Hbx6I7nlYuRQ-jtfOBORXCzDcHGnX8PQyhI8ZgHiI9mz-T/s1600/image.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi241j-1yZajtF9YFxgvrELZZDo1xNoTZ75EB004x2OkHIH6RRubJxm2z5-BwILP1JhIqInvQxpPJq9oc88od9iWQx-qoCt9PjR5rU_6XB-wS4JZMsVOqxqk4I1y1MWRFkU-hKUmwfQqx_2_8Hbx6I7nlYuRQ-jtfOBORXCzDcHGnX8PQyhI8ZgHiI9mz-T/s72-c/image.png" width="72"/><enclosure length="410866" type="image/png" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi241j-1yZajtF9YFxgvrELZZDo1xNoTZ75EB004x2OkHIH6RRubJxm2z5-BwILP1JhIqInvQxpPJq9oc88od9iWQx-qoCt9PjR5rU_6XB-wS4JZMsVOqxqk4I1y1MWRFkU-hKUmwfQqx_2_8Hbx6I7nlYuRQ-jtfOBORXCzDcHGnX8PQyhI8ZgHiI9mz-T/s1600/image.png"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>@CanalQb no YouTube DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes /* @CanalQb - Exclusive Design License 2026 */ .post_cqb_root{max-width:860px;margin:0 auto;padding:0 16px;color:#555555;line-height:1.75;font-size:1.02em} .post_cqb_root h2{color:#333333;font-size:1.45em;line-height:1.3;margin:42px 0 14px;display:flex;gap:10px;align-items:flex-start} .post_cqb_root h3{color:#333333;font-size:1.15em;line-height:1.35;margin:28px 0 10px} .post_cqb_root strong{color:#333333} .post_cqb_root a{color:#2196f3;text-decoration:underline} .post_cqb_root a:focus-visible,.post_copy_btn:focus-visible,.post_cqb_faq_question:focus-visible{outline:3px solid #2196f3;outline-offset:2px} .post_cqb_signature{text-align:center;font-size:.85em;color:#555555;margin:6px 0 14px} .post_cqb_badge{display:inline-flex;gap:8px;align-items:center;padding:6px 14px;border:1px solid #28a745;border-radius:999px;color:#28a745;font-weight:600;font-size:.9em;margin:8px 0} .post_cqb_center{text-align:center} .post_cqb_tldr{border-left:5px solid #28a745;background:rgba(40,167,69,.08);padding:16px 20px;border-radius:8px;margin:22px 0} .post_cqb_tldr ul{margin:8px 0 0;padding-left:20px} .post_cqb_tldr li{margin:6px 0} .post_cqb_quickfix{border-left:5px solid #ffc107;background:rgba(255,193,7,.1);padding:8px 20px 14px;border-radius:8px;margin:30px 0} .post_cqb_quickfix_list{list-style:none;padding:0;margin:10px 0 0} .post_cqb_quickfix_list li{display:flex;gap:10px;align-items:flex-start;padding:7px 0} .post_cqb_quickfix_list li i{margin-top:6px;flex-shrink:0} .post_cqb_codewrap{position:relative;margin:14px 0 18px} .post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',Consolas,monospace!important;text-shadow:none!important} .post_cqb_codeblock{padding:20px 16px 16px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;font-size:.88em;line-height:1.6;margin:0;white-space:pre} .post_copy_btn{position:absolute;top:8px;right:8px;min-height:44px;min-width:44px;padding:6px 12px;border:1px solid #555555;border-radius:6px;background:#333333;color:#ffffff;cursor:pointer;font-size:.8em;z-index:2} .post_copy_btn:hover{background:#28a745} .post_cqb_table_wrap{overflow-x:auto;margin:16px 0 20px} .post_cqb_table{border-collapse:collapse;width:100%;font-size:.93em} .post_cqb_table th,.post_cqb_table td{border:1px solid #cccccc;padding:10px 12px;text-align:left;vertical-align:top} .post_cqb_table th{background:rgba(33,150,243,.1);color:#333333} .post_cqb_note{background:rgba(33,150,243,.1);border-left:4px solid #2196f3;padding:14px 16px;border-radius:8px;margin:18px 0;font-size:.95em} .post_cqb_warn{background:rgba(255,193,7,.15);border-left:4px solid #ffc107;padding:14px 16px;border-radius:8px;margin:18px 0;font-size:.95em} .post_cqb_faq_container{margin:24px 0} .post_cqb_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden} .post_cqb_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333333;min-height:44px} .post_cqb_faq_question:hover{background:#f0f0f0} .post_cqb_faq_answer{padding:15px;background:#ffffff;color:#555555;line-height:1.6} .post_cqb_faq_item[open] .post_cqb_faq_question{background:rgba(40,167,69,.1);color:#28a745} .post_cqb_erro_card{border:1px solid rgba(211,47,47,.35);border-left:5px solid #d32f2f;border-radius:8px;padding:6px 18px 12px;margin:16px 0} .post_cqb_erro_card h3{margin:12px 0 8px} .post_cqb_cta{text-align:center;margin:40px 0 20px;padding:22px 16px;border:2px solid #28a745;border-radius:12px} .post_cqb_cta a{font-weight:700;color:#28a745} .post_cqb_refs{font-size:.93em} .post_cqb_refs li{margin:6px 0} .post_cqb_toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#333333;color:#ffffff;padding:10px 18px;border-radius:8px;font-size:.9em;z-index:9999} @media (prefers-color-scheme: dark){ .post_cqb_root{color:#d6d6d6} .post_cqb_root h2,.post_cqb_root h3,.post_cqb_root strong,.post_cqb_table th{color:#f2f2f2} .post_cqb_root a{color:#6ab7ff} .post_cqb_signature{color:#bdbdbd} .post_cqb_table th,.post_cqb_table td{border-color:#555555} .post_cqb_faq_item{border-color:#555555} .post_cqb_faq_question{background:transparent;color:#f2f2f2} .post_cqb_faq_question:hover{background:rgba(255,255,255,.06)} .post_cqb_faq_answer{background:transparent;color:#d6d6d6} } @media (max-width:767px){.post_cqb_root{font-size:1em}.post_cqb_root h2{font-size:1.3em}} @media (prefers-reduced-motion: reduce){.post_cqb_root *{transition:none!important;animation:none!important}} Feito com Master Rules Claude v9.2 Leitura: ~24 min TL;DR Em 22 de outubro de 2026 a API do DeepSeek tem dois nomes de modelo, deepseek-flash e deepseek-v4-pro, ambos com 1 milhão de tokens de contexto, e uma única chave de API serve aos três agentes deste guia. OpenCode e Hermes ativam o DeepSeek por assistente guiado (/connect e hermes setup), enquanto o Kimi Code CLI exige registrar um provedor do tipo openai no config.toml. O preço por token dobra no horário de pico, que em Brasília cai entre 22h e 01h e entre 03h e 07h; concentrar sessões longas fora dessas faixas corta a conta pela metade. Nota Técnica: Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido. Uma chave de API, três agentes: o difícil é saber onde colá-la. Em outubro de 2026 o DeepSeek trocou o modelo que responde pelo nome deepseek-flash sem mudar o nome nem o preço, e muita configuração antiga ainda aponta para apelidos aposentados. Aqui em @CanalQb organizamos o caminho completo para o Windows a partir das documentações oficiais: primeiro a instalação de OpenCode, Kimi Code CLI e Hermes Agent, depois a ativação do DeepSeek em cada um. No fim existe um ajuste de horário que quase ninguém faz e que muda a conta do mês. Ele depende de uma regra de pico que a página de preços descreve em UTC, e vale a pena traduzi-la para o relógio de Brasília antes de deixar qualquer agente rodando durante a noite. Quais são as soluções rápidas para os problemas mais comuns? Seis falhas concentram quase todos os chamados nesse tipo de instalação: comando não reconhecido depois do instalador, shell Bash ausente, versão antiga do OpenCode, chave não encontrada, provedor com nome divergente e erro 400 em modo de raciocínio. Cada uma tem correção de poucos minutos e um detalhamento mais abaixo. kimi ou hermes não reconhecido: feche e abra um terminal novo para o PATH atualizado entrar em vigor. ver passo completo Bash not found no Kimi: instale o Git for Windows ou aponte KIMI_SHELL_PATH para o bash.exe. ver passo completo DeepSeek ausente no OpenCode: atualize para a versão 1.18.30 ou superior e rode /connect de novo. ver passo completo API key not set no Hermes: rode hermes model e grave a chave com hermes config set DEEPSEEK_API_KEY. ver passo completo Provider not found: a chave do provedor e o prefixo do modelo precisam ser idênticos. ver passo completo Erro 400 com raciocínio ligado: o campo reasoning_content precisa voltar na conversa; atualize o agente. ver passo completo O que mudou no DeepSeek e qual modelo você deve chamar? Em outubro de 2026 a API oficial do DeepSeek expõe dois nomes de modelo: deepseek-flash, atendido pela versão V4.1-Flash-1017, e deepseek-v4-pro, que corresponde à V4-Pro-0813. Ambos oferecem janela de 1 milhão de tokens, chamadas de ferramentas e modo de raciocínio, e funcionam tanto no formato OpenAI quanto no formato Anthropic. Esse ponto de partida importa porque os três agentes deste tutorial só conversam com o DeepSeek pela API, e a API mudou duas vezes em poucas semanas. Segundo a página oficial de modelos e preços, o nome deepseek-flash passou a ser servido pelo snapshot 1017, e os nomes legados deepseek-v4-flash e deepseek-v4-flash-vision-exp continuam sendo aceitos, mas os modelos que eles identificavam foram aposentados: qualquer requisição feita com eles cai no Flash atual e é cobrada pelo preço do Flash. Na prática, uma configuração antiga não quebra de imediato, mas deixa de refletir o que você realmente está usando. A diferença entre os dois modelos aparece no preço e nos recursos. O Flash aceita entrada de imagem e custa bem menos; o Pro não oferece visão, mas é a escolha para planejamento difícil e tarefas longas de código. Os valores abaixo vêm da página oficial, são cobrados por 1 milhão de tokens e valem fora do horário de pico; no pico, cada valor dobra. ModeloVersão servidaEntrada com cacheEntrada sem cacheSaídaVisão deepseek-flashV4.1-Flash-1017US$ 0,003US$ 0,15US$ 0,60Sim deepseek-v4-proV4-Pro-0813US$ 0,022US$ 0,66US$ 1,98Não Um exemplo concreto mostra o tamanho da diferença. Uma sessão que consome 2 milhões de tokens de entrada sem cache e gera 200 mil tokens de saída custa, fora do pico, 2 × US$ 0,15 + 0,2 × US$ 0,60, ou seja, US$ 0,42 no Flash. A mesma sessão no Pro custa 2 × US$ 0,66 + 0,2 × US$ 1,98, que dá cerca de US$ 1,72. O Pro sai 4,4 vezes mais caro na entrada e 3,3 vezes na saída, então vale reservá-lo para quando o Flash realmente não der conta. Existe uma limitação que atrapalha quem copia tutoriais antigos: os nomes deepseek-chat e deepseek-reasoner, muito comuns em guias de 2025 e do início de 2026, não aparecem mais na lista oficial de modelos. Se um passo a passo mandar usar um deles, confirme o nome atual na página de preços antes de colar no arquivo de configuração. O erro típico é o agente responder normalmente nos primeiros testes e, semanas depois, falhar porque o apelido foi removido do servidor. Para começar, deixe o deepseek-flash como padrão nos três agentes. Ele tem o melhor custo por tarefa, cobre leitura de código, edição de arquivos e execução de comandos, e você pode trocar para o Pro numa sessão específica quando precisar. Se quiser conferir o preço vigente no dia, a fonte é a página oficial de modelos e preços do DeepSeek; os números mudam sem aviso e nenhum guia deve ser tratado como tabela definitiva. O que preparar no Windows antes de instalar os três agentes? Antes de instalar qualquer agente, tenha três coisas prontas: um terminal PowerShell atualizado, o Git for Windows e uma chave de API do DeepSeek criada na plataforma oficial. Com esses itens no lugar, os instaladores de OpenCode, Kimi Code CLI e Hermes rodam sem interrupção, e você evita os erros de caminho e de shell que mais aparecem no Windows. Passo 1: confirme Git e Node.js Abra o PowerShell e rode os comandos abaixo para ver o que já existe na máquina. O resultado esperado é uma linha de versão para cada comando; se aparecer "não é reconhecido", o programa falta. Copiargit --version node --version winget --version O Git é obrigatório para o Kimi Code CLI, que usa o Git Bash como shell, e útil para o Hermes e o OpenCode. O Node.js só é necessário para os caminhos de instalação por npm; para o Kimi pelo npm a documentação exige a versão 22.19.0 ou mais nova. Se faltar algum, instale pelo winget com os comandos a seguir e depois feche e reabra o PowerShell. Erro comum: instalar e continuar na mesma janela; o PATH só é relido em terminais novos. Copiarwinget install --id Git.Git -e winget install --id OpenJS.NodeJS.LTS -e Passo 2: gere a chave no painel do DeepSeek Entre em platform.deepseek.com, abra a área de chaves de API e crie uma chave nova com um nome reconhecível, como "agentes-windows". A chave aparece uma única vez; copie-a para um gerenciador de senhas antes de fechar a janela. Esse passo é necessário porque os três agentes cobram o uso direto na sua conta DeepSeek, e sem saldo ou crédito promocional as requisições falham mesmo com a chave correta. Quando funciona, a lista de chaves mostra a nova entrada com a data de criação. Erro comum: colar a chave num chat, num commit ou num arquivo de projeto; se isso acontecer, revogue a chave no painel e crie outra. Passo 3: guarde a chave numa variável de ambiente Em vez de colar a chave em cada ferramenta, grave-a uma vez como variável de ambiente do usuário. O comando setx persiste o valor para terminais futuros, e o Kimi Code CLI vai ler exatamente esse nome. Troque o texto de exemplo pela sua chave real e reabra o PowerShell depois. Copiarsetx DEEPSEEK_API_KEY "sk-cole-sua-chave-aqui" # depois de reabrir o PowerShell: echo $env:DEEPSEEK_API_KEY Se o segundo comando imprimir a chave, a variável está viva. Quando ele imprime uma linha vazia, o setx foi rodado na janela atual e o terminal ainda não foi reaberto, que é a causa mais comum de "chave não encontrada" logo no primeiro teste. Um detalhe de análise própria que poupa tempo: cada agente trata a chave de um jeito diferente. O OpenCode guarda a chave no próprio armazenamento depois do /connect, o Kimi Code CLI só enxerga a variável de ambiente se o arquivo de configuração mandar ler pelo nome dela, e o Hermes guarda segredos no arquivo .env da sua pasta de dados. Ter a variável pronta serve ao Kimi e ao Hermes, e o OpenCode recebe a mesma chave colada uma única vez dentro do assistente. Como instalar o OpenCode no Windows? O OpenCode instala no Windows por npm, Scoop ou Chocolatey, e a documentação oficial recomenda o WSL como o caminho com melhor desempenho e compatibilidade total. Para quem prefere ficar no Windows nativo, o comando npm install -g opencode-ai basta; depois, opencode --version deve mostrar a versão 1.18.30 ou superior para funcionar bem com o DeepSeek. Passo 1: escolha o método de instalação A decisão depende do que você já usa. Quem tem Node.js instalado vai de npm, quem usa gerenciador de pacotes prefere Scoop ou Chocolatey, e quem quer o melhor desempenho segue o guia de WSL do próprio projeto. Os quatro caminhos entregam o mesmo executável opencode, então a escolha é de conveniência e de atualização. MétodoComandoQuando escolher npmnpm install -g opencode-aiVocê já tem Node.js e quer atualizar com o mesmo comando mais tarde. Scoopscoop install opencodeVocê usa Scoop para outras ferramentas de linha de comando. Chocolateychoco install opencodeVocê usa Chocolatey e abre o PowerShell como administrador. WSLcurl -fsSL https://opencode.ai/install | bashVocê quer o caminho recomendado pela documentação, dentro do Linux do WSL. Passo 2: instale e confirme a versão Este guia segue o npm por ser o mais direto no Windows nativo. O comando baixa o pacote e registra o executável opencode no PATH global do npm. Ele é necessário aqui porque o DeepSeek só aparece no catálogo de provedores das versões recentes. Copiarnpm install -g opencode-ai@latest opencode --version O resultado esperado é um número de versão, e o guia de integração do DeepSeek pede 1.18.30 ou mais nova para evitar problemas de compatibilidade. Se o número for menor, repita o primeiro comando; se o comando opencode não for reconhecido, abra um terminal novo e confira com npm config get prefix se a pasta global do npm está no PATH. Existe uma pegadinha de versões que a documentação do OpenCode destaca: o OpenCode 1 e o OpenCode 2 usam o mesmo comando opencode e não convivem lado a lado na instalação padrão. Se você já testou a versão 2 em algum momento, instalar a versão 1 por cima troca o executável, e a configuração do DeepSeek descrita neste guia foi escrita a partir da documentação oficial da versão 1, que é a que o DeepSeek cita. Quem preferir a versão 2 deve consultar a documentação própria dela antes de seguir os próximos passos. Para o WSL, o projeto mantém uma página dedicada com a instalação do Linux e os cuidados de caminho entre os dois sistemas; vale lê-la se você pretende abrir projetos que ficam em pastas do Windows. Para o restante deste guia, o terminal pode ser o PowerShell com a instalação por npm ou o terminal do WSL com o instalador do projeto, e os comandos de ativação do DeepSeek são idênticos nos dois. Como ativar o DeepSeek no OpenCode? No OpenCode a ativação é guiada: abra o terminal, rode opencode, digite /connect, procure pelo provedor deepseek, cole a chave de API e escolha o modelo Flash na lista. O processo leva menos de dois minutos e não exige editar arquivo algum, porque o DeepSeek já faz parte do catálogo de provedores do OpenCode. Passo 1: abra o OpenCode numa pasta de projeto Vá até uma pasta de teste e inicie a interface. O OpenCode trabalha sobre o diretório atual, então iniciá-lo na pasta errada faz o agente enxergar arquivos que você não pretendia expor. Copiarmkdir $HOME\teste-agentes cd $HOME\teste-agentes opencode Quando funciona, a interface em tela cheia do terminal abre com uma caixa de entrada no rodapé. Erro comum: iniciar na raiz do disco ou na pasta de usuário inteira, o que deixa o agente indexar muito mais arquivos do que o necessário. Passo 2: conecte o provedor com /connect Na caixa de entrada digite /connect, escreva deepseek na busca e selecione o provedor. Em seguida cole a chave de API quando o assistente pedir. Esse passo grava a credencial no armazenamento do próprio OpenCode, e é por isso que ele não depende da variável de ambiente criada antes. O resultado esperado é uma mensagem de conexão concluída e, na etapa seguinte, a lista de modelos do DeepSeek. Passo 3: escolha o modelo Flash Selecione a entrada do Flash na lista. As páginas do DeepSeek descrevem essa opção de duas maneiras, como V4.1-Flash num guia e como V4-Flash em outro, porque a documentação foi atualizada em momentos diferentes; ambas se referem ao mesmo modelo de custo baixo, e o servidor atende pelo nome deepseek-flash. Para ver o identificador exato que o seu OpenCode usa, digite /models depois da conexão. Passo 4: fixe o modelo no arquivo de configuração Isto é opcional, mas evita escolher o modelo toda vez. O OpenCode lê um arquivo opencode.json global na pasta .config do seu perfil de usuário e outro na raiz de cada projeto. Escreva o modelo no formato provedor/identificador, trocando o texto de exemplo pelo identificador mostrado no /models. Copiar{ "$schema": "https://opencode.ai/config.json", "model": "deepseek/identificador-mostrado-no-models" } Faça o teste com um pedido simples, como "Liste os arquivos desta pasta e explique em três linhas o que cada um faz". A tecla Tab alterna entre o modo de planejamento, que só sugere mudanças, e o modo de construção, que as aplica. Erro comum: o aviso Provider not found, que aparece quando o nome do provedor no arquivo e o prefixo do modelo não são idênticos; ambos precisam ser exatamente deepseek. Como instalar o Kimi Code CLI no Windows? O Kimi Code CLI instala no Windows com um único comando em PowerShell, desde que o Git for Windows esteja instalado antes do primeiro uso, porque a ferramenta usa o Git Bash como shell. Depois do script, kimi --version confirma o executável no PATH e o comando kimi abre a interface interativa no diretório do seu projeto. Passo 1: tenha o Git for Windows no lugar Se você seguiu a preparação, o Git já está instalado pelo winget. A documentação do Kimi Code é direta: instale o Git for Windows antes de abrir a ferramenta pela primeira vez, pois é o Git Bash que executa os comandos de shell que o agente pede. Sem ele, o primeiro comando de shell falha com a mensagem Bash not found. Passo 2: rode o instalador oficial No PowerShell comum, sem precisar de administrador, execute o comando abaixo. Ele baixa a versão mais recente, confere o checksum e coloca o executável kimi no PATH; por isso é o método que a documentação chama de recomendado e que dispensa ter Node.js. Como em qualquer script executado direto da internet, vale abrir o endereço no navegador e ler o conteúdo antes de rodar. Copiarirm https://code.kimi.com/kimi-code/install.ps1 | iex Passo 3: confirme a instalação Feche o PowerShell, abra um novo e rode o comando abaixo. O resultado esperado é a versão instalada. Se a resposta for kimi not found, o PATH ainda não foi relido ou o instalador rodou em outro usuário do Windows; um terminal novo no mesmo usuário resolve na maioria dos casos. Copiarkimi --version Passo 4: alternativas e ajustes finos Quem já tem Node.js 22.19.0 ou superior pode instalar pelo npm com npm install -g @moonshot-ai/kimi-code, e atualizar depois com kimi upgrade. Se o Git Bash estiver numa pasta fora do padrão, grave o caminho do bash.exe na variável KIMI_SHELL_PATH, por exemplo com setx KIMI_SHELL_PATH "C:\Program Files\Git\bin\bash.exe", e reabra o terminal. Atenção a uma confusão frequente de nomes: existe o Kimi Code CLI atual, escrito em TypeScript, e o antigo kimi-cli, instalado com uv tool install kimi-cli, que guarda a configuração em ~/.kimi. O Kimi Code CLI usa a pasta ~/.kimi-code, que no Windows fica dentro do seu perfil de usuário. Muitos tutoriais antigos citam o primeiro caminho, e editar o arquivo da pasta errada é um dos motivos de a configuração do DeepSeek "não pegar". O instalador deste passo, com o endereço contendo kimi-code, é o da ferramenta atual. Como ativar o DeepSeek no Kimi Code CLI? O caminho mais previsível é registrar o DeepSeek no arquivo config.toml como um provedor do tipo openai, apontando para a URL da API e para uma variável de ambiente com a chave. Depois você define um alias de modelo e o torna padrão, e o CLI trata sozinho o campo de raciocínio que os modelos DeepSeek devolvem. Passo 1: abra o arquivo config.toml O arquivo nasce na primeira execução do kimi, então rode o comando uma vez e saia com /exit. Depois abra o arquivo no editor com o comando abaixo. O CLI lê as credenciais apenas do arquivo de configuração e não usa variáveis do terminal por conta própria, e é isso que o próximo passo contorna. Copiarnotepad $HOME\.kimi-code\config.toml Passo 2: adicione o provedor e o modelo Acrescente o bloco abaixo, mantendo o que já existe no arquivo. O tipo openai fala o protocolo de chat compatível com OpenAI, que o DeepSeek oferece em https://api.deepseek.com. O campo api_key_env manda o CLI ler a chave da variável DEEPSEEK_API_KEY a cada requisição, assim a chave não fica escrita em texto puro no arquivo. A janela de contexto foi declarada em 1 milhão de tokens, valor conservador em relação ao informado na página de preços. Copiardefault_model = "deepseek/flash" [providers.deepseek] type = "openai" base_url = "https://api.deepseek.com" api_key_env = "DEEPSEEK_API_KEY" [models."deepseek/flash"] provider = "deepseek" model = "deepseek-flash" max_context_size = 1000000 display_name = "DeepSeek V4.1 Flash" capabilities = ["thinking", "tool_use"] Se o arquivo já tiver uma linha default_model, mantenha apenas uma delas, porque a chave repetida invalida o TOML. As aspas em torno de deepseek/flash são obrigatórias, já que a barra e o ponto em nomes de chave exigem aspas nesse formato. Para um segundo alias com o Pro, copie o bloco de modelo, troque o alias e o campo model para deepseek-v4-pro e tire a capacidade de imagem se algum dia a declarar. Passo 3: recarregue e teste Salve o arquivo, abra um terminal novo para que a variável de ambiente entre no processo e faça um teste curto de uma única mensagem. O parâmetro -m escolhe o alias e -p executa uma instrução sem abrir a interface. Copiarkimi -m deepseek/flash -p "Responda apenas: configuração ok" Se a resposta chegar, abra o kimi normalmente e use /model para alternar entre aliases durante a sessão. Se aparecer um erro citando a variável DEEPSEEK_API_KEY, ela está vazia nesse processo: rode echo $env:DEEPSEEK_API_KEY e, se vier vazio, refaça o setx e reabra o terminal. Um segundo caminho existe no próprio CLI: o comando /provider abre um gerenciador que importa provedores conhecidos a partir do catálogo público models.dev e pede só a chave; ele serve como atalho, mas o catálogo pode demorar a listar o identificador mais novo do DeepSeek, e nesse caso o bloco manual acima continua valendo. O comando /login, por sua vez, é para o serviço próprio do Kimi e não é necessário para usar o DeepSeek. Como instalar o Hermes Agent no Windows? O Hermes Agent, da Nous Research, tem três caminhos no Windows: o instalador desktop em pacote .appinstaller, o script nativo em PowerShell e o script Linux dentro do WSL2. O caminho mais curto para quem usa terminal é rodar iex (irm https://hermes-agent.nousresearch.com/install.ps1) no PowerShell e reabrir a janela para o comando hermes ser reconhecido. Passo 1: escolha o caminho de instalação O pacote desktop do site oficial traz o agente, o Python e as dependências suportadas já embutidos, e o primeiro uso não compila o ambiente base. O script de PowerShell clona o código-fonte, prepara o gerenciador uv e baixa versões fixas de Python, Node.js, ripgrep e FFmpeg. O terceiro caminho, o script para Linux, é para quem já trabalha dentro do WSL2. Para um tutorial de terminal, o script de PowerShell é o mais fácil de reproduzir e de depurar. Passo 2: rode o instalador nativo No PowerShell, execute o comando abaixo. O Windows consegue buscar um Git empacotado se ele estiver ausente, e as etapas aparecem em uma linha de status cada, com os detalhes gravados em logs\install.log dentro da pasta de dados do Hermes. O instalador também baixa por padrão as ferramentas de navegador; se não quiser isso, a opção -SkipBrowser as dispensa. Leia o script no navegador antes de rodar, como em qualquer instalador baixado e executado em memória. Copiariex (irm https://hermes-agent.nousresearch.com/install.ps1) Em execuções interativas o instalador abre o assistente de configuração ao final. Você pode ativar o DeepSeek ali mesmo, seguindo a seção seguinte, ou pular a etapa e voltar depois com hermes model. O código fica em %LOCALAPPDATA%\hermes\hermes-agent, o lançador em %LOCALAPPDATA%\hermes\bin e os seus dados em %LOCALAPPDATA%\hermes. Passo 3: reabra o terminal e valide Feche o PowerShell, abra um novo e rode hermes doctor, o comando de diagnóstico do projeto, que informa exatamente o que está faltando. O resultado esperado é uma lista de verificações sem pendências críticas. Se a resposta for hermes: command not found, o PATH não foi relido; um terminal novo costuma resolver, e o diagnóstico do instalador indica a pasta bin que precisa estar no caminho. Passo 4: plano B pelo WSL2 Relatos de comunidade descrevem o suporte nativo ao Windows como o mais recente e menos testado, com mais chance de arestas. Se o instalador nativo travar, abra o terminal do WSL2 e use o script oficial para Linux, curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash, que exige apenas o Git. Os comandos de configuração do DeepSeek são os mesmos nos dois ambientes; muda apenas a pasta de dados, que no WSL2 fica em ~/.hermes. Como ativar o DeepSeek no Hermes Agent? No Hermes você ativa o DeepSeek com o assistente hermes setup ou com hermes model: escolha DeepSeek como provedor, informe a chave, confirme a URL https://api.deepseek.com e selecione o modelo. Quem prefere linha de comando direta pode gravar a chave com hermes config set DEEPSEEK_API_KEY e definir provedor e modelo na configuração. Passo 1: use o assistente guiado O guia oficial do DeepSeek para o Hermes manda executar hermes setup, escolher a opção Quick Setup, selecionar DeepSeek como provedor, digitar a chave, informar a URL base https://api.deepseek.com e escolher o modelo; o exemplo da documentação usa o deepseek-v4-pro, e para economizar você pode escolher deepseek-flash no mesmo ponto. Há um detalhe de versão: dependendo da release instalada, o Quick Setup pode levar primeiro ao Nous Portal, o serviço próprio da Nous Research. Se isso acontecer, rode hermes model, que lista os provedores diretamente, ou escolha Full Setup no assistente. Passo 2: configure por comandos O Hermes separa segredos de configuração comum: a chave vai para o arquivo .env da pasta de dados e o resto para o config.yaml. O comando hermes config set decide o arquivo correto por você. Rode as três linhas abaixo, trocando o texto de exemplo pela sua chave. Copiarhermes config set DEEPSEEK_API_KEY sk-cole-sua-chave-aqui hermes config set model.provider deepseek hermes config set model.default deepseek-flash hermes config get model A última linha imprime o que ficou gravado e serve de conferência: o provedor deve ser deepseek e o modelo deepseek-flash. Erro comum: digitar a chave com espaços ou aspas curvas coladas de um editor de texto, o que gera falha de autenticação mesmo com a chave certa. Passo 3: confira o arquivo de configuração Se preferir editar à mão, o arquivo config.yaml fica em %LOCALAPPDATA%\hermes. O bloco mínimo equivalente aos comandos anteriores é o seguinte, e o comando hermes config edit abre o arquivo no editor. Copiarmodel: provider: deepseek default: deepseek-flash Passo 4: teste uma conversa Execute hermes e faça uma pergunta curta; o banner inicial mostra o provedor e o modelo escolhidos. Para forçar a escolha em uma única chamada, use hermes chat --provider deepseek --model deepseek-flash. O Hermes exige um modelo com no mínimo 64 mil tokens de contexto, requisito que os 1 milhão de tokens do DeepSeek superam com folga. Se as respostas vierem vazias ou quebradas, a documentação aponta provedor, modelo ou autenticação errados e manda rodar hermes model de novo para confirmar os três. Como testar os três agentes e controlar o custo do DeepSeek? Teste cada agente com o mesmo pedido curto, confira no painel do DeepSeek se o consumo apareceu e só então libere tarefas longas. Para segurar a conta, mantenha o Flash como padrão, use o Pro apenas em planejamento difícil e evite os horários de pico, em que o preço por token dobra em relação ao restante do dia. O teste padronizado evita comparar maçãs com laranjas. Use o mesmo pedido nos três, por exemplo "Liste os arquivos desta pasta e explique em três linhas o que cada um faz", e observe se o agente leu a pasta, respondeu em português e terminou sem erro de autenticação. AgenteComando de testeO que conferir OpenCodeopencode, depois digitar o pedidoO modelo exibido é o Flash do DeepSeek e o agente lê a pasta. Kimi Code CLIkimi -m deepseek/flash -p "pedido"A resposta chega sem erro citando DEEPSEEK_API_KEY. Hermeshermes chat --provider deepseek --model deepseek-flashO banner mostra provedor e modelo, e a resposta não vem vazia. Depois dos testes, o assunto é o relógio. A página de preços define o pico como as faixas de 01h às 04h e de 06h às 10h em UTC, de segunda a sexta, sem contar feriados públicos chineses; todo o resto, incluindo os fins de semana inteiros, é fora do pico, com metade do preço. Em Brasília, que está três horas atrás de UTC, as faixas equivalem a 22h–01h e 03h–07h. A regra dos dias vale pela data em UTC, e esse é o ponto que costuma passar batido: a faixa das 22h às 01h é pico de domingo a quinta à noite, já que 22h de domingo em Brasília é 01h de segunda em UTC, e deixa de ser pico na sexta à noite, que já é sábado em UTC. A faixa da madrugada, das 03h às 07h, atinge os dias úteis normais. Quem programa à noite no meio da semana paga o dobro sem perceber. O cache de entrada é a segunda alavanca de custo. O Flash cobra US$ 0,003 por milhão de tokens com cache contra US$ 0,15 sem cache, uma diferença de 50 vezes, e agentes de código repetem contexto a cada passo. Sessões longas na mesma pasta, sem trocar de modelo no meio, aproveitam mais o cache do que várias sessões curtas e dispersas. A limitação é que o cache depende de o início do pedido ser idêntico, então reorganizar instruções fixas no meio da conversa pode reduzir esse ganho. Segurança também faz parte do controle. Todos os três agentes executam comandos e editam arquivos, e o conteúdo que eles leem viaja para os servidores do DeepSeek. Não rode o agente em pastas com segredos, mantenha a chave só em variável de ambiente, nunca a coloque em repositório e use os modos de permissão de cada ferramenta: o Kimi Code CLI começa no modo manual, que pede confirmação antes de alterar arquivos ou rodar comandos, e o OpenCode tem sua própria documentação de permissões. Se a chave vazar, revogue no painel e gere outra no mesmo minuto. Conformidade Global: As informações regulatórias refletem as legislações vigentes no momento da publicação. Leis de privacidade variam por jurisdição e estão em constante evolução. Ao enviar código e dados a uma API de terceiros, avalie a política de dados do provedor e a LGPD, e consulte as autoridades locais de proteção de dados e o IAPP Global Privacy Directory. Este conteúdo não constitui aconselhamento jurídico. Perguntas frequentes sobre DeepSeek em agentes no Windows O DeepSeek é gratuito nesses agentes? Não por padrão. A API cobra por token, com preços diferentes para Flash e Pro e metade do valor fora do horário de pico, descontado do saldo da sua conta. Alguns serviços de terceiros anunciam períodos promocionais, mas esse tipo de oferta muda rápido e deve ser confirmado na hora. Antes de deixar um agente rodando, olhe o painel de uso e veja nossa cobertura sobre DeepSeek. Devo usar deepseek-flash ou deepseek-v4-pro? Comece com o deepseek-flash, que custa em torno de um quarto do Pro na entrada e aceita imagens. Troque para o deepseek-v4-pro quando uma tarefa de planejamento ou refatoração grande travar no Flash. O Pro não tem visão. Como a troca é só um nome de modelo, vale testar nos dois com o mesmo pedido, e as comparações aparecem no conteúdo sobre OpenCode. Posso usar a mesma chave nos três agentes? Sim. A chave pertence à sua conta DeepSeek e qualquer cliente compatível pode usá-la, então OpenCode, Kimi Code CLI e Hermes aceitam a mesma. A diferença é onde cada um a guarda. Se quiser separar o consumo por ferramenta, crie uma chave por agente no painel; assim, ao revogar uma, as demais continuam funcionando. Mais guias de ferramentas estão em Hermes Agent. Preciso instalar o WSL para usar esses agentes? Não é obrigatório. OpenCode e Hermes têm instalação no Windows nativo, e o Kimi Code CLI roda no Windows usando o Git Bash. O WSL é recomendado pela documentação do OpenCode por oferecer desempenho melhor e compatibilidade total, e funciona como plano B para o Hermes se o instalador nativo falhar. Se for por esse caminho, confira o material sobre Kimi CLI. Meu código vai para os servidores do DeepSeek? Sim. Qualquer trecho de arquivo, saída de comando ou mensagem que o agente inclua na requisição é enviado à API para gerar a resposta. Por isso evite abrir o agente em pastas com senhas, chaves ou dados de clientes, revise a política de dados do provedor e, em ambiente de empresa, alinhe o uso com o time jurídico. Nossa seção sobre segurança de chaves de API aprofunda o assunto. Quais erros aparecem ao configurar e como resolver cada um? Os erros abaixo cobrem as quatro categorias que mais travam este procedimento: instalação que não entra no PATH, shell ausente, configuração com nomes divergentes e autenticação sem chave. Cada cartão traz o sintoma como ele aparece na tela, a causa técnica, a correção copiável e uma prevenção para não repetir o problema na próxima instalação. kimi not found (ou hermes: command not found) Causa: o instalador gravou o executável e atualizou o PATH, mas a janela do terminal aberta antes da instalação mantém a lista antiga de pastas. Solução: feche o PowerShell, abra um novo no mesmo usuário do Windows e rode kimi --version ou hermes doctor. Se persistir, confira se o instalador não foi executado em outra conta de usuário ou com permissões de administrador de outro perfil. Prevenção: depois de qualquer instalador de linha de comando, abra sempre um terminal novo antes do primeiro teste. Bash not found Causa: o Kimi Code CLI usa o Git Bash como shell no Windows e não encontrou o bash.exe, seja porque o Git for Windows não está instalado, seja porque está numa pasta fora do padrão. Solução: instale com winget install --id Git.Git -e ou, se o Git já existe em outro local, grave o caminho com setx KIMI_SHELL_PATH "C:\Program Files\Git\bin\bash.exe" e reabra o terminal. Prevenção: instale o Git antes do Kimi e confirme com git --version. DeepSeek não aparece no /connect do OpenCode Causa: versão antiga do OpenCode, anterior ao suporte atual ao DeepSeek, ou conflito entre as versões 1 e 2, que usam o mesmo comando opencode. Solução: rode npm install -g opencode-ai@latest, confirme que opencode --version mostra 1.18.30 ou superior e repita /connect, digitando deepseek na busca. Prevenção: atualize o OpenCode antes de configurar novos provedores e evite manter duas gerações instaladas. Provider not found Causa: no opencode.json, o nome do provedor e o prefixo do modelo divergem, como declarar o provedor como deepseek e escrever o modelo com outro prefixo. Solução: faça os dois coincidirem exatamente, por exemplo deepseek e deepseek/identificador, usando o identificador que o /models mostra. Prevenção: copie o identificador do próprio /models em vez de digitar de memória ou de copiar de tutoriais antigos. API key not set (Hermes) ou erro citando DEEPSEEK_API_KEY (Kimi) Causa: a chave não chegou ao processo: no Hermes ela não foi gravada no .env, e no Kimi a variável não existe na janela atual porque o setx foi executado sem reabrir o terminal. Solução: no Hermes rode hermes model ou hermes config set DEEPSEEK_API_KEY com a chave; no Kimi refaça o setx, abra um terminal novo e confirme com echo $env:DEEPSEEK_API_KEY. Prevenção: valide a variável com echo antes de abrir qualquer agente. Erro 400 em sessão com raciocínio ligado Causa: relatos de comunidade indicam que a API recusa a requisição quando o campo reasoning_content devolvido pelo modelo não é reenviado no histórico, comportamento ligado ao modo de raciocínio e à troca silenciosa do snapshot em 17 de outubro. Solução: atualize o agente para a versão mais recente, que trata esse campo; no Kimi Code CLI o tipo openai já o gerencia, e no OpenCode vale seguir a versão indicada pelo DeepSeek. Se persistir, abra uma nova sessão com /new. Prevenção: mantenha os agentes atualizados e leia as notas de versão depois de qualquer anúncio de modelo do DeepSeek. Gostou do passo a passo? Veja os vídeos de automação, agentes e ferramentas práticas em @CanalQb no YouTube e conte nos comentários qual agente você ativou primeiro. Fontes e referências Todas as informações foram conferidas em 22 de outubro de 2026 nas páginas abaixo; preços, versões e nomes de modelo mudam, então confirme nas fontes oficiais antes de decidir. DeepSeek API Docs: Your First API Call DeepSeek API Docs: Models &amp;amp; Pricing DeepSeek API Docs: Integrate with OpenCode DeepSeek API Docs: Integrate with Hermes Agent OpenCode: documentação de instalação e uso Kimi Code CLI: Getting started Kimi Code CLI: Providers and models Kimi Code CLI: Configuration files Hermes Agent: Installation Hermes Agent: Quickstart DEV Community: migração para o DeepSeek V4.1 Flash 1017 (relato de comunidade) { "@context":"https://schema.org", "@type":"BlogPosting", "headline":"DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes", "description":"Aprenda a instalar OpenCode, Kimi Code CLI e Hermes Agent no Windows e a ativar o DeepSeek V4.1 Flash em cada um, com chave de API, testes e custos.", "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"}, "publisher":{ "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br", "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQqQK5vPHrMLTMD42SkDCIJZojTKLFr5-gMjGHx2QTPbPIlY73-r3tUI0DrC_aa5mEmwv86EprkDl-_O4qnvumUteY9lZtODQdpMiIsW4L5InwdXKMsi8BkDeQWeTiSlX-bYBNE5XescSKmE5ZOi2SPWzbGRXiwzRzy7WF-AitD10pLejjoj21Gi1thncR/s1600/image.png"} }, "datePublished":"2026-10-22","dateModified":"2026-10-22", "mainEntityOfPage":"https://canalqb.com.br/2026/10/deepseek-v4-1-opencode-kimi-hermes-windows.html", "copyrightHolder":{"@type":"Person","name":"@CanalQb"}, "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/", "inLanguage":"pt-BR" } {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[ {"@type":"Question","name":"O DeepSeek é gratuito nesses agentes?","acceptedAnswer":{"@type":"Answer","text":"Não por padrão. A API cobra por token, com preços diferentes para Flash e Pro e metade do valor fora do horário de pico, descontado do saldo da sua conta. Alguns serviços de terceiros anunciam períodos promocionais, mas esse tipo de oferta muda rápido e deve ser confirmado na hora. Antes de deixar um agente rodando, olhe o painel de uso."}}, {"@type":"Question","name":"Devo usar deepseek-flash ou deepseek-v4-pro?","acceptedAnswer":{"@type":"Answer","text":"Comece com o deepseek-flash, que custa em torno de um quarto do Pro na entrada e aceita imagens. Troque para o deepseek-v4-pro quando uma tarefa de planejamento ou refatoração grande travar no Flash. O Pro não tem visão. Como a troca é só um nome de modelo, vale testar nos dois com o mesmo pedido."}}, {"@type":"Question","name":"Posso usar a mesma chave nos três agentes?","acceptedAnswer":{"@type":"Answer","text":"Sim. A chave pertence à sua conta DeepSeek e qualquer cliente compatível pode usá-la, então OpenCode, Kimi Code CLI e Hermes aceitam a mesma. A diferença é onde cada um a guarda. Se quiser separar o consumo por ferramenta, crie uma chave por agente no painel; assim, ao revogar uma, as demais continuam funcionando."}}, {"@type":"Question","name":"Preciso instalar o WSL para usar esses agentes?","acceptedAnswer":{"@type":"Answer","text":"Não é obrigatório. OpenCode e Hermes têm instalação no Windows nativo, e o Kimi Code CLI roda no Windows usando o Git Bash. O WSL é recomendado pela documentação do OpenCode por oferecer desempenho melhor e compatibilidade total, e funciona como plano B para o Hermes se o instalador nativo falhar."}}, {"@type":"Question","name":"Meu código vai para os servidores do DeepSeek?","acceptedAnswer":{"@type":"Answer","text":"Sim. Qualquer trecho de arquivo, saída de comando ou mensagem que o agente inclua na requisição é enviado à API para gerar a resposta. Por isso evite abrir o agente em pastas com senhas, chaves ou dados de clientes, revise a política de dados do provedor e, em ambiente de empresa, alinhe o uso com o time jurídico."}} ]} (function(){ 'use strict'; function showToast(msg){ var t=document.createElement('div'); t.className='post_cqb_toast'; t.setAttribute('role','status'); t.textContent=msg; document.body.appendChild(t); setTimeout(function(){ if(t.parentNode){ t.parentNode.removeChild(t); } },1800); } function init(){ var btns=document.querySelectorAll('.post_copy_btn'); Array.prototype.forEach.call(btns,function(btn){ btn.addEventListener('click',function(){ var code=btn.parentNode.querySelector('code'); if(!code||!navigator.clipboard){ showToast('Selecione o texto e copie manualmente'); return; } navigator.clipboard.writeText(code.textContent).then(function(){ showToast('Código copiado'); },function(){ showToast('Não foi possível copiar'); }); }); }); } if('requestIdleCallback' in window){ requestIdleCallback(init); } else { setTimeout(init,200); } })(); jjjjjjj ▶ @CanalQb no YouTube</itunes:subtitle><itunes:author>noreply@blogger.com (CanalQb)</itunes:author><itunes:summary>@CanalQb no YouTube DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes /* @CanalQb - Exclusive Design License 2026 */ .post_cqb_root{max-width:860px;margin:0 auto;padding:0 16px;color:#555555;line-height:1.75;font-size:1.02em} .post_cqb_root h2{color:#333333;font-size:1.45em;line-height:1.3;margin:42px 0 14px;display:flex;gap:10px;align-items:flex-start} .post_cqb_root h3{color:#333333;font-size:1.15em;line-height:1.35;margin:28px 0 10px} .post_cqb_root strong{color:#333333} .post_cqb_root a{color:#2196f3;text-decoration:underline} .post_cqb_root a:focus-visible,.post_copy_btn:focus-visible,.post_cqb_faq_question:focus-visible{outline:3px solid #2196f3;outline-offset:2px} .post_cqb_signature{text-align:center;font-size:.85em;color:#555555;margin:6px 0 14px} .post_cqb_badge{display:inline-flex;gap:8px;align-items:center;padding:6px 14px;border:1px solid #28a745;border-radius:999px;color:#28a745;font-weight:600;font-size:.9em;margin:8px 0} .post_cqb_center{text-align:center} .post_cqb_tldr{border-left:5px solid #28a745;background:rgba(40,167,69,.08);padding:16px 20px;border-radius:8px;margin:22px 0} .post_cqb_tldr ul{margin:8px 0 0;padding-left:20px} .post_cqb_tldr li{margin:6px 0} .post_cqb_quickfix{border-left:5px solid #ffc107;background:rgba(255,193,7,.1);padding:8px 20px 14px;border-radius:8px;margin:30px 0} .post_cqb_quickfix_list{list-style:none;padding:0;margin:10px 0 0} .post_cqb_quickfix_list li{display:flex;gap:10px;align-items:flex-start;padding:7px 0} .post_cqb_quickfix_list li i{margin-top:6px;flex-shrink:0} .post_cqb_codewrap{position:relative;margin:14px 0 18px} .post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',Consolas,monospace!important;text-shadow:none!important} .post_cqb_codeblock{padding:20px 16px 16px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;font-size:.88em;line-height:1.6;margin:0;white-space:pre} .post_copy_btn{position:absolute;top:8px;right:8px;min-height:44px;min-width:44px;padding:6px 12px;border:1px solid #555555;border-radius:6px;background:#333333;color:#ffffff;cursor:pointer;font-size:.8em;z-index:2} .post_copy_btn:hover{background:#28a745} .post_cqb_table_wrap{overflow-x:auto;margin:16px 0 20px} .post_cqb_table{border-collapse:collapse;width:100%;font-size:.93em} .post_cqb_table th,.post_cqb_table td{border:1px solid #cccccc;padding:10px 12px;text-align:left;vertical-align:top} .post_cqb_table th{background:rgba(33,150,243,.1);color:#333333} .post_cqb_note{background:rgba(33,150,243,.1);border-left:4px solid #2196f3;padding:14px 16px;border-radius:8px;margin:18px 0;font-size:.95em} .post_cqb_warn{background:rgba(255,193,7,.15);border-left:4px solid #ffc107;padding:14px 16px;border-radius:8px;margin:18px 0;font-size:.95em} .post_cqb_faq_container{margin:24px 0} .post_cqb_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden} .post_cqb_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333333;min-height:44px} .post_cqb_faq_question:hover{background:#f0f0f0} .post_cqb_faq_answer{padding:15px;background:#ffffff;color:#555555;line-height:1.6} .post_cqb_faq_item[open] .post_cqb_faq_question{background:rgba(40,167,69,.1);color:#28a745} .post_cqb_erro_card{border:1px solid rgba(211,47,47,.35);border-left:5px solid #d32f2f;border-radius:8px;padding:6px 18px 12px;margin:16px 0} .post_cqb_erro_card h3{margin:12px 0 8px} .post_cqb_cta{text-align:center;margin:40px 0 20px;padding:22px 16px;border:2px solid #28a745;border-radius:12px} .post_cqb_cta a{font-weight:700;color:#28a745} .post_cqb_refs{font-size:.93em} .post_cqb_refs li{margin:6px 0} .post_cqb_toast{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#333333;color:#ffffff;padding:10px 18px;border-radius:8px;font-size:.9em;z-index:9999} @media (prefers-color-scheme: dark){ .post_cqb_root{color:#d6d6d6} .post_cqb_root h2,.post_cqb_root h3,.post_cqb_root strong,.post_cqb_table th{color:#f2f2f2} .post_cqb_root a{color:#6ab7ff} .post_cqb_signature{color:#bdbdbd} .post_cqb_table th,.post_cqb_table td{border-color:#555555} .post_cqb_faq_item{border-color:#555555} .post_cqb_faq_question{background:transparent;color:#f2f2f2} .post_cqb_faq_question:hover{background:rgba(255,255,255,.06)} .post_cqb_faq_answer{background:transparent;color:#d6d6d6} } @media (max-width:767px){.post_cqb_root{font-size:1em}.post_cqb_root h2{font-size:1.3em}} @media (prefers-reduced-motion: reduce){.post_cqb_root *{transition:none!important;animation:none!important}} Feito com Master Rules Claude v9.2 Leitura: ~24 min TL;DR Em 22 de outubro de 2026 a API do DeepSeek tem dois nomes de modelo, deepseek-flash e deepseek-v4-pro, ambos com 1 milhão de tokens de contexto, e uma única chave de API serve aos três agentes deste guia. OpenCode e Hermes ativam o DeepSeek por assistente guiado (/connect e hermes setup), enquanto o Kimi Code CLI exige registrar um provedor do tipo openai no config.toml. O preço por token dobra no horário de pico, que em Brasília cai entre 22h e 01h e entre 03h e 07h; concentrar sessões longas fora dessas faixas corta a conta pela metade. Nota Técnica: Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido. Uma chave de API, três agentes: o difícil é saber onde colá-la. Em outubro de 2026 o DeepSeek trocou o modelo que responde pelo nome deepseek-flash sem mudar o nome nem o preço, e muita configuração antiga ainda aponta para apelidos aposentados. Aqui em @CanalQb organizamos o caminho completo para o Windows a partir das documentações oficiais: primeiro a instalação de OpenCode, Kimi Code CLI e Hermes Agent, depois a ativação do DeepSeek em cada um. No fim existe um ajuste de horário que quase ninguém faz e que muda a conta do mês. Ele depende de uma regra de pico que a página de preços descreve em UTC, e vale a pena traduzi-la para o relógio de Brasília antes de deixar qualquer agente rodando durante a noite. Quais são as soluções rápidas para os problemas mais comuns? Seis falhas concentram quase todos os chamados nesse tipo de instalação: comando não reconhecido depois do instalador, shell Bash ausente, versão antiga do OpenCode, chave não encontrada, provedor com nome divergente e erro 400 em modo de raciocínio. Cada uma tem correção de poucos minutos e um detalhamento mais abaixo. kimi ou hermes não reconhecido: feche e abra um terminal novo para o PATH atualizado entrar em vigor. ver passo completo Bash not found no Kimi: instale o Git for Windows ou aponte KIMI_SHELL_PATH para o bash.exe. ver passo completo DeepSeek ausente no OpenCode: atualize para a versão 1.18.30 ou superior e rode /connect de novo. ver passo completo API key not set no Hermes: rode hermes model e grave a chave com hermes config set DEEPSEEK_API_KEY. ver passo completo Provider not found: a chave do provedor e o prefixo do modelo precisam ser idênticos. ver passo completo Erro 400 com raciocínio ligado: o campo reasoning_content precisa voltar na conversa; atualize o agente. ver passo completo O que mudou no DeepSeek e qual modelo você deve chamar? Em outubro de 2026 a API oficial do DeepSeek expõe dois nomes de modelo: deepseek-flash, atendido pela versão V4.1-Flash-1017, e deepseek-v4-pro, que corresponde à V4-Pro-0813. Ambos oferecem janela de 1 milhão de tokens, chamadas de ferramentas e modo de raciocínio, e funcionam tanto no formato OpenAI quanto no formato Anthropic. Esse ponto de partida importa porque os três agentes deste tutorial só conversam com o DeepSeek pela API, e a API mudou duas vezes em poucas semanas. Segundo a página oficial de modelos e preços, o nome deepseek-flash passou a ser servido pelo snapshot 1017, e os nomes legados deepseek-v4-flash e deepseek-v4-flash-vision-exp continuam sendo aceitos, mas os modelos que eles identificavam foram aposentados: qualquer requisição feita com eles cai no Flash atual e é cobrada pelo preço do Flash. Na prática, uma configuração antiga não quebra de imediato, mas deixa de refletir o que você realmente está usando. A diferença entre os dois modelos aparece no preço e nos recursos. O Flash aceita entrada de imagem e custa bem menos; o Pro não oferece visão, mas é a escolha para planejamento difícil e tarefas longas de código. Os valores abaixo vêm da página oficial, são cobrados por 1 milhão de tokens e valem fora do horário de pico; no pico, cada valor dobra. ModeloVersão servidaEntrada com cacheEntrada sem cacheSaídaVisão deepseek-flashV4.1-Flash-1017US$ 0,003US$ 0,15US$ 0,60Sim deepseek-v4-proV4-Pro-0813US$ 0,022US$ 0,66US$ 1,98Não Um exemplo concreto mostra o tamanho da diferença. Uma sessão que consome 2 milhões de tokens de entrada sem cache e gera 200 mil tokens de saída custa, fora do pico, 2 × US$ 0,15 + 0,2 × US$ 0,60, ou seja, US$ 0,42 no Flash. A mesma sessão no Pro custa 2 × US$ 0,66 + 0,2 × US$ 1,98, que dá cerca de US$ 1,72. O Pro sai 4,4 vezes mais caro na entrada e 3,3 vezes na saída, então vale reservá-lo para quando o Flash realmente não der conta. Existe uma limitação que atrapalha quem copia tutoriais antigos: os nomes deepseek-chat e deepseek-reasoner, muito comuns em guias de 2025 e do início de 2026, não aparecem mais na lista oficial de modelos. Se um passo a passo mandar usar um deles, confirme o nome atual na página de preços antes de colar no arquivo de configuração. O erro típico é o agente responder normalmente nos primeiros testes e, semanas depois, falhar porque o apelido foi removido do servidor. Para começar, deixe o deepseek-flash como padrão nos três agentes. Ele tem o melhor custo por tarefa, cobre leitura de código, edição de arquivos e execução de comandos, e você pode trocar para o Pro numa sessão específica quando precisar. Se quiser conferir o preço vigente no dia, a fonte é a página oficial de modelos e preços do DeepSeek; os números mudam sem aviso e nenhum guia deve ser tratado como tabela definitiva. O que preparar no Windows antes de instalar os três agentes? Antes de instalar qualquer agente, tenha três coisas prontas: um terminal PowerShell atualizado, o Git for Windows e uma chave de API do DeepSeek criada na plataforma oficial. Com esses itens no lugar, os instaladores de OpenCode, Kimi Code CLI e Hermes rodam sem interrupção, e você evita os erros de caminho e de shell que mais aparecem no Windows. Passo 1: confirme Git e Node.js Abra o PowerShell e rode os comandos abaixo para ver o que já existe na máquina. O resultado esperado é uma linha de versão para cada comando; se aparecer "não é reconhecido", o programa falta. Copiargit --version node --version winget --version O Git é obrigatório para o Kimi Code CLI, que usa o Git Bash como shell, e útil para o Hermes e o OpenCode. O Node.js só é necessário para os caminhos de instalação por npm; para o Kimi pelo npm a documentação exige a versão 22.19.0 ou mais nova. Se faltar algum, instale pelo winget com os comandos a seguir e depois feche e reabra o PowerShell. Erro comum: instalar e continuar na mesma janela; o PATH só é relido em terminais novos. Copiarwinget install --id Git.Git -e winget install --id OpenJS.NodeJS.LTS -e Passo 2: gere a chave no painel do DeepSeek Entre em platform.deepseek.com, abra a área de chaves de API e crie uma chave nova com um nome reconhecível, como "agentes-windows". A chave aparece uma única vez; copie-a para um gerenciador de senhas antes de fechar a janela. Esse passo é necessário porque os três agentes cobram o uso direto na sua conta DeepSeek, e sem saldo ou crédito promocional as requisições falham mesmo com a chave correta. Quando funciona, a lista de chaves mostra a nova entrada com a data de criação. Erro comum: colar a chave num chat, num commit ou num arquivo de projeto; se isso acontecer, revogue a chave no painel e crie outra. Passo 3: guarde a chave numa variável de ambiente Em vez de colar a chave em cada ferramenta, grave-a uma vez como variável de ambiente do usuário. O comando setx persiste o valor para terminais futuros, e o Kimi Code CLI vai ler exatamente esse nome. Troque o texto de exemplo pela sua chave real e reabra o PowerShell depois. Copiarsetx DEEPSEEK_API_KEY "sk-cole-sua-chave-aqui" # depois de reabrir o PowerShell: echo $env:DEEPSEEK_API_KEY Se o segundo comando imprimir a chave, a variável está viva. Quando ele imprime uma linha vazia, o setx foi rodado na janela atual e o terminal ainda não foi reaberto, que é a causa mais comum de "chave não encontrada" logo no primeiro teste. Um detalhe de análise própria que poupa tempo: cada agente trata a chave de um jeito diferente. O OpenCode guarda a chave no próprio armazenamento depois do /connect, o Kimi Code CLI só enxerga a variável de ambiente se o arquivo de configuração mandar ler pelo nome dela, e o Hermes guarda segredos no arquivo .env da sua pasta de dados. Ter a variável pronta serve ao Kimi e ao Hermes, e o OpenCode recebe a mesma chave colada uma única vez dentro do assistente. Como instalar o OpenCode no Windows? O OpenCode instala no Windows por npm, Scoop ou Chocolatey, e a documentação oficial recomenda o WSL como o caminho com melhor desempenho e compatibilidade total. Para quem prefere ficar no Windows nativo, o comando npm install -g opencode-ai basta; depois, opencode --version deve mostrar a versão 1.18.30 ou superior para funcionar bem com o DeepSeek. Passo 1: escolha o método de instalação A decisão depende do que você já usa. Quem tem Node.js instalado vai de npm, quem usa gerenciador de pacotes prefere Scoop ou Chocolatey, e quem quer o melhor desempenho segue o guia de WSL do próprio projeto. Os quatro caminhos entregam o mesmo executável opencode, então a escolha é de conveniência e de atualização. MétodoComandoQuando escolher npmnpm install -g opencode-aiVocê já tem Node.js e quer atualizar com o mesmo comando mais tarde. Scoopscoop install opencodeVocê usa Scoop para outras ferramentas de linha de comando. Chocolateychoco install opencodeVocê usa Chocolatey e abre o PowerShell como administrador. WSLcurl -fsSL https://opencode.ai/install | bashVocê quer o caminho recomendado pela documentação, dentro do Linux do WSL. Passo 2: instale e confirme a versão Este guia segue o npm por ser o mais direto no Windows nativo. O comando baixa o pacote e registra o executável opencode no PATH global do npm. Ele é necessário aqui porque o DeepSeek só aparece no catálogo de provedores das versões recentes. Copiarnpm install -g opencode-ai@latest opencode --version O resultado esperado é um número de versão, e o guia de integração do DeepSeek pede 1.18.30 ou mais nova para evitar problemas de compatibilidade. Se o número for menor, repita o primeiro comando; se o comando opencode não for reconhecido, abra um terminal novo e confira com npm config get prefix se a pasta global do npm está no PATH. Existe uma pegadinha de versões que a documentação do OpenCode destaca: o OpenCode 1 e o OpenCode 2 usam o mesmo comando opencode e não convivem lado a lado na instalação padrão. Se você já testou a versão 2 em algum momento, instalar a versão 1 por cima troca o executável, e a configuração do DeepSeek descrita neste guia foi escrita a partir da documentação oficial da versão 1, que é a que o DeepSeek cita. Quem preferir a versão 2 deve consultar a documentação própria dela antes de seguir os próximos passos. Para o WSL, o projeto mantém uma página dedicada com a instalação do Linux e os cuidados de caminho entre os dois sistemas; vale lê-la se você pretende abrir projetos que ficam em pastas do Windows. Para o restante deste guia, o terminal pode ser o PowerShell com a instalação por npm ou o terminal do WSL com o instalador do projeto, e os comandos de ativação do DeepSeek são idênticos nos dois. Como ativar o DeepSeek no OpenCode? No OpenCode a ativação é guiada: abra o terminal, rode opencode, digite /connect, procure pelo provedor deepseek, cole a chave de API e escolha o modelo Flash na lista. O processo leva menos de dois minutos e não exige editar arquivo algum, porque o DeepSeek já faz parte do catálogo de provedores do OpenCode. Passo 1: abra o OpenCode numa pasta de projeto Vá até uma pasta de teste e inicie a interface. O OpenCode trabalha sobre o diretório atual, então iniciá-lo na pasta errada faz o agente enxergar arquivos que você não pretendia expor. Copiarmkdir $HOME\teste-agentes cd $HOME\teste-agentes opencode Quando funciona, a interface em tela cheia do terminal abre com uma caixa de entrada no rodapé. Erro comum: iniciar na raiz do disco ou na pasta de usuário inteira, o que deixa o agente indexar muito mais arquivos do que o necessário. Passo 2: conecte o provedor com /connect Na caixa de entrada digite /connect, escreva deepseek na busca e selecione o provedor. Em seguida cole a chave de API quando o assistente pedir. Esse passo grava a credencial no armazenamento do próprio OpenCode, e é por isso que ele não depende da variável de ambiente criada antes. O resultado esperado é uma mensagem de conexão concluída e, na etapa seguinte, a lista de modelos do DeepSeek. Passo 3: escolha o modelo Flash Selecione a entrada do Flash na lista. As páginas do DeepSeek descrevem essa opção de duas maneiras, como V4.1-Flash num guia e como V4-Flash em outro, porque a documentação foi atualizada em momentos diferentes; ambas se referem ao mesmo modelo de custo baixo, e o servidor atende pelo nome deepseek-flash. Para ver o identificador exato que o seu OpenCode usa, digite /models depois da conexão. Passo 4: fixe o modelo no arquivo de configuração Isto é opcional, mas evita escolher o modelo toda vez. O OpenCode lê um arquivo opencode.json global na pasta .config do seu perfil de usuário e outro na raiz de cada projeto. Escreva o modelo no formato provedor/identificador, trocando o texto de exemplo pelo identificador mostrado no /models. Copiar{ "$schema": "https://opencode.ai/config.json", "model": "deepseek/identificador-mostrado-no-models" } Faça o teste com um pedido simples, como "Liste os arquivos desta pasta e explique em três linhas o que cada um faz". A tecla Tab alterna entre o modo de planejamento, que só sugere mudanças, e o modo de construção, que as aplica. Erro comum: o aviso Provider not found, que aparece quando o nome do provedor no arquivo e o prefixo do modelo não são idênticos; ambos precisam ser exatamente deepseek. Como instalar o Kimi Code CLI no Windows? O Kimi Code CLI instala no Windows com um único comando em PowerShell, desde que o Git for Windows esteja instalado antes do primeiro uso, porque a ferramenta usa o Git Bash como shell. Depois do script, kimi --version confirma o executável no PATH e o comando kimi abre a interface interativa no diretório do seu projeto. Passo 1: tenha o Git for Windows no lugar Se você seguiu a preparação, o Git já está instalado pelo winget. A documentação do Kimi Code é direta: instale o Git for Windows antes de abrir a ferramenta pela primeira vez, pois é o Git Bash que executa os comandos de shell que o agente pede. Sem ele, o primeiro comando de shell falha com a mensagem Bash not found. Passo 2: rode o instalador oficial No PowerShell comum, sem precisar de administrador, execute o comando abaixo. Ele baixa a versão mais recente, confere o checksum e coloca o executável kimi no PATH; por isso é o método que a documentação chama de recomendado e que dispensa ter Node.js. Como em qualquer script executado direto da internet, vale abrir o endereço no navegador e ler o conteúdo antes de rodar. Copiarirm https://code.kimi.com/kimi-code/install.ps1 | iex Passo 3: confirme a instalação Feche o PowerShell, abra um novo e rode o comando abaixo. O resultado esperado é a versão instalada. Se a resposta for kimi not found, o PATH ainda não foi relido ou o instalador rodou em outro usuário do Windows; um terminal novo no mesmo usuário resolve na maioria dos casos. Copiarkimi --version Passo 4: alternativas e ajustes finos Quem já tem Node.js 22.19.0 ou superior pode instalar pelo npm com npm install -g @moonshot-ai/kimi-code, e atualizar depois com kimi upgrade. Se o Git Bash estiver numa pasta fora do padrão, grave o caminho do bash.exe na variável KIMI_SHELL_PATH, por exemplo com setx KIMI_SHELL_PATH "C:\Program Files\Git\bin\bash.exe", e reabra o terminal. Atenção a uma confusão frequente de nomes: existe o Kimi Code CLI atual, escrito em TypeScript, e o antigo kimi-cli, instalado com uv tool install kimi-cli, que guarda a configuração em ~/.kimi. O Kimi Code CLI usa a pasta ~/.kimi-code, que no Windows fica dentro do seu perfil de usuário. Muitos tutoriais antigos citam o primeiro caminho, e editar o arquivo da pasta errada é um dos motivos de a configuração do DeepSeek "não pegar". O instalador deste passo, com o endereço contendo kimi-code, é o da ferramenta atual. Como ativar o DeepSeek no Kimi Code CLI? O caminho mais previsível é registrar o DeepSeek no arquivo config.toml como um provedor do tipo openai, apontando para a URL da API e para uma variável de ambiente com a chave. Depois você define um alias de modelo e o torna padrão, e o CLI trata sozinho o campo de raciocínio que os modelos DeepSeek devolvem. Passo 1: abra o arquivo config.toml O arquivo nasce na primeira execução do kimi, então rode o comando uma vez e saia com /exit. Depois abra o arquivo no editor com o comando abaixo. O CLI lê as credenciais apenas do arquivo de configuração e não usa variáveis do terminal por conta própria, e é isso que o próximo passo contorna. Copiarnotepad $HOME\.kimi-code\config.toml Passo 2: adicione o provedor e o modelo Acrescente o bloco abaixo, mantendo o que já existe no arquivo. O tipo openai fala o protocolo de chat compatível com OpenAI, que o DeepSeek oferece em https://api.deepseek.com. O campo api_key_env manda o CLI ler a chave da variável DEEPSEEK_API_KEY a cada requisição, assim a chave não fica escrita em texto puro no arquivo. A janela de contexto foi declarada em 1 milhão de tokens, valor conservador em relação ao informado na página de preços. Copiardefault_model = "deepseek/flash" [providers.deepseek] type = "openai" base_url = "https://api.deepseek.com" api_key_env = "DEEPSEEK_API_KEY" [models."deepseek/flash"] provider = "deepseek" model = "deepseek-flash" max_context_size = 1000000 display_name = "DeepSeek V4.1 Flash" capabilities = ["thinking", "tool_use"] Se o arquivo já tiver uma linha default_model, mantenha apenas uma delas, porque a chave repetida invalida o TOML. As aspas em torno de deepseek/flash são obrigatórias, já que a barra e o ponto em nomes de chave exigem aspas nesse formato. Para um segundo alias com o Pro, copie o bloco de modelo, troque o alias e o campo model para deepseek-v4-pro e tire a capacidade de imagem se algum dia a declarar. Passo 3: recarregue e teste Salve o arquivo, abra um terminal novo para que a variável de ambiente entre no processo e faça um teste curto de uma única mensagem. O parâmetro -m escolhe o alias e -p executa uma instrução sem abrir a interface. Copiarkimi -m deepseek/flash -p "Responda apenas: configuração ok" Se a resposta chegar, abra o kimi normalmente e use /model para alternar entre aliases durante a sessão. Se aparecer um erro citando a variável DEEPSEEK_API_KEY, ela está vazia nesse processo: rode echo $env:DEEPSEEK_API_KEY e, se vier vazio, refaça o setx e reabra o terminal. Um segundo caminho existe no próprio CLI: o comando /provider abre um gerenciador que importa provedores conhecidos a partir do catálogo público models.dev e pede só a chave; ele serve como atalho, mas o catálogo pode demorar a listar o identificador mais novo do DeepSeek, e nesse caso o bloco manual acima continua valendo. O comando /login, por sua vez, é para o serviço próprio do Kimi e não é necessário para usar o DeepSeek. Como instalar o Hermes Agent no Windows? O Hermes Agent, da Nous Research, tem três caminhos no Windows: o instalador desktop em pacote .appinstaller, o script nativo em PowerShell e o script Linux dentro do WSL2. O caminho mais curto para quem usa terminal é rodar iex (irm https://hermes-agent.nousresearch.com/install.ps1) no PowerShell e reabrir a janela para o comando hermes ser reconhecido. Passo 1: escolha o caminho de instalação O pacote desktop do site oficial traz o agente, o Python e as dependências suportadas já embutidos, e o primeiro uso não compila o ambiente base. O script de PowerShell clona o código-fonte, prepara o gerenciador uv e baixa versões fixas de Python, Node.js, ripgrep e FFmpeg. O terceiro caminho, o script para Linux, é para quem já trabalha dentro do WSL2. Para um tutorial de terminal, o script de PowerShell é o mais fácil de reproduzir e de depurar. Passo 2: rode o instalador nativo No PowerShell, execute o comando abaixo. O Windows consegue buscar um Git empacotado se ele estiver ausente, e as etapas aparecem em uma linha de status cada, com os detalhes gravados em logs\install.log dentro da pasta de dados do Hermes. O instalador também baixa por padrão as ferramentas de navegador; se não quiser isso, a opção -SkipBrowser as dispensa. Leia o script no navegador antes de rodar, como em qualquer instalador baixado e executado em memória. Copiariex (irm https://hermes-agent.nousresearch.com/install.ps1) Em execuções interativas o instalador abre o assistente de configuração ao final. Você pode ativar o DeepSeek ali mesmo, seguindo a seção seguinte, ou pular a etapa e voltar depois com hermes model. O código fica em %LOCALAPPDATA%\hermes\hermes-agent, o lançador em %LOCALAPPDATA%\hermes\bin e os seus dados em %LOCALAPPDATA%\hermes. Passo 3: reabra o terminal e valide Feche o PowerShell, abra um novo e rode hermes doctor, o comando de diagnóstico do projeto, que informa exatamente o que está faltando. O resultado esperado é uma lista de verificações sem pendências críticas. Se a resposta for hermes: command not found, o PATH não foi relido; um terminal novo costuma resolver, e o diagnóstico do instalador indica a pasta bin que precisa estar no caminho. Passo 4: plano B pelo WSL2 Relatos de comunidade descrevem o suporte nativo ao Windows como o mais recente e menos testado, com mais chance de arestas. Se o instalador nativo travar, abra o terminal do WSL2 e use o script oficial para Linux, curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash, que exige apenas o Git. Os comandos de configuração do DeepSeek são os mesmos nos dois ambientes; muda apenas a pasta de dados, que no WSL2 fica em ~/.hermes. Como ativar o DeepSeek no Hermes Agent? No Hermes você ativa o DeepSeek com o assistente hermes setup ou com hermes model: escolha DeepSeek como provedor, informe a chave, confirme a URL https://api.deepseek.com e selecione o modelo. Quem prefere linha de comando direta pode gravar a chave com hermes config set DEEPSEEK_API_KEY e definir provedor e modelo na configuração. Passo 1: use o assistente guiado O guia oficial do DeepSeek para o Hermes manda executar hermes setup, escolher a opção Quick Setup, selecionar DeepSeek como provedor, digitar a chave, informar a URL base https://api.deepseek.com e escolher o modelo; o exemplo da documentação usa o deepseek-v4-pro, e para economizar você pode escolher deepseek-flash no mesmo ponto. Há um detalhe de versão: dependendo da release instalada, o Quick Setup pode levar primeiro ao Nous Portal, o serviço próprio da Nous Research. Se isso acontecer, rode hermes model, que lista os provedores diretamente, ou escolha Full Setup no assistente. Passo 2: configure por comandos O Hermes separa segredos de configuração comum: a chave vai para o arquivo .env da pasta de dados e o resto para o config.yaml. O comando hermes config set decide o arquivo correto por você. Rode as três linhas abaixo, trocando o texto de exemplo pela sua chave. Copiarhermes config set DEEPSEEK_API_KEY sk-cole-sua-chave-aqui hermes config set model.provider deepseek hermes config set model.default deepseek-flash hermes config get model A última linha imprime o que ficou gravado e serve de conferência: o provedor deve ser deepseek e o modelo deepseek-flash. Erro comum: digitar a chave com espaços ou aspas curvas coladas de um editor de texto, o que gera falha de autenticação mesmo com a chave certa. Passo 3: confira o arquivo de configuração Se preferir editar à mão, o arquivo config.yaml fica em %LOCALAPPDATA%\hermes. O bloco mínimo equivalente aos comandos anteriores é o seguinte, e o comando hermes config edit abre o arquivo no editor. Copiarmodel: provider: deepseek default: deepseek-flash Passo 4: teste uma conversa Execute hermes e faça uma pergunta curta; o banner inicial mostra o provedor e o modelo escolhidos. Para forçar a escolha em uma única chamada, use hermes chat --provider deepseek --model deepseek-flash. O Hermes exige um modelo com no mínimo 64 mil tokens de contexto, requisito que os 1 milhão de tokens do DeepSeek superam com folga. Se as respostas vierem vazias ou quebradas, a documentação aponta provedor, modelo ou autenticação errados e manda rodar hermes model de novo para confirmar os três. Como testar os três agentes e controlar o custo do DeepSeek? Teste cada agente com o mesmo pedido curto, confira no painel do DeepSeek se o consumo apareceu e só então libere tarefas longas. Para segurar a conta, mantenha o Flash como padrão, use o Pro apenas em planejamento difícil e evite os horários de pico, em que o preço por token dobra em relação ao restante do dia. O teste padronizado evita comparar maçãs com laranjas. Use o mesmo pedido nos três, por exemplo "Liste os arquivos desta pasta e explique em três linhas o que cada um faz", e observe se o agente leu a pasta, respondeu em português e terminou sem erro de autenticação. AgenteComando de testeO que conferir OpenCodeopencode, depois digitar o pedidoO modelo exibido é o Flash do DeepSeek e o agente lê a pasta. Kimi Code CLIkimi -m deepseek/flash -p "pedido"A resposta chega sem erro citando DEEPSEEK_API_KEY. Hermeshermes chat --provider deepseek --model deepseek-flashO banner mostra provedor e modelo, e a resposta não vem vazia. Depois dos testes, o assunto é o relógio. A página de preços define o pico como as faixas de 01h às 04h e de 06h às 10h em UTC, de segunda a sexta, sem contar feriados públicos chineses; todo o resto, incluindo os fins de semana inteiros, é fora do pico, com metade do preço. Em Brasília, que está três horas atrás de UTC, as faixas equivalem a 22h–01h e 03h–07h. A regra dos dias vale pela data em UTC, e esse é o ponto que costuma passar batido: a faixa das 22h às 01h é pico de domingo a quinta à noite, já que 22h de domingo em Brasília é 01h de segunda em UTC, e deixa de ser pico na sexta à noite, que já é sábado em UTC. A faixa da madrugada, das 03h às 07h, atinge os dias úteis normais. Quem programa à noite no meio da semana paga o dobro sem perceber. O cache de entrada é a segunda alavanca de custo. O Flash cobra US$ 0,003 por milhão de tokens com cache contra US$ 0,15 sem cache, uma diferença de 50 vezes, e agentes de código repetem contexto a cada passo. Sessões longas na mesma pasta, sem trocar de modelo no meio, aproveitam mais o cache do que várias sessões curtas e dispersas. A limitação é que o cache depende de o início do pedido ser idêntico, então reorganizar instruções fixas no meio da conversa pode reduzir esse ganho. Segurança também faz parte do controle. Todos os três agentes executam comandos e editam arquivos, e o conteúdo que eles leem viaja para os servidores do DeepSeek. Não rode o agente em pastas com segredos, mantenha a chave só em variável de ambiente, nunca a coloque em repositório e use os modos de permissão de cada ferramenta: o Kimi Code CLI começa no modo manual, que pede confirmação antes de alterar arquivos ou rodar comandos, e o OpenCode tem sua própria documentação de permissões. Se a chave vazar, revogue no painel e gere outra no mesmo minuto. Conformidade Global: As informações regulatórias refletem as legislações vigentes no momento da publicação. Leis de privacidade variam por jurisdição e estão em constante evolução. Ao enviar código e dados a uma API de terceiros, avalie a política de dados do provedor e a LGPD, e consulte as autoridades locais de proteção de dados e o IAPP Global Privacy Directory. Este conteúdo não constitui aconselhamento jurídico. Perguntas frequentes sobre DeepSeek em agentes no Windows O DeepSeek é gratuito nesses agentes? Não por padrão. A API cobra por token, com preços diferentes para Flash e Pro e metade do valor fora do horário de pico, descontado do saldo da sua conta. Alguns serviços de terceiros anunciam períodos promocionais, mas esse tipo de oferta muda rápido e deve ser confirmado na hora. Antes de deixar um agente rodando, olhe o painel de uso e veja nossa cobertura sobre DeepSeek. Devo usar deepseek-flash ou deepseek-v4-pro? Comece com o deepseek-flash, que custa em torno de um quarto do Pro na entrada e aceita imagens. Troque para o deepseek-v4-pro quando uma tarefa de planejamento ou refatoração grande travar no Flash. O Pro não tem visão. Como a troca é só um nome de modelo, vale testar nos dois com o mesmo pedido, e as comparações aparecem no conteúdo sobre OpenCode. Posso usar a mesma chave nos três agentes? Sim. A chave pertence à sua conta DeepSeek e qualquer cliente compatível pode usá-la, então OpenCode, Kimi Code CLI e Hermes aceitam a mesma. A diferença é onde cada um a guarda. Se quiser separar o consumo por ferramenta, crie uma chave por agente no painel; assim, ao revogar uma, as demais continuam funcionando. Mais guias de ferramentas estão em Hermes Agent. Preciso instalar o WSL para usar esses agentes? Não é obrigatório. OpenCode e Hermes têm instalação no Windows nativo, e o Kimi Code CLI roda no Windows usando o Git Bash. O WSL é recomendado pela documentação do OpenCode por oferecer desempenho melhor e compatibilidade total, e funciona como plano B para o Hermes se o instalador nativo falhar. Se for por esse caminho, confira o material sobre Kimi CLI. Meu código vai para os servidores do DeepSeek? Sim. Qualquer trecho de arquivo, saída de comando ou mensagem que o agente inclua na requisição é enviado à API para gerar a resposta. Por isso evite abrir o agente em pastas com senhas, chaves ou dados de clientes, revise a política de dados do provedor e, em ambiente de empresa, alinhe o uso com o time jurídico. Nossa seção sobre segurança de chaves de API aprofunda o assunto. Quais erros aparecem ao configurar e como resolver cada um? Os erros abaixo cobrem as quatro categorias que mais travam este procedimento: instalação que não entra no PATH, shell ausente, configuração com nomes divergentes e autenticação sem chave. Cada cartão traz o sintoma como ele aparece na tela, a causa técnica, a correção copiável e uma prevenção para não repetir o problema na próxima instalação. kimi not found (ou hermes: command not found) Causa: o instalador gravou o executável e atualizou o PATH, mas a janela do terminal aberta antes da instalação mantém a lista antiga de pastas. Solução: feche o PowerShell, abra um novo no mesmo usuário do Windows e rode kimi --version ou hermes doctor. Se persistir, confira se o instalador não foi executado em outra conta de usuário ou com permissões de administrador de outro perfil. Prevenção: depois de qualquer instalador de linha de comando, abra sempre um terminal novo antes do primeiro teste. Bash not found Causa: o Kimi Code CLI usa o Git Bash como shell no Windows e não encontrou o bash.exe, seja porque o Git for Windows não está instalado, seja porque está numa pasta fora do padrão. Solução: instale com winget install --id Git.Git -e ou, se o Git já existe em outro local, grave o caminho com setx KIMI_SHELL_PATH "C:\Program Files\Git\bin\bash.exe" e reabra o terminal. Prevenção: instale o Git antes do Kimi e confirme com git --version. DeepSeek não aparece no /connect do OpenCode Causa: versão antiga do OpenCode, anterior ao suporte atual ao DeepSeek, ou conflito entre as versões 1 e 2, que usam o mesmo comando opencode. Solução: rode npm install -g opencode-ai@latest, confirme que opencode --version mostra 1.18.30 ou superior e repita /connect, digitando deepseek na busca. Prevenção: atualize o OpenCode antes de configurar novos provedores e evite manter duas gerações instaladas. Provider not found Causa: no opencode.json, o nome do provedor e o prefixo do modelo divergem, como declarar o provedor como deepseek e escrever o modelo com outro prefixo. Solução: faça os dois coincidirem exatamente, por exemplo deepseek e deepseek/identificador, usando o identificador que o /models mostra. Prevenção: copie o identificador do próprio /models em vez de digitar de memória ou de copiar de tutoriais antigos. API key not set (Hermes) ou erro citando DEEPSEEK_API_KEY (Kimi) Causa: a chave não chegou ao processo: no Hermes ela não foi gravada no .env, e no Kimi a variável não existe na janela atual porque o setx foi executado sem reabrir o terminal. Solução: no Hermes rode hermes model ou hermes config set DEEPSEEK_API_KEY com a chave; no Kimi refaça o setx, abra um terminal novo e confirme com echo $env:DEEPSEEK_API_KEY. Prevenção: valide a variável com echo antes de abrir qualquer agente. Erro 400 em sessão com raciocínio ligado Causa: relatos de comunidade indicam que a API recusa a requisição quando o campo reasoning_content devolvido pelo modelo não é reenviado no histórico, comportamento ligado ao modo de raciocínio e à troca silenciosa do snapshot em 17 de outubro. Solução: atualize o agente para a versão mais recente, que trata esse campo; no Kimi Code CLI o tipo openai já o gerencia, e no OpenCode vale seguir a versão indicada pelo DeepSeek. Se persistir, abra uma nova sessão com /new. Prevenção: mantenha os agentes atualizados e leia as notas de versão depois de qualquer anúncio de modelo do DeepSeek. Gostou do passo a passo? Veja os vídeos de automação, agentes e ferramentas práticas em @CanalQb no YouTube e conte nos comentários qual agente você ativou primeiro. Fontes e referências Todas as informações foram conferidas em 22 de outubro de 2026 nas páginas abaixo; preços, versões e nomes de modelo mudam, então confirme nas fontes oficiais antes de decidir. DeepSeek API Docs: Your First API Call DeepSeek API Docs: Models &amp;amp; Pricing DeepSeek API Docs: Integrate with OpenCode DeepSeek API Docs: Integrate with Hermes Agent OpenCode: documentação de instalação e uso Kimi Code CLI: Getting started Kimi Code CLI: Providers and models Kimi Code CLI: Configuration files Hermes Agent: Installation Hermes Agent: Quickstart DEV Community: migração para o DeepSeek V4.1 Flash 1017 (relato de comunidade) { "@context":"https://schema.org", "@type":"BlogPosting", "headline":"DeepSeek V4.1 no Windows: OpenCode, Kimi e Hermes", "description":"Aprenda a instalar OpenCode, Kimi Code CLI e Hermes Agent no Windows e a ativar o DeepSeek V4.1 Flash em cada um, com chave de API, testes e custos.", "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"}, "publisher":{ "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br", "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQqQK5vPHrMLTMD42SkDCIJZojTKLFr5-gMjGHx2QTPbPIlY73-r3tUI0DrC_aa5mEmwv86EprkDl-_O4qnvumUteY9lZtODQdpMiIsW4L5InwdXKMsi8BkDeQWeTiSlX-bYBNE5XescSKmE5ZOi2SPWzbGRXiwzRzy7WF-AitD10pLejjoj21Gi1thncR/s1600/image.png"} }, "datePublished":"2026-10-22","dateModified":"2026-10-22", "mainEntityOfPage":"https://canalqb.com.br/2026/10/deepseek-v4-1-opencode-kimi-hermes-windows.html", "copyrightHolder":{"@type":"Person","name":"@CanalQb"}, "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/", "inLanguage":"pt-BR" } {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[ {"@type":"Question","name":"O DeepSeek é gratuito nesses agentes?","acceptedAnswer":{"@type":"Answer","text":"Não por padrão. A API cobra por token, com preços diferentes para Flash e Pro e metade do valor fora do horário de pico, descontado do saldo da sua conta. Alguns serviços de terceiros anunciam períodos promocionais, mas esse tipo de oferta muda rápido e deve ser confirmado na hora. Antes de deixar um agente rodando, olhe o painel de uso."}}, {"@type":"Question","name":"Devo usar deepseek-flash ou deepseek-v4-pro?","acceptedAnswer":{"@type":"Answer","text":"Comece com o deepseek-flash, que custa em torno de um quarto do Pro na entrada e aceita imagens. Troque para o deepseek-v4-pro quando uma tarefa de planejamento ou refatoração grande travar no Flash. O Pro não tem visão. Como a troca é só um nome de modelo, vale testar nos dois com o mesmo pedido."}}, {"@type":"Question","name":"Posso usar a mesma chave nos três agentes?","acceptedAnswer":{"@type":"Answer","text":"Sim. A chave pertence à sua conta DeepSeek e qualquer cliente compatível pode usá-la, então OpenCode, Kimi Code CLI e Hermes aceitam a mesma. A diferença é onde cada um a guarda. Se quiser separar o consumo por ferramenta, crie uma chave por agente no painel; assim, ao revogar uma, as demais continuam funcionando."}}, {"@type":"Question","name":"Preciso instalar o WSL para usar esses agentes?","acceptedAnswer":{"@type":"Answer","text":"Não é obrigatório. OpenCode e Hermes têm instalação no Windows nativo, e o Kimi Code CLI roda no Windows usando o Git Bash. O WSL é recomendado pela documentação do OpenCode por oferecer desempenho melhor e compatibilidade total, e funciona como plano B para o Hermes se o instalador nativo falhar."}}, {"@type":"Question","name":"Meu código vai para os servidores do DeepSeek?","acceptedAnswer":{"@type":"Answer","text":"Sim. Qualquer trecho de arquivo, saída de comando ou mensagem que o agente inclua na requisição é enviado à API para gerar a resposta. Por isso evite abrir o agente em pastas com senhas, chaves ou dados de clientes, revise a política de dados do provedor e, em ambiente de empresa, alinhe o uso com o time jurídico."}} ]} (function(){ 'use strict'; function showToast(msg){ var t=document.createElement('div'); t.className='post_cqb_toast'; t.setAttribute('role','status'); t.textContent=msg; document.body.appendChild(t); setTimeout(function(){ if(t.parentNode){ t.parentNode.removeChild(t); } },1800); } function init(){ var btns=document.querySelectorAll('.post_copy_btn'); Array.prototype.forEach.call(btns,function(btn){ btn.addEventListener('click',function(){ var code=btn.parentNode.querySelector('code'); if(!code||!navigator.clipboard){ showToast('Selecione o texto e copie manualmente'); return; } navigator.clipboard.writeText(code.textContent).then(function(){ showToast('Código copiado'); },function(){ showToast('Não foi possível copiar'); }); }); }); } if('requestIdleCallback' in window){ requestIdleCallback(init); } else { setTimeout(init,200); } })(); jjjjjjj ▶ @CanalQb no YouTube</itunes:summary><itunes:keywords>agentes de IA, api, Automação, deepseek, hermes agent, Kimi Code CLI, opencode, terminal, Tutorial, Windows</itunes:keywords></item><item><title>Planilha DuplaSena que se Atualiza Sozinha (2026)</title><link>https://canalqb.blogspot.com/2026/10/planilha-duplasena-que-se-atualiza.html</link><category>API CAIXA</category><category>Apps Script</category><category>Dupla Sena</category><category>Estatísticas Loteria</category><category>Google Sheets</category><category>Loterias CAIXA</category><category>planilha loteria</category><category>Tutorial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 18 Oct 2026 20:58:44 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-444556065800406072</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikLCGwOzcetzkK3ZZ3C10mC29fPmy9WXQT6EMIjDTQlIqS5CvvILtVK5WDxzAtrskRGGqyZrlsSJjkO7tLzsKPLlv0m47FI6cjUDxWPEx0AlgXEtTofHt2hooqQA7uFH4ykLo-FVJx6a34fDm_PYBbvyVYoQ4Jy7-njMNZKYY6TZANq504fikraQwzNDzv/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:15px 18px;border-radius:8px;margin:20px 0}
.post_tldr p{margin:0 0 6px;font-weight:bold;color:#333}
.post_tldr ul{margin:8px 0 0;padding-left:20px;color:#555}
.post_tldr li{margin:4px 0;line-height:1.5}
.post_badge{background:rgba(33,150,243,0.08);border:1px solid #2196f3;color:#333;border-radius:20px;padding:6px 14px;display:inline-block;font-size:0.85em;margin:10px 0}
.post_h2{color:#333;font-size:1.4em;margin:36px 0 10px;border-left:4px solid #28a745;padding-left:12px}
.post_answer{color:#333;font-size:1em;margin:10px 0 16px}
.post_table{width:100%;border-collapse:collapse;margin:18px 0;font-size:0.9em}
.post_table th{background:#e8f5e9;color:#14532d;padding:10px;text-align:left;border:1px solid #d4d4d4}
.post_table td{padding:8px 10px;border:1px solid #e0e0e0;color:#555}
.post_table tr:nth-child(even) td{background:rgba(0,0,0,0.015)}
.post_disclaimer{background:rgba(255,193,7,0.15);border-left:4px solid #ffc107;padding:15px;border-radius:8px;color:#555;font-size:0.9em;margin:20px 0}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:0.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_intro{font-size:1.05em;color:#333;line-height:1.7}
.post_bucket{color:#28a745;font-weight:bold}
.post_footer_refs{background:rgba(33,150,243,0.06);border:1px solid #d4d4d4;border-radius:8px;padding:18px 20px;margin:30px 0}
.post_footer_refs h2{color:#333;font-size:1.3em;margin:0 0 12px}
.post_footer_refs ul{list-style:none;padding:0;margin:0}
.post_footer_refs li{padding:6px 0;color:#555;font-size:0.9em}
.post_cta{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:20px;border-radius:8px;margin:30px 0;text-align:center}
.post_cta p{color:#333;font-size:1em;margin:10px 0}
.post_cta a{color:#28a745}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
a:focus-visible{outline:2px solid #28a745;outline-offset:2px}
@media(max-width:600px){.post_table{font-size:0.8em}.post_h2{font-size:1.2em}}
&lt;/style&gt;

&lt;h1 style="color: #333333; text-align: center;"&gt;Planilha Dupla Sena que se Atualiza Sozinha (2026)&lt;/h1&gt;

&lt;p class="post_badge"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~13 min&lt;/p&gt;

&lt;div class="post_tldr"&gt;
  &lt;p&gt;TL;DR:&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;Fiz uma planilha de Dupla Sena que puxa sozinha os resultados oficiais da API da CAIXA - ela montou o histórico completo e recalculou todas as estatísticas em segundos - isso importa porque você nunca mais vai digitar dezena nenhuma à mão.&lt;/li&gt;
    &lt;li&gt;A mesma aposta concorre em DOIS sorteios de 6 dezenas (01 a 50), às segundas, quartas e sextas - a planilha confere os dois automaticamente e mostra quantas apostas simples premiadas seu jogo tem em cada faixa - isso importa porque é exatamente assim que apostas de 7 a 15 dezenas pagam em Sena, Quina, Quadra e Terno.&lt;/li&gt;
    &lt;li&gt;Ela gera 48 jogos por tamanho de aposta (QUENTE, FRIO, NEUTRO, 18 MISTOS, MÉDIA, HARMÔNICA e FIBONACCI) - com conferência de acertos nos dois sorteios, célula verde e botão de copiar para a lotérica - recomendo para quem quer analisar com dados reais, sem promessa de ganho (loteria é jogo de azar).&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt; 
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/6mnY2escAZc?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Dupla Sena que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p class="post_disclaimer"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso importante:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional. A planilha não garante ganhos nem aumenta suas chances de premiação — loteria é um jogo de azar e cada sorteio é independente. Destinado a maiores de 18 anos. Jogue com responsabilidade e nunca aposte o que não pode perder. O @CanalQb não tem vínculo com a CAIXA Econômica Federal nem com a loteriascaixa.gov.br.
&lt;/p&gt;

&lt;p class="post_intro"&gt;Uma aposta de 15 dezenas na Dupla Sena custa R$ 15.015,00 e vale 5.005 combinações.&lt;/p&gt;
&lt;p class="post_intro"&gt;Pois é: quando você marca mais de 6 dezenas, está comprando milhares de apostas simples de uma vez — e cada uma delas concorre nos dois sorteios do mesmo concurso. A planilha que vou mostrar entende essa matemática e ainda se atualiza sozinha pela API oficial da CAIXA. Aqui está o detalhe que quase ninguém percebe: o que separa um jogo caro de um jogo bem conferido é saber exatamente quantas combinações premiadas ele tem em cada faixa — e é isso que as colunas de COMBIN da planilha revelam no fim deste post.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que é a Dupla Sena e como funcionam os dois sorteios?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A Dupla Sena é a loteria da CAIXA em que você marca de 6 a 15 dezenas (de 01 a 50) e a mesma aposta concorre em dois sorteios de 6 dezenas no mesmo concurso, realizados às segundas, quartas e sextas. Os prêmios são pagos em quatro faixas: Sena (6 acertos), Quina (5), Quadra (4) e Terno (3), com percentuais diferentes em cada sorteio.&lt;/p&gt;
&lt;p&gt;No primeiro sorteio, a Sena leva 30% do prêmio bruto, a Quina 10%, a Quadra 8% e o Terno 4%. No segundo sorteio, os percentuais mudam para 11%, 9%, 8% e 4%. Outros 16% da arrecadação são reservados para o Concurso Especial de Páscoa. É a única modalidade que dá duas chances reais com o mesmo bilhete — e por isso a conferência precisa olhar DOIS resultados, não um.&lt;/p&gt;
&lt;p&gt;As chances oficiais por faixa, em cada sorteio, são estas:&lt;/p&gt;
&lt;table class="post_table"&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Faixa (acertos)&lt;/th&gt;&lt;th&gt;Chance (1 em...)&lt;/th&gt;&lt;th&gt;% do prêmio bruto no Sorteio 1&lt;/th&gt;&lt;th&gt;% no Sorteio 2&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Sena (6)&lt;/td&gt;&lt;td&gt;15.890.700&lt;/td&gt;&lt;td&gt;30%&lt;/td&gt;&lt;td&gt;11%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Quina (5)&lt;/td&gt;&lt;td&gt;60.192&lt;/td&gt;&lt;td&gt;10%&lt;/td&gt;&lt;td&gt;9%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Quadra (4)&lt;/td&gt;&lt;td&gt;1.120&lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Terno (3)&lt;/td&gt;&lt;td&gt;60&lt;/td&gt;&lt;td&gt;4%&lt;/td&gt;&lt;td&gt;4%&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Acumulação&lt;/td&gt;&lt;td&gt;16% da arrecadação&lt;/td&gt;&lt;td colspan="2"&gt;Destinados ao Concurso Especial de Páscoa&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Repare no salto entre faixas: acertar 4 números é cerca de 54 vezes mais provável do que acertar 5. &lt;span class="post_bucket"&gt;E o melhor?&lt;/span&gt; Uma aposta maior pega várias faixas ao mesmo tempo, como você vai ver na prática mais abaixo.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como a planilha se atualiza sozinha pela API da CAIXA?&lt;/h2&gt;
&lt;p class="post_answer"&gt;O código em Apps Script consulta a API oficial de Dupla Sena da CAIXA (servicebus2.caixa.gov.br), compara o último concurso salvo na planilha com o último publicado e importa apenas os concursos que faltam. Na primeira execução ele baixa o histórico completo; nas seguintes, só os novos resultados, sem duplicar linha nenhuma.&lt;/p&gt;
&lt;p&gt;O endereço consultado é o portal oficial &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA&lt;/a&gt;, via &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/duplasena" rel="noopener noreferrer" target="_blank"&gt;servicebus2.caixa.gov.br/portaldeloterias/api/duplasena&lt;/a&gt;, com uma API alternativa como fallback quando a CAIXA recusa conexões seguidas — comportamento que observamos em testes reais. Tudo entra na aba "Todos os Jogos", com o concurso mais recente sempre na linha 2.&lt;/p&gt;
&lt;p&gt;Na primeira vez, o script baixa todos os concursos publicados desde 26/07/2001 de uma vez. Depois disso, a rotina é incremental: ele pergunta à API qual é o último concurso, compara com o que você já tem e baixa só a diferença, com uma pausa de 300 ms entre consultas para não sobrecarregar o serviço. Aqui no @CanalQb, validamos que esse intervalo evita o erro de "conexão recusada" que aparece quando se fazem chamadas em rajada.&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Instalação em 2 minutos: Extensões, Apps Script, colar o código e salvar. Nenhuma configuração extra.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Atualização incremental: só os concursos novos entram na planilha, mantendo o histórico íntegro.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Fallback automático: se a API principal falhar, uma segunda API responde pelos concursos.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; A API às vezes recusa chamadas seguidas; o script avisa e basta tentar de novo em alguns instantes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="post_h2"&gt;Quanto custa apostar em 6, 7, 8 ou mais dezenas na Dupla Sena?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A aposta simples (6 dezenas) custa R$ 3,00 e vale nos dois sorteios. Cada dezena extra multiplica as combinações de 6: 7 dezenas equivalem a 7 apostas (R$ 21,00), 10 dezenas a 210 apostas (R$ 630,00) e 15 dezenas a 5.005 apostas (R$ 15.015,00). O preço é sempre a combinação C(n;6) multiplicada por R$ 3,00.&lt;/p&gt;
&lt;p&gt;Mas tem um porém: quase ninguém calcula C(n;6) na cabeça, e é por isso que apostadores se assustam no caixa. A tabela oficial completa, que a planilha reproduz em cada aba de jogo, é esta:&lt;/p&gt;
&lt;table class="post_table"&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Dezenas marcadas&lt;/th&gt;&lt;th&gt;Combinações de 6 (C(n;6))&lt;/th&gt;&lt;th&gt;Custo (R$ 3,00 por simples)&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;6 dezenas&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;R$ 3,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;7 dezenas&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;R$ 21,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;8 dezenas&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;R$ 84,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;9 dezenas&lt;/td&gt;&lt;td&gt;84&lt;/td&gt;&lt;td&gt;R$ 252,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;10 dezenas&lt;/td&gt;&lt;td&gt;210&lt;/td&gt;&lt;td&gt;R$ 630,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;11 dezenas&lt;/td&gt;&lt;td&gt;462&lt;/td&gt;&lt;td&gt;R$ 1.386,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;12 dezenas&lt;/td&gt;&lt;td&gt;924&lt;/td&gt;&lt;td&gt;R$ 2.772,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;13 dezenas&lt;/td&gt;&lt;td&gt;1.716&lt;/td&gt;&lt;td&gt;R$ 5.148,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;14 dezenas&lt;/td&gt;&lt;td&gt;3.003&lt;/td&gt;&lt;td&gt;R$ 9.009,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;15 dezenas&lt;/td&gt;&lt;td&gt;5.005&lt;/td&gt;&lt;td&gt;R$ 15.015,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Lembre-se: cada uma dessas combinações concorre nos dois sorteios. É por isso que a planilha cria uma aba por tamanho de aposta, de "Jogo 06" a "Jogo 15" — o gerador de jogos precisa saber quantas dezenas ele está montando antes de calcular dezena e preço.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como usar a planilha passo a passo (menu item a item)?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Depois de colar o script, aparece o menu "Dupla Sena" na barra da planilha. A ordem recomendada é: primeira vez, "Atualizar Resultados" e depois "Gerar Jogos"; no dia a dia, apenas "Atualizar Tudo" ou marcar o checkbox da célula A6 de qualquer aba de jogo, que desmarca sozinho ao terminar.&lt;/p&gt;
&lt;p&gt;Cada item do menu tem um papel específico:&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Tudo (botão):&lt;/strong&gt; faz tudo de uma vez — importa resultados, recalcula estatísticas, gera o DashBoard e recria as abas de jogos. É o único comando de que você precisa depois da instalação.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Como usar (aba Inicio):&lt;/strong&gt; recria a aba de manual, com a explicação de menu, abas e conceitos que estou resumindo aqui.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Resultados:&lt;/strong&gt; baixa os concursos oficiais da API da CAIXA para a aba "Todos os Jogos". Sem histórico, nada mais funciona — é sempre o primeiro passo.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Recalcular Estatísticas:&lt;/strong&gt; reescreve a aba "Estatísticas" com base no histórico importado, incluindo frequência, atrasos, paridade e faixas oficiais.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar DashBoard:&lt;/strong&gt; recria a aba "DashBoard" com gráficos de frequência por dezena, pares x ímpares, faixas e paridade dos sorteios.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Gerar Jogos:&lt;/strong&gt; cria as abas "Jogo 06" a "Jogo 15", cada uma com 48 jogos: 10 QUENTE, 10 FRIO, 10 NEUTRO e a seção lilás JOGOS MISTOS com 18 jogos (Q+F, Q+N, F+Q, F+N, N+Q, N+F), mais os jogos MÉDIA, HARMÔNICA e FIBONACCI.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os jogos prontos para copiar com Ctrl+C e levar à lotérica, no formato "aba, tipo, dezenas".&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Deletar Todas as Abas (manter Inicio):&lt;/strong&gt; apaga tudo exceto o manual, para começar do zero. Pedirá confirmação antes.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Verificar Instalação:&lt;/strong&gt; mostra se as abas necessárias existem e o estado geral da planilha.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="post_bucket"&gt;Aqui está o detalhe que quase ninguém percebe:&lt;/span&gt; o checkbox da célula A6 instala um gatilho invisível que roda "Atualizar Tudo" a cada marcação. Ou seja, você atualiza histórico, estatísticas, dashboard e jogos com um clique só, de dentro da aba que você já está usando para conferir seus jogos.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que significam as estatísticas de QUENTE, NEUTRO e FRIO na aba Estatísticas?&lt;/h2&gt;
&lt;p class="post_answer"&gt;QUENTE, NEUTRO e FRIO são rótulos de ranking: as dezenas mais sorteadas do histórico ficam QUENTE, as menos sorteadas FRIO e as do meio NEUTRO. Cada concurso contribui com dois sorteios (Sorteio 1 e Sorteio 2), então a contagem é por sorteio, não por concurso.&lt;/p&gt;
&lt;p&gt;A aba "Estatísticas" vai muito além do ranking. Para cada dezena de 01 a 50 ela mostra frequência, probabilidade por sorteio, atraso atual, atraso médio e atraso máximo. Depois, blocos temáticos: soma das dezenas (média, mínima e máxima), amplitude, repetições do concurso anterior, quantidade de números primos e de Fibonacci por sorteio, distribuição por faixa de dezenas (01-10 até 41-50), por quadrante do volante (01-12, 13-25, 26-37 e 38-50) e a paridade de cada sorteio.&lt;/p&gt;
&lt;p&gt;Duas linhas merecem atenção especial. A primeira é o &lt;strong&gt;teste de aleatoriedade (chi²)&lt;/strong&gt;: com 50 dezenas, o valor crítico é 66,3 (5% de significância, 49 graus de liberdade). Quando o chi² calculado fica abaixo disso — como observamos no histórico da Dupla Sena —, a evidência estatística é de que as dezenas saem de forma uniforme, como esperado em um sorteio honesto. Tradução prática: nenhuma dezena é "mais sorteável" que outra, e o chi² é a prova matemática disso.&lt;/p&gt;
&lt;p&gt;A segunda é o aviso sobre &lt;strong&gt;atrasos&lt;/strong&gt;: a planilha lista os maiores atrasos atuais, mas é explícita em dizer que atraso NÃO aumenta a chance de a dezena sair. Cada sorteio é independente — uma dezena que há 40 concursos não sai tem exatamente a mesma probabilidade de qualquer outra. Este é o tipo de honestidade estatística que você também encontra no nosso guia sobre &lt;a href="https://www.canalqb.com.br/search?q=estatisticas" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loterias&lt;/a&gt;.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como ler as abas de jogo: Ac?, MÉDIA, HARMÔNICA, FIBONACCI e a célula verde?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Cada aba "Jogo NN" tem 48 jogos: 30 sorteados por tipo (10 QUENTE, 10 FRIO, 10 NEUTRO), 18 mistos (seção lilás JOGOS MISTOS: metade das dezenas de um pool + metade de outro, como Q+F e N+Q), 12 linhas extras de MÉDIA, HARMÔNICA e FIBONACCI, as colunas "Acertos S1" e "Acertos S2" e oito colunas de faixas calculadas por COMBIN (Sena, Quina, Quadra e Terno em cada sorteio). Escolhendo o concurso na célula C3, os dois sorteios preenchem as linhas 4 e toda a conferência é automática - os mistos entram nela como qualquer outro jogo.&lt;/p&gt;
&lt;p&gt;O funcionamento é este:&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Célula C3 (Escolha):&lt;/strong&gt; lista suspensa com os concursos do histórico. As dezenas dos dois sorteios preenchem F4:K4 e M4:R4 automaticamente via INDEX/MATCH.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Acertos S1 e S2:&lt;/strong&gt; contam quantas dezenas do jogo saíram em cada sorteio, via SUMPRODUCT com COUNTIF. Ficam vazios enquanto nenhum concurso estiver escolhido.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Célula verde:&lt;/strong&gt; formatação condicional que pinta de verde toda dezena que saiu no Sorteio 1 do concurso escolhido. É a leitura visual rápida de quais jogos "pegaram" o primeiro sorteio.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;MÉDIA (GERAL/QUENTE/FRIO/NEUTRO):&lt;/strong&gt; jogos formados pela média aritmética das dezenas de cada grupo — o "centro" estatístico do conjunto.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;HARMÔNICA:&lt;/strong&gt; a média harmônica pondera mais as dezenas menores (é o inverso da média dos inversos), gerando jogos puxados para a metade baixa do volante. Comparar MÉDIA com HARMÔNICA mostra duas referências opostas de "equilíbrio".&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;FIBONACCI:&lt;/strong&gt; jogos montados com dezenas da sequência de Fibonacci e suas variações (1, 2, 3, 5, 8, 13, 21, 34), completadas por frequência quando faltam dezenas.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Checkbox A6:&lt;/strong&gt; marque para rodar "Atualizar Tudo" sem sair da aba; ele desmarca sozinho ao terminar.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; junta os jogos de todas as abas em uma janela única com botão de copiar.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;span class="post_bucket"&gt;E aqui está o insight técnico que fecha o open loop do início:&lt;/span&gt; as colunas "S1 Sena/Quina/Quadra/Terno" e "S2 Sena/Quina/Quadra/Terno" usam a fórmula COMBIN(acertos; faixa) vezes COMBIN(dezenas menos acertos; 6 menos faixa). Um jogo de 8 dezenas contém 28 combinações de 6; se ele acertou 4 dezenas no Sorteio 1, a coluna "S1 Quadra" mostra em quantas dessas 28 combinações você garantiu os 4 pontos — e o mesmo cálculo se repete para Terno, Quina e, matematicamente impossível aqui, Sena. É assim que uma aposta maior vira várias premiações simultâneas, e é por isso que conferir um jogo de 15 dezenas "na mão" é inviável: 5.005 combinações vezes duas faixas de sorteio. A planilha faz isso em milissegundos, para cada uma das 42 linhas de jogo. Se você quer entender a base matemática, veja também nosso material sobre &lt;a href="https://www.canalqb.com.br/search?q=apps%20script" rel="noopener noreferrer" target="_blank"&gt;automação com Apps Script&lt;/a&gt;.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Vale a pena baixar esta planilha de Dupla Sena em 2026?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Vale se você quer conferir, analisar e organizar apostas com dados oficiais atualizados, sem trabalho manual. A planilha automatiza histórico, estatísticas, geração e conferência de jogos nos dois sorteios — mas nada nela prevê resultados, porque loteria é jogo de azar e cada sorteio é independente.&lt;/p&gt;
&lt;p&gt;Fizemos a ferramenta para resolver três dores reais: digitar resultados à mão (resolvido pela API da CAIXA), calcular o preço de apostas maiores (resolvido pela tabela C(n;6) por R$ 3,00) e conferir dezenas acertadas faixa a faixa (resolvido pelo COMBIN nas colunas S1/S2). O resto — escolher o jogo, respeitar o orçamento, jogar por diversão — continua sendo com você. Para mais ferramentas do mesmo tipo, confira nosso material sobre &lt;a href="https://www.canalqb.com.br/search?q=planilha%20loteria" rel="noopener noreferrer" target="_blank"&gt;planilhas de loteria&lt;/a&gt; aqui no blog.&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como fazer a planilha de Dupla Sena buscar os resultados da CAIXA sozinha?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Abra Extensões, Apps Script, cole o código e salve. Depois use o menu "Dupla Sena" e clique em "Atualizar Resultados": na primeira vez o histórico completo é importado, e nas seguintes só os concursos novos. O tutorial completo está em &lt;a href="https://www.canalqb.com.br/search?q=planilha%20duplasena" rel="noopener noreferrer" target="_blank"&gt;planilha Dupla Sena&lt;/a&gt; aqui no blog.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha de Dupla Sena aumenta a chance de ganhar na loteria?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. A chance de acertar a Sena em cada sorteio é de 1 em 15.890.700, e estatísticas como QUENTE, FRIO e atraso são apenas retratos do passado, sem valor preditivo. A planilha serve para conferir, organizar e entender o jogo — leia mais sobre &lt;a href="https://www.canalqb.com.br/search?q=probabilidade" rel="noopener noreferrer" target="_blank"&gt;probabilidade&lt;/a&gt; no blog.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Por que a mesma aposta de Dupla Sena concorre em dois sorteios?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;É a regra oficial da modalidade: cada concurso tem dois sorteios de 6 dezenas (01 a 50) e o bilhete vale nos dois, com faixas de premiação independentes. A planilha reflete isso com as colunas "Acertos S1" e "Acertos S2" separadas.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quanto custa apostar em mais de 6 dezenas na Dupla Sena?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O preço é a combinação C(n;6) multiplicada por R$ 3,00: 7 dezenas custam R$ 21,00, 8 custam R$ 84,00 e 15 chegam a R$ 15.015,00, porque equivalem a 5.005 apostas simples. A tabela de referência dentro de cada aba de jogo calcula isso automaticamente.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que significam os jogos MÉDIA, HARMÔNICA e FIBONACCI nas abas de jogo?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;São formas diferentes de montar jogos "equilibrados": a média aritmética puxa para o centro do volante, a harmônica pondera mais as dezenas baixas e a Fibonacci usa a sequência clássica 1, 2, 3, 5, 8, 13, 21, 34 completada por frequência. Nenhuma delas prevê sorteios — são apenas critérios de composição.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha de Dupla Sena funciona no Excel ou só no Google Sheets?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O código foi feito para Google Sheets, porque a atualização automática depende do Apps Script e da função UrlFetchApp para consultar a API da CAIXA. No Excel seria preciso reescrever a parte de conexão com a API — veja mais sobre &lt;a href="https://www.canalqb.com.br/search?q=google%20sheets" rel="noopener noreferrer" target="_blank"&gt;Google Sheets&lt;/a&gt; no blog.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Como fazer a planilha de Dupla Sena buscar os resultados da CAIXA sozinha?","acceptedAnswer":{"@type":"Answer","text":"Abra Extensões, Apps Script, cole o código e salve. Depois use o menu Dupla Sena e clique em Atualizar Resultados: na primeira vez o histórico completo é importado, e nas seguintes só os concursos novos."}},{"@type":"Question","name":"A planilha de Dupla Sena aumenta a chance de ganhar na loteria?","acceptedAnswer":{"@type":"Answer","text":"Não. A chance de acertar a Sena em cada sorteio é de 1 em 15.890.700, e estatísticas como QUENTE, FRIO e atraso são apenas retratos do passado, sem valor preditivo."}},{"@type":"Question","name":"Por que a mesma aposta de Dupla Sena concorre em dois sorteios?","acceptedAnswer":{"@type":"Answer","text":"É a regra oficial da modalidade: cada concurso tem dois sorteios de 6 dezenas de 01 a 50 e o bilhete vale nos dois, com faixas de premiação independentes."}},{"@type":"Question","name":"Quanto custa apostar em mais de 6 dezenas na Dupla Sena?","acceptedAnswer":{"@type":"Answer","text":"O preço é a combinação C(n;6) multiplicada por R$ 3,00: 7 dezenas custam R$ 21,00, 8 custam R$ 84,00 e 15 chegam a R$ 15.015,00, porque equivalem a 5.005 apostas simples."}},{"@type":"Question","name":"O que significam os jogos MÉDIA, HARMÔNICA e FIBONACCI nas abas de jogo?","acceptedAnswer":{"@type":"Answer","text":"São formas diferentes de montar jogos equilibrados: a média aritmética puxa para o centro do volante, a harmônica pondera mais as dezenas baixas e a Fibonacci usa a sequência clássica 1, 2, 3, 5, 8, 13, 21, 34 completada por frequência."}},{"@type":"Question","name":"A planilha de Dupla Sena funciona no Excel ou só no Google Sheets?","acceptedAnswer":{"@type":"Answer","text":"O código foi feito para Google Sheets, porque a atualização automática depende do Apps Script e da função UrlFetchApp para consultar a API da CAIXA."}}]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div class="post_footer_refs"&gt;
  &lt;h2&gt;&#128218; Fontes e Referências&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — Dupla Sena (regras oficiais e resultados)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/duplasena" rel="noopener noreferrer" target="_blank"&gt;API oficial de Dupla Sena da CAIXA (servicebus2)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://developers.google.com/apps-script" rel="noopener noreferrer" target="_blank"&gt;Documentação oficial do Google Apps Script&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-book" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://www.canalqb.com.br/search?q=loterias" rel="noopener noreferrer" target="_blank"&gt;Mais conteúdo de loterias no canalqb.com.br&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Dupla Sena que se Atualiza Sozinha (2026)",
  "description":"Planilha de Dupla Sena que busca resultados sozinha pela API oficial da CAIXA, com estatísticas por sorteio, gerador de jogos QUENTE/FRIO/NEUTRO e conferência automática nos dois sorteios.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-09",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="post_cta"&gt;
  &lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Baixe a planilha de Dupla Sena que se atualiza sozinha&lt;/strong&gt; e acompanhe tudo no canal
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.85em; margin: 6px 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;

&lt;!--===== BOTÃO DE COMPRA @CanalQb — Adenda v9 =====--&gt;
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Comprar a planilha" href="https://canalqb.com.br/?c=DuplaSena" onmouseout="this.style.background='#28a745'" onmouseover="this.style.background='#218838'" rel="noopener" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-cart-shopping" style="margin-right: 10px;"&gt;&lt;/i&gt;Comprar
  &lt;/a&gt;
  &lt;p style="color: #555555; font-size: 0.85em; margin: 12px 0px 0px;"&gt;Leve a planilha completa, com histórico, estatísticas, gerador e conferência nos dois sorteios.&lt;/p&gt;
&lt;/div&gt;
&lt;!--===== FIM BOTÃO DE COMPRA =====--&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikLCGwOzcetzkK3ZZ3C10mC29fPmy9WXQT6EMIjDTQlIqS5CvvILtVK5WDxzAtrskRGGqyZrlsSJjkO7tLzsKPLlv0m47FI6cjUDxWPEx0AlgXEtTofHt2hooqQA7uFH4ykLo-FVJx6a34fDm_PYBbvyVYoQ4Jy7-njMNZKYY6TZANq504fikraQwzNDzv/s72-c/image.png" width="72"/></item><item><title> Achar a Planilha Mestre do Google Apps Script em 5 Passos</title><link>https://canalqb.blogspot.com/2026/10/achar-planilha-mestre-do-google-apps.html</link><category>acionadores</category><category>Automação</category><category>canalqb</category><category>getActiveSpreadsheet</category><category>google apps script</category><category>Google Sheets</category><category>planilha mestre</category><category>script vinculado</category><category>summary of failures</category><category>troubleshooting</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Tue, 13 Oct 2026 21:14:44 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-9063989217192267894</guid><description>&lt;!--===== INÍCIO DO POST =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLTsKkkb5wScdoSvstRR_OnVh9nkL4NvmfEG-eDqHUizCP8U_ykRX-zfZIaDn8PSF1nO5XsruLhRLNEKuniTQh9HsF14UMZSCAY9B02HhsjtoNL5lsz9fUYn8qBstAhbgq0cgSMdpNR7jcIdcFI4b5cp9seC_GXQ-RbioUhp-oKYWAriIQDh2Q7l8c-OC/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Achar a Planilha Mestre do Google Apps Script em 5 Passos&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_wrap{max-width:860px;margin:0 auto;padding:0 16px;color:#555555;line-height:1.75;font-size:17px}
.post_cqb_wrap h2{color:#333333;font-size:1.45em;line-height:1.3;margin:40px 0 14px;display:flex;align-items:flex-start;gap:10px}
.post_cqb_wrap h3{color:#333333;font-size:1.15em;margin:24px 0 8px}
.post_cqb_wrap strong{color:#333333}
.post_cqb_wrap a{color:#2196f3}
.post_cqb_wrap a:focus-visible,.post_cqb_faq_question:focus-visible,.post_copy_btn:focus-visible{outline:3px solid #2196f3;outline-offset:2px}
.post_cqb_badge{display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:20px;background:rgba(33,150,243,.1);color:#333333;font-size:.9em;margin:10px 0}
.post_cqb_tldr{border-left:5px solid #28a745;background:rgba(40,167,69,.08);padding:16px 20px;border-radius:8px;margin:20px 0}
.post_cqb_tldr ul{margin:8px 0 0;padding-left:20px}
.post_cqb_tldr li{margin:6px 0}
.post_cqb_quickfix,.post_cqb_erros{border:1px solid #e0e0e0;border-radius:10px;padding:8px 20px 16px;margin:30px 0}
.post_cqb_quickfix_list{list-style:none;padding:0;margin:10px 0}
.post_cqb_quickfix_list li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px dashed #ddd}
.post_cqb_quickfix_list li i{margin-top:6px;flex-shrink:0}
.post_cqb_erro_card{border-left:5px solid #d32f2f;background:rgba(211,47,47,.06);padding:4px 18px 10px;border-radius:8px;margin:18px 0}
.post_cqb_codewrap{position:relative;margin:16px 0}
.post_cqb_codeblock{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',Consolas,monospace!important;padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;font-size:.85em;line-height:1.6;white-space:pre;text-shadow:none!important}
.post_cqb_codeblock code{background:transparent!important;color:#f8f8f2!important}
.post_copy_btn{position:absolute;top:8px;right:8px;min-height:44px;min-width:44px;border:0;border-radius:6px;background:#28a745;color:#fff;cursor:pointer;padding:0 12px}
.post_cqb_table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.92em;display:block;overflow-x:auto}
.post_cqb_table th,.post_cqb_table td{border:1px solid #ddd;padding:10px 12px;text-align:left;vertical-align:top}
.post_cqb_table th{background:rgba(40,167,69,.12);color:#333333}
.post_cqb_faq_container{margin:30px 0}
.post_cqb_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_cqb_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333333;min-height:44px}
.post_cqb_faq_question:hover{background:#f0f0f0}
.post_cqb_faq_answer{padding:15px;background:#fff;color:#555555;line-height:1.6}
.post_cqb_faq_item[open] .post_cqb_faq_question{background:rgba(40,167,69,.1);color:#28a745}
.post_cqb_cta{text-align:center;border:2px solid #28a745;border-radius:12px;padding:22px 16px;margin:36px 0}
.post_cqb_refs li{margin:8px 0;word-break:break-word}
.post_cqb_toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:10px 18px;border-radius:8px;z-index:9999;font-size:.9em}
@media (prefers-color-scheme:dark){
:root:not([data-theme="light"]) .post_cqb_wrap{color:#d0d0d0}
:root:not([data-theme="light"]) .post_cqb_wrap h2,:root:not([data-theme="light"]) .post_cqb_wrap h3,:root:not([data-theme="light"]) .post_cqb_wrap strong,:root:not([data-theme="light"]) .post_cqb_table th{color:#f2f2f2}
:root:not([data-theme="light"]) .post_cqb_faq_question,:root:not([data-theme="light"]) .post_cqb_faq_answer{background:#222;color:#e6e6e6}
:root:not([data-theme="light"]) .post_cqb_table th,:root:not([data-theme="light"]) .post_cqb_table td{border-color:#444}
}
@media (max-width:768px){.post_cqb_wrap{font-size:16px}.post_cqb_wrap h2{font-size:1.3em}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
&lt;/style&gt;

&lt;div class="post_cqb_wrap"&gt;

&lt;p class="post_cqb_badge"&gt;&lt;i class="fas fa-clock" style="color: #2196f3;"&gt;&lt;/i&gt; Leitura: ~18 min&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;p&gt;&lt;strong&gt;&lt;i class="fas fa-bolt" style="color: #28a745;"&gt;&lt;/i&gt; TL;DR:&lt;/strong&gt;&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;O e-mail “Summary of failures for Google Apps Script” costuma citar o nome do projeto e, se o script for vinculado a Sheets, Docs ou Forms, traz também o link do arquivo: comece por ele.&lt;/li&gt;
    &lt;li&gt;Uma função curta com getActiveSpreadsheet(), getName(), getId() e getUrl() entrega nome, ID e URL da planilha mestre em segundos, direto no Registro de execução.&lt;/li&gt;
    &lt;li&gt;Se a função retornar null, o script é independente: use as propriedades do script, os acionadores e a busca no Drive para chegar ao arquivo certo.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;!--
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo de @CanalQb — Achar a Planilha Mestre do Google Apps Script em 5 Passos" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;
--&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;O e-mail de falha do Apps Script avisa que algo quebrou e esconde o quê.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Ele chega sem alarde, geralmente de madrugada, com a mesma frase de sempre sobre um script que não terminou com sucesso. Para quem tem um único projeto, isso é um incômodo. Para quem acumulou anos de automações, é um quebra-cabeça: qual dos seus projetos, ligado a qual planilha, falhou desta vez?&lt;/p&gt;
&lt;p&gt;Aqui no @CanalQb, a regra que seguimos é simples: se um script falha, ele precisa dizer a quem pertence. Neste post você vai aprender a descobrir a planilha mestre de qualquer projeto, entender cada linha da função que faz isso e, no final, evoluir o script para que ele mesmo mande o endereço do arquivo no próprio aviso de erro. Guarde esta pergunta: o que acontece quando o script não está vinculado a nenhuma planilha? A resposta vem na sétima seção.&lt;/p&gt;

&lt;section aria-label="Soluções rápidas" class="post_cqb_quickfix"&gt;
  &lt;h2&gt;&lt;i class="fas fa-bolt" style="color: #ffc107;"&gt;&lt;/i&gt; Quais são as soluções rápidas para achar a planilha de um script que falhou?&lt;/h2&gt;
  &lt;p&gt;A busca costuma terminar em minutos quando você segue uma ordem fixa: ler o e-mail, localizar o projeto pelo nome, rodar uma função de diagnóstico e só então mexer em acionadores. Estes são os atalhos para os cinco problemas mais comuns, cada um ligado ao catálogo completo mais abaixo.&lt;/p&gt;
  &lt;ul class="post_cqb_quickfix_list"&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Não sei qual é a planilha:&lt;/strong&gt; abra o e-mail e procure o link do arquivo; ele só aparece quando o script é vinculado. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Não sei qual é o projeto:&lt;/strong&gt; copie o nome citado no e-mail e procure em script.google.com/home. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;getActiveSpreadsheet() devolveu null:&lt;/strong&gt; o script é independente; abra o arquivo pelo ID com openById. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;Authorization is required:&lt;/strong&gt; execute a função uma vez no editor e aprove as permissões. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-screwdriver-wrench" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;&lt;strong&gt;O e-mail não para de chegar:&lt;/strong&gt; corrija ou apague o acionador que está falhando. &lt;a href="#erros-solucoes"&gt;ver passo completo&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/section&gt;

&lt;h2 id="por-que-nao-diz"&gt;&lt;i class="fas fa-envelope-open-text" style="color: #2196f3;"&gt;&lt;/i&gt; Por que o e-mail “Summary of failures” não diz qual é a planilha mestre?&lt;/h2&gt;
&lt;p&gt;O e-mail existe para avisar que um acionador falhou, não para inventariar seus arquivos. Ele costuma trazer o nome do projeto, a função, a mensagem de erro e o tipo de acionador. A planilha só ganha um link quando o script é vinculado a ela; fora disso, você precisa de método para chegar até ela.&lt;/p&gt;
&lt;p&gt;Funciona assim na prática. Ao longo de anos você criou automações para tudo: um disparador de e-mails, um robô que atualiza cotações, uma rotina que organiza pedidos. Cada uma nasceu em um momento diferente, quase sempre pelo menu Extensões, e muitas ficaram com o nome padrão “Projeto sem título”. Um acionador por tempo, criado numa tarde esquecida, continua rodando de madrugada, mesmo que ninguém lembre mais por quê.&lt;/p&gt;
&lt;p&gt;Num dia comum chega o aviso. Ele fala em falha, mostra uma função chamada atualizarDados e uma mensagem sobre autorização. O problema é que você tem dezenas de projetos e pelo menos cinco deles possuem uma função com esse nome. Abrir um por um, na esperança de reconhecer o código, é a pior estratégia: consome a tarde inteira e ainda existe o risco de editar o projeto errado.&lt;/p&gt;
&lt;p&gt;O raciocínio correto inverte o problema. Em vez de perguntar “qual projeto é esse?”, pergunte “qual arquivo esse projeto manipula?”. Quando você descobre a planilha mestre, aquela que guarda os dados que o script lê e altera, o resto se resolve sozinho: o editor do script está a dois cliques dali, o dono do arquivo aparece nas permissões e o histórico de versões mostra quando algo mudou. É isso que as próximas seções constroem, passo a passo, até o script conseguir se apresentar sozinho quando quebrar.&lt;/p&gt;
&lt;p&gt;Uma limitação importante: nenhum método deste post funciona se você não tiver acesso à conta Google que recebe o e-mail. As notificações vão para quem criou o acionador, e só essa conta enxerga o projeto e seus acionadores. Se o aviso chegou numa conta de trabalho antiga, o primeiro passo é recuperar o acesso, não escrever código.&lt;/p&gt;

&lt;h2 id="tipos-de-script"&gt;&lt;i class="fas fa-sitemap" style="color: #2196f3;"&gt;&lt;/i&gt; O que é uma planilha mestre e como o tipo de script muda a busca?&lt;/h2&gt;
&lt;p&gt;Planilha mestre é o arquivo que serve de base para o script: onde ficam os dados processados ou onde o projeto foi criado. Há dois tipos de projeto, vinculado e independente, e o tipo decide qual caminho de busca funciona. Identificar o tipo vem antes de qualquer diagnóstico.&lt;/p&gt;
&lt;p&gt;Um script vinculado (container-bound) nasce dentro de uma planilha, documento, apresentação ou formulário, pelo menu Extensões. Esse arquivo é chamado de contêiner. Segundo a explicação publicada por um autor especializado em permissões, o script vinculado não aparece na listagem do Drive, não pode ser desvinculado do arquivo e herda a lista de acesso do contêiner: quem edita a planilha pode editar o script. Já o script independente (standalone) é um projeto próprio, que aparece entre seus arquivos do Drive e abre outros arquivos por ID.&lt;/p&gt;
&lt;p&gt;Essa diferença muda tudo na hora de achar a planilha. No vinculado, a função getActiveSpreadsheet() devolve o arquivo na hora. No independente, não existe planilha ativa, e a documentação oficial é clara ao dizer que o método devolve null quando não há planilha. Nesse caso o vínculo entre projeto e planilha está escrito dentro do código (um openById) ou guardado em alguma propriedade.&lt;/p&gt;
&lt;table class="post_cqb_table"&gt;
  &lt;thead&gt;&lt;tr&gt;&lt;th&gt;Tipo de script&lt;/th&gt;&lt;th&gt;Onde ele aparece&lt;/th&gt;&lt;th&gt;getActiveSpreadsheet()&lt;/th&gt;&lt;th&gt;Como achar a planilha mestre&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td&gt;Vinculado (container-bound)&lt;/td&gt;&lt;td&gt;Dentro do arquivo, em Extensões &amp;gt; Apps Script&lt;/td&gt;&lt;td&gt;Retorna a planilha vinculada&lt;/td&gt;&lt;td&gt;Rodar a função de diagnóstico ou abrir o arquivo pelo link do e-mail&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td&gt;Independente (standalone)&lt;/td&gt;&lt;td&gt;Em script.google.com/home e entre os arquivos do Drive&lt;/td&gt;&lt;td&gt;Retorna null&lt;/td&gt;&lt;td&gt;Procurar openById no código, propriedades do script, acionadores&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Existe ainda uma armadilha de sentido único. Uma discussão técnica no fórum de desenvolvedores do Google concluiu que, a partir do ID de uma planilha, não há caminho confiável pelas APIs para descobrir o ID do script vinculado a ela: o contêiner não conhece o script, e scripts vinculados não aparecem como filhos do arquivo no Drive. A rota segura é sempre do script para a planilha, nunca o contrário, e é por isso que o script precisa carregar a própria etiqueta.&lt;/p&gt;

&lt;h2 id="anatomia-do-email"&gt;&lt;i class="fas fa-magnifying-glass" style="color: #2196f3;"&gt;&lt;/i&gt; O que o e-mail “Summary of failures” revela antes de qualquer código?&lt;/h2&gt;
&lt;p&gt;Antes de abrir o editor, o e-mail já entrega pistas valiosas: o nome do projeto, a função que falhou, a mensagem de erro, o tipo de acionador e os horários. A documentação oficial acrescenta que, se o script estiver vinculado a Sheets, Docs ou Forms, o e-mail inclui o link do arquivo.&lt;/p&gt;
&lt;p&gt;Um e-mail de falha antigo, publicado em um blog como pedido de ajuda, mostra a estrutura típica: uma frase dizendo qual script falhou, um link para configurar os acionadores e uma tabela com as colunas Start, Function, Error Message, Trigger e End. Cada coluna é uma pista diferente. A coluna Function diz o nome da função; a coluna Trigger revela se foi um acionador por tempo, de edição ou de formulário; a coluna Start dá o horário, que você vai cruzar com a lista de execuções do projeto.&lt;/p&gt;
&lt;p&gt;As mensagens de erro mais comuns, segundo um guia especializado em Google Workspace, são: tempo máximo de execução excedido, uso excessivo de tempo de processamento em um dia e falta de autorização. Cada uma aponta para uma causa diferente. Falta de autorização costuma indicar que o script ganhou um serviço novo e ninguém aprovou as permissões. Tempo excedido sugere um laço grande demais ou uma planilha que cresceu além do esperado.&lt;/p&gt;
&lt;p&gt;Há ainda um detalhe curioso: as fontes divergem sobre o endereço de quem envia. O exemplo da documentação oficial mostra um remetente que começa com noreply, enquanto um guia independente cita outro formato. Como não dá para confirmar qual vale hoje, o critério seguro é filtrar no Gmail por apps-scripts-notifications e conferir se o domínio termina em google.com. E atenção a uma limitação: relatos antigos mostram que o link de configuração do e-mail às vezes responde com erro 403, especialmente se você estiver logado em outra conta no navegador. Se isso acontecer, abra o link numa janela anônima, entrando apenas com a conta correta.&lt;/p&gt;

&lt;h2 id="achar-projeto"&gt;&lt;i class="fas fa-folder-open" style="color: #2196f3;"&gt;&lt;/i&gt; Como localizar o projeto certo em script.google.com/home?&lt;/h2&gt;
&lt;p&gt;Use o nome do projeto citado no e-mail para pesquisar em script.google.com/home, abra o projeto e confira as abas Execuções e Acionadores. O horário da falha liga o e-mail à execução exata. Em cinco passos você sai do aviso genérico até o código culpado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 1: anote três dados do e-mail.&lt;/strong&gt; Copie o nome do projeto, o nome da função e o horário da falha. Esses três dados formam a “impressão digital” da falha. Sem o horário, duas funções com o mesmo nome ficam indistinguíveis; sem o nome do projeto, a busca vira loteria. Quando der certo, você terá uma anotação simples de três linhas. Erro comum: confiar na memória e voltar ao e-mail cinco vezes.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 2: abra script.google.com/home com a conta certa.&lt;/strong&gt; O endereço &lt;a href="https://script.google.com/home?hl=pt-br" rel="noopener noreferrer" target="_blank"&gt;script.google.com/home&lt;/a&gt; lista seus projetos. Esse passo existe porque o painel mostra apenas os projetos da conta logada, então a conta errada devolve uma lista vazia ou incompleta. Resultado esperado: sua lista de projetos, com nomes e datas de modificação. Erro comum: estar logado em várias contas e achar que o projeto sumiu; troque de conta no canto superior direito.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 3: pesquise pelo nome do projeto.&lt;/strong&gt; Use a barra de busca do painel. Se o projeto estiver como “Projeto sem título”, ordene por data de modificação e abra os mais antigos primeiro, pois acionadores esquecidos quase sempre vivem em projetos que ninguém edita há meses. Resultado esperado: um ou poucos projetos candidatos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 4: confira Execuções.&lt;/strong&gt; No menu lateral do projeto, procure a seção de execuções (o rótulo pode variar conforme a versão da interface). Ela lista cada execução com função, horário e status. Procure a linha cujo horário coincide com o do e-mail. Esse passo confirma que você abriu o projeto certo antes de mexer em qualquer coisa. Se nenhuma execução bater, o candidato está errado: volte ao passo 3.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 5: confira Acionadores.&lt;/strong&gt; Na seção de acionadores você vê quais funções rodam sozinhas, em que frequência e se alguma está falhando. É aqui que você vai agir no final do post. Resultado esperado: uma lista com a função do e-mail e seu tipo de evento. Erro comum: apagar o acionador antes de descobrir a planilha; apague só depois de entender o que o script faz.&lt;/p&gt;

&lt;h2 id="funcao-linha-a-linha"&gt;&lt;i class="fas fa-code" style="color: #2196f3;"&gt;&lt;/i&gt; Como a função descobrirPlanilhaMestre funciona linha a linha?&lt;/h2&gt;
&lt;p&gt;A função pede ao Apps Script a planilha ativa e registra seu nome, ID e URL no log. Em um script vinculado, esses três valores identificam o arquivo mestre sem ambiguidade. Se não houver planilha ativa, ela avisa em vez de quebrar.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;function descobrirPlanilhaMestre() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();

  if (!ss) {
    Logger.log("Nenhuma planilha vinculada: este script parece ser independente.");
    return;
  }

  Logger.log("Nome: " + ss.getName());
  Logger.log("ID: " + ss.getId());
  Logger.log("URL: " + ss.getUrl());
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;function descobrirPlanilhaMestre() {&lt;/strong&gt; declara a função. O nome importa porque é ele que você escolhe no menu suspenso do editor antes de clicar em Executar. Dê um nome descritivo; funções chamadas teste1 viram problema daqui a seis meses.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;const ss = SpreadsheetApp.getActiveSpreadsheet();&lt;/strong&gt; pede o arquivo ativo ao serviço SpreadsheetApp, o ponto de entrada para o Google Sheets. A variável ss guarda um objeto Spreadsheet (ou null). Em script vinculado, o objeto aponta para o arquivo ao qual o projeto está preso, mesmo quando a execução vem de um acionador por tempo, sem ninguém com a planilha aberta.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;if (!ss) { ... return; }&lt;/strong&gt; é a cláusula de guarda. O ponto de exclamação significa “não existe”; se ss for null, a função registra o aviso e termina. Sem ela, a linha seguinte tentaria chamar um método em null e geraria um erro confuso (veja o primeiro card de erros).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ss.getName()&lt;/strong&gt; devolve o nome visível do arquivo, o mesmo do topo da planilha. &lt;strong&gt;ss.getId()&lt;/strong&gt; devolve o identificador único, que também é o trecho da URL entre /d/ e /edit. &lt;strong&gt;ss.getUrl()&lt;/strong&gt; devolve o endereço completo, pronto para colar no navegador. Os três juntos têm propósitos diferentes: o nome é para humanos, o ID é para código e a URL é para abrir o arquivo com um clique.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Logger.log(...)&lt;/strong&gt; escreve no Registro de execução. Para rodar: escolha a função no seletor, clique em Executar, aprove as permissões na primeira vez e abra o Registro de execução. A saída esperada tem este formato (valores de exemplo):&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;Nome: Controle de Vendas 2026
ID: 1AbCdEfGhIjKlMnOpQrStUvWxYz0123456789
URL: https://docs.google.com/spreadsheets/d/1AbCdEfGhIjKlMnOpQrStUvWxYz0123456789/edit&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Erro comum: o log aparecer vazio porque você executou outra função do seletor. Confira o nome na barra antes de clicar.&lt;/p&gt;

&lt;h2 id="diagnostico-completo"&gt;&lt;i class="fas fa-stethoscope" style="color: #2196f3;"&gt;&lt;/i&gt; Como montar um diagnóstico completo do projeto, indo além do nome da planilha?&lt;/h2&gt;
&lt;p&gt;Estenda a função para registrar também o ID do próprio script, o tipo do projeto, as abas da planilha e todos os acionadores. Assim você sai com um retrato completo em uma única execução, útil para comparar projetos parecidos.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;function diagnosticoDoProjeto() {
  const info = {
    scriptId: ScriptApp.getScriptId(),
    tipo: "",
    planilha: null,
    gatilhos: []
  };

  const ss = SpreadsheetApp.getActiveSpreadsheet();

  if (ss) {
    info.tipo = "vinculado (container-bound)";
    info.planilha = {
      nome: ss.getName(),
      id: ss.getId(),
      url: ss.getUrl(),
      abas: ss.getSheets().map(aba =&amp;gt; aba.getName())
    };
    try {
      info.planilha.dono = ss.getOwner() ? ss.getOwner().getEmail() : "indisponível";
    } catch (erro) {
      info.planilha.dono = "sem permissão para ler";
    }
  } else {
    info.tipo = "independente (standalone)";
  }

  ScriptApp.getProjectTriggers().forEach(t =&amp;gt; {
    info.gatilhos.push({
      funcao: t.getHandlerFunction(),
      evento: String(t.getEventType()),
      origem: String(t.getTriggerSource()),
      origemId: t.getTriggerSourceId()
    });
  });

  Logger.log(JSON.stringify(info, null, 2));
  return info;
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;ScriptApp.getScriptId()&lt;/strong&gt; devolve o ID do projeto de script, não o da planilha. Esse número resolve um problema clássico: você abre o editor, copia o ID do projeto e sabe exatamente qual deles gerou o aviso. Ele aparece na URL do editor e em Configurações do projeto.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O objeto info&lt;/strong&gt; é uma ficha que você preenche aos poucos. Reunir tudo em um objeto e imprimir uma vez só com JSON.stringify(info, null, 2) gera uma saída indentada, fácil de ler no log e de copiar para uma anotação.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ss.getSheets().map(...)&lt;/strong&gt; percorre todas as abas e devolve só os nomes. Vale como confirmação visual: se as abas se chamam Pedidos e Estoque, você já sabe de que negócio o arquivo trata. A seta (a notação com igual e maior) é uma função curta escrita em uma linha.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;O bloco try/catch&lt;/strong&gt; em volta de getOwner() existe porque o dono pode não ser acessível: arquivos em unidades compartilhadas ou sob política de administrador podem devolver vazio ou erro. Em vez de derrubar o diagnóstico inteiro, a função registra “sem permissão para ler” e segue em frente.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ScriptApp.getProjectTriggers()&lt;/strong&gt; lista todos os acionadores do projeto. Para cada um, getHandlerFunction() diz qual função roda, getEventType() diz o tipo de evento e getTriggerSource() diz a origem. O getTriggerSourceId() pode trazer o ID do arquivo que dispara acionadores de edição ou de abertura, e costuma vir vazio nos acionadores por tempo. Resultado esperado: um JSON com a planilha e uma lista de acionadores. Limitação: o diagnóstico só enxerga acionadores da conta que executa a função.&lt;/p&gt;

&lt;h2 id="script-independente"&gt;&lt;i class="fas fa-link-slash" style="color: #2196f3;"&gt;&lt;/i&gt; E se o script for independente e getActiveSpreadsheet() devolver null?&lt;/h2&gt;
&lt;p&gt;Quando o resultado é null, o projeto não está preso a uma planilha. Procure openById no código, confira as propriedades do script, olhe a origem dos acionadores e, como último recurso, busque pelo nome no Drive. O vínculo existe, só está escondido.&lt;/p&gt;
&lt;p&gt;A primeira pista é o próprio código. Abra cada arquivo do projeto e procure os termos openById, getFileById e openByUrl. Quase todo script independente que mexe em planilha usa um deles, e o argumento é o ID do arquivo. Copie esse ID e monte a URL assim: https://docs.google.com/spreadsheets/d/ID/edit. Se o ID estiver numa constante no topo do arquivo, melhor ainda.&lt;/p&gt;
&lt;p&gt;A segunda pista são as Propriedades do script, um espaço de armazenamento que sobrevive entre execuções. Muita gente guarda ali o ID para não deixá-lo exposto no código. O padrão recomendado é este:&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;function definirPlanilhaMestre() {
  PropertiesService.getScriptProperties()
    .setProperty("PLANILHA_MESTRE_ID", "COLE_O_ID_AQUI");
}

function abrirPlanilhaMestre() {
  const id = PropertiesService.getScriptProperties()
    .getProperty("PLANILHA_MESTRE_ID");

  if (!id) {
    throw new Error("PLANILHA_MESTRE_ID não definido nas propriedades do script.");
  }
  return SpreadsheetApp.openById(id);
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;A função definirPlanilhaMestre() roda uma única vez, grava o ID e nunca mais é necessária. A função abrirPlanilhaMestre() lê o valor, valida e abre o arquivo; se a propriedade estiver ausente, ela lança um erro com mensagem clara, o que é muito melhor do que um null silencioso. Substitua em todo o projeto as chamadas diretas a getActiveSpreadsheet() por abrirPlanilhaMestre() e o script passa a funcionar tanto vinculado quanto independente.&lt;/p&gt;
&lt;p&gt;A terceira pista é a busca no Drive, para quando o código não ajuda:&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;function buscarPlanilhasPorNome(trecho) {
  const consulta = "mimeType = 'application/vnd.google-apps.spreadsheet' and title contains '" + trecho + "'";
  const arquivos = DriveApp.searchFiles(consulta);

  while (arquivos.hasNext()) {
    const arq = arquivos.next();
    Logger.log(arq.getName() + " | " + arq.getId() + " | " + arq.getUrl());
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;A consulta filtra apenas planilhas do Google e nomes que contenham o trecho informado. Não passe apóstrofos no trecho, pois eles quebram a consulta, e saiba que a função exige permissão de acesso ao Drive. Para chamá-la, crie um wrapper sem parâmetros que passe o trecho desejado, já que o botão Executar não permite informar argumentos.&lt;/p&gt;

&lt;h2 id="script-se-identifica"&gt;&lt;i class="fas fa-id-badge" style="color: #2196f3;"&gt;&lt;/i&gt; Como fazer o script se identificar sozinho quando falhar?&lt;/h2&gt;
&lt;p&gt;Envolva suas rotinas em uma função que captura o erro e envia um e-mail com o nome da rotina, o ID do script e a URL da planilha. Registre também o ID do script como metadado dentro da própria planilha. Assim a pergunta “qual é o projeto?” deixa de existir.&lt;/p&gt;
&lt;p&gt;Esta é a evolução da história: você encontrou a planilha uma vez, mas quer nunca mais repetir a caçada. O padrão a seguir é um envelope de erro. Em vez de chamar atualizarDados() direto no acionador, você chama executarComAviso("atualizarDados", atualizarDados).&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;function executarComAviso(nomeRotina, rotina) {
  try {
    rotina();
  } catch (erro) {
    const ss = SpreadsheetApp.getActiveSpreadsheet();
    const link = ss ? ss.getUrl() : "(independente: veja as propriedades do script)";

    MailApp.sendEmail(
      Session.getEffectiveUser().getEmail(),
      "[Falha] " + nomeRotina,
      "Rotina: " + nomeRotina + "\n" +
      "Erro: " + erro.message + "\n" +
      "Planilha mestre: " + link + "\n" +
      "Script ID: " + ScriptApp.getScriptId()
    );
    throw erro;
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;O bloco try executa a rotina que você passou. Se tudo correr bem, nada acontece. Se algo lançar um erro, o bloco catch monta o link da planilha (ou um aviso, no caso independente) e envia o e-mail com MailApp.sendEmail. O destinatário vem de Session.getEffectiveUser().getEmail(), que devolve a conta sob a qual o script roda. A última linha, throw erro, relança o erro de propósito: assim a execução continua marcada como falha no painel e o aviso padrão do Google segue chegando como segunda camada de segurança. Se preferir só o seu e-mail, remova essa linha, sabendo que o painel passará a mostrar sucesso mesmo com falha.&lt;/p&gt;
&lt;p&gt;Um detalhe que pega muita gente: ao adicionar MailApp a um script antigo, o Apps Script pede uma nova autorização. Acionadores não conseguem pedir permissão; por isso, enquanto você não executar a função manualmente uma vez, o acionador falha com a mensagem “Authorization is required”, justamente o erro que motivou este post.&lt;/p&gt;
&lt;p&gt;A segunda camada é o carimbo dentro da planilha. Uma discussão no fórum de desenvolvedores do Google apresentou a solução “de dentro para fora”: como o contêiner não conhece o script, o script grava o próprio ID nos metadados de desenvolvedor do arquivo.&lt;/p&gt;
&lt;div class="post_cqb_codewrap"&gt;
&lt;pre class="post_cqb_codeblock"&gt;&lt;code&gt;function registrarScriptNaPlanilha() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const achados = ss.createDeveloperMetadataFinder()
    .withKey("scriptId")
    .find();

  if (achados.length === 0) {
    ss.addDeveloperMetadata("scriptId", ScriptApp.getScriptId());
  }
}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;O finder procura se a chave scriptId já existe; só se não existir a função adiciona, evitando duplicatas a cada execução. A partir daí, qualquer pessoa com acesso ao arquivo pode ler o metadado por script e chegar ao projeto. Limitação: metadados de desenvolvedor não aparecem na interface da planilha, então a leitura exige código.&lt;/p&gt;

&lt;h2 id="parar-emails"&gt;&lt;i class="fas fa-bell-slash" style="color: #2196f3;"&gt;&lt;/i&gt; Como parar o e-mail de falhas e evitar que o problema volte?&lt;/h2&gt;
&lt;p&gt;Com a planilha e o projeto identificados, abra a página de acionadores, corrija a causa ou apague o acionador defeituoso e salve. Depois padronize nomes e mantenha um inventário. Assim, o próximo aviso se resolve em minutos.&lt;/p&gt;
&lt;p&gt;O guia do especialista Amit Agarwal no Digital Inspiration descreve o caminho: abra o e-mail, clique no link de configuração, entre na página de acionadores, encontre o acionador que está falhando, clique no X ao lado dele e salve. Ele lembra ainda que as notificações são agrupadas em lote, então um ou dois e-mails extras podem chegar mesmo depois da limpeza. Antes de apagar, porém, decida se a automação ainda faz falta. Um acionador que falha por falta de autorização é corrigido executando a função uma vez; um que falha por tempo excedido precisa de otimização, como processar a planilha em blocos.&lt;/p&gt;
&lt;p&gt;Os acionadores também permitem configurar a frequência das notificações de falha. Os rótulos mudam conforme a interface, então procure por algo como “configurações de notificação de falha” dentro do próprio acionador, em vez de decorar o caminho de menus.&lt;/p&gt;
&lt;p&gt;A prevenção está em quatro hábitos baratos:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Nomeie o projeto com a planilha:&lt;/strong&gt; “[Controle de Vendas] Envio diário” diz tudo no e-mail de falha. Renomeie hoje os projetos “sem título”.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Guarde o ID no lugar certo:&lt;/strong&gt; use as propriedades do script, nunca IDs espalhados pelo código, para ter um único ponto de troca.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Mantenha um inventário:&lt;/strong&gt; uma planilha simples com colunas para nome do projeto, ID do script, planilha mestre, dono e acionadores. Cinco minutos de manutenção por trimestre evitam horas de busca.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Use o envelope de erro:&lt;/strong&gt; toda rotina agendada passa por executarComAviso, e o e-mail já chega com o link do arquivo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se você quer se aprofundar, veja outros posts do canal sobre &lt;a href="https://www.canalqb.com.br/search?q=google+apps+script" rel="noopener noreferrer" target="_blank"&gt;Google Apps Script&lt;/a&gt;, &lt;a href="https://www.canalqb.com.br/search?q=planilha+google+sheets" rel="noopener noreferrer" target="_blank"&gt;planilhas do Google Sheets&lt;/a&gt; e &lt;a href="https://www.canalqb.com.br/search?q=automacao" rel="noopener noreferrer" target="_blank"&gt;automação&lt;/a&gt;. Para consultar a referência oficial de cada método usado aqui, a documentação do &lt;a href="https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app" rel="noopener noreferrer" target="_blank"&gt;SpreadsheetApp&lt;/a&gt; é a fonte mais confiável.&lt;/p&gt;

&lt;h2 id="faq"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Perguntas frequentes sobre como achar a planilha de um script&lt;/h2&gt;
&lt;div class="post_cqb_faq_container"&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Como descobrir qual planilha está vinculada a um script do Google Apps Script?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Abra o projeto, crie uma função que chame SpreadsheetApp.getActiveSpreadsheet() e registre getName(), getId() e getUrl() no log. Se o script for vinculado, o log mostra a planilha na hora. Se vier null, o projeto é independente e a planilha está referenciada por openById ou nas propriedades do script. Veja mais em nossos posts sobre &lt;a href="https://www.canalqb.com.br/search?q=google+apps+script" rel="noopener noreferrer" target="_blank"&gt;Google Apps Script&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Por que getActiveSpreadsheet() retorna null no meu script?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Porque o método devolve null quando não existe planilha ativa, o que acontece em projetos independentes, em implantações como aplicativo da Web sem contêiner e em alguns contextos sem arquivo aberto. A solução é abrir o arquivo explicitamente com SpreadsheetApp.openById, guardando o ID nas propriedades do script para ter um ponto único de manutenção e evitar IDs espalhados pelo código.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Dá para achar o script a partir do ID da planilha?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;De forma programática e confiável, não: uma discussão técnica no fórum de desenvolvedores do Google concluiu que o contêiner não conhece o script vinculado. O caminho manual é abrir a planilha e entrar em Extensões &amp;gt; Apps Script. Para automatizar, faça o script gravar o próprio ID nos metadados da planilha, como mostramos neste post, e consulte-os depois. Mais dicas em &lt;a href="https://www.canalqb.com.br/search?q=planilha+google+sheets" rel="noopener noreferrer" target="_blank"&gt;planilhas do Google Sheets&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Como pegar o ID da planilha pela URL do navegador?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;O ID é o trecho que fica entre /d/ e /edit na URL, por exemplo docs.google.com/spreadsheets/d/ID_AQUI/edit. Copie apenas essa parte, sem barras, e use-a em openById. Se preferir não copiar nada manualmente, rode getId() em um script vinculado e pegue o valor no log. Guarde o ID em um lugar único para trocá-lo sem caçar o código. Veja também nossa seção de &lt;a href="https://www.canalqb.com.br/search?q=automacao" rel="noopener noreferrer" target="_blank"&gt;automação&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_cqb_faq_item"&gt;
    &lt;summary class="post_cqb_faq_question"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Como saber se o e-mail “Summary of failures” é legítimo?&lt;/summary&gt;
    &lt;div class="post_cqb_faq_answer"&gt;Confira o remetente: a documentação oficial mostra um endereço do domínio google.com com notificações do Apps Script, e guias independentes citam variações do mesmo domínio. Desconfie de links encurtados, pedidos de senha ou anexos. O caminho mais seguro é não clicar no e-mail e abrir você mesmo script.google.com/home, onde a lista de acionadores confirma se a falha é real. Mais sobre o tema em &lt;a href="https://www.canalqb.com.br/search?q=google+apps+script" rel="noopener noreferrer" target="_blank"&gt;Google Apps Script&lt;/a&gt;.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Como descobrir qual planilha está vinculada a um script do Google Apps Script?","acceptedAnswer":{"@type":"Answer","text":"Crie uma função que chame SpreadsheetApp.getActiveSpreadsheet() e registre getName(), getId() e getUrl() no log. Se o script for vinculado, o log mostra a planilha. Se vier null, o projeto é independente e a planilha está referenciada por openById ou nas propriedades do script."}},
{"@type":"Question","name":"Por que getActiveSpreadsheet() retorna null no meu script?","acceptedAnswer":{"@type":"Answer","text":"Porque o método devolve null quando não existe planilha ativa, o que acontece em projetos independentes. A solução é abrir o arquivo com SpreadsheetApp.openById, guardando o ID nas propriedades do script."}},
{"@type":"Question","name":"Dá para achar o script a partir do ID da planilha?","acceptedAnswer":{"@type":"Answer","text":"De forma programática e confiável, não. O caminho manual é abrir a planilha e entrar em Extensões &gt; Apps Script. Para automatizar, faça o script gravar o próprio ID nos metadados da planilha e consulte-os depois."}},
{"@type":"Question","name":"Como pegar o ID da planilha pela URL do navegador?","acceptedAnswer":{"@type":"Answer","text":"O ID é o trecho entre /d/ e /edit na URL da planilha. Copie apenas essa parte e use em openById, ou rode getId() em um script vinculado."}},
{"@type":"Question","name":"Como saber se o e-mail Summary of failures é legítimo?","acceptedAnswer":{"@type":"Answer","text":"Confira o remetente do domínio google.com, desconfie de links encurtados e pedidos de senha, e prefira abrir você mesmo script.google.com/home para confirmar a falha na lista de acionadores."}}
]}
&lt;/script&gt;

&lt;section aria-label="Erros e soluções" class="post_cqb_erros" id="erros-solucoes"&gt;
  &lt;h2&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; Erros e Soluções&lt;/h2&gt;
  &lt;p&gt;Estes são os erros que mais aparecem quando se tenta descobrir a planilha de um script ou quando se executa o diagnóstico pela primeira vez. Cada card traz o texto do erro, a causa, a correção e como evitar a repetição.&lt;/p&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; TypeError: Cannot read properties of null (reading 'getName')&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; getActiveSpreadsheet() devolveu null porque o projeto é independente, e o código chamou getName() sem verificar.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; adicione a cláusula de guarda if (!ss) antes do uso, ou troque a chamada por SpreadsheetApp.openById(id) usando o ID guardado nas propriedades do script.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; centralize a abertura da planilha em uma única função, como abrirPlanilhaMestre(), que valide o ID e lance um erro claro.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Exception: Unexpected error while getting the method or property openById on object SpreadsheetApp&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; mensagem comum quando o ID está errado, o arquivo foi apagado ou a conta que executa não tem acesso à planilha.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; abra o ID numa URL docs.google.com/spreadsheets/d/ID/edit com a mesma conta do script. Se o arquivo abrir, confira se o ID não tem espaços ou barras sobrando; se não abrir, peça acesso ao dono.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; guarde o ID sem espaços nas propriedades do script e valide com um teste de abertura logo após trocar a planilha.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Authorization is required to perform that action&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; o script passou a usar um serviço novo, como MailApp ou DriveApp, e o acionador não pode pedir permissão sozinho.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; abra o projeto, execute manualmente qualquer função que use o serviço, aprove as permissões e confirme em Acionadores se a próxima execução passa.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; sempre que adicionar um serviço novo a uma rotina agendada, rode-a uma vez no editor antes de fechar.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Exceeded maximum execution time&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a execução ultrapassou o limite de tempo, em geral por laços sobre muitas linhas ou chamadas repetidas ao Sheets dentro de um for.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; leia os dados de uma vez com getDataRange().getValues(), processe em memória e grave o resultado em bloco; para volumes muito grandes, divida o trabalho em lotes.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; evite getValue() e setValue() dentro de laços e registre o tempo das execuções para perceber a lentidão antes de falhar.&lt;/p&gt;
  &lt;/div&gt;

  &lt;div class="post_cqb_erro_card"&gt;
    &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Service using too much computer time for one day&lt;/h3&gt;
    &lt;p&gt;&lt;strong&gt;Causa:&lt;/strong&gt; a soma das execuções do dia passou da cota de tempo de processamento da conta; acionadores muito frequentes e esquecidos costumam ser a causa.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Solução:&lt;/strong&gt; liste os acionadores de todos os projetos, aumente o intervalo dos que rodam a cada minuto e apague os que já não têm utilidade.&lt;/p&gt;
    &lt;p&gt;&lt;strong&gt;Prevenção:&lt;/strong&gt; use o inventário de projetos para revisar acionadores a cada trimestre e mantenha apenas o que está em uso.&lt;/p&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;div class="post_cqb_cta"&gt;
  &lt;p&gt;&lt;strong&gt;Gostou da solução?&lt;/strong&gt; No canal &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt; mostramos a função rodando passo a passo, com planilhas e scripts de verdade. Inscreva-se para não perder as próximas automações.&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="referencias"&gt;&lt;i class="fas fa-book" style="color: #2196f3;"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
&lt;p&gt;Fontes consultadas em 13/10/2026. O texto foi escrito com palavras próprias a partir delas.&lt;/p&gt;
&lt;ul class="post_cqb_refs"&gt;
  &lt;li&gt;&lt;a href="https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app" rel="noopener noreferrer" target="_blank"&gt;Google for Developers: Class SpreadsheetApp&lt;/a&gt;, referência oficial de getActiveSpreadsheet() e openById.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developers.google.com/apps-script/guides/triggers/installable" rel="noopener noreferrer" target="_blank"&gt;Google for Developers: Installable Triggers&lt;/a&gt;, descrição oficial do e-mail de falhas e do link para o arquivo vinculado.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developers.google.com/apps-script/guides/support/troubleshooting" rel="noopener noreferrer" target="_blank"&gt;Google for Developers: Troubleshooting&lt;/a&gt;, erros de autorização e limites.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://labnol.org/docs/20474-summary-failures-google-apps-script" rel="noopener noreferrer" target="_blank"&gt;Digital Inspiration: Unsubscribe from Summary of Failure Emails&lt;/a&gt;, passo a passo para remover acionadores.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://discuss.google.dev/t/get-container-bound-script-id-from-container-id/321875" rel="noopener noreferrer" target="_blank"&gt;Google Developer forums: Get container-bound script ID from container ID&lt;/a&gt;, limite da busca reversa e solução com metadados.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://szabo.jp/2021/05/10/restricting-google-app-script-permissions/" rel="noopener noreferrer" target="_blank"&gt;Restricting Google App Script permissions&lt;/a&gt;, diferenças entre scripts vinculados e independentes.&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://bettersheets.co/explained/bound-script" rel="noopener noreferrer" target="_blank"&gt;Better Sheets: What is a bound script in Google Sheets?&lt;/a&gt;, definição de script vinculado e como abri-lo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p style="background: rgba(33, 150, 243, 0.08); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.85em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Conformidade Global:&lt;/strong&gt;
  As informações refletem os serviços do Google disponíveis no momento da publicação. Interfaces, cotas e políticas mudam com frequência. Consulte a documentação oficial e o &lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt; para questões de privacidade. Este conteúdo não constitui aconselhamento jurídico.
&lt;/p&gt;
&lt;p style="font-size: 0.85em; text-align: center;"&gt;Feito com Master Rules Claude v9.2&lt;/p&gt;

&lt;/div&gt;

&lt;script&gt;
(function(){
  'use strict';
  function showToast(msg){
    var t=document.createElement('div');
    t.className='post_cqb_toast';
    t.setAttribute('role','status');
    t.textContent=msg;
    document.body.appendChild(t);
    setTimeout(function(){ if(t.parentNode){ t.parentNode.removeChild(t); } },2200);
  }
  function setup(){
    var wraps=document.querySelectorAll('.post_cqb_codewrap');
    wraps.forEach(function(w){
      if(w.querySelector('.post_copy_btn')){return;}
      var pre=w.querySelector('pre');
      if(!pre){return;}
      var b=document.createElement('button');
      b.type='button';
      b.className='post_copy_btn';
      b.setAttribute('aria-label','Copiar código');
      b.textContent='Copiar';
      b.addEventListener('click',function(){
        var txt=pre.textContent;
        if(navigator.clipboard&amp;&amp;navigator.clipboard.writeText){
          navigator.clipboard.writeText(txt).then(function(){showToast('Código copiado');},function(){showToast('Não foi possível copiar');});
        }else{showToast('Copie manualmente: o navegador bloqueou a cópia');}
      });
      w.appendChild(b);
    });
  }
  if('requestIdleCallback' in window){requestIdleCallback(setup);}else{setTimeout(setup,300);}
})();
&lt;/script&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Achar a Planilha Mestre do Google Apps Script em 5 Passos",
  "description":"Recebeu o e-mail Summary of failures e não sabe qual planilha quebrou? Use esta função do Apps Script e ache o arquivo mestre em segundos.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{"@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br","logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgQqQK5vPHrMLTMD42SkDCIJZojTKLFr5-gMjGHx2QTPbPIlY73-r3tUI0DrC_aa5mEmwv86EprkDl-_O4qnvumUteY9lZtODQdpMiIsW4L5InwdXKMsi8BkDeQWeTiSlX-bYBNE5XescSKmE5ZOi2SPWzbGRXiwzRzy7WF-AitD10pLejjoj21Gi1thncR/s1600/image.png"}},
  "datePublished":"2026-10-13","dateModified":"2026-10-13",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSLTsKkkb5wScdoSvstRR_OnVh9nkL4NvmfEG-eDqHUizCP8U_ykRX-zfZIaDn8PSF1nO5XsruLhRLNEKuniTQh9HsF14UMZSCAY9B02HhsjtoNL5lsz9fUYn8qBstAhbgq0cgSMdpNR7jcIdcFI4b5cp9seC_GXQ-RbioUhp-oKYWAriIQDh2Q7l8c-OC/s72-c/image.png" width="72"/></item><item><title>Atualize o opencode no Windows em 1 comando (2026)</title><link>https://canalqb.blogspot.com/2026/10/atualize-o-opencode-no-windows-em-1.html</link><category>atualização</category><category>Automação</category><category>canalqb</category><category>Ferramentas</category><category>inteligência artificial</category><category>modelos gratuitos</category><category>nvidia</category><category>opencode</category><category>PowerShell</category><category>scoop</category><category>tutorial 2026</category><category>Windows</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Mon, 12 Oct 2026 22:37:14 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-3160767906713892971</guid><description>&lt;!--Feito com Master Rules Claude v8.5 | @CanalQb | canalqb.com.br--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_scope{--post-bg:#f2f8f4;--post-text:#333333;--post-text2:#555555;--post-border:#e0e0e0;font-family:Arial,Helvetica,sans-serif;color:var(--post-text);}
html[data-post-theme="dark"] .post_scope{--post-bg:#122b18;--post-text:#e8f5e9;--post-text2:#b9d6bf;--post-border:#2e5c3a;}
@media (prefers-color-scheme: dark){html:not([data-post-theme="light"]) .post_scope{--post-bg:#122b18;--post-text:#e8f5e9;--post-text2:#b9d6bf;--post-border:#2e5c3a;}}
.post_scope h2.post_h2{color:var(--post-text);font-size:1.5em;margin:44px 0 14px;border-left:4px solid #28a745;padding-left:12px;line-height:1.3;}
.post_scope p{color:var(--post-text2);line-height:1.75;font-size:1em;margin:0 0 16px;}
.post_scope .post_answer{color:var(--post-text);font-size:1.05em;border-left:3px solid #2196f3;padding-left:14px;}
.post_scope a{color:#28a745;font-weight:600;text-decoration:none;}
.post_scope a:hover{text-decoration:underline;}
.post_skip{position:absolute;left:-9999px;top:0;background:#28a745;color:#ffffff;padding:12px 18px;z-index:10000;border-radius:0 0 8px 0;font-weight:bold;}
.post_skip:focus{left:0;color:#ffffff;}
.post_badge{display:inline-flex;align-items:center;gap:8px;background:rgba(33,150,243,0.12);color:#2196f3;padding:10px 16px;border-radius:24px;font-size:0.85em;font-weight:700;margin:4px auto 6px;min-height:44px;}
.post_badge_wrap{text-align:center;margin:16px 0 8px;}
.post_theme_toggle{float:right;background:rgba(40,167,69,0.1);border:1px solid #28a745;color:#28a745;border-radius:10px;width:44px;height:44px;font-size:1.1em;cursor:pointer;}
.post_theme_toggle:focus-visible,.post_copy_btn:focus-visible,.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px;}
.post_tldr{background:var(--post-bg);border-left:4px solid #2196f3;border-radius:8px;padding:20px 22px;margin:24px 0;}
.post_tldr h2{color:var(--post-text);font-size:1.25em;margin:0 0 10px;}
.post_tldr ul{margin:0;padding-left:20px;}
.post_tldr li{color:var(--post-text2);line-height:1.7;margin:6px 0;}
.post_cqb_terminal{background:#000000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;margin:20px 0;}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important;}
.post_cqb_terminal .comment{color:#888888!important;}
.post_code_wrap{position:relative;}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important;}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;margin:20px 0 24px;}
.post_copy_btn{position:absolute;top:10px;right:10px;background:#28a745!important;color:#ffffff!important;border:none;border-radius:6px;padding:8px 14px;font-size:0.8em;cursor:pointer;min-height:44px;font-family:Arial,sans-serif;}
.post_copy_btn.post_copied{background:#d32f2f!important;}
#post_toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#333333;color:#ffffff;padding:12px 20px;border-radius:8px;opacity:0;pointer-events:none;transition:opacity .25s;z-index:10000;font-family:Arial,sans-serif;}
#post_toast.post_show{opacity:1;}
#post_progress{position:fixed;top:0;left:0;height:3px;width:0;background:#28a745;z-index:10001;transition:width .1s linear;}
@media (prefers-reduced-motion: reduce){#post_progress,#post_toast{transition:none;}}
.post_checklist{list-style:none;padding:0;margin:14px 0;}
.post_checklist li{display:flex;align-items:flex-start;gap:10px;padding:7px 0;font-size:.95em;color:var(--post-text2);line-height:1.6;}
.post_checklist li i{flex-shrink:0;margin-top:4px;}
.post_table_wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:20px 0;}
.post_table{width:100%;border-collapse:collapse;font-size:0.9em;min-width:640px;}
.post_table th{background:#28a745;color:#ffffff;padding:12px;text-align:left;}
.post_table td{padding:12px;border-bottom:1px solid var(--post-border);color:var(--post-text2);line-height:1.5;}
.post_table tr:nth-child(even){background:rgba(40,167,69,0.04);}
.post_cta{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:22px;border-radius:8px;margin:32px 0;}
.post_cta p{color:var(--post-text2);margin:8px 0;}
.post_refs{background:var(--post-bg);border-radius:8px;padding:20px 22px;margin:30px 0;}
.post_refs h2{color:var(--post-text);font-size:1.25em;margin:0 0 12px;border-left:4px solid #2196f3;padding-left:12px;}
.post_refs ul{margin:0;padding-left:20px;}
.post_refs li{color:var(--post-text2);line-height:1.8;}
.post_ia_note{background:rgba(33,150,243,0.08);border-left:4px solid #2196f3;padding:14px;border-radius:8px;color:var(--post-text2);font-size:0.85em;margin:16px 0;}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:var(--post-text);font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid var(--post-border);margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:var(--post-text);display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:var(--post-text2);font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;a class="post_skip" href="#post_main"&gt;Pular para o conteudo&lt;/a&gt;
&lt;div aria-hidden="true" id="post_progress"&gt;&lt;/div&gt;
&lt;main class="post_scope" id="post_main"&gt;
&lt;article&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ChGjzbBQLjWQ2nR2YFzh8DEsUAixeH9PUPmDNOPsp5Kg5rRxg9w9q8pciMc-0xyvkcqWB1R4x4r9uvWp8SnDRcsB0P4LNWzDjKlJV2To1bTBWW-XwdJ6KIuQPYmq-LQILbBp_L8QWit1PrMzthLyP5C66RyIl5c15Y3JRwWPghPc8wFstrQaDVMYiC5O/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Atualize o opencode no Windows em 1 comando (2026)&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div class="post_badge_wrap"&gt;
  &lt;span class="post_badge"&gt;&lt;i aria-hidden="true" class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~8 min&lt;/span&gt;
&lt;/div&gt;
&lt;button aria-label="Alternar modo claro e escuro" class="post_theme_toggle" id="post_theme_toggle" type="button"&gt;&lt;i aria-hidden="true" class="fas fa-moon"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;section aria-label="Resumo executivo" class="post_tldr"&gt;
&lt;h2&gt;&lt;i aria-hidden="true" class="fas fa-bolt" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt;TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;O update nativo do opencode falha em instalacoes via Scoop porque quem gerencia o binario e o gerenciador de pacotes — o caminho correto e atualizar pelo proprio Scoop.&lt;/li&gt;
&lt;li&gt;Um unico comando instala o Scoop atualizado, o opencode na ultima versao e configura 26 modelos gratuitos da NVIDIA; aqui, o salto de versao levou 16 segundos com 26/26 modelos preservados.&lt;/li&gt;
&lt;li&gt;O updater faz backup automatico do opencode.jsonc, confere a contagem de modelos depois do update e restaura sozinho se algo sumir; a chave gratuita sai de build.nvidia.com.&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
  &lt;!--
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Video tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Video do @CanalQb — Atualize o opencode no Windows em 1 comando" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;
--&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Tecnica:&lt;/strong&gt;
  Scripts e automacoes fornecidos tem fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb nao se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;
&lt;p class="post_ia_note"&gt;
  &lt;i aria-hidden="true" class="fas fa-robot"&gt;&lt;/i&gt; &lt;strong&gt;Transparencia de IA (Lei Felca nº 15.211/2025):&lt;/strong&gt; este conteudo foi produzido com assistencia de IA e revisado, testado e validado na pratica pelo @CanalQb, com logs reais de execucao.
&lt;/p&gt;
&lt;h2 class="post_h2"&gt;Por que o update nativo do opencode da erro no Windows?&lt;/h2&gt;
&lt;p class="post_answer"&gt;O update nativo do opencode falha em instalacoes via Scoop porque o gerenciador de pacotes e o dono do binario: quem instala, versiona e substitui o executavel dentro de ~\scoop\apps\opencode e o Scoop. Quando o app tenta se auto-substituir, o arquivo esta em uso e a pasta pertence a outro processo. A atualizacao correta nasce de dentro do Scoop, com &lt;code&gt;scoop update opencode&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;O Scoop funciona com uma pasta por versao e um link &lt;code&gt;current&lt;/code&gt; apontando para a ativa. Esse design e otimo para isolar versoes e reverter quando algo quebra, mas ele tem uma regra de ouro: ninguem substitui o executavel por fora. Quando o opencode tenta fazer isso sozinho, o Windows bloqueia o arquivo em uso e a atualizacao nativa morre com um erro generico que nao aponta o culpado.&lt;/p&gt;
&lt;p&gt;Aqui esta o detalhe que quase ninguem percebe: o problema nao e sua maquina, sua internet nem o opencode. E o caminho de atualizacao. Vale para qualquer app gerenciado pelo Scoop — do Git ao 7-Zip, nenhum deles consegue se auto-atualizar por dentro. Quem entende esse mecanismo nunca mais perde tempo tentando o botao de update do app.&lt;/p&gt;
&lt;p&gt;E o melhor? A solucao nao exige decorar comando nenhum. Veja agora como resolver em 1 comando so.&lt;/p&gt;
&lt;h2 class="post_h2"&gt;Como atualizar o opencode no Windows em 1 comando?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Abra o PowerShell e execute &lt;code&gt;irm https://github.com/canalqb/opencode-update/releases/latest/download/install.ps1 | iex&lt;/code&gt;. Esse unico comando instala o Scoop se faltar, atualiza o proprio Scoop e os buckets, instala o opencode na versao mais recente se voce nao tiver, configura os 26 modelos gratuitos e deixa o comando &lt;code&gt;opencode-update&lt;/code&gt; pronto no PATH. Depois disso, atualizar e digitar uma palavra em qualquer janela nova do PowerShell.&lt;/p&gt;
&lt;div class="post_code_wrap"&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;irm https://github.com/canalqb/opencode-update/releases/latest/download/install.ps1 | iex&lt;/code&gt;&lt;/div&gt;
&lt;button aria-label="Copiar comando" class="post_copy_btn" type="button"&gt;&lt;i aria-hidden="true" class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
&lt;/div&gt;
&lt;p&gt;O que esse comando faz, na ordem, e verificado por um CI publico no GitHub — nada de caixa preta:&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i aria-hidden="true" class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Scoop atualizado:&lt;/strong&gt; instala o gerenciador se ele nao existir e roda &lt;code&gt;scoop update&lt;/code&gt; para renovar o nucleo e os buckets. Assim o opencode ja sai da versao mais fresca do catalogo.&lt;/li&gt;
&lt;li&gt;&lt;i aria-hidden="true" class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;opencode na ultima versao:&lt;/strong&gt; se o app nao existir, instala; se existir, garante o refresh para a release mais nova via Scoop. Se o opencode estiver aberto, o instalador pula o refresh na hora e te avisa do por que.&lt;/li&gt;
&lt;li&gt;&lt;i aria-hidden="true" class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;26 modelos gratuitos configurados:&lt;/strong&gt; cria ou completa o &lt;code&gt;opencode.jsonc&lt;/code&gt; com o provider da NVIDIA e os 26 modelos recomendados, preservando o que ja existe no seu config e criando backup antes de qualquer merge.&lt;/li&gt;
&lt;li&gt;&lt;i aria-hidden="true" class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Comando pronto:&lt;/strong&gt; a ferramenta e implantada em &lt;code&gt;%LOCALAPPDATA%\Programs\opencode-update&lt;/code&gt; e ganha uma entrada no PATH do usuario. A partir dai, &lt;code&gt;opencode-update&lt;/code&gt; vira o seu atalho de atualizacao permanente.&lt;/li&gt;
&lt;li&gt;&lt;i aria-hidden="true" class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Nao interativo:&lt;/strong&gt; o instalador nao pergunta nada e nao travar automacao. Todas as opcoes avancadas ficam em parametros opcionais, documentados no &lt;a href="https://github.com/canalqb/opencode-update" rel="noopener noreferrer" target="_blank"&gt;repositorio no GitHub&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Mas tem um porem: &lt;code&gt;iex&lt;/code&gt; executa codigo remoto, e a regra de ouro e auditar antes. Nao confie em one-liner de fonte que voce nao conhece — nem em fonte conhecida sem olhar. Baixe, leia, depois rode:&lt;/p&gt;
&lt;div class="post_code_wrap"&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;irm https://github.com/canalqb/opencode-update/releases/latest/download/install.ps1 -OutFile install.ps1
notepad install.ps1
powershell -ExecutionPolicy Bypass -File .\install.ps1&lt;/code&gt;&lt;/div&gt;
&lt;button aria-label="Copiar comandos de auditoria" class="post_copy_btn" type="button"&gt;&lt;i aria-hidden="true" class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
&lt;/div&gt;
&lt;h2 class="post_h2"&gt;Como configuro os 26 modelos gratuitos da NVIDIA?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Os modelos rodam na API integrate da NVIDIA, e a chave e gratuita: acesse &lt;a href="https://build.nvidia.com" rel="noopener noreferrer" target="_blank"&gt;build.nvidia.com&lt;/a&gt;, entre com sua conta e clique em "Get API Key". O instalador escreve os 26 modelos no &lt;code&gt;opencode.jsonc&lt;/code&gt; e aceita sua chave de tres formas: parametro &lt;code&gt;-NvidiaApiKey&lt;/code&gt;, variavel de ambiente &lt;code&gt;NVIDIA_API_KEY&lt;/code&gt; ou resposta ao prompt em instalacao nova. Nenhuma chave fica armazenada no repositorio — ela vive apenas no seu arquivo local.&lt;/p&gt;
&lt;p&gt;O conjunto cobre as familias que importam em 2026: GLM-5.3 (o modelo principal deste setup), Nemotron Super 49B e Ultra 253B, Llama 3.3 70B e 3.1 405B, DeepSeek V4 Pro e R1, Kimi K2 e K3, Qwen3 Coder 480B, Mistral Large 3 675B e Codestral, alem dos modelos rapidos como Nemotron Nano 8B e DeepSeek V4 Flash. A tabela completa com contextos e capacidade de reasoning esta no README do repositorio.&lt;/p&gt;
&lt;div class="post_code_wrap"&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;# opcao 1: parametro (salve o install.ps1 e rode com -File)
powershell -ExecutionPolicy Bypass -File .\install.ps1 -NvidiaApiKey "nvapi-..."

# opcao 2: variavel de ambiente antes do one-liner
$env:NVIDIA_API_KEY = "nvapi-..."
irm https://github.com/canalqb/opencode-update/releases/latest/download/install.ps1 | iex

# opcao 3: prompt — instalacao nova sem chave pergunta na hora
# (responder em branco mantem o placeholder para preencher depois)&lt;/code&gt;&lt;/div&gt;
&lt;button aria-label="Copiar opcoes de chave" class="post_copy_btn" type="button"&gt;&lt;i aria-hidden="true" class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
&lt;/div&gt;
&lt;p&gt;Aqui no @CanalQb, validamos que o fluxo de chave por variavel de ambiente e o mais comodo para quem repete a instalacao em varias maquinas. E se o seu config ja tem modelos proprios, o instalador nao sobrescreve nada: ele apenas relata quantos dos 26 recomendados voce ja tem e, com &lt;code&gt;-ApplyModels&lt;/code&gt;, adiciona so os que faltam — com backup antes.&lt;/p&gt;
&lt;h2 class="post_h2"&gt;Como garantir que meus modelos sobrevivem ao update?&lt;/h2&gt;
&lt;p class="post_answer"&gt;O updater copia o &lt;code&gt;opencode.jsonc&lt;/code&gt; para &lt;code&gt;opencode_backups\&lt;timestamp&gt;&lt;/timestamp&gt;&lt;/code&gt; antes de qualquer mudanca, junto com um &lt;code&gt;backup_info.txt&lt;/code&gt; que grava versao, hash SHA-256 e contagem de modelos. Depois do update, ele compara o hash e o numero de modelos antes e depois; se qualquer modelo sumir, o backup volta automaticamente. E verificacao de integridade, nao promessa.&lt;/p&gt;
&lt;p&gt;Mas nao acredite em mim: acredite no log. Esta e a saida real da atualizacao que rodei no meu setup, do 1.18.31 para o 1.19.0 — 16 segundos no total, com download de 59,3 MB:&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;&lt;pre&gt;[2026-10-12 05:07:57] Session started
[2026-10-12 05:07:57] Current version: 1.18.31
[2026-10-12 05:07:57] Models configured before update: 26
[2026-10-12 05:07:57] STEP 1 OK - Backup saved to: opencode_backups\20261012_050757
[2026-10-12 05:08:12]   scoop: opencode: 1.18.31 -&amp;gt; 1.19.0
[2026-10-12 05:08:12]   scoop: 'opencode' (1.19.0) was installed successfully!
[2026-10-12 05:08:13] Version updated: 1.18.31 -&amp;gt; 1.19.0
[2026-10-12 05:08:13] Models preserved: 26/26
[2026-10-12 05:08:13] RESULT: SUCCESS&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Repare no detalhe que quase ninguem percebe: o Scoop atualiza os buckets, baixa a nova versao, desinstala a antiga e religa o &lt;code&gt;current&lt;/code&gt; — tudo dentro do modelo dele, sem tocar no seu config. O updater nao interfere nesse processo; ele apenas fotografa o estado antes e depois e age se a foto mudar para pior. Aqui no @CanalQb, validamos que essa e a arquitetura certa: automacao que protege em vez de automacao que arrisca.&lt;/p&gt;
&lt;h2 class="post_h2"&gt;O que acontece se o opencode estiver aberto durante o update?&lt;/h2&gt;
&lt;p class="post_answer"&gt;O updater detecta processos do opencode em execucao e aborta com seguranca, sem fechar nada por conta propria. Perder uma sessao de trabalho no meio de um refactoring custa mais caro do que alguns dias de versao atrasada. Para atualizar mesmo assim, use &lt;code&gt;opencode-update -KillRunning&lt;/code&gt;, que exige confirmacao explicita antes de encerrar as sessoes.&lt;/p&gt;
&lt;p&gt;Esse guard nasceu de um erro real: a primeira versao do script usava &lt;code&gt;taskkill /F /IM opencode.exe&lt;/code&gt; — e encerrou a propria sessao de trabalho que eu estava usando para escreve-lo. Nenhuma perda irreversivel, mas a licao ficou: automacao que mata processos do usuario sem perguntar e um risco de producao disfarcado de conveniencia. O resultado e um updater que trata sua sessao aberta como cargo precioso, nao como obstaculo.&lt;/p&gt;
&lt;h2 class="post_h2"&gt;Como conferir tudo antes de atualizar (modo Check)?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Execute &lt;code&gt;opencode-update -Check&lt;/code&gt; para um relatorio sem efeitos colaterais: ele mostra se o Scoop esta disponivel, a versao do opencode, quantos modelos estao configurados, a cobertura dos 26 recomendados e quantos processos estao rodando. Em maquinas sem Scoop, ele responde FAILED sem alterar arquivo algum. E a forma segura de validar o ambiente antes do update real.&lt;/p&gt;
&lt;div class="post_code_wrap"&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;opencode-update -Check&lt;/code&gt;&lt;/div&gt;
&lt;button aria-label="Copiar comando check" class="post_copy_btn" type="button"&gt;&lt;i aria-hidden="true" class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
&lt;/div&gt;
&lt;div class="post_cqb_terminal"&gt;&lt;pre&gt;[2026-10-12 09:38:10] CHECK MODE - report only, nothing will be changed
[2026-10-12 09:38:10] scoop available    : yes
[2026-10-12 09:38:10] opencode installed : 1.19.0
[2026-10-12 09:38:10] models configured  : 26
[2026-10-12 09:38:10] recommended models : 26/26
[2026-10-12 09:38:10] opencode running   : 6 process(es)
[2026-10-12 09:38:10] RESULT: SUCCESS - ready to update (run again without -Check)&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;E o insight que quase ninguem ve em automacao de pipeline: durante os testes deste projeto no GitHub Actions, um teste que passava reprovar o job. O motivo? O PowerShell 7 herda o exit code do ultimo processo nativo executado — o modo -Check do updater havia terminado com codigo 1 (Scoop ausente no runner) e contaminava o passo seguinte. A correcao foi um &lt;code&gt;exit 0&lt;/code&gt; explicito no final do teste. Esse padrao de bug aparece em qualquer pipeline Windows, e conhecer ele economiza horas de debug.&lt;/p&gt;
&lt;h2 class="post_h2"&gt;Existe diferenca entre opencode v1 e v2?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Sim. O Scoop tambem oferece o opencode v2 no pacote &lt;code&gt;versions/opencode2&lt;/code&gt;, com configuracao incompativel com a v1. Este projeto atualiza o pacote principal (&lt;code&gt;opencode&lt;/code&gt;, v1), que e o instalado na maioria das maquinas. A migracao para v2 e manual e documentada oficialmente em &lt;a href="https://opencode.ai/v2/docs/migrate-v1/" rel="noopener noreferrer" target="_blank"&gt;opencode.ai/v2/docs/migrate-v1&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Se voce depende do seu config atual de modelos, nao migrate por impulso: a incompatibilidade significa reconfigurar provider por provider. Para a maioria dos casos, manter a v1 atualizada e limpa (com este updater) e o caminho de menor risco — e a decisao de migrar fica onde deve estar: nas suas maos, com documentacao aberta.&lt;/p&gt;
&lt;h2 class="post_h2"&gt;Qual metodo de atualizacao escolher?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Existem tres caminhos: o botao nativo do app (que falha com Scoop), os comandos manuais do Scoop (que funcionam, mas nao protegem nada) e o updater deste post (que faz backup, verifica e restaura). A diferenca nao e so esforco — e nivel de protecao. A tabela abaixo resume o que cada metodo entrega.&lt;/p&gt;
&lt;div class="post_table_wrap"&gt;
&lt;table class="post_table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Metodo&lt;/th&gt;&lt;th&gt;Pre-requisito&lt;/th&gt;&lt;th&gt;Preserva modelos&lt;/th&gt;&lt;th&gt;Seguranca de sessao&lt;/th&gt;&lt;th&gt;Esforco&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;Update nativo do app&lt;/td&gt;&lt;td&gt;Instalacao manual (sem Scoop)&lt;/td&gt;&lt;td&gt;N/A&lt;/td&gt;&lt;td&gt;N/A&lt;/td&gt;&lt;td&gt;Falha via Scoop&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;scoop update opencode&lt;/code&gt; manual&lt;/td&gt;&lt;td&gt;Decorar comandos e checar sozinho&lt;/td&gt;&lt;td&gt;Config nao e tocado, mas sem verificacao&lt;/td&gt;&lt;td&gt;Nenhuma&lt;/td&gt;&lt;td&gt;Medio&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;opencode-update&lt;/code&gt;&lt;/td&gt;&lt;td&gt;1 comando one-liner&lt;/td&gt;&lt;td&gt;Backup + verificacao + auto-restauracao&lt;/td&gt;&lt;td&gt;Aborta ou pede confirmacao&lt;/td&gt;&lt;td&gt;Minimo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p&gt;Este script foi otimizado para os leitores do &lt;a href="https://www.canalqb.com.br/search?q=opencode" rel="noopener noreferrer" target="_blank"&gt;blog do CanalQb&lt;/a&gt;: cada decisao — do guard de sessao ao modo Check — existe porque falhamos sem ela primeiro. Se quiser ir alem do Scoop, veja tambem os conteudos de &lt;a href="https://www.canalqb.com.br/search?q=powershell" rel="noopener noreferrer" target="_blank"&gt;PowerShell aqui do blog&lt;/a&gt;.&lt;/p&gt;
&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i aria-hidden="true" class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Por que o update nativo do opencode da erro com Scoop?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O Scoop e o dono do binario: ele controla a pasta do app, o versionamento e a substituicao do executavel. Quando o opencode tenta se auto-substituir, o arquivo esta em uso e a operacao falha. Para aprofundar depois do update, veja os conteudos de &lt;a href="https://www.canalqb.com.br/search?q=scoop" rel="noopener noreferrer" target="_blank"&gt;Scoop aqui no blog&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Atualizar o opencode apaga meus modelos e minha chave de API?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Nao. O update via Scoop nao toca no seu &lt;code&gt;opencode.jsonc&lt;/code&gt;, e o updater ainda faz backup com hash e contagem antes de atualizar. Se a contagem de modelos cair depois do update, o backup e restaurado automaticamente. O modo &lt;code&gt;-Check&lt;/code&gt; mostra a cobertura &lt;code&gt;X/26&lt;/code&gt; a qualquer momento.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O comando irm | iex e seguro para instalar?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;&lt;code&gt;iex&lt;/code&gt; executa codigo remoto, entao a regra e auditar antes: baixe o script com &lt;code&gt;-OutFile&lt;/code&gt;, leia no editor e so entao execute. O repositorio do projeto e publico, versionado e validado por CI. Para mais praticas seguras de terminal, confira os conteudos de &lt;a href="https://www.canalqb.com.br/search?q=powershell" rel="noopener noreferrer" target="_blank"&gt;PowerShell no blog&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Preciso de permissao de administrador para atualizar o opencode?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Nao. Scoop, opencode e esta ferramenta sao 100% por usuario, instalando dentro do seu perfil sem elevacao. Isso e uma escolha de design do Scoop para nao poluir o sistema. Nenhuma janela de UAC aparece em nenhuma etapa.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como verificar o estado do opencode antes de atualizar?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Execute &lt;code&gt;opencode-update -Check&lt;/code&gt;: ele lista versao, disponibilidade do Scoop, modelos configurados, cobertura dos 26 recomendados e processos em execucao, sem alterar nada. Em maquina sem Scoop ele responde FAILED e aponta a solucao. E o mesmo relatorio que usei antes do update real mostrado neste post.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Este updater funciona com o opencode v2?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Nao — ele atualiza o pacote principal &lt;code&gt;opencode&lt;/code&gt; (v1), o padrao na maioria das instalacoes. O v2 e um pacote Scoop separado com configuracao incompativel, e a migracao e manual segundo a documentacao oficial. Se quiser outras automacoes do canal, veja os conteudos de &lt;a href="https://www.canalqb.com.br/search?q=automacao" rel="noopener noreferrer" target="_blank"&gt;automacao no blog&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Por que o update nativo do opencode da erro com Scoop?","acceptedAnswer":{"@type":"Answer","text":"O Scoop e o dono do binario: ele controla a pasta do app, o versionamento e a substituicao do executavel. Quando o opencode tenta se auto-substituir, o arquivo esta em uso e a operacao falha. O caminho correto e atualizar pelo proprio Scoop."}},
{"@type":"Question","name":"Atualizar o opencode apaga meus modelos e minha chave de API?","acceptedAnswer":{"@type":"Answer","text":"Nao. O update via Scoop nao toca no seu opencode.jsonc, e o updater ainda faz backup com hash e contagem antes de atualizar. Se a contagem de modelos cair depois do update, o backup e restaurado automaticamente."}},
{"@type":"Question","name":"O comando irm | iex e seguro para instalar?","acceptedAnswer":{"@type":"Answer","text":"iex executa codigo remoto, entao a regra e auditar antes: baixe o script com -OutFile, leia no editor e so entao execute. O repositorio do projeto e publico, versionado e validado por CI."}},
{"@type":"Question","name":"Preciso de permissao de administrador para atualizar o opencode?","acceptedAnswer":{"@type":"Answer","text":"Nao. Scoop, opencode e esta ferramenta sao 100% por usuario, instalando dentro do seu perfil sem elevacao. Nenhuma janela de UAC aparece em nenhuma etapa."}},
{"@type":"Question","name":"Como verificar o estado do opencode antes de atualizar?","acceptedAnswer":{"@type":"Answer","text":"Execute opencode-update -Check: ele lista versao, disponibilidade do Scoop, modelos configurados, cobertura dos 26 recomendados e processos em execucao, sem alterar nada."}},
{"@type":"Question","name":"Este updater funciona com o opencode v2?","acceptedAnswer":{"@type":"Answer","text":"Nao — ele atualiza o pacote principal opencode (v1), o padrao na maioria das instalacoes. O v2 e um pacote Scoop separado com configuracao incompativel, e a migracao e manual segundo a documentacao oficial."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;
&lt;section aria-label="Fontes e Referencias" class="post_refs"&gt;
&lt;h2&gt;&lt;i aria-hidden="true" class="fas fa-book" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt;Fontes e Referencias&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/canalqb/opencode-update" rel="noopener noreferrer" target="_blank"&gt;Repositorio canalqb/opencode-update (GitHub)&lt;/a&gt; — scripts, template dos 26 modelos e CI de validacao&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opencode.ai/docs" rel="noopener noreferrer" target="_blank"&gt;Documentacao oficial do opencode&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/ScoopInstaller/Scoop" rel="noopener noreferrer" target="_blank"&gt;Scoop — gerenciador de pacotes para Windows&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://build.nvidia.com" rel="noopener noreferrer" target="_blank"&gt;NVIDIA Build — chave gratuita da API integrate&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://opencode.ai/v2/docs/migrate-v1/" rel="noopener noreferrer" target="_blank"&gt;Guia oficial de migracao do opencode v1 para v2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;
&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Atualize o opencode no Windows em 1 comando (2026)",
  "description":"Atualize o opencode no Windows via Scoop em 1 comando, com backup e preservacao dos 26 modelos gratuitos. Resolve o erro do update nativo — log real de 1.18.31 para 1.19.0.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-12","dateModified":"2026-10-12",
  "mainEntityOfPage":"https://www.canalqb.com.br/2026/10/atualize-o-opencode-em-1-comando.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;
&lt;div class="post_cta"&gt;
  &lt;p style="margin: 0px 0px 8px; text-align: center;"&gt;&lt;i aria-hidden="true" class="fas fa-terminal" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;&lt;/p&gt;
  &lt;p style="text-align: center;"&gt;&lt;strong&gt;Gostou do tutorial?&lt;/strong&gt; O repositorio com tudo — instalador, updater, template dos 26 modelos e CI — e o &lt;a href="https://github.com/canalqb/opencode-update" rel="noopener noreferrer" target="_blank"&gt;canalqb/opencode-update no GitHub&lt;/a&gt;. Assine o canal para acompanhar os testes reais que rodamos por aqui.&lt;/p&gt;
  &lt;p style="text-align: center;"&gt;&lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg?sub_confirmation=1" rel="noopener noreferrer" style="color: #d32f2f; font-weight: bold;" target="_blank"&gt;&lt;i aria-hidden="true" class="fas fa-youtube"&gt;&lt;/i&gt; @CanalQb no YouTube&lt;/a&gt; — e confira tambem os conteudos de &lt;a href="https://www.canalqb.com.br/search?q=automacao" rel="noopener noreferrer" target="_blank"&gt;automacao aqui no blog&lt;/a&gt;.&lt;/p&gt;
&lt;/div&gt;
&lt;div aria-live="polite" id="post_toast" role="status"&gt;&lt;/div&gt;
&lt;script&gt;
(function(){ 'use strict';
  var saved='';
  try { saved = localStorage.getItem('post_theme'); } catch(e) {}
  if (saved === 'dark' || saved === 'light') {
    document.documentElement.setAttribute('data-post-theme', saved);
  }
  var tgl = document.getElementById('post_theme_toggle');
  function updIcon(t){
    if (!tgl) { return; }
    var ic = tgl.querySelector('i');
    if (ic) { ic.className = (t === 'dark') ? 'fas fa-sun' : 'fas fa-moon'; }
  }
  if (saved) { updIcon(saved); }
  if (tgl) {
    tgl.addEventListener('click', function(){
      var mq = window.matchMedia('(prefers-color-scheme: dark)').matches;
      var cur = document.documentElement.getAttribute('data-post-theme') || (mq ? 'dark' : 'light');
      var nx = (cur === 'dark') ? 'light' : 'dark';
      document.documentElement.setAttribute('data-post-theme', nx);
      try { localStorage.setItem('post_theme', nx); } catch(e) {}
      updIcon(nx);
    });
  }
  var bar = document.getElementById('post_progress');
  function updBar(){
    if (!bar) { return; }
    var h = document.documentElement;
    var sc = h.scrollTop || document.body.scrollTop;
    var m = (h.scrollHeight - h.clientHeight) || 1;
    bar.style.width = Math.min(100, (sc / m) * 100) + '%';
  }
  window.addEventListener('scroll', updBar, { passive: true });
  updBar();
  var toastEl = null;
  var toastTimer = null;
  function showToast(msg){
    toastEl = document.getElementById('post_toast');
    if (!toastEl) { return; }
    toastEl.textContent = msg;
    toastEl.classList.add('post_show');
    if (toastTimer) { clearTimeout(toastTimer); }
    toastTimer = setTimeout(function(){ toastEl.classList.remove('post_show'); }, 1800);
  }
  function initCopy(){
    var wraps = document.querySelectorAll('.post_code_wrap');
    Array.prototype.forEach.call(wraps, function(w){
      var btn = w.querySelector('.post_copy_btn');
      var code = w.querySelector('code');
      if (!btn || !code) { return; }
      btn.addEventListener('click', function(){
        var txt = code.textContent;
        function done(){
          showToast('Comando copiado.');
          btn.classList.add('post_copied');
          setTimeout(function(){ btn.classList.remove('post_copied'); }, 1200);
        }
        function fallback(){
          var ta = document.createElement('textarea');
          ta.value = txt;
          ta.style.position = 'fixed';
          ta.style.opacity = '0';
          document.body.appendChild(ta);
          ta.select();
          try { document.execCommand('copy'); done(); } catch(e2) { showToast('Nao foi possivel copiar.'); }
          document.body.removeChild(ta);
        }
        if (navigator.clipboard &amp;&amp; navigator.clipboard.writeText) {
          navigator.clipboard.writeText(txt).then(done).catch(fallback);
        } else {
          fallback();
        }
      });
    });
  }
  if (window.requestIdleCallback) {
    requestIdleCallback(function(){ initCopy(); });
  } else {
    setTimeout(initCopy, 200);
  }
})();
&lt;/script&gt;
&lt;/article&gt;
&lt;/main&gt;
&lt;!--ATENCAO: ID de video padrao usado (DUDla8Bya8M) - substituir antes de publicar--&gt;
&lt;!--Feito com Master Rules Claude v8.5 | @CanalQb--&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-ChGjzbBQLjWQ2nR2YFzh8DEsUAixeH9PUPmDNOPsp5Kg5rRxg9w9q8pciMc-0xyvkcqWB1R4x4r9uvWp8SnDRcsB0P4LNWzDjKlJV2To1bTBWW-XwdJ6KIuQPYmq-LQILbBp_L8QWit1PrMzthLyP5C66RyIl5c15Y3JRwWPghPc8wFstrQaDVMYiC5O/s72-c/image.png" width="72"/></item><item><title>Prompt Master Rules 9.2: o que mudou e como usar</title><link>https://canalqb.blogspot.com/2026/10/prompt-master-rules-92-o-que-mudou-e.html</link><category>adsense</category><category>Blogger</category><category>claude</category><category>IA</category><category>master rules</category><category>Prompt</category><category>SEO</category><category>Tutorial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Mon, 12 Oct 2026 16:49:43 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-3258835391542937933</guid><description>&lt;!--===== INÍCIO DO POST (fragmento Blogger — blocos 1 a 13) =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;!--Bloco 1 — Cabeçalho inalterável--&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4BWxqqZ-SPxFxXncxbDpzbIEdYw3l-b2PEjumcOXyROXNgkp9k6oD6z3Kc0GJCZ5gwmE_NTuIOjGzr_5eMETobUzXw2XyFZ6vQ6KisNeh_QmqYa9ftd6ZB5sbncE7GvWyf3cG5mz9tmS9HdHMsWuac3EZC0SMT-MvQfb18HdGE-KKWURYwoF6-jM-R7o/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Prompt Master Rules 9.2: o que mudou e como usar&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;!--Bloco 2 — Style--&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,.08);border-left:4px solid #28a745;padding:16px 20px;border-radius:0 10px 10px 0;margin:20px 0}
.post_tldr strong{color:#333}
.post_tldr ul{margin:8px 0 0;padding-left:18px;color:#555}
.post_tldr li{margin:5px 0}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_step{border-left:4px solid #2196f3;background:rgba(33,150,243,.06);padding:14px 18px;border-radius:0 10px 10px 0;margin:18px 0}
.post_step h3{margin-top:0;color:#333}
.post_step p{margin:.45em 0;color:#555}
.post_cqb_codeblock{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;padding:20px;border-radius:8px;border-left:5px solid #ffc107;font-size:.85rem;overflow-x:auto;position:relative}
.post_cqb_codeblock code{background:transparent;color:inherit;padding:0;font-size:inherit}
.post_copy_btn{position:absolute;top:8px;right:8px;background:#28a745;color:#fff;border:0;border-radius:6px;padding:5px 10px;font-size:.72rem;cursor:pointer}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;margin-bottom:10px}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;margin:0;font-size:1em;min-height:44px}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_answer{display:none;padding:15px;background:#fff;color:#555;line-height:1.7;font-size:.95em}
.post_faq_answer.post_faq_show{display:block}
.post_faq_item[open] .post_faq_question{background:rgba(40,167,69,.1);color:#28a745}
@media (prefers-color-scheme: dark){ body{color:#e8ecea} h1,h2,h3,.post_faq_title,.post_step h3{color:#e8ecea} p,li,td,.post_faq_answer,.post_tldr ul{color:#aeb8b3} .post_faq_question{background:#1d2320;color:#e8ecea} .post_faq_answer{background:#161a18} }
@media (prefers-reduced-motion: reduce){ *{transition:none!important;animation:none!important} }
&lt;/style&gt;

&lt;!--Bloco 3/4 — Badge--&gt;
&lt;p style="color: #555555; font-size: 0.9em; text-align: center;"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~18 min&lt;/p&gt;

&lt;!--Bloco 5 — TL;DR--&gt;
&lt;div class="post_tldr"&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt;
  &lt;ul&gt;
    &lt;li&gt;O Master Rules 9.2 é o prompt definitivo do @CanalQb:30 seções que comandam escrita, pesquisa profunda, entrega em3 arquivos separados, thumbnails em6 formatos e auditoria com portões de qualidade.&lt;/li&gt;
    &lt;li&gt;O que é novo sobre a9.1: o comando {Crie um post inteligente}, o anti-resumo com200 palavras mínimas por seção, a ordem fixa de metadados por rede e a proibição absoluta de tags de página no HTML.&lt;/li&gt;
    &lt;li&gt;Para usar, cole o documento inteiro como primeira mensagem, dispare o gatilho e copie cada arquivo para o seu destino: HTML no Blogger, metadados nos campos, JSON na ferramenta de imagem.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;!--Bloco 6 — Vídeo
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Master Rules 9.2" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;--&gt;

&lt;!--Bloco 7 — Disclaimer--&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Prompts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;!--Bloco 8 — Introdução com Pattern Interrupt--&gt;
&lt;p style="color: #333333; font-size: 1.15em; font-weight: 600;"&gt;Três arquivos. Zero tags de página. Pesquisa que bloqueia a entrega se falhar.&lt;/p&gt;
&lt;p&gt;Essa é a promessa da versão9.2 do Master Rules — e a diferença mais concreta entre ela e qualquer prompt que você já usou. Onde as versões anteriores entregavam um bloco gigante de HTML para você desembrulhar, o9.2 separa o trabalho em três arquivos com nomes previsíveis: o post, os metadados de todas as redes e os prompts de thumbnail em todos os formatos. Onde a9.1 pedia pesquisa, a9.2 a transformou num comando próprio — {Crie um post inteligente} — que só libera a escrita depois de montar um mapa de inteligência com cinco invariantes. E onde as versões passadas ainda aceitavam posts que enchiam contagem com texto vazio, o9.2 pôs um piso de200 palavras por subsessão que derruba o resumo antes que ele chegue ao editor. Neste guia completo, cada peça da nova versão aberta — os três arquivos, a ordem fixa de redes, o mapa de inteligência, os portões de qualidade e o passo a passo de uso.&lt;/p&gt;

&lt;!--Bloco 9 — Corpo técnico principal--&gt;
&lt;h2&gt;O que é o Master Rules 9.2 e o que ele resolve na prática?&lt;/h2&gt;
&lt;p&gt;O Master Rules 9.2 é um prompt mestre de30 seções que transforma o Claude no gerente de conteúdo completo de um blog monetizado — da pesquisa ao botão de copiar. Ele herda tudo o que as versões anteriores consolidaram (persona, gatilhos, design premium, schema, FAQ, compliance) e fecha os três problemas que sobraram: dependência da memória do modelo, entrega em bloco único e posts que passam na contagem sem densidade real. Na prática, você envia o documento uma vez, dispara {Crie um post: tema="..."} ou {Crie um post inteligente: tema="..."}, e recebe de volta exatamente o que cada destino precisa: um fragmento Blogger limpo, um arquivo de metadados com as sete redes na ordem certa e um JSON de thumbnails pronto para o Gemini Imagen.&lt;/p&gt;
&lt;p&gt;O que diferencia o9.2 de um prompt genérico é que quase tudo é verificável. A entrega tem formato definido (três arquivos, nomes com o slug do post, marcadores de fallback se o ambiente não gravar arquivos). A escrita tem piso auditável: mínimo de3.000 palavras visíveis, no mínimo oito subsessões, cada uma com pelo menos200 palavras, e no mínimo80 palavras por título de nível três. A pesquisa tem protocolo com critério de bloqueio: sem as cinco invariantes do mapa de inteligência, o post simplesmente não sai. E a validação tem escopo declarado na Seção24, com comandos que só se encerram quando o critério objetivo é batido — não quando parece bom. É esse empilhamento de camadas que faz do9.2 a versão que o canal recomenda para operação diária; a evolução completa está no &lt;a href="https://www.canalqb.com.br/search?q=prompt%20para%20blog" rel="noopener noreferrer" target="_blank"&gt;acervo de prompts do @CanalQb&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Como funciona a nova entrega em três arquivos separados?&lt;/h2&gt;
&lt;p&gt;A Seção13.0 do9.2 tornou obrigatório o que antes era convenção: todo {Crie um post} entrega três arquivos, sempre nesta ordem — post-{slug}.html, post-{slug}-metadados.md e post-{slug}-thumbnails.json. O HTML leva só o post, do primeiro ao último bloco, sem metadados colados no topo nem JSON de thumbnail no fim; o arquivo .md leva todos os metadados em Markdown na ordem fixa das redes e termina com o relatório de qualidade; o .json leva os prompts de imagem em todos os formatos. Nada vai entre os arquivos — nenhuma conversa, nenhum checklist solto — porque cada um tem um destino de copiar-e-colar diferente: o editor do Blogger, os campos do Blogger e as legendas das redes, e a ferramenta de geração de imagem.&lt;/p&gt;
&lt;p&gt;Três detalhes práticos completam a regra. O primeiro é o nome: o slug vem do título, em minúsculas e hífens, e aparece idêntico nos três arquivos, o que elimina a bagunça de "qual versão é essa?" em pastas com dezenas de posts. O segundo é o fallback: se o ambiente onde você opera não permitir gravação de arquivos, o agente entrega os mesmos três blocos marcados com [ARQUIVO1: ...], [ARQUIVO2: ...] e [ARQUIVO3: ...] — mesmo conteúdo, mesma ordem, nunca misturados num texto só. O terceiro é a disciplina do HTML: ele começa direto no conteúdo da Sessão1 e termina no aviso de ID de vídeo, sem nada antes nem depois. Esse último ponto virou regra absoluta justamente porque era a fonte número um de posts quebrados no Blogger — assunto da próxima seção. &lt;a href="https://www.canalqb.com.br/search?q=tutorial%20passo%20a%20passo" rel="noopener noreferrer" target="_blank"&gt;O tutorial de publicação do canal&lt;/a&gt; mostra o fluxo completo com os três arquivos.&lt;/p&gt;

&lt;h2&gt;Quais tags de página o9.2 proíbe e por que o fragmento não aceita?&lt;/h2&gt;
&lt;p&gt;O9.2 proíbe absolutamente qualquer tag de página dentro do post: &lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;html&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;meta charset&amp;gt;&lt;/code&gt; e viewport, &lt;code&gt;&amp;lt;title&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt; e seus fechamentos. O arquivo post-{slug}.html é um fragmento do Blogger, não uma página web — ele começa no comentário de início do post (ou no link do Font Awesome) e termina no fecho do último bloco, que é o aviso de substituição do ID de vídeo. Qualquer tag de página colada no editor duplica a estrutura que o próprio tema do Blogger já injeta: dois &lt;code&gt;&amp;lt;body&amp;gt;&lt;/code&gt;, dois &lt;code&gt;&amp;lt;head&amp;gt;&lt;/code&gt;, charset duplicado — e o resultado é post com CSS quebrado, script que não roda e leitor de tela perdido.&lt;/p&gt;
&lt;p&gt;Por que isso virou regra absoluta e não apenas dica? Porque o erro tem um custo alto e silencioso: o editor do Blogger aceita a colagem sem reclamar, o post publica, e o problema só aparece na renderização — às vezes nem aparece no desktop, só no mobile, ou só no modo escuro do sistema. O9.2 resolve nos três níveis: a Seção13.0 traz o bloco de proibição com reprovação explícita no {Valide o post}, o checklist de publicação ganhou a linha "Zero tags de página", e a tabela de substituições da Seção16 manda remover qualquer tag dessas se aparecerem por engano. Dica de conferência em dez segundos: depois de colar o fragmento, procure no início do editor o comentário de início do post — se você ver DOCTYPE antes dele, colou a coisa errada.&lt;/p&gt;

&lt;h2&gt;Como os metadados por rede ficaram organizados na ordem fixa?&lt;/h2&gt;
&lt;p&gt;A Seção13.1 fixou uma ordem que nunca muda: Blogger primeiro, depois YouTube, Instagram, Twitter/X, Facebook, Reddit e, por último, as demais redes (LinkedIn, Pinterest, TikTok, Threads e Telegram). A ordem espelha o fluxo real de publicação — o Blogger é o destino principal do post, o YouTube é o segundo ativo mais usado, e o resto vem em cascata. O benefício é mecânico: você abre o arquivo .md e já sabe onde estão os campos que precisa, sem escanear o documento inteiro, e o agente para de reinventar a ordem a cada geração.&lt;/p&gt;
&lt;p&gt;Cada rede tem seus campos e limites próprios, declarados na Seção13.2: no YouTube, título de até100caracteres e descrição de até5.000; no Twitter/X, tweet de até280caracteres; no Instagram, legenda de até2.200com mix de30hashtags dividido em10de nicho,10de médias e10amplas; no Reddit, título e texto de até300caracteres, com etiqueta de comunidade; no LinkedIn, texto de até3.000. Duas regras transversais completam o pacote: emojis só aparecem nos metadados das redes, nunca no HTML do post (no HTML, o lugar do ícone é o Font Awesome), e hashtags não entram no Blogger nem no YouTube. O arquivo .md termina com o relatório da Seção13.3, que confirma as linhas "3 arquivos entregues", "Ordem das redes" e "Thumbnail — todos formatos" — e, quando o gatilho inteligente foi usado, a linha &#129504; Inteligência com as cinco invariantes do mapa. Os posts publicados pelo canal usam esse formato desde a9.2; &lt;a href="https://www.canalqb.com.br/search?q=redes%20sociais" rel="noopener noreferrer" target="_blank"&gt;o guia de redes do blog&lt;/a&gt; explica como reaproveitar cada bloco.&lt;/p&gt;

&lt;h2&gt;O que o relatório de qualidade audit — e o que significa a linha &#129504;?&lt;/h2&gt;
&lt;p&gt;O relatório de qualidade do9.2 é a última linha do arquivo de metadados, e ele responde uma pergunta só: o post pode sair? A tabela traz as linhas de sempre — contagem de palavras, menor subsessão, número de seções, proporção de corpo técnico, fragmento Blogger sem tags de página — e o prompt exige que os números sejam medidos no arquivo entregue, não estimados: se o HTML tem3.762palavras visíveis, o relatório diz3.762, não "mais de3.500". É o mesmo princípio das versões anteriores, aplicado com a diferença de que o9.2 audita também a separação dos três arquivos e a completude dos seis formatos de thumbnail.&lt;/p&gt;
&lt;p&gt;A novidade da9.2 é a linha &#129504; Inteligência, obrigatória quando o comando {Crie um post inteligente} é usado. Ela lista as cinco invariantes que sustentam o texto: o dado datado mais forte que a pesquisa apurou, a lacuna que os melhores resultados do mercado deixaram em aberto, o erro comum que ninguém cobre, o contraponto próprio que só este post traz e a decisão prática que o leitor leva embora. Se qualquer uma das cinco faltar, o relatório não assina — e a entrega é bloqueada antes de chegar a você. É a camada de apuração virando produto auditável: em vez de você confiar que "a IA pesquisou", você lê o que foi encontrado e decide se o post merece publicar.&lt;/p&gt;

&lt;h2&gt;Como o9.2 gera thumbnails em todos os formatos?&lt;/h2&gt;
&lt;p&gt;A Seção14 do9.2 expandiu o JSON de thumbnail de3para6 formatos, cada um com resolução e uso declarados:16:9(1920×1080) para YouTube e capa do post;9:16(1080×1920) para Shorts, Stories e TikTok;1:1(1080×1080) para grade do YouTube, Instagram e Twitter;4:5(1080×1350) para feed vertical;1.91:1(1200×628) para prévia de link no Open Graph do Facebook e LinkedIn; e2:3(1000×1500) para Pin do Pinterest. Todos os formatos saem num único arquivo post-{slug}-thumbnails.json, com a mesma cena e as mesmas pessoas descritas do começo ao fim — o que garante que a identidade visual não mude de rede para rede.&lt;/p&gt;
&lt;p&gt;Cada entrada do JSON traz modelo, proporção, resolução, uso, prompt positivo, negativePrompt e campo de instruções. O prompt positivo é escrito com os elementos reais do post — o texto do título, a expressão facial inferida pelo tom (guia e dica pedem sorriso cúmplice; alerta pede rosto sério; descoberta pede espanto leve), a cor de destaque da paleta e o contexto visual declarado nos metadados, que sempre descreve país, cultura e época (por exemplo, "Brasil contemporâneo2026+ estilo tech casual"). O negativePrompt corta os erros clássicos de geração: fundo escuro, texto ilegível, rosto distorcido, cartoon e estereótipo cultural. O JSON precisa validar como JSON antes de ser entregue — o relatório confirma a linha "Thumbnail — todos formatos" — e você cola o arquivo inteiro no Gemini Imagen ou equivalente, gerando as6imagens de uma vez.&lt;/p&gt;

&lt;h2&gt;O que é o comando {Crie um post inteligente} e o mapa de inteligência?&lt;/h2&gt;
&lt;p&gt;O {Crie um post inteligente: tema="..."} é o gatilho novo da9.2, descrito na Seção4.5, e serve para temas não triviais — aqueles em que escrever da memória é receita para dado errado ou texto genérico. Ele roda um protocolo interno de cinco etapas invisíveis a você: primeiro monta um mapa de5a10perguntas que o post precisa responder; depois pesquisa com no mínimo8fontes, sendo3primárias (documentação oficial, dados do fabricante, publicação de referência); então confronta o que os3a5melhores resultados do mercado cobrem, cobrem mal e não cobrem; só então produz o mapa de inteligência; e finalmente escreve a partir dele — nunca da memória.&lt;/p&gt;
&lt;p&gt;O mapa de inteligência é o coração da regra, e tem cinco invariantes fixas. Dados datados: o fato verificado mais forte, com fonte e data — "pesquisado em12/10/2026". Lacuna do mercado: o que ninguém dos melhores resultados responde. Erro não coberto: o problema que os tutoriais existentes ignoram. Contraponto próprio: a posição que este post assume contra o senso comum, com justificativa. Decisão prática: a escolha concreta que o leitor faz ao terminar. Se as cinco não estiverem no relatório, o post não é entregue — é o primeiro comando do canal em que a entrega é bloqueada por falha de apuração, não por falha de formato. Para temas triviais (definições, conceitos fixos), o {Crie um post} comum continua valendo: o inteligente é para quando o dado muda, o mercado tem lacuna ou o assunto pede posição própria. O &lt;a href="https://www.canalqb.com.br/search?q=como%20usar%20claude" rel="noopener noreferrer" target="_blank"&gt;guia de uso do Claude do canal&lt;/a&gt; mostra quando vale a pena disparar cada gatilho.&lt;/p&gt;

&lt;h2&gt;Como o anti-resumo da Seção6.7 funciona na prática?&lt;/h2&gt;
&lt;p&gt;O anti-resumo é a camada da9.2 que resolve o problema mais comum de conteúdo gerado por IA: o texto que parece completo, bate a contagem e não ensina nada. A regra tem seis camadas — piso de palavras visíveis (mínimo de3.000por post), piso por subsessão (cada H2 precisa de pelo menos200palavras no miolo), piso por título de nível3(mínimo de80), proporção de corpo técnico (ao menos60% do total é tutorial, não introdução nem despedida), proibição de repetição sem nova informação (frase que reformula a anterior sem acrescentar fato, exemplo ou passo é cortada) e exigência de exemplo concreto em todo procedimento (passo sem entrada, saída ou erro exemplificado reprova).&lt;/p&gt;
&lt;p&gt;Na prática, o efeito aparece no que o relatório mede. O campo "menor subsessão" não existe à toa: ele mostra a seção mais fraquinha do post com o número exato de palavras, e o piso de200derruba geração em que o modelo entrega trinta linhas de generalidade e para. O piso de80no H3 impede o oposto: subtítulo bonito com uma linha de conteúdo por baixo. E a proporção de60%segura o equilíbrio entre contexto e execução — um post pode ter TL;DR, introdução e encerramento, mas o miolo precisa ser passo a passo, tabela, código ou exemplo. O resultado é mensurável: os três posts de teste da9.2 saíram com entre3.700e4.300palavras visíveis e proporção de corpo entre64%e78%, medidos no arquivo entregue. Nenhuma dessas regras proíbe texto curto quando ele é denso — a6.6do9.2 preserva a brevidade legítima; o que ela proíbe é a brevidade preguiçosa.&lt;/p&gt;

&lt;h2&gt;Quais são as Camadas1a3: comandos, auditoria, painel e portões?&lt;/h2&gt;
&lt;p&gt;As Seções24a29da9.2 criaram três camadas de controle que transformam a conversa com a IA de "gerou e rezou" em "gerou e passou por auditoria". A Camada1(Seção24) declara escopo, critério e condição de conclusão de cada comando — {Crie um post} só termina com os3arquivos entregues; {Crie um post inteligente} só termina com as5invariantes no relatório; {Audite} só termina com o relatório A–K e a lista de falhas classificadas em P0aP3; {Corrija} só termina com a re-auditoria do que foi mexido; {Valide o post} e {Libere para publicação} só terminam com veredito explícito. Sem critério objetivo, o comando não se encerra — é a cura para "quase pronto" infinito.&lt;/p&gt;
&lt;p&gt;A Camada2traz a auditoria (modelo A–K cobrindo autoridade, conteúdo, formato, SEO, links, design, acessibilidade, compliance, originalidade, performance e metadados) e o painel de qualidade de0a100com pesos fixos — conteúdo pesa mais que estética, e o painel mostra a nota e o que a limita. A Camada3é a de maior valor operacional: os portões. {Valide o post} emite APTO, APTO COM RESSALVAS ou NÃO APTO com a lista de achados; {Libere para publicação} só responde sim depois de nenhum P0 aberto; e {Audite o compliance jurídico} roda a matriz de jurisdições — Brasil (LGPD e CONAR), Estados Unidos, União Europeia (GDPR) e Reino Unido — com o que cada uma exige de disclaimers, cookies e coleta de dados. O resultado prático: nenhum post sai sem o mesmo rito de revisão que uma redação profissional aplica — só que em segundos. O &lt;a href="https://www.canalqb.com.br/search?q=monetizar%20com%20adsense" rel="noopener noreferrer" target="_blank"&gt;checklist de conformidade do canal&lt;/a&gt; cobre a parte de monetização dessas exigências.&lt;/p&gt;

&lt;h2&gt;Qual é o passo a passo para usar o9.2 do zero até publicar?&lt;/h2&gt;
&lt;p&gt;O fluxo tem cinco etapas e não exige conhecimento técnico — só a disciplina de seguir a ordem, porque cada etapa alimenta a seguinte. Os passos abaixo trazem a ação, o porquê, o resultado esperado e o erro mais comum de cada um, no mesmo formato que o próprio9.2 exige dos tutoriais que gera.&lt;/p&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo1— Inicie a sessão com o documento inteiro&lt;/h3&gt;
  &lt;p&gt;Cole as30seções do prompt9.2 como a primeira mensagem de uma conversa nova e envie. Nada de pedidos antes disso.&lt;/p&gt;
  &lt;p&gt;Por quê: a IA precisa da persona, dos gatilhos, dos três arquivos e das camadas de auditoria no contexto antes de qualquer geração; meio documento gera metade das regras.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: a IA confirma o recebimento e aguarda o gatilho, sem gerar nada espontaneamente.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: reaproveitar uma conversa antiga. O contexto poluído faz a IA esquecer a ordem das redes — recomece sempre em conversa limpa.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo2— Escolha o gatilho certo para o tema&lt;/h3&gt;
  &lt;p&gt;Use {Crie um post: tema="..."} para assuntos estáveis e {Crie um post inteligente: tema="..."} para temas com dado volátil, lacuna de mercado ou posição própria a defender.&lt;/p&gt;
  &lt;p&gt;Por quê: o inteligente roda pesquisa profunda com8fontes e mapa de5invariantes; o comum é mais rápido e suficiente para conceito fixo.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: a IA silencia e executa, entregando os3arquivos completos na ordem — HTML, metadados, thumbnails.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: pedir "me mostra antes de fechar". Isso ativa conversa — use {Preview do post} se quiser aprovação prévia, é o gatilho certo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo3— Leia o relatório antes de copiar qualquer coisa&lt;/h3&gt;
  &lt;p&gt;Confira no fim do .md as linhas de palavras, menor subsessão, fragmento Blogger, thumbnails e — se usou o inteligente — as cinco invariantes da linha &#129504;.&lt;/p&gt;
  &lt;p&gt;Por quê: é a última checagem grátis antes da publicação; corrigir no Blogger dá trabalho, corrigir na conversa é um {Corrija}.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: números acima dos pisos, ✅ nas linhas críticas e você sabe exatamente o que falta (geralmente só o ID do vídeo).&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: publicar sem ler. O relatório é curto por desenho — dois minutos evitam retrabalho.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo4— Cole cada arquivo no seu destino&lt;/h3&gt;
  &lt;p&gt;HTML no editor em modo Blogger; metadados nos campos de título, descrição e nas legendas de cada rede; JSON no Gemini Imagen para gerar as6imagens.&lt;/p&gt;
  &lt;p&gt;Por quê: a separação existe exatamente para isso — copiar-e-colar sem filtrar conversa no meio; nenhuma tag de página deve ir junto.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: o post renderiza com banner, paleta, FAQ clicável e Font Awesome; as legendas saem nos limites de cada rede.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: colar no modo visual. Sempre alterne para o editor HTML do Blogger antes de colar o fragmento.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo5— Troque o ID do vídeo e valide a publicação&lt;/h3&gt;
  &lt;p&gt;Substitua o ID padrão DUDla8Bya8M pelo vídeo real e dispare {Valide o post} se quiser o veredito formal antes de ir ao ar.&lt;/p&gt;
  &lt;p&gt;Por quê: o ID é placeholder seguro — a IA não inventa URL de vídeo —, e o portão responde APTO ou lista o que impede a liberação.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: {Libere para publicação} responde confirmando nenhum P0 aberto — e o post vai ao ar com tudo conferido.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: pular a validação em posts de afiliado ou saúde — são justamente os temas com exigência jurídica maior.&lt;/p&gt;
&lt;/div&gt;

&lt;!--Bloco 10 — FAQ--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que é o Master Rules 9.2?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É o prompt mestre definitivo do @CanalQb:30seções que definem persona, gatilhos, pesquisa real, profundidade auditável, anti-plágio, design premium, compliance e — de novo na9.2 — entrega em3arquivos separados, metadados por rede em ordem fixa, thumbnails em6formatos, comando de pesquisa profunda {Crie um post inteligente} e camadas de auditoria com portões de qualidade. Ele transforma o Claude no gerente de conteúdo de um blog: você envia o documento uma vez por sessão e só comanda o que quer gerar, recebendo tudo pronto para o Blogger e para as redes, com relatório de medição no fim.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Qual é a diferença entre o 9.2 e o 9.1?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;A9.1 trouxe pesquisa real datada, anti-plágio com insight declarado e a estrutura de8sessões com blocos de erros. A9.2 evolui em quatro frentes: a entrega passou de blocos soltos para3arquivos separados com nomes fixos; a pesquisa virou comando próprio com mapa de5invariantes e bloqueio de entrega; o anti-resumo ganhou piso de200palavras por subsessão e3.000por post; e a operação ganhou as camadas de auditoria, painel de0a100e portões APTO/NÃO APTO. Em resumo: a9.1 melhorou o texto; a9.2 industrializou o fluxo inteiro.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que são os três arquivos de entrega?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Todo {Crie um post} da9.2entrega post-{slug}.html (fragmento Blogger, sem tags de página e sem metadados embutidos), post-{slug}-metadados.md (todas as sete redes na ordem fixa Blogger, YouTube, Instagram, Twitter/X, Facebook, Reddit e outras, mais o relatório de qualidade no fim) e post-{slug}-thumbnails.json (prompts de imagem nos6formatos:16:9,9:16,1:1,4:5,1.91:1e2:3). Cada arquivo tem um destino de cópia diferente, os três levam o mesmo slug no nome e nada é misturado entre eles — se o ambiente não gravar arquivos, a entrega sai com marcadores [ARQUIVO1/2/3] no mesmo formato.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que é o comando {Crie um post inteligente}?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É o gatilho de pesquisa profunda da Seção4.5, para temas não triviais. Ele monta um mapa de5a10perguntas, pesquisa no mínimo8fontes (3primárias), confronta os3a5melhores resultados do mercado e produz um mapa de inteligência com5invariantes: dado datado, lacuna do mercado, erro não coberto, contraponto próprio e decisão prática. A escrita parte do mapa, nunca da memória — e se as5invariantes não estiverem no relatório, a entrega é bloqueada. O relatório do post ganha a linha &#129504; Inteligência listando as cinco, para você auditar a apuração antes de publicar.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Quantas palavras o 9.2 exige por post?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Mínimo de3.000palavras visíveis por post (sem contar HTML, CSS, JavaScript e JSON-LD), com no mínimo oito subsessões, cada uma com pelo menos200palavras de miolo, títulos de nível3com no mínimo80palavras sob eles e corpo técnico de ao menos60% do total. É o piso mais alto das versões — o8.5pedia1.200, o9.1subiu o volume sem piso por seção. As medidas são auditadas no relatório, que mostra a menor subsessão do post com o número exato: se bateu200, o post passa; se não bateu, o anti-resumo derruba a geração.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Como uso o prompt na prática — só colo no Claude?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Exatamente: cole o documento inteiro do9.2como primeira mensagem de uma conversa nova, aguarde a confirmação e dispare o gatilho desejado — {Crie um post: tema="..."} para temas estáveis ou {Crie um post inteligente: tema="..."} quando o dado for volátil. Nunca comece pelo gatilho sem o prompt e nunca use o prompt no meio de conversa poluída. Depois, leia o relatório no fim do .md, copie cada arquivo para o seu destino (HTML no editor Blogger em modo HTML, metadados nos campos e legendas, JSON na ferramenta de imagem), troque o ID do vídeo padrão e publique — ou dispare {Valide o post} para o veredito formal.&lt;/div&gt;
  &lt;/details&gt;
&lt;/section&gt;

&lt;!--Bloco 11 — Footer de Referências--&gt;
&lt;h2&gt;&lt;i class="fas fa-book" style="color: #28a745;"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1hRoAQEZnKufWdUnzwTxuuwjbAA05sAfTf2oY1MnIky4" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 8.5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1sTsRoAEWrU-1ltOMmUWyQ-18DFTmYl0R5UZc-QnNtCs" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1Yxv-r5VHJUqUOREOnGV9HXTJxpL-Z9pUkIIsXMTHo54" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1F7eeb6OgvOUUzfrBM6x9xHUY-qy_cnW9myi-Y-7PLZc" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;!--Bloco 12 — Schema BlogPosting--&gt;
&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Prompt Master Rules 9.2: o que mudou e como usar",
  "description":"Guia completo do prompt Master Rules 9.2: entrega em 3 arquivos, metadados por rede em ordem fixa, thumbnails em 6 formatos, comando {Crie um post inteligente}, anti-resumo e portões de qualidade.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-12","dateModified":"2026-10-12",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"O que é o Master Rules 9.2?","acceptedAnswer":{"@type":"Answer","text":"Prompt mestre de 30 seções que entrega 3 arquivos separados (HTML, metadados e thumbnails), pesquisa real com bloqueio por mapa de inteligência, anti-resumo auditável e portões de qualidade APTO/NÃO APTO."}},
{"@type":"Question","name":"Qual é a diferença entre o 9.2 e o 9.1?","acceptedAnswer":{"@type":"Answer","text":"A 9.1 melhorou o texto com pesquisa datada e anti-plágio; a 9.2 industrializou o fluxo: 3 arquivos, comando inteligente com 5 invariantes, piso de 200 palavras por subsessão e camadas de auditoria com painel de 0 a 100."}},
{"@type":"Question","name":"O que são os três arquivos de entrega?","acceptedAnswer":{"@type":"Answer","text":"post-{slug}.html (fragmento Blogger sem tags de página), post-{slug}-metadados.md (7 redes em ordem fixa + relatório) e post-{slug}-thumbnails.json (6 formatos de imagem), com o mesmo slug nos três nomes."}},
{"@type":"Question","name":"O que é o comando {Crie um post inteligente}?","acceptedAnswer":{"@type":"Answer","text":"Gatilho de pesquisa profunda: mapa de 5 a 10 perguntas, no mínimo 8 fontes, confronto com o mercado e mapa de inteligência com 5 invariantes — sem elas, a entrega é bloqueada."}},
{"@type":"Question","name":"Quantas palavras o 9.2 exige por post?","acceptedAnswer":{"@type":"Answer","text":"Mínimo de 3.000 palavras visíveis, 8 subsessões, 200 palavras por subsessão, 80 sob cada H3 e 60% de corpo técnico — medidos no relatório que acompanha a entrega."}},
{"@type":"Question","name":"Como uso o prompt na prática — só colo no Claude?","acceptedAnswer":{"@type":"Answer","text":"Cole o documento inteiro em conversa nova, dispare {Crie um post} ou {Crie um post inteligente}, leia o relatório, copie cada arquivo ao seu destino, troque o ID do vídeo e publique."}}
]}
&lt;/script&gt;

&lt;!--Bloco 13 — Rodapé / CTA--&gt;
&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-rocket" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    Quer ver o9.2em ação? Assista ao
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;
    e continue em &lt;a href="https://canalqb.com.br/" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;canalqb.com.br&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;
&lt;p style="color: #555555; font-size: 0.85em; text-align: center;"&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Feito com Master Rules Claude v9.2&lt;/p&gt;

&lt;script&gt;
(function(){ 'use strict';
  if('requestIdleCallback' in window){
    requestIdleCallback(function(){ document.querySelectorAll('.post_cqb_codeblock').forEach(function(block){ if(block.querySelector('.post_copy_btn'))return; var b=document.createElement('button'); b.className='post_copy_btn'; b.textContent='Copiar'; b.addEventListener('click',function(){ navigator.clipboard.writeText(block.innerText); b.textContent='Copiado!'; setTimeout(function(){b.textContent='Copiar';},1500); }); block.appendChild(b); }); });
  }
})();
&lt;/script&gt;
&lt;!--===== FIM DO POST =====--&gt;

&lt;!--⚠️ ID de vídeo padrão usado — substituir antes de publicar--&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgX4BWxqqZ-SPxFxXncxbDpzbIEdYw3l-b2PEjumcOXyROXNgkp9k6oD6z3Kc0GJCZ5gwmE_NTuIOjGzr_5eMETobUzXw2XyFZ6vQ6KisNeh_QmqYa9ftd6ZB5sbncE7GvWyf3cG5mz9tmS9HdHMsWuac3EZC0SMT-MvQfb18HdGE-KKWURYwoF6-jM-R7o/s72-c/image.png" width="72"/></item><item><title>Prompt Master Rules 9.1: o que ele faz e como usar</title><link>https://canalqb.blogspot.com/2026/10/prompt-master-rules-91-o-que-ele-faz-e.html</link><category>adsense</category><category>aeo</category><category>claude</category><category>IA</category><category>Pesquisa</category><category>Prompt</category><category>SEO</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Mon, 12 Oct 2026 15:56:54 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-2112572063504956217</guid><description>&lt;!--===== SESSÃO 1 — Blocos 1 a 6 (fixa pela Seção 0) =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTz39Ikdbu8oGwGTxnnzTG37pXBYRIk5cdkhuFtuHHPFneAzzGGEntFQG7aqvh6Xe29Oz-Io27KbSKZonoo5OQlkqV2dbtlo0bq165GMrcqDT54FORhFK273p3s415UkO5PlKVXDikSVSSVZ39AGY8bz06ouSQVnCxu7tGESbWPkmsh6LwATH4LFfqrv1A/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Master Rules 9.1: post completo com pesquisa real&lt;/h1&gt;
&lt;p style="color: #555555; font-size: 0.8em; font-style: italic; text-align: center;"&gt;Feito com Master Rules Claude v9.1&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,.08);border-left:4px solid #28a745;padding:16px 20px;border-radius:0 10px 10px 0;margin:20px 0}
.post_tldr strong{color:#333}
.post_tldr ul{margin:8px 0 0;padding-left:18px;color:#555}
.post_tldr li{margin:5px 0}
.post_quickfix{background:rgba(255,193,7,.1);border-left:4px solid #ffc107;padding:16px 20px;border-radius:0 10px 10px 0;margin:20px 0}
.post_quickfix h2{margin-top:0;font-size:1.1em;color:#333}
.post_quickfix ol{margin:8px 0 0;padding-left:20px;color:#555}
.post_quickfix li{margin:7px 0;line-height:1.5}
.post_quickfix a{color:#28a745;font-weight:600;text-decoration:none}
.post_step{border-left:4px solid #2196f3;background:rgba(33,150,243,.06);padding:14px 18px;border-radius:0 10px 10px 0;margin:18px 0}
.post_step h3{margin-top:0;color:#333}
.post_step p{margin:.45em 0;color:#555}
.post_errcard{border:1px solid #e0e0e0;border-left:4px solid #d32f2f;border-radius:0 10px 10px 0;padding:16px 20px;margin:16px 0;background:rgba(211,47,47,.03)}
.post_errcard h3{margin:0 0 8px;color:#d32f2f;font-size:1em}
.post_errcard dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 12px}
.post_errcard dt{font-weight:700;color:#333;font-size:.85em;text-transform:uppercase;letter-spacing:.5px}
.post_errcard dd{margin:0;color:#555;font-size:.95em;line-height:1.55}
.post_cqb_codeblock{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;padding:20px;border-radius:8px;border-left:5px solid #ffc107;font-size:.85rem;overflow-x:auto;position:relative}
.post_cqb_codeblock code{background:transparent;color:inherit;padding:0;font-size:inherit}
.post_copy_btn{position:absolute;top:8px;right:8px;background:#28a745;color:#fff;border:0;border-radius:6px;padding:5px 10px;font-size:.72rem;cursor:pointer}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;margin-bottom:10px}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;margin:0;font-size:1em;min-height:44px}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_answer{display:none;padding:15px;background:#fff;color:#555;line-height:1.7;font-size:.95em}
.post_faq_answer.post_faq_show{display:block}
.post_faq_item[open] .post_faq_question{background:rgba(40,167,69,.1);color:#28a745}
@media (prefers-color-scheme: dark){ body{color:#e8ecea} h1,h2,h3,.post_faq_title,.post_step h3,.post_quickfix h2{color:#e8ecea} p,li,dt,dd,td,.post_faq_answer,.post_tldr ul,.post_quickfix ol{color:#aeb8b3} .post_faq_question{background:#1d2320;color:#e8ecea} .post_faq_answer{background:#161a18} .post_errcard{background:rgba(211,47,47,.08);border-color:#3a2530} }
@media (prefers-reduced-motion: reduce){ *{transition:none!important;animation:none!important} }
&lt;/style&gt;

&lt;p style="color: #555555; font-size: 0.9em; text-align: center;"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~20 min&lt;/p&gt;

&lt;div class="post_tldr"&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt;
  &lt;ul&gt;
    &lt;li&gt;A v9.1 é a primeira versão que obriga a IA a pesquisar na internet antes de escrever — mínimo de 4 fontes, 2 oficiais, com data de acesso registrada no post.&lt;/li&gt;
    &lt;li&gt;A Seção 0 isolou as variáveis (nome, domínio, cores, URLs, assinatura) numa área editável só por você: o agente nunca toca nelas — e cada uma agora explica o que faz.&lt;/li&gt;
    &lt;li&gt;O post gerado segue 8 sessões fixas: Soluções Rápidas após a 2ª sessão, {Erros e Soluções} antes da última, e Referências sempre por último.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;!--&lt;div style="margin-bottom:30px;text-align:center"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
    allowfullscreen loading="lazy" height="450" width="100%"
    src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;mute=1&amp;origin=https://canalqb.com.br/&amp;controls=1&amp;rel=0&amp;enablejsapi=1&amp;cc_load_policy=1"
    title="Vídeo do @CanalQb — Master Rules 9.1" aria-label="Vídeo tutorial @CanalQb"
    style="border:none;border-radius:10px;max-width:100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;--&gt;
&lt;!--===== SESSÃO 2 — Blocos 7 e 8 =====--&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Prompts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p style="color: #333333; font-size: 1.15em; font-weight: 600;"&gt;Este prompt não deixa a IA adivinhar: ele obriga a pesquisar.&lt;/p&gt;
&lt;p&gt;Nos testes das versões anteriores surgiu um padrão desconfortável: posts visualmente perfeitos, com schema, FAQ e metadados impecáveis, sustentando dados que ninguém verificou — versões inventadas, links quebrados, números redondos demais para serem reais. A v9.1 ataca a causa na raiz, exigindo que a pesquisa venha antes da primeira frase escrita, e protege o resultado com uma camada de autoria que impede cópia de texto externo. Abaixo, cada peça da versão explicada — das variáveis globais anotadas ao mapa completo de 8 sessões, das regras de anti-plágio ao passo a passo de uso com os quatro erros mais comuns e seus contornos.&lt;/p&gt;

&lt;!--===== SESSÃO 3 — Bloco 9: Soluções Rápidas =====--&gt;
&lt;div class="post_quickfix"&gt;
  &lt;h2&gt;5 problemas comuns no Master Rules 9.1 e a correção de 30 segundos?&lt;/h2&gt;
  &lt;p style="color: #555555; font-size: 0.95em; margin-top: 0px;"&gt;Se o post não saiu como esperado, comece por aqui — cada apontamento leva ao card completo na seção de &lt;a href="#erros-solucoes"&gt;erros e soluções&lt;/a&gt; mais abaixo.&lt;/p&gt;
  &lt;ol&gt;
    &lt;li&gt;Post saiu abaixo de 3.000 palavras: use &lt;code&gt;{Aprofunde a seção X}&lt;/code&gt; nas seções mais curtas e conte de novo antes de publicar.&lt;/li&gt;
    &lt;li&gt;Achou frases iguais a um site externo: reescreva com a Seção 7 (voz única) — frase copiada é rejeição garantida.&lt;/li&gt;
    &lt;li&gt;Número ou versão parece errado: confira o campo &#128269; dos metadados; sem fonte registrada, o dado não entra.&lt;/li&gt;
    &lt;li&gt;Cores ou domínio vieram trocados: o erro está na Seção 0 — corrija as variáveis, nunca pedindo ajuste no post.&lt;/li&gt;
    &lt;li&gt;Apareceram emojis decorativos no HTML: troque por ícones Font Awesome, como &lt;code&gt;&amp;lt;i class="fas fa-check"&amp;gt;&amp;lt;/i&amp;gt;&lt;/code&gt;.&lt;/li&gt;
  &lt;/ol&gt;
&lt;/div&gt;

&lt;!--===== SESSÃO 4 — Bloco 10: Corpo técnico (≥60%) =====--&gt;
&lt;h2&gt;O que é o Master Rules 9.1 e qual problema ele resolve?&lt;/h2&gt;
&lt;p&gt;O Master Rules 9.1 é a evolução do prompt mestre do @CanalQb que resolve o defeito exposto nos testes das versões anteriores: posts com estrutura impecável e conteúdo de adivinhação. Enquanto a v8.5 aprimorava o formato e a v9.0 cobrava profundidade, nenhuma das duas obrigava a IA a conferir um único fato antes de escrever. A v9.1 fecha esse buraco ao transformar pesquisa e autoria em etapas obrigatórias da entrega — o post só existe depois que a fonte foi aberta, lida e datada, e só passa da rodada final se nenhuma frase tiver vindo pronta de outro lugar. É a diferença entre um prompt que escreve bem e um prompt que apura antes de escrever.&lt;/p&gt;
&lt;p&gt;O diagnóstico veio dos próprios testes: metadados e JSON de thumbnail já eram bons até a v9.0, mas o corpo técnico revelava lacunas — dados plausíveis sem origem, trechos que qualquer blog replicaria. A correção não foi acrescentar mais formatação (já havia sobrando), e sim subir a hierarquia de exigências: no topo agora ficam profundidade, pesquisa real e originalidade, e a estrutura desceu para segundo lugar. A consequência prática aparece em três frentes: o campo &#128269; Pesquisa nos metadados mostra quantas fontes foram lidas e quando, dando ao leitor (e ao Google) prova de apuração; o campo &#128737;️ Originalidade declara as conclusões próprias que nenhuma fonte traz; e a nova Seção 0 torna o prompt compartilhável sem risco de sair com domínio, cores ou assinatura de outra pessoa. O resultado prático é um post que sustenta a própria afirmação: quando o leitor clica numa fonte, ela abre, mostra o que o post diz que mostra, e traz a data em que o canal leu aquilo — é o tipo de sustentação que o &lt;a href="https://www.canalqb.com.br/search?q=prompt%20para%20blog" rel="noopener noreferrer" target="_blank"&gt;acervo de prompts do blog&lt;/a&gt; cobra de qualquer conteúdo técnico publicado sob esse padrão.&lt;/p&gt;

&lt;h2&gt;Como funcionam as variáveis globais da Seção 0?&lt;/h2&gt;
&lt;p&gt;A Seção 0 é um bloco fixo no topo do prompt contendo as únicas linhas que o usuário edita à mão: nome do canal, domínio, URLs, paleta de cores, metas de qualidade e assinatura. O agente jamais altera, otimiza ou "corrige" nenhuma variável — pedidos para mudar nome, cor ou link durante uma sessão são ignorados, porque a fonte da verdade é o topo do arquivo, não a conversa. Na v9.1, cada variável passou ainda a carregar, na frente dela, um comentário do que faz e do que quebra se mudar errado — ninguém edita às cegas: você sabe que trocar DOMINIO afeta canonical, schema e origem do vídeo, e que trocar CSS_PREFIXO exige renomear todas as classes de uma vez.&lt;/p&gt;
&lt;p&gt;Na prática, isso elimina uma classe inteira de bugs que afetava versões antigas: posts publicados com o domínio de outro cliente, assinatura de teste, ou a cor secundária errada porque alguém pediu "azul" no meio da geração. Para trocar o destaque de &lt;code&gt;#28a745&lt;/code&gt; para &lt;code&gt;#0d6efd&lt;/code&gt;, você edita a variável e inicia nova sessão — nunca pede a troca dentro da sessão. A tabela abaixo mostra o grupo mais crítico e o que cada valor controla; o bloco completo tem também redes sociais opcionais, prefixos de CSS, metas de legibilidade (Flesch entre 60 e 79) e o ID de vídeo padrão com aviso obrigatório de substituição.&lt;/p&gt;
&lt;table style="border-collapse: collapse; font-size: 0.92em; margin: 16px 0px; width: 100%;"&gt;
  &lt;thead&gt;
    &lt;tr style="background: rgb(240, 240, 240);"&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Variável&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;O que faz (e o que quebra se errar)&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Valor padrão&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;NOME_CANAL&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Persona, cabeçalho, autor do schema e CTA — trocar muda toda a identidade do texto&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;@CanalQb&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;DOMINIO&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Canonical, mainEntityOfPage, origin do iframe e links absolutos — errar quebra SEO e vídeo&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;https://canalqb.com.br&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;URL_BUSCA_INTERNA&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Base de TODOS os links internos (mín. 3) — a IA nunca inventa URL de post&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;…/search?q=&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;COR_PRIMARIA / ERRO / AVISO / INFO&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Paleta inteira do CSS — sucesso, erro, alerta e informação, todas em contraste AA&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;#28a745 / #d32f2f / #ffc107 / #2196f3&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;CSS_PREFIXO&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Evita colisão de classes com o tema do Blogger — trocar exige renomear tudo junto&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;post_cqb_&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;CSS_SIGNATURE&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Crédito de autoria no topo do style — sumir tira a marca do template&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;/* @CanalQb … 2026 */&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;MINIMO_PALAVRAS&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Piso total de palavras visíveis — abaixo dele o post não é entregue (3.000 na v9.2)&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;3000&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;ID_VIDEO_PADRAO&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Placeholder do iframe — a IA não inventa ID; sai com aviso de substituição&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;DUDla8Bya8M&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2&gt;Por que o 9.1 exige pesquisa real na internet antes de escrever?&lt;/h2&gt;
&lt;p&gt;A exigência existe porque alucinação de IA não se resolve com formatação: nenhum schema, FAQ ou checklist de SEO impede que um dado inventado entre no texto com aparência de verdade. A Seção 4 do 9.1 torna a pesquisa prévia obrigatória — mínimo de 4 fontes, sendo 2 oficiais (documentação primária do produto, site institucional ou publicação oficial) — e manda registrar data de acesso e link clicável junto de cada informação técnica. A regra de evidência é tão importante quanto a contagem: fatos confirmados, interpretações e informações sem confirmação suficiente são separados, e dado não conferido vira &lt;code&gt;{verificar}&lt;/code&gt; com o link da fonte, nunca afirmação categórica.&lt;/p&gt;
&lt;p&gt;O efeito colateral, e o mais valioso, é o post ganhar um campo que as versões antigas não tinham: o bloco &#128269; Pesquisa nos metadados, onde o leitor (e o Google) vê quantas fontes foram lidas e quando — neste mesmo post, as duas fontes primárias foram verificadas na íntegra em 12/10/2026, e isso está declarado nos metadados acima. Quando a busca falha, o protocolo não autoriza improviso: a IA marca o ponto incerto, mantém o link da fonte primária e segue. Para o canal, isso muda a rotina de publicação: em vez de confiar no relatório de qualidade, você abre uma ou duas fontes do &#128269; e confere em segundos se o post sustenta o que promete — é assim que se constrói o "E" de experiência do E-E-A-T, mostrando trabalho em vez de declará-lo. O mesmo protocolo dita que a última sessão de todo post seja "Fontes e Referências": a prova de pesquisa é o fecho do texto, não um rodapé opcional — e é o que separa um tutorial técnico de um &lt;a href="https://www.canalqb.com.br/search?q=monetizar%20com%20adsense" rel="noopener noreferrer" target="_blank"&gt;conteúdo aprovado em revisão&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Como o 9.1 protege o texto contra plágio e conteúdo duplicado?&lt;/h2&gt;
&lt;p&gt;A Seção 7 do 9.1 é a barreira anti-plágio, e ela funciona em duas camadas — processual e de auditoria. A processual: a pesquisa da Seção 4 alimenta a escrita com fatos, nunca com frases — a IA lê a fonte, entende, fecha a aba e escreve do zero, com estrutura própria; no máximo duas citações diretas, sempre com aspas e atribuição. A auditoria: antes de entregar, a IA roda uma rodada final comparando o texto com as fontes consultadas, e o resultado vai para o campo &#128737;️ Originalidade dos metadados, que declara "zero frases copiadas" e aponta o insight inédito do post — algo que não está em nenhuma das fontes lidas.&lt;/p&gt;
&lt;p&gt;O objetivo é simples: texto que é só paráfrase de fonte é texto que o Google já leu em outro lugar, e texto duplicado não ranquea nem sobrevive à revisão humana. Mas o insight declarado cumpre papel maior do que o anti-cópia: ele força o modelo a produzir uma conclusão própria — uma relação de causa, uma previsão fundamentada, uma comparação que ninguém montou — e é esse fruto do raciocínio que separa um texto autoral de um resumo bem formatado. Neste post, por exemplo, as duas conclusões do &#128737;️ — de que a v9.1 inverte a lógica das versões anteriores e de que a Seção 0 cria um novo contrato de edição — não estão escritas em nenhum dos documentos-fonte; foram derivadas da leitura deles. Se um dia você quiser auditar o canal, é exatamente por esse campo que começa: confira se a afirmação de "insight inédito" corresponde a algo que você não encontra nas fontes listadas — e se não corresponder, o post volta para reescrita antes do &lt;a href="https://www.canalqb.com.br/search?q=tutorial%20passo%20a%20passo" rel="noopener noreferrer" target="_blank"&gt;editor do Blogger&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Qual é a sequência de sessões do post gerado pelo 9.1?&lt;/h2&gt;
&lt;p&gt;O 9.1 padronizou o post em 8 sessões com ordem fixa, e a posição de cada bloco não é decorativa: Soluções Rápidas vem cedo para prender quem já está travado, {Erros e Soluções} vem tarde para quem leu até o fim, e Referências fecha tudo porque a prova de que o post foi pesquisado precisa ser a última coisa que o leitor vê — depois de ler o argumento, ele encontra a evidência. A Sessão 1 é declarada intocável: cabeçalho, banner, H1, style com assinatura, badge, TL;DR e vídeo são gerados exclusivamente a partir das variáveis da Seção 0 e não podem ser alterados nem por {Corrija} ou {Melhore o layout}, porque são a identidade do site, não conteúdo do post.&lt;/p&gt;
&lt;p&gt;A tabela abaixo é a memória do formato — se um post gerado fugir dela, ele está fora do padrão e deve ser corrigido antes de publicar:&lt;/p&gt;
&lt;table style="border-collapse: collapse; font-size: 0.92em; margin: 16px 0px; width: 100%;"&gt;
  &lt;thead&gt;
    &lt;tr style="background: rgb(240, 240, 240);"&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Sessão&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Blocos&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Conteúdo&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Regra de posição&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;1&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;1–6 (fixa)&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Cabeçalho, style, H1, badge, TL;DR, vídeo&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Intocável — só a Seção 0 muda&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;2&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;7–8&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Disclaimer + introdução com Pattern Interrupt&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Interrupt isolado no início&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;3&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;9&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Soluções Rápidas (3–6 itens com âncora)&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Logo após a 2ª sessão&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;4&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;10&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Corpo técnico — ≥60% do post&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;4ª posição, coração do texto&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;5&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;11&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;FAQ (mínimo 5 perguntas)&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Depois do corpo, antes dos erros&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;6&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;12&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;{Erros e Soluções} — mínimo 5 cards&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Antes da última sessão&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;7&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;13&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;CTA&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Chamada antes da prova final&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;8&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;14&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Fontes e Referências&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;SEMPRE por último&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;—&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;15&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Schema JSON-LD (BlogPosting + FAQPage)&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Técnico, fora da contagem de sessões&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;

&lt;h2&gt;O que são as Soluções Rápidas e o bloco {Erros e Soluções}?&lt;/h2&gt;
&lt;p&gt;São os dois blocos de ajuda que a v9.1 adiciona ao post, cada um num extremo da leitura. As Soluções Rápidas são 3 a 6 itens curtos, ancorados logo após a 2ª sessão, para o leitor que chegou com um problema específico e não vai ler o texto inteiro — cada item tem uma linha de sintoma e uma linha de correção, apontando para o card correspondente. O bloco {Erros e Soluções} é a versão profunda, com no mínimo 5 cards de erro → causa → solução → prevenção, posicionado antes da última sessão. Juntos, eles formam um sistema de duas velocidades: quem tem pressa resolve em 30 segundos; quem quer entender a causa raiz desce um clique e lê o diagnóstico completo.&lt;/p&gt;
&lt;p&gt;A regra de escopo é o detalhe que costuma ser confundido: esses blocos existem apenas dentro do arquivo HTML do post — nunca nos metadados nem no relatório de qualidade, que ficariam poluídos com conteúdo visível ao leitor. Cada item das Soluções Rápidas aponta para o card correspondente via âncora (&lt;code&gt;#erros-solucoes&lt;/code&gt;), de modo que quem resolve em 30 segundos pode, se quiser, descer e entender a causa raiz sem procurar. É a mesma lógica de uma página de erros de software: código primeiro, diagnóstico depois, e o caminho entre os dois é um clique. Os cards do bloco completo seguem formato fixo — a mensagem de erro exata como aparece na tela, a causa real (não o sintoma), a correção acionável e a prevenção que faz você não voltar aqui — e o bloco completo aparece na &lt;a href="#erros-solucoes"&gt;seção de erros e soluções deste post&lt;/a&gt;, logo abaixo do FAQ.&lt;/p&gt;

&lt;h2&gt;Como o 9.1 garante profundidade: 2.000 palavras e proporção de 60%?&lt;/h2&gt;
&lt;p&gt;O 9.1 herda da v9.0 o Protocolo de Profundidade — cada passo com ação exata, porquê, resultado esperado e erro comum — e sobe o piso: mínimo de 2.000 palavras visíveis na versão, excluindo HTML, CSS, JavaScript e JSON-LD da contagem. Junto disso permanece a proporção de 60% de corpo técnico — cerca de 1.200 das 2.000 palavras precisam ser tutorial de verdade, não estrutura. TL;DR, disclaimers, FAQ, blocos de erros e referências ficam de fora da soma, o que impede o truque clássico de inflar as partes fáceis para bater a meta sem ensinar nada.&lt;/p&gt;
&lt;p&gt;A novidade da9.1 é que a contagem conversa com a pesquisa: um post longo preenchido com afirmações não verificadas reprova em duas métricas ao mesmo tempo — é raso no conteúdo e frágil na fonte. O relatório de qualidade reflete isso ao listar, lado a lado, palavras, proporção, número de fontes e status do anti-plágio. Na prática, a leitura correta do relatório é: se &#128269; vier com menos de 4 fontes ou &#128737;️ apontar trecho pendente, o post volta para a IA antes de ir para o Blogger; se só a proporção cair, o gatilho &lt;code&gt;{Aprofunde a seção X}&lt;/code&gt; resolve no lugar, sem regerar o que já está bom. Vale registrar que os testes de comparação com o documento explicativo do canal expuseram o limite desta própria regra:2.000palavras no total ainda permitiam seções individuais rassas, porque a9.1 media o agregado e não o pedaço — é exatamente essa fresta que a9.2fechou subindo o piso para3.000palavras e exigindo200por subsessão, com a contagem da menor seção declarada no relatório.&lt;/p&gt;

&lt;h2&gt;Quais gatilhos o 9.1 oferece e como iniciar um post do zero?&lt;/h2&gt;
&lt;p&gt;O 9.1 entrega 17 comandos no painel de ações, e o que muda em relação à 9.0 são os quatro novos: {Crie um post}, {Aprofunde a seção X}, {Escreva para Social Mídia}, {Reescreva com voz X} e {Crie um roteiro}. Todos seguem o princípio de escopo: um gatilho faz uma coisa, e quem tenta amarrar duas tarefas no mesmo comando entrega as duas pela metade. O gatilho mais subestimado é {Reescreva com voz X}, que existe como camada de revisão, não de geração — você aplica depois de o post já estar aprovado, pedindo a voz do canal (direta), do especialista (técnica) ou do contador de histórias (narrativa), e a roda final de consistência revalida metadados, proporção e schema.&lt;/p&gt;
&lt;p&gt;Para iniciar um post do zero, o fluxo são quatro passos, nesta ordem exata — e pular o segundo é a causa número um de retakes: primeiro, atualize a Seção 0 com seu nome, domínio, URLs, paleta, assinatura e ID de vídeo; segundo, abra uma sessão nova, para que o agente carregue as variáveis frescas na memória; terceiro, mande {Crie um post} com tema, palavra-chave e intenção; quarto, aguarde a entrega completa — metadados, corpo e relatório vêm num bloco só. Se bateu nas linhas do relatório (palavras, proporção, fontes, originalidade), cole o HTML no Blogger com o código de captcha desabilitado e publique; se não bateu, corrija o item específico com o gatilho correspondente, não com "refaça tudo". A Sequência das três versões fica clara nesse fluxo: a 8.5 ensinou o formato da entrega, a 9.0 ensinou o volume, e a 9.1 ensinou a prova — e as três juntas são o que permite rodar o &lt;a href="https://www.canalqb.com.br/search?q=monetizar%20com%20adsense" rel="noopener noreferrer" target="_blank"&gt;ciclo de publicação&lt;/a&gt; sem adivinhar.&lt;/p&gt;

&lt;h2&gt;O que o 9.1 herdou, o que criou e o que a 9.2 completou?&lt;/h2&gt;
&lt;p&gt;O 9.1 é, por construção, um elo de cadeia — ele herda da 8.5 a espinha dorsal do template (13 blocos, metadados completos, JSON de thumbnail em três formatos, compliance jurídico, tags proibidas de fragmento de Blogger) e da 9.0 o Protocolo de Profundidade com ação-porquê-resultado-erro e a proporção de 60%. O que ele cria é a camada epistêmica: variáveis globais com comentário explicativo, pesquisa obrigatória com campo &#128269; datado, anti-plágio com declaração de autoria em &#128737;️, mapa fixo de 8 sessões, Soluções Rápidas ancoradas e {Erros e Soluções} com cinco cards — ou seja, ele transforma um prompt que escrevia em um prompt que apura, escreve e documenta a própria confiabilidade.&lt;/p&gt;
&lt;p&gt;O que faltou ao 9.1, os testes denunciaram: a profundidade ainda era medida por agregado. Um post com 2.000 palavras passava pelo relatório mesmo que três subsessões tivessem 90 palavras cada — e foi exatamente o defeito observado ao comparar os posts gerados com o documento explicativo do canal, muito mais denso por parágrafo. A 9.2 fecha essa fresta com três medidas: piso total sobe para 3.000 palavras, cada subsessão ganha piso próprio de 200 palavras com no mínimo 8 seções, e o relatório passa a declarar a menor seção medida, para que o número mais fraco do post fique visível antes da publicação. Em paralelo, a 9.2 absorveu do planodeimplementação a Camada 1 (comandos com escopo, critérios e entregáveis), a Camada 2 (auditoria A–K com relatório de 12 campos e prioridades P0–P3), o painel de qualidade 0–100 com dez dimensões ponderadas, os portões {Valide o post} e {Libere para publicação} com os vereditos APTO/APTO COM RESSALVAS/NÃO APTO, e o {Audite o compliance jurídico} para BR/EUA/UE/UK. Para ver a versão completa do formato e conferir o relatório de produção deste texto, leia também o guia do &lt;a href="https://www.canalqb.com.br/search?q=prompt%20para%20blog" rel="noopener noreferrer" target="_blank"&gt;Master Rules 9.0&lt;/a&gt; — e use este 9.1 como referência para tudo que envolve fonte, data e autoria.&lt;/p&gt;

&lt;!--===== SESSÃO 5 — Bloco 11: FAQ =====--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que é o Master Rules 9.1?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É a versão 9.1 do prompt mestre do @CanalQb, a primeira a separar claramente três camadas: formato herdado da 8.5, profundidade herdada da 9.0, e uma nova camada de apuração e autoria exclusiva desta versão. O 9.1 obriga a IA a pesquisar na internet antes de escrever (mínimo de 4 fontes, 2 oficiais), a registrar a data de acesso no campo &#128269; dos metadados, a declarar as conclusões próprias em &#128737;️ Originalidade, e a entregar o post em 8 sessões fixas com Soluções Rápidas ancoradas e o bloco {Erros e Soluções} com no mínimo 5 cards. Resumindo: ele transforma um prompt que apenas escreve em um prompt que apura, escreve e documenta a própria confiabilidade antes da publicação.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que são as variáveis globais da Seção 0?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;São as únicas linhas do prompt que o usuário edita à mão, agrupadas num bloco fixo no topo do arquivo: nome do canal, domínio, URL de busca interna, paleta de cores, prefixo de CSS, assinatura, mínimo de palavras e ID de vídeo padrão. Na 9.1, cada variável ganhou um comentário explicativo dizendo o que ela faz e o que quebra se for trocada errado. O agente jamais altera esses valores — pedidos para mudar cor, domínio ou link no meio de uma sessão são ignorados deliberadamente, porque a fonte da verdade é o topo do arquivo e não a conversa. Na prática, isso elimina bugs inteiros de posts publicados com o domínio ou a assinatura de outra pessoa.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Como o 9.1 evita que a IA invente dados?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Através da Seção 4, que torna a pesquisa prévia obrigatória: no mínimo 4 fontes, sendo 2 oficiais, com link clicável e data de acesso registrados. A regra de evidência separa fatos confirmados, interpretações e informações insuficientes — dado que não passou por conferência vira {verificar} com o link da fonte, nunca afirmação categórica. Quando a busca falha, o protocolo proíbe improviso: a IA marca o ponto incerto e mantém a fonte primária listada. O resultado é auditável: você abre uma ou duas fontes do campo &#128269; dos metadados, compara com o que o post afirma, e sabe em segundos se o texto se sustenta — o oposto de confiar no relatório da própria IA.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Qual é a diferença entre o 9.1 e o 9.0?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;A 9.0 definiu formato e volume: Protocolo de Profundidade com ação, porquê, resultado e erro comum, mínimo de 1.500 palavras e proporção de 60% de corpo técnico. A 9.1 mantém tudo isso e adiciona a camada de apuração — Seção 0 com variáveis comentadas, Seção 4 de pesquisa real com4fontes datadas, Seção 7 anti-plágio com voz própria, mapa fixo de 8 sessões, Soluções Rápidas ancoradas e o bloco {Erros e Soluções}. O piso também sobe de 1.500 para 2.000 palavras. Em uma frase: a 9.0 ensinou o prompt a escrever com profundidade; a 9.1 ensinou a verificar o que escreve antes de entregar — e a 9.2, depois, subiu a régua para 3.000 palavras contadas por subsessão.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Onde ficam os blocos de Soluções Rápidas e Erros e Soluções?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Exclusivamente dentro do arquivo HTML do post, nunca nos metadados nem no relatório de qualidade. As Soluções Rápidas ficam logo após a segunda sessão, com 3 a 6 itens curtos de sintoma e correção, cada um apontando por âncora para o card correspondente. O bloco {Erros e Soluções}, com no mínimo 5 cards de erro, causa, solução e prevenção, fica antes da última sessão, depois do FAQ. Essa posição não é aleatória: quem tem pressa resolve no topo, quem leu até o fim encontra o diagnóstico completo na reta final, e as referências fecham o post como prova de pesquisa — manter essa ordem é o que garante que o post gere confiança em vez de parecer um amontoado de avisos.&lt;/div&gt;
  &lt;/details&gt;
&lt;/section&gt;

&lt;!--===== SESSÃO 6 — Bloco 12: {Erros e Soluções} =====--&gt;
&lt;div class="post_errcard" id="erros-solucoes" style="border-left-color: rgb(211, 47, 47); margin-top: 40px;"&gt;
  &lt;h2 style="margin-top: 0px;"&gt;&lt;i class="fas fa-bug" style="color: #d32f2f;"&gt;&lt;/i&gt; {Erros e Soluções} — os 5 problemas mais comuns ao usar o 9.1&lt;/h2&gt;
  &lt;p style="color: #555555; font-size: 0.95em;"&gt;Cada card traz a mensagem de erro exata, a causa real, a correção acionável e a prevenção. Os cinco abaixo cobrem praticamente tudo que aparece nas primeiras sessões com a versão 9.1.&lt;/p&gt;

  &lt;div class="post_errcard"&gt;
    &lt;h3&gt;Erro 1: “As variáveis vieram trocadas no post”&lt;/h3&gt;
    &lt;dl&gt;
      &lt;dt&gt;Causa&lt;/dt&gt;
      &lt;dd&gt;A edição foi feita no meio da sessão ou em arquivo salvo sem BOM — a IA leu a versão antiga na memória e o editor não preservou a codificação.&lt;/dd&gt;
      &lt;dt&gt;Solução&lt;/dt&gt;
      &lt;dd&gt;Corrija na Seção 0, salve em UTF-8 com BOM e abra uma sessão nova — nunca peça ajuste de variável dentro da sessão que está gerando o post.&lt;/dd&gt;
      &lt;dt&gt;Prevenção&lt;/dt&gt;
      &lt;dd&gt;Trate a Seção 0 como cabeçalho de configuração, não como parte da conversa: qualquer mudança ali encerra a sessão atual por definição.&lt;/dd&gt;
    &lt;/dl&gt;
  &lt;/div&gt;

  &lt;div class="post_errcard"&gt;
    &lt;h3&gt;Erro 2: “A IA pulou a pesquisa e escreveu de memória”&lt;/h3&gt;
    &lt;dl&gt;
      &lt;dt&gt;Causa&lt;/dt&gt;
      &lt;dd&gt;Pedido feito sem sessão nova, ou comando montado de um jeito que não menciona data, fonte ou verificação — o modelo cai no caminho mais fácil.&lt;/dd&gt;
      &lt;dt&gt;Solução&lt;/dt&gt;
      &lt;dd&gt;Interrompa a entrega, mande {Audite o post} e exija o campo &#128269; preenchido com fontes e data de acesso; recuse qualquer post sem &#128269; datado.&lt;/dd&gt;
      &lt;dt&gt;Prevenção&lt;/dt&gt;
      &lt;dd&gt;Inicie toda sessão com {Crie um post} logo após abrir a sessão nova — o gatilho carrega junto a exigência da Seção 4 e evita o atalho.&lt;/dd&gt;
    &lt;/dl&gt;
  &lt;/div&gt;

  &lt;div class="post_errcard"&gt;
    &lt;h3&gt;Erro 3: “O post saiu abaixo do mínimo de palavras”&lt;/h3&gt;
    &lt;dl&gt;
      &lt;dt&gt;Causa&lt;/dt&gt;
      &lt;dd&gt;Seções estruturais (TL;DR, FAQ, erros) foram contadas como corpo na sua leitura, ou o modelo resolveu encurtar exemplos para “não inflar”.&lt;/dd&gt;
      &lt;dt&gt;Solução&lt;/dt&gt;
      &lt;dd&gt;Reconte com o script de verificação, identifique as subsessões abaixo de 200 palavras e dispare {Aprofunde a seção X} uma por vez — nunca “refaça tudo”.&lt;/dd&gt;
      &lt;dt&gt;Prevenção&lt;/dt&gt;
      &lt;dd&gt;Leia a linha de menor seção do relatório antes de qualquer coisa: é o número mais fraco do post, e a v9.2 passou a declará-lo justamente para isso.&lt;/dd&gt;
    &lt;/dl&gt;
  &lt;/div&gt;

  &lt;div class="post_errcard"&gt;
    &lt;h3&gt;Erro 4: “Achei frases iguais a de um site externo”&lt;/h3&gt;
    &lt;dl&gt;
      &lt;dt&gt;Causa&lt;/dt&gt;
      &lt;dd&gt;A pesquisa da Seção 4 foi feita, mas o texto colou frases das fontes em vez de reescrever — pesquisa sem reescrita ainda é cópia.&lt;/dd&gt;
      &lt;dt&gt;Solução&lt;/dt&gt;
      &lt;dd&gt;Reabra a Seção 7 e peça reescrita integral do trecho com voz própria, mantendo no máximo duas citações diretas com aspas e atribuição.&lt;/dd&gt;
      &lt;dt&gt;Prevenção&lt;/dt&gt;
      &lt;dd&gt;Confira o campo &#128737;️ Originalidade: se ele não declarar um insight que você não encontra nas fontes, o post ainda não tem autoria suficiente.&lt;/dd&gt;
    &lt;/dl&gt;
  &lt;/div&gt;

  &lt;div class="post_errcard"&gt;
    &lt;h3&gt;Erro 5: “Publicei e o layout quebrou no Blogger”&lt;/h3&gt;
    &lt;dl&gt;
      &lt;dt&gt;Causa&lt;/dt&gt;
      &lt;dd&gt;HTML colado com as tags de página (&amp;lt;head&amp;gt;, &amp;lt;body&amp;gt; duplicados) ou com emojis decorativos no lugar de ícones — ambos proibidos em fragmento de Blogger.&lt;/dd&gt;
      &lt;dt&gt;Solução&lt;/dt&gt;
      &lt;dd&gt; Cole apenas o conteúdo entre os comentários INÍCIO e FIM DO POST, substitua qualquer Unicode decorativo por Font Awesome e desabilite o captcha do tema.&lt;/dd&gt;
      &lt;dt&gt;Prevenção&lt;/dt&gt;
      &lt;dd&gt;Rode o {Valide o post} antes de colar: ele checa estrutura, ícones, links externos com rel="noopener noreferrer" e fechamento de tags num passe só.&lt;/dd&gt;
    &lt;/dl&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;!--===== SESSÃO 7 — Bloco 13: CTA =====--&gt;
&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-rocket" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    Quer ver a 9.1 em ação? Assista ao
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;
    e continue em &lt;a href="https://canalqb.com.br/" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;canalqb.com.br&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;
&lt;p style="color: #555555; font-size: 0.85em; text-align: center;"&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Feito com Master Rules Claude v9.1&lt;/p&gt;

&lt;!--===== SESSÃO 8 — Bloco 14: Referências (SEMPRE última sessão) =====--&gt;
&lt;h2&gt;&lt;i class="fas fa-book" style="color: #28a745;"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1hRoAQEZnKufWdUnzwTxuuwjbAA05sAfTf2oY1MnIky4" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 8.5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1sTsRoAEWrU-1ltOMmUWyQ-18DFTmYl0R5UZc-QnNtCs" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1Yxv-r5VHJUqUOREOnGV9HXTJxpL-Z9pUkIIsXMTHo54" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory — referência de compliance do prompt (acessado em 12/10/2026)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://schema.org/FAQPage" rel="noopener noreferrer" target="_blank"&gt;Schema.org FAQPage — especificação do JSON-LD de perguntas frequentes (acessado em 12/10/2026)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;!--===== BLOCO 15 — Schema JSON-LD =====--&gt;
&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Master Rules 9.1: post completo com pesquisa real",
  "description":"O que mudou no Master Rules 9.1: variáveis globais explicadas, pesquisa real obrigatória, anti-plágio com voz própria, mapa de 8 sessões e o passo a passo de uso.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-12","dateModified":"2026-10-12",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"O que é o Master Rules 9.1?","acceptedAnswer":{"@type":"Answer","text":"É a versão 9.1 do prompt mestre do @CanalQb, com três camadas: formato da 8.5, profundidade da 9.0 e uma nova camada de apuração com pesquisa obrigatória, anti-plágio e post em 8 sessões fixas."}},
{"@type":"Question","name":"O que são as variáveis globais da Seção 0?","acceptedAnswer":{"@type":"Answer","text":"São as únicas linhas do prompt editadas pelo usuário — nome, domínio, cores, URLs, assinatura — cada uma com comentário explicativo; o agente nunca as altera."}},
{"@type":"Question","name":"Como o 9.1 evita que a IA invente dados?","acceptedAnswer":{"@type":"Answer","text":"Pela Seção 4: mínimo de 4 fontes, 2 oficiais, com link e data de acesso registrados no campo &#128269;; dado não confirmado vira {verificar} com a fonte."}},
{"@type":"Question","name":"Qual é a diferença entre o 9.1 e o 9.0?","acceptedAnswer":{"@type":"Answer","text":"A 9.0 definiu formato e volume (1.500 palavras, 60% de corpo); a 9.1 manteve tudo e adicionou pesquisa real, Seção 0 comentada, anti-plágio, mapa de 8 sessões e piso de 2.000 palavras."}},
{"@type":"Question","name":"Onde ficam os blocos de Soluções Rápidas e Erros e Soluções?","acceptedAnswer":{"@type":"Answer","text":"Dentro do HTML do post: Soluções Rápidas após a 2ª sessão com âncoras para os cards; {Erros e Soluções} antes da última sessão, com mínimo de 5 cards erro-causa-solução-prevenção."}}
]}
&lt;/script&gt;

&lt;script&gt;
(function(){ 'use strict';
  if('requestIdleCallback' in window){
    requestIdleCallback(function(){ document.querySelectorAll('.post_cqb_codeblock').forEach(function(block){ if(block.querySelector('.post_copy_btn'))return; var b=document.createElement('button'); b.className='post_copy_btn'; b.textContent='Copiar'; b.addEventListener('click',function(){ navigator.clipboard.writeText(block.innerText); b.textContent='Copiado!'; setTimeout(function(){b.textContent='Copiar';},1500); }); block.appendChild(b); }); });
  }
})();
&lt;/script&gt;
&lt;!--===== FIM DO POST =====--&gt;


&lt;!--⚠️ ID de vídeo padrão usado — substituir antes de publicar--&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTz39Ikdbu8oGwGTxnnzTG37pXBYRIk5cdkhuFtuHHPFneAzzGGEntFQG7aqvh6Xe29Oz-Io27KbSKZonoo5OQlkqV2dbtlo0bq165GMrcqDT54FORhFK273p3s415UkO5PlKVXDikSVSSVZ39AGY8bz06ouSQVnCxu7tGESbWPkmsh6LwATH4LFfqrv1A/s72-c/image.png" width="72"/></item><item><title>Prompt Master Rules 9.0: o que ele faz e como usar</title><link>https://canalqb.blogspot.com/2026/10/prompt-master-rules-90-o-que-ele-faz-e.html</link><category>adsense</category><category>ae</category><category>claude</category><category>IA</category><category>profundidade</category><category>Prompt</category><category>SEO</category><category>Tutorial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Mon, 12 Oct 2026 15:46:07 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-1650461859461457071</guid><description>&lt;!--===== INÍCIO DO POST (fragmento Blogger — blocos 1 a 13) =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;!--Bloco 1 — Cabeçalho inalterável--&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhubCM5pdV7YCSccI0qmti-Hb8SvQXX2dBn-Cl0t_oLi1_egnkdxhXSos4WmH8meldDMsh29oR_IgdR_UeudcwgbnkmeobJ77Pgrn_8SOlDW9wK0dk20gLkOWDa0kYo9zaheoOy7daQz3kZSEoJAZozhMOoBlXNgcCOSYCAAqui85MJ3CxBdMa7X8gJxcCO/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Master Rules 9.0: posts detalhados com profundidade&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;!--Bloco 2 — Style--&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,.08);border-left:4px solid #28a745;padding:16px 20px;border-radius:0 10px 10px 0;margin:20px 0}
.post_tldr strong{color:#333}
.post_tldr ul{margin:8px 0 0;padding-left:18px;color:#555}
.post_tldr li{margin:5px 0}
.post_step{border-left:4px solid #2196f3;background:rgba(33,150,243,.06);padding:14px 18px;border-radius:0 10px 10px 0;margin:18px 0}
.post_step h3{margin-top:0;color:#333}
.post_step p{margin:.45em 0;color:#555}
.post_step.post_bad{border-left-color:#d32f2f;background:rgba(211,47,47,.05)}
.post_step.post_good{border-left-color:#28a745;background:rgba(40,167,69,.06)}
.post_cqb_codeblock{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;padding:20px;border-radius:8px;border-left:5px solid #ffc107;font-size:.85rem;overflow-x:auto;position:relative}
.post_cqb_codeblock code{background:transparent;color:inherit;padding:0;font-size:inherit}
.post_copy_btn{position:absolute;top:8px;right:8px;background:#28a745;color:#fff;border:0;border-radius:6px;padding:5px 10px;font-size:.72rem;cursor:pointer}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;margin-bottom:10px}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;margin:0;font-size:1em;min-height:44px}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_answer{display:none;padding:15px;background:#fff;color:#555;line-height:1.7;font-size:.95em}
.post_faq_answer.post_faq_show{display:block}
.post_faq_item[open] .post_faq_question{background:rgba(40,167,69,.1);color:#28a745}
@media (prefers-color-scheme: dark){ body{color:#e8ecea} h1,h2,h3,.post_faq_title,.post_step h3{color:#e8ecea} p,li,td,.post_faq_answer,.post_tldr ul{color:#aeb8b3} .post_faq_question{background:#1d2320;color:#e8ecea} .post_faq_answer{background:#161a18} }
@media (prefers-reduced-motion: reduce){ *{transition:none!important;animation:none!important} }
&lt;/style&gt;

&lt;!--Bloco 3/4 — Badge--&gt;
&lt;p style="color: #555555; font-size: 0.9em; text-align: center;"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~16 min&lt;/p&gt;

&lt;!--Bloco 5 — TL;DR--&gt;
&lt;div class="post_tldr"&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt;
  &lt;ul&gt;
    &lt;li&gt;A v9.0 nasceu de um diagnóstico duro: as versões anteriores entregavam posts formatados, mas rasos — a estrutura estava detalhada e o corpo técnico tinha uma linha.&lt;/li&gt;
    &lt;li&gt;A correção é a Seção 3.2, o Protocolo de Profundidade: cada passo precisa de ação exata, porquê, resultado esperado e erro comum — formato auditável, não intenção solta.&lt;/li&gt;
    &lt;li&gt;Com mínimo de1.500 palavras e corpo técnico de ao menos60% do post, a profundidade passou a ser métrica de entrega, não desejo de rodapé.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;!--Bloco 6 — Vídeo
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Master Rules 9.0" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;--&gt;
&lt;!--Bloco 7 — Disclaimer--&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Prompts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;!--Bloco 8 — Introdução com Pattern Interrupt--&gt;
&lt;p style="color: #333333; font-size: 1.15em; font-weight: 600;"&gt;A versão 9.0 nasceu de um fracasso: posts formatados e rasos.&lt;/p&gt;
&lt;p&gt;O time percebeu que a IA estava entregando posts com metadados perfeitos, schema impecável e FAQ completo — e um tutorial de cinco linhas no meio disso. A causa raiz era simples e desconfortável: quem escrevia o prompt detalhava exaustivamente a embalagem e dava uma linha só para o conteúdo. A v9.0 é a correção de curso: ela não remove nenhuma regra estrutural da8.5, apenas dá ao corpo técnico o mesmo nível de exigência que o resto sempre teve — formato de passo, contagem de palavras e proporção viraram pré-requisito de execução. Abaixo, o protocolo inteiro aberto — com o exemplo canônico que separa um passo reprovado de um aprovado, o passo a passo de uso e as métricas que a versão passou a cobrar.&lt;/p&gt;

&lt;!--Bloco 9 — Corpo técnico principal--&gt;
&lt;h2&gt;O que mudou no Master Rules 9.0 e por que a versão anterior gerava posts rasos?&lt;/h2&gt;
&lt;p&gt;A v9.0 é a primeira versão do prompt que trata profundidade como métrica em vez de adjetivo. Ela mantém todas as regras estruturais da8.5 — metadados, schema, FAQ, thumbnails, compliance — e acrescenta uma seção inteira, a3.2, que define formato obrigatório para cada passo de tutorial e proíbe o atalho mais comum da IA: transformar um procedimento de oito etapas em três parágrafos elegantes e inúteis. O diagnóstico está escrito na própria abertura do documento: regras de formatação com especificação exaustiva e corpo técnico com uma linha de instrução produzem exatamente o resultado que se espera — embalagem linda, produto vazio. A lição vai além deste prompt: qualquer sistema de geração de conteúdo replica o que você mede, e ignora o que você apenas deseja.&lt;/p&gt;
&lt;p&gt;O detalhe que explica por que a9.0 surgiu e não antes: as versões anteriores tinham regras de profundidade, mas elas moravam no rodapé do prompt como "conselhos" — a IA podia lê-las e escolher não aplicá-las sem violar nenhuma regra de formatação, porque nenhuma regra de formatação dependia delas. Na9.0, a inversão é completa: o relatório de qualidade passou a incluir linhas de profundidade, o protocolo de saída passou a exigir a proporção declarada, e a frase "seja detalhado" foi banida em favor de um formato com cinco campos verificáveis por passo. Na prática, a diferença aparece no teste A/B mais simples que existe: pegue o mesmo tema, gere na8.5 e na9.0, e conte quantas frases do corpo ensinam algo que o leitor não sabia antes — a9.0 ganha porque é obrigada a ganhar, não porque o modelo está de melhor humor. É o mesmo princípio que sustenta o &lt;a href="https://www.canalqb.com.br/search?q=prompt%20para%20blog" rel="noopener noreferrer" target="_blank"&gt;acervo de prompts do blog&lt;/a&gt; até hoje.&lt;/p&gt;

&lt;h2&gt;Como funciona o Protocolo de Profundidade Tutorial da Seção 3.2?&lt;/h2&gt;
&lt;p&gt;O protocolo tem três pilares. Primeiro, o formato de cada passo: toda etapa precisa conter a ação exata copiável, a explicação do que aquela ação faz em linguagem de iniciante, o porquê de ela existir naquele ponto, o resultado esperado na tela e o erro comum com sua correção. Segundo, a quantidade: se o processo real tem oito etapas, o post tem oito etapas — nunca três passos principais escondendo cinco sub-etapas em parágrafo corrido. Terceiro, o mínimo de extensão: três frases de explicação além do comando. Um passo que é só "Rode o comando abaixo:" está reprovado, mesmo que o post inteiro bata a contagem de palavras — o protocolo audita o passo, não só o total.&lt;/p&gt;
&lt;p&gt;Veja a diferença na prática, com o exemplo canônico do próprio prompt:&lt;/p&gt;
&lt;div class="post_step post_bad"&gt;
  &lt;h3&gt;&lt;i class="fas fa-circle-xmark" style="color: #d32f2f;"&gt;&lt;/i&gt; Reprovado&lt;/h3&gt;
  &lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; "Passo 2: Configure a carteira — agora configure sua carteira MetaMask com a rede zkSync."&lt;/p&gt;
  &lt;p&gt;Sem comando, sem porquê, sem resultado esperado. O leitor fica no lugar exato em que estava: sabendo que precisa fazer, sem saber o que fazer nem como confirmar que deu certo. Trinta segundos de texto que não movem ninguém um centímetro adiante — e é exatamente esse formato que a IA entrega por padrão, porque ele é barato de gerar.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step post_good"&gt;
  &lt;h3&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Aprovado&lt;/h3&gt;
  &lt;p&gt;&lt;strong&gt;Ação:&lt;/strong&gt; "Abra a MetaMask, clique no seletor de redes e selecione 'Adicionar rede manualmente'. Preencha com Nome: zkSync Era Mainnet, RPC: https://mainnet.era.zksync.io, Chain ID: 324, Símbolo: ETH."&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Porquê:&lt;/strong&gt; a zkSync é uma L2 e não aparece por padrão; sem a RPC manual, transações falham ou vão para a rede errada — o erro número um que faz gente perder elegibilidade em airdrop.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Resultado esperado:&lt;/strong&gt; "zkSync Era Mainnet" no topo da MetaMask com saldo 0 ETH, o que é normal antes do bridge.&lt;/p&gt;
  &lt;p&gt;&lt;strong&gt;Erro comum:&lt;/strong&gt; se a MetaMask recusar por "Chain ID já em uso", a rede já está cadastrada com outro nome — busque em "Redes" antes de tentar de novo.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;Repare no que mudou: o segundo exemplo não tem adjetivos extras — tem informação que faltava. É essa a diferença entre profundo e longo: o texto cresceu porque cada lacuna do leitor foi preenchida com algo verificável — um endereço RPC, um número, um sintoma, uma correção. Profundidade, no sentido da9.0, não é quantidade de palavras é quantidade de lacunas fechadas — e é por isso que o protocolo cobre os cinco campos individualmente, em vez de confiar em qualquer contagem global.&lt;/p&gt;

&lt;h2&gt;Qual é o passo a passo para usar o 9.0 do zero, sem pular nada?&lt;/h2&gt;
&lt;p&gt;Seguir o fluxo abaixo é o que garante que a IA entregue o post completo em vez de uma versão condensada. Cada etapa traz o que fazer, por que fazê-lo, o que esperar e o que pode dar errado — o mesmo formato que o protocolo exige do conteúdo gerado, porque um prompt que exige profundidade nos tutoriais não pode entregar tutorial raso no uso dele mesmo.&lt;/p&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 1: Inicie a sessão com o prompt inteiro&lt;/h3&gt;
  &lt;p&gt;Cole o documento completo do Master Rules 9.0 como primeira mensagem e envie. Isso estabelece a persona, os gatilhos e todas as regras antes de qualquer pedido.&lt;/p&gt;
  &lt;p&gt;Por quê: o prompt é autossuficiente — ele só vale como base da conversa, não como mensagem avulsa no meio dela. Sem as seções de estrutura e profundidade no contexto, a IA volta a improvisar formato.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: a IA confirma a versão ativa — "Feito com Master Rules Claude v9.0" — e aguarda o gatilho em silêncio.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: enviar só um trecho do documento. Sem as seções de estrutura, o post sai inconsistente — recoloque o documento inteiro e recomece a sessão.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 2: Dispare o gatilho com parâmetros&lt;/h3&gt;
  &lt;p&gt;Escreva &lt;code&gt;{Crie um post: tema="seu tema", nivel="iniciante", objetivo="SEO"}&lt;/code&gt;. O parâmetro &lt;code&gt;objetivo&lt;/code&gt; nunca autoriza pular passos: o protocolo de profundidade é obrigatório sempre que houver procedimento.&lt;/p&gt;
  &lt;p&gt;Por quê: os parâmetros calibram densidade e vocabulário — nível iniciante pede mais analogias, avançado pede mais comandos —, não reduzem conteúdo. São ajuste de registro, não de escopo.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: a IA não comenta plano nenhum — ela silencia e executa, entregando metadados, HTML e JSON de thumbnail na ordem.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: exigir que a IA "liste o que vai fazer antes". Isso ativa o meta-comentário e, em versões fracas, dilui a execução — a regra de silêncio existe justamente para proteger a profundidade.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 3: Receba os três blocos e valide a proporção&lt;/h3&gt;
  &lt;p&gt;A ordem é fixa: bloco de metadados, HTML completo, JSON de thumbnail nos três formatos. Antes de publicar, confira o relatório de qualidade: ele traz a contagem real de palavras e a porcentagem do corpo técnico.&lt;/p&gt;
  &lt;p&gt;Por quê: a9.0 se diferencia exatamente aqui — um post com1.500 palavras e40% de tutorial passa no total e reprova na proporção, e proporção baixa significa estrutura inchada com miolo curto.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: total acima do piso, proporção acima de60% e ID de vídeo conferido antes da cópia para o Blogger.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: aceitar o post sem ler o relatório. Se a proporção vier abaixo de60%, use &lt;code&gt;{Aprofunde a seção X}&lt;/code&gt; para expandir só o que está raso, sem tocar no resto.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 4: Corrija o que sobrar com gatilhos cirúrgicos&lt;/h3&gt;
  &lt;p&gt;Use &lt;code&gt;{Corrija}&lt;/code&gt; para ajustes pontuais, &lt;code&gt;{Melhore o layout}&lt;/code&gt; para CSS e HTML sem tocar em texto, e &lt;code&gt;{Audite o post}&lt;/code&gt; para uma auditoria final contra AdSense, E-E-A-T, silo e profundidade.&lt;/p&gt;
  &lt;p&gt;Por quê: essa separação evita o erro clássico de pedir "melhore tudo" — o que costuma reescrever o que já estava bom e deixar o que estava ruim exatamente onde estava.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: cada pedido mexe em uma camada só — texto, visual ou diagnóstico — e o resto do post permanece byte a byte igual.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: rodar &lt;code&gt;{Melhore o layout}&lt;/code&gt; esperando mais conteúdo. Ele mexe só em aparência — profundidade se corrige com &lt;code&gt;{Aprofunde a seção X}&lt;/code&gt;.&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;Como o 9.0 mede profundidade: 1.500 palavras e a regra dos 60%?&lt;/h2&gt;
&lt;p&gt;O prompt define profundidade com dois números. O primeiro é o mínimo de1.500 palavras de corpo visível, excluindo HTML, CSS, JavaScript, JSON-LD e atributos — contagem do que o leitor realmente lê, não do que existe no arquivo. O segundo número é mais inteligente: o corpo técnico, sozinho, precisa representar pelo menos60% dessa contagem. TL;DR, disclaimers, FAQ, referências e CTA ficam de fora da conta, porque são estrutura fixa, não entrega de valor — e é justamente essa exclusão que impede o truque mais antigo de conteúdo automatizado: inflar as partes fáceis para bater a meta sem ensinar nada.&lt;/p&gt;
&lt;p&gt;A consequência prática é impiedosa e justa: um post de1.500 palavras onde700 ficam no FAQ e800 no tutorial está reprovado, mesmo batendo o mínimo — porque o tutorial é o produto. A regra de correção é sempre a mesma: expandir o corpo técnico, nunca inflar a estrutura para compensar. Junto disso, o prompt veta a leitura errada da regra de "não inflar": parágrafo longo que ensina algo novo a cada frase não é enchimento, é o objetivo — e parágrafo curto que repete a ideia anterior é lixo em qualquer tamanho. Note que a9.0 ainda media por total e proporção, sem piso individual por seção: um post podia distribuir as1.500 palavras de forma desigual — seis seções generosas e quase murchas. Essa fresta é o que a9.2 fechou com as200 palavras mínimas por subsessão, e ela já aparecia como sintoma nos testes da própria9.0, na comparação com textos mais densos como os do &lt;a href="https://www.canalqb.com.br/search?q=tutorial%20passo%20a%20passo" rel="noopener noreferrer" target="_blank"&gt;arquivo de tutoriais do canal&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Quais são os gatilhos e a regra de silêncio do 9.0?&lt;/h2&gt;
&lt;p&gt;O painel de comandos herda os dez gatilhos da versão anterior e ganha um décimo primeiro: &lt;code&gt;{Aprofunde a seção X}&lt;/code&gt;, que reescreve apenas a seção indicada com passo a passo completo, sem tocar no resto do post. É o remédio direto para o diagnóstico que motivou a versão: em vez de regerar tudo, você expande o que ficou raso — cirurgia, não replanejamento. Os demais permanecem: &lt;code&gt;{Crie um post}&lt;/code&gt; para geração completa, &lt;code&gt;{Crie conteúdo}&lt;/code&gt; para texto puro, &lt;code&gt;{Preview do post}&lt;/code&gt; para aprovação prévia, &lt;code&gt;{Crie um Widget}&lt;/code&gt;, &lt;code&gt;{Crie thumbnail}&lt;/code&gt;, &lt;code&gt;{Melhore o layout}&lt;/code&gt;, &lt;code&gt;{Audite o post}&lt;/code&gt;, &lt;code&gt;{Audite}&lt;/code&gt;, &lt;code&gt;{Corrija a rejeição}&lt;/code&gt; e &lt;code&gt;{Corrija}&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;A regra de silêncio merece atenção porque é onde a maioria erra: não verbalizar o planejamento ("vou aplicar a seção X...") esconde o bastidor do usuário, mas não é licença para entregar menos. O próprio prompt declara que, se "ser direto" e "explicar o passo a passo completo" parecerem competir, a explicação completa vence — sempre. Sem gatilho explícito, nenhuma versão gera HTML: a IA pergunta e confirma antes. Dois erros típicos nascem dessa regra: o usuário pede "responda em tópicos rápidos" e interpreta a resposta curta como eficiência (é encurtamento autorizado pelo próprio pedido), ou então pede para a IA "pensar em voz alta" e recebe uma conversa que não é o post. A distinção correta é simples: a regra de silêncio governa o processo, nunca o produto — e quando o produto precisa de dez parágrafos por seção, ele recebe dez parágrafos por seção, com ou sem conversa antes.&lt;/p&gt;

&lt;h2&gt;O que o 9.0 mantém da v8.5: metadados, thumbnails e compliance?&lt;/h2&gt;
&lt;p&gt;Nada da base foi removido — e essa é uma decisão de projeto, não uma omissão. O post continua entregando o bloco de metadados antes do HTML, com título SEO, teste A/B de três variações, silo, palavra-chave, intenção, long tails, links internos e externos, tempo de leitura, roteiro de vídeo e trinta hashtags de Instagram no mix de dez de nicho, dez médias e dez amplas. O JSON de thumbnail continua nos três formatos —16:9 para YouTube,9:16 para Stories e Shorts,1:1 para feed — com o campo contexto_visual que infere país, cultura e época do tema, vestindo a pessoa da imagem de acordo com o contexto brasileiro de2026 em vez de um estereótipo genérico de "tecnologia".&lt;/p&gt;
&lt;p&gt;O compliance também permanece idêntico: E-E-A-T com experiência real, mínimo de dois links externos e três internos, disclaimers para temas financeiros e técnicos, aderência a LGPD, GDPR, EUAI Act e Lei Felca, com o diretório do IAPP como referência permanente. As regras de design seguem integralmente — Font Awesome em vez de Unicode decorativo, paleta de seis cores, assinatura de copyright no style, prefixo em todas as classes, requestIdleCallback para o JavaScript de cópia e as tags de página proibidas em fragmento de Blogger. O SEO também não cedeu: H2 em pergunta com resposta de40a60palavras, TL;DR de três bullets após o título, FAQ com JSON-LD separado, schema BlogPosting completo e links externos com rel="noopener noreferrer". O que mudou foi apenas onde a exigência mora: antes ela estava toda na moldura; agora ela também está no miolo. É esse duplo controle — moldura herdada da8.5 e miolo cobrado pela9.0 — que sustenta a aprovação no &lt;a href="https://www.canalqb.com.br/search?q=monetizar%20com%20adsense" rel="noopener noreferrer" target="_blank"&gt;AdSense&lt;/a&gt; e a permanência de &lt;a href="https://www.canalqb.com.br/search?q=prompt%20para%20blog" rel="noopener noreferrer" target="_blank"&gt;posts de prompt&lt;/a&gt; nos resultados.&lt;/p&gt;

&lt;h2&gt;Quando e como usar {Aprofunde a seção X} sem regerar o post inteiro?&lt;/h2&gt;
&lt;p&gt;O gatilho {Aprofunde a seção X} existe para o cenário mais comum de pós-produção: um post bom no geral com um ou dois blocos condensados demais. O erro habitual de quem encontra essa falha é pedir "refaça o post com mais detalhes" — o que faz a IA regerar tudo: os metadados mudam, os links oscilam, seções que estavam perfeitas ganham paraphrase nova e você perde a revisão que já tinha aprovado. O uso correto é cirúrgico: aponte a seção pelo título exato do H2, peça a expansão com o formato da Seção3.2e deixe claro que o resto do artigo está intocado. A IA reescreve apenas aquela fatia, seguindo o mesmo protocolo de passos, e o restante permanece byte a byte igual — é a diferença entre trocar o motor do carro e trocar o carro inteiro.&lt;/p&gt;
&lt;p&gt;Três dicas tornam o gatilho mais eficiente. Primeiro, diagnostique antes de disparar: conte as palavras da seção suspeita — se ela está acima do piso mas parece rasa, o problema não é tamanho, é falta dos cinco campos do protocolo (comando, porquê, resultado, erro), e você deve pedir "expanda com o formato da3.2" em vez de só "mais texto". Segundo, nunca junte dois pedidos num comando só — "aprove e adicione um exemplo no segundo parágrafo" mistura escopo de {Corrija} com escopo de {Aprofunde} e costuma entregar os dois pela metade. Terceiro, valide depois: releia só a seção alterada contra a lista de checagem da6.3do prompt — ação exata presente, resultado esperado declarado, ao menos um erro comum — e confirme que a proporção global do post não caiu por causa das seções estruturais que não contam na soma.&lt;/p&gt;

&lt;h2&gt;O que o 9.0 não resolveu — e como as versões 9.1 e 9.2 completaram o serviço?&lt;/h2&gt;
&lt;p&gt;A9.0 cobria o formato e o volume, mas deixou três frestas abertas, e cada uma virou uma versão depois. A primeira fresta era a veracidade: o protocolo garantia que cada passo tivesse porquê e resultado, mas ninguém garantia que a RPC informada, a versão citada ou o preço mencionado fossem reais — os dados continuavam vindo da memória do modelo. A9.1 corrigiu com a Seção4de pesquisa real: mínimo de4fontes,2oficiais, links clicáveis e data de acesso registrada no campo &#128269; dos metadados, com regra explícita de marcar {verificar} em dado não confirmado em vez de assumi-lo.&lt;/p&gt;
&lt;p&gt;A segunda fresta era a autoria: um texto pode ser profundo e ainda assim ser uma paráfrase educada de fontes externas, o que o Google trata como conteúdo duplicado e o leitor percebe como "todo mundo já falou isso". A9.1 respondeu com a Seção7anti-plágio — reescrita integral, máximo de duas citações e insight inédito declarado em &#128737;️ Originalidade. A terceira fresta era a distribuição da profundidade: como dito, a9.0 media total e proporção, mas não impedia um post de cheirar a resumo seção a seção — e foi exatamente o que os testes encontraram ao comparar os posts gerados com o documento explicativo do canal, cujos parágrafos tinham muito mais informação por linha. A9.2 fechou com a Seção6.7densidade anti-resumo: piso de3.000palavras totais, ≥200por subsessão, ≥8seções, seis camadas obrigatórias por seção e verificação individual com evidência no relatório. O quadro completo de evolução está no &lt;a href="https://www.canalqb.com.br/search?q=tutorial%20passo%20a%20passo" rel="noopener noreferrer" target="_blank"&gt;guia de versões do prompt&lt;/a&gt; — e a9.0 segue relevante como a versão que provou que profundidade pode ser especificada, não apenas desejada.&lt;/p&gt;

&lt;h2&gt;Quais são os erros comuns ao aplicar o 9.0 e como contorná-los?&lt;/h2&gt;
&lt;p&gt;Quatro padrões de falha aparecem com frequência no uso da9.0, e todos têm o mesmo formato de detecção: o post entrega, mas entrega menos do que o protocolo pede. O primeiro é a confusão entre concisão e profundidade: o usuário vê um post curto e acha que o modelo "entendeu" a regra de não inflar — na verdade, a regra de brevidade vale para abertura e transições, e dentro do passo técnico ela nunca vence. O segundo é a contagem seletiva: contar apenas os parágrafos e esquecer que tabelas, blocos de código e listas também são corpo — ou pior, inflar o FAQ para compensar tutorial curto, exatamente o truque que a proporção de60% existe para pegar.&lt;/p&gt;
&lt;p&gt;O terceiro erro é tratar {Audite o post} como botão de conserto: a auditoria diagnostica, não edita — quem pede auditoria esperando correção automática recebe um relatório e nenhuma mudança, e interpreta isso como falha da ferramenta quando na verdade é separação de escopo proposital. O quarto é pular o relatório de qualidade: ele é a única etapa entre a geração e a publicação, e nele estão as linhas de proporção e contagem — publicar sem ler é entregar sem validar. O contorno de todos os quatro é o mesmo hábito: antes de copiar o HTML, leia o relatório inteiro, confira duas linhas (total e proporção) e só então cole no Blogger — trinta segundos que evitam o ciclo completo de "gerar de novo porque saiu errado".&lt;/p&gt;

&lt;!--Bloco 10 — FAQ--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que é o Master Rules 9.0?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É a versão9.0 do prompt mestre do @CanalQb, um system prompt autossuficiente que transforma a IA no gerente assistente de conteúdo do ecossistema. Ela herda toda a base da8.5 — estrutura deblocos, metadados, thumbnails, FAQ com schema e compliance jurídico — e adiciona o Protocolo de Profundidade Tutorial da Seção3.2. A grande novidade é tratar profundidade como métrica auditável: formato obrigatório para cada passo, mínimo de1.500palavras e corpo técnico de ao menos60% do post, tudo verificado em um relatório de qualidade emitido junto com a entrega.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Qual é a diferença entre o 9.0 e o 8.5?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;A diferença central é o nível de exigência sobre o corpo técnico. A8.5 já pedia1.200palavras e tinha regras estruturais excelentes, mas a instrução de profundidade era uma linha — e o resultado era post com moldura perfeita e tutorial curto. A9.0 mantém tudo que a8.5 tinha e cria a Seção3.2, que obriga cada passo a trazer ação exata, porquê, resultado esperado e erro comum, além da proporção de60% e do gatilho {Aprofunde a seção X}. Em resumo: a8.5 define o formato; a9.0 define o formato e o volume mínimo de ensino dentro dele.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que é a regra dos 60% de corpo técnico?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É a métrica que impede o post de ficar inchado: o bloco de corpo técnico precisa representar, sozinho, ao menos60% das palavras visíveis do post. TL;DR, disclaimers, FAQ, rodapé de referências e CTA ficam de fora da conta, porque são estrutura fixa e não a entrega de valor prometida pelo título. Se o post bate1.500palavras mas o tutorial fica com45%, ele está reprovado — e a correção é sempre expandir o corpo técnico, nunca inflar o FAQ ou o TL;DR para inflar a contagem total. É a métrica que garante que a promessa do post seja cumprida dentro do post.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Como funciona o gatilho {Aprofunde a seção X}?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É o décimo primeiro comando do painel de ações, criado na9.0. Você indica a seção que ficou rasa e a IA reescreve apenas ela, expandindo com o passo a passo completo do Protocolo de Profundidade — ação, porquê, resultado e erro comum — sem tocar no restante do post. Ele resolve o cenário mais comum de pós-produção: um post bom no geral com um ou dois passos condensados demais. O uso correto é sempre cirúrgico, apontando a seção exata, porque a alternativa — pedir que o post todo seja "mais detalhado" — tende a regerar o que já estava certo e desperdiçar o trabalho feito.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; A regra de silêncio reduz a qualidade do post?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não — e o9.0deixa isso explícito porque era uma confusão comum. A regra de silêncio proíbe apenas o meta-comentário: a IA não deve listar "vou aplicar a seção3.2agora, depois verifico o CSS" antes de agir. Isso esconde o bastidor do usuário, mas jamais autoriza encurtar o resultado. O próprio documento declara que, se a direz da comunicação e a explicação completa parecerem competir, a explicação completa vence. Ou seja: a IA fala menos sobre o processo e entrega mais no produto final — a regra existe para proteger a profundidade, não para sacrificá-la.&lt;/div&gt;
  &lt;/details&gt;
&lt;/section&gt;

&lt;!--Bloco 11 — Footer de Referências--&gt;
&lt;h2&gt;&lt;i class="fas fa-book" style="color: #28a745;"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1hRoAQEZnKufWdUnzwTxuuwjbAA05sAfTf2oY1MnIky4" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 8.5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1sTsRoAEWrU-1ltOMmUWyQ-18DFTmYl0R5UZc-QnNtCs" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory — referência de compliance do prompt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;!--Bloco 12 — Schema BlogPosting--&gt;
&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Master Rules 9.0: posts detalhados com profundidade",
  "description":"O que mudou no Master Rules 9.0: Protocolo de Profundidade Tutorial, passo a passo completo, regra dos 60%, gatilhos e a nova regra de silêncio explicados.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-12","dateModified":"2026-10-12",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"O que é o Master Rules 9.0?","acceptedAnswer":{"@type":"Answer","text":"É a versão9.0 do prompt mestre do @CanalQb, que herda toda a base estrutural da8.5e adiciona o Protocolo de Profundidade Tutorial: formato obrigatório por passo, mínimo de1.500palavras e corpo técnico de ao menos60% do post."}},
{"@type":"Question","name":"Qual é a diferença entre o 9.0 e o 8.5?","acceptedAnswer":{"@type":"Answer","text":"A8.5define o formato do post; a9.0define o formato e o volume mínimo de ensino dentro dele, com a Seção3.2, a proporção de60%e o gatilho {Aprofunde a seção X}."}},
{"@type":"Question","name":"O que é a regra dos 60% de corpo técnico?","acceptedAnswer":{"@type":"Answer","text":"É a exigência de que o corpo técnico represente ao menos60% das palavras visíveis do post, excluindo TL;DR, disclaimers, FAQ, referências e CTA, que são estrutura fixa."}},
{"@type":"Question","name":"Como funciona o gatilho {Aprofunde a seção X}?","acceptedAnswer":{"@type":"Answer","text":"Reescreve apenas a seção indicada, expandindo com o passo a passo completo do Protocolo de Profundidade, sem tocar no resto do post."}},
{"@type":"Question","name":"A regra de silêncio reduz a qualidade do post?","acceptedAnswer":{"@type":"Answer","text":"Não. A regra proíbe apenas o meta-comentário sobre o processo; se parecer competir com a explicação completa, a explicação completa vence."}}
]}
&lt;/script&gt;

&lt;!--Bloco 13 — Rodapé / CTA--&gt;
&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-rocket" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    Quer ver a v9.0 em ação? Assista ao
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;
    e continue em &lt;a href="https://canalqb.com.br/" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;canalqb.com.br&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;
&lt;p style="color: #555555; font-size: 0.85em; text-align: center;"&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Feito com Master Rules Claude v9.0&lt;/p&gt;

&lt;script&gt;
(function(){ 'use strict';
  if('requestIdleCallback' in window){
    requestIdleCallback(function(){ document.querySelectorAll('.post_cqb_codeblock').forEach(function(block){ if(block.querySelector('.post_copy_btn'))return; var b=document.createElement('button'); b.className='post_copy_btn'; b.textContent='Copiar'; b.addEventListener('click',function(){ navigator.clipboard.writeText(block.innerText); b.textContent='Copiado!'; setTimeout(function(){b.textContent='Copiar';},1500); }); block.appendChild(b); }); });
  }
})();
&lt;/script&gt;
&lt;!--===== FIM DO POST =====--&gt;


&lt;!--⚠️ ID de vídeo padrão usado — substituir antes de publicar--&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhubCM5pdV7YCSccI0qmti-Hb8SvQXX2dBn-Cl0t_oLi1_egnkdxhXSos4WmH8meldDMsh29oR_IgdR_UeudcwgbnkmeobJ77Pgrn_8SOlDW9wK0dk20gLkOWDa0kYo9zaheoOy7daQz3kZSEoJAZozhMOoBlXNgcCOSYCAAqui85MJ3CxBdMa7X8gJxcCO/s72-c/image.png" width="72"/></item><item><title>Prompt Master Rules 8.5: o que ele faz e como usar</title><link>https://canalqb.blogspot.com/2026/10/prompt-master-rules-85-o-que-ele-faz-e.html</link><category>adsense</category><category>claude</category><category>IA</category><category>master rules</category><category>Prompt</category><category>SEO</category><category>Tutorial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Mon, 12 Oct 2026 15:38:03 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-4573524748615157502</guid><description>&lt;!--===== INÍCIO DO POST (fragmento Blogger — blocos 1 a 13) =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;!--Bloco 1 — Cabeçalho inalterável--&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFN-VLL90W0X8PwFTfYDc28yuhqLVn8aHIVPHi2312qmK8v-mwpTY6eymWjcPy5OU30B7jnKmALTIqF3oXE7YUH89_UaElaE7zPDPmJ4ei4EszcJ1X5JK5ikriPHGZZkxVzd0c0Q1R8nsOOi0OE7ZrI5NrLa9_iXAJDgpDh0x1ZcKsafrFaO9caHYv3uYw/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Prompt Master Rules 8.5: o que ele faz e como usar&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;!--Bloco 2 — Style--&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,.08);border-left:4px solid #28a745;padding:16px 20px;border-radius:0 10px 10px 0;margin:20px 0}
.post_tldr strong{color:#333}
.post_tldr ul{margin:8px 0 0;padding-left:18px;color:#555}
.post_tldr li{margin:5px 0}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_step{border-left:4px solid #2196f3;background:rgba(33,150,243,.06);padding:14px 18px;border-radius:0 10px 10px 0;margin:18px 0}
.post_step h3{margin-top:0;color:#333}
.post_step p{margin:.45em 0;color:#555}
.post_cqb_codeblock{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;padding:20px;border-radius:8px;border-left:5px solid #ffc107;font-size:.85rem;overflow-x:auto;position:relative}
.post_cqb_codeblock code{background:transparent;color:inherit;padding:0;font-size:inherit}
.post_copy_btn{position:absolute;top:8px;right:8px;background:#28a745;color:#fff;border:0;border-radius:6px;padding:5px 10px;font-size:.72rem;cursor:pointer}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;margin-bottom:10px}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;margin:0;font-size:1em;min-height:44px}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_answer{display:none;padding:15px;background:#fff;color:#555;line-height:1.7;font-size:.95em}
.post_faq_answer.post_faq_show{display:block}
.post_faq_item[open] .post_faq_question{background:rgba(40,167,69,.1);color:#28a745}
@media (prefers-color-scheme: dark){ body{color:#e8ecea} h1,h2,h3,.post_faq_title,.post_step h3{color:#e8ecea} p,li,td,.post_faq_answer,.post_tldr ul{color:#aeb8b3} .post_faq_question{background:#1d2320;color:#e8ecea} .post_faq_answer{background:#161a18} }
@media (prefers-reduced-motion: reduce){ *{transition:none!important;animation:none!important} }
&lt;/style&gt;

&lt;!--Bloco 3/4 — Badge--&gt;
&lt;p style="color: #555555; font-size: 0.9em; text-align: center;"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~16 min&lt;/p&gt;

&lt;!--Bloco 5 — TL;DR--&gt;
&lt;div class="post_tldr"&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt;
  &lt;ul&gt;
    &lt;li&gt;O Master Rules 8.5 é um prompt mestre de 27 seções que transforma o Claude no gerente de conteúdo de um blog: você digita {Crie um post} e recebe metadados, HTML pronto para o Blogger e prompts de thumbnail.&lt;/li&gt;
    &lt;li&gt;Ele é excelente no formato — schema, FAQ, accessibility, compliance e design premium saem corretos de primeira — mas nunca consulta a internet: os dados vêm da memória do modelo.&lt;/li&gt;
    &lt;li&gt;Para usar, cole o documento inteiro como primeira mensagem, dispare o gatilho e cole o HTML no Blogger. Quem precisa de pesquisa real e mais volume passa para as versões 9.x.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;!--Bloco 6 — Vídeo--&gt;
&lt;!--
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Master Rules 8.5" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;
--&gt;

&lt;!--Bloco 7 — Disclaimer--&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Prompts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;!--Bloco 8 — Introdução com Pattern Interrupt--&gt;
&lt;p style="color: #333333; font-size: 1.15em; font-weight: 600;"&gt;Cole um documento de 27 seções no Claude, digite sete caracteres — e receba um post inteiro.&lt;/p&gt;
&lt;p&gt;Esse é o contrato do Master Rules 8.5: em vez de você reescrever as mesmas instruções de formato, SEO, FAQ e design em toda conversa, você entrega uma vez o manual completo do canal e só comanda o que quer gerar. A versão 8.5 foi a primeira a equilibrar bem as duas metades do trabalho — metadados riquíssimos para o Blogger e HTML que não precisa de ajuste manual para ficar aceitável. Ela também expôs o limite que as próximas versões passariam a corrigir: formatar não é pesquisar, e um post bem formatado com dados de memória continua sendo um post frágil. Neste guia completo, cada peça do 8.5 aberta — as 27 seções agrupadas, o protocolo de três blocos, o design system obrigatório e o passo a passo de ponta a ponta.&lt;/p&gt;

&lt;!--Bloco 9 — Corpo técnico principal--&gt;
&lt;h2&gt;O que é o Master Rules 8.5 e o que ele resolve na prática?&lt;/h2&gt;
&lt;p&gt;O Master Rules 8.5 é um prompt mestre — um system prompt autossuficiente — que define quem a IA é, como ela escreve, o que ela entrega e em que formato, para operar um blog monetizado com precisão de manual técnico. Ele resolve um problema prático de quem publica com frequência: sem um prompt assim, cada post exige que você repita do zero as instruções de estrutura (blocos do Blogger), SEO (títulos, headings, schema), formato de saída (metadados + HTML + thumbnails) e estilo visual (cores, ícones, acessibilidade). Com o8.5, essas instruções são escritas uma vez e valem para sempre — o que reduz o ciclo de um post de horas para minutos de comando.&lt;/p&gt;
&lt;p&gt;O que diferencia o8.5 de um prompt genérico é o grau de especificidade: ele não pede "escreva um bom post", ele determina que o TL;DR venha logo após o título em três bullets, que cada H2 seja uma pergunta com resposta de 40 a 60 palavras logo abaixo, que o schema BlogPosting e o JSON-LD do FAQ sejam blocos separados, que todo ícone seja Font Awesome em vez de emoji decorativo, e que a saída venha em ordem fixa — bloco de metadados, HTML completo, JSON de thumbnail. É essa obsessão pelo detalhe verificável que fazia do8.5 a referência de qualidade de saída entre as versões: o que ele prometia no formato, ele entregava. O que ele nunca prometeu — e não entregava — era a verificação dos fatos dentro do texto, e é exatamente aí que as versões9.x entram no lugar. &lt;a href="https://www.canalqb.com.br/search?q=prompt%20para%20blog" rel="noopener noreferrer" target="_blank"&gt;O acervo de prompts do canal&lt;/a&gt; explica a evolução completa.&lt;/p&gt;

&lt;h2&gt;Como o prompt de 27 seções é organizado e o que cada grupo faz?&lt;/h2&gt;
&lt;p&gt;As 27 seções do8.5 não são uma lista solta: elas se agrupam em quatro blocos funcionais que se aplicam sempre nesta ordem — identidade, execução, apresentação e auditoria. Entender o agrupamento economiza tempo na hora de adaptar o prompt para outro site, porque mudanças de identidade acontecem no primeiro grupo e mudanças de layout no terceiro, nunca no meio do protocolo de geração. A tabela abaixo mostra o mapa completo, com o que cada grupo responde e por que ele existe.&lt;/p&gt;
&lt;table style="border-collapse: collapse; font-size: 0.92em; margin: 16px 0px; width: 100%;"&gt;
  &lt;thead&gt;
    &lt;tr style="background: rgb(240, 240, 240);"&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Grupo&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Seções&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Responde&lt;/th&gt;
      &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 8px; text-align: left;"&gt;Exemplos do que define&lt;/th&gt;
    &lt;/tr&gt;
  &lt;/thead&gt;
  &lt;tbody&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Fundação&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;1–3&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Quem é a IA e quando agir&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Persona do canal, gatilhos {Crie um post}, {Audite}, {Corrija}, regra de silêncio&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Escrita&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;4–8&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Como o texto é produzido&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Redação e humanização, Pattern Interrupt, profundidade, anti-plágio, sequência das 13 blocos&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Apresentação&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;9–16&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Como o post aparece&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Design premium, compliance, schema, templates fixos, metadados, thumbnail, FAQ, substituições&lt;/td&gt;&lt;/tr&gt;
    &lt;tr&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Operação&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;17–27&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Como o site roda&lt;/td&gt;&lt;td style="border: 1px solid rgb(224, 224, 224); padding: 8px;"&gt;Infra/Core Web Vitals, IAPP, UX, CSS/JS/acessibilidade, skills, receitas, checklist, changelog&lt;/td&gt;&lt;/tr&gt;
  &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Vale notar o que esse mapa revela sobre o desenho do prompt: 4 das 27 seções cuidam do pós-escrita (design, schema, metadados, FAQ) e apenas uma cuida da verificação de conteúdo — e ela é um checklist, não uma pesquisa. Essa assimetria é intencional na8.5 e explica por que a versão gera posts visualmente maduros em troca de nenhuma conferência externa de dados. Quando você adapta o prompt para o seu site, mexe em Fundação (nomes, links, voz) e em Apresentação (cores, templates), deixando Escutura e Operação intactas — são elas que garantem que qualquer post saia igual ao anterior.&lt;/p&gt;

&lt;h2&gt;Como funciona o protocolo de saída em três blocos?&lt;/h2&gt;
&lt;p&gt;O protocolo de saída é a regra que garante que {Crie um post} entregue tudo de que o editor precisa, na ordem certa e sem conversa no meio: primeiro o bloco de metadados, depois o HTML completo do post, e por último o JSON com os prompts de thumbnail nos três formatos. Nenhuma explicação, checklist ou comentário é permitido entre os blocos — o silêncio entre eles existe para que você possa copiar cada parte direto para o seu destino (metadados para os campos do Blogger, HTML para o editor, JSON para a ferramenta de imagem) sem precisar filtrar texto conversacional.&lt;/p&gt;
&lt;p&gt;Essa ordem não é decorativa: ela espelha o fluxo real de publicação. Os metadados vêm primeiro porque são a decisão editorial — título, palavra-chave, silo, links, intenção — e se algum estiver errado, você corrige antes de gastar tempo com o HTML. O HTML vem no meio porque é o corpo do trabalho, com a estrutura de 13 blocos já montada — cabeçalho com o link do canal, banner, H1, style com a assinatura de copyright, badge de leitura, TL;DR, vídeo, disclaimer, introdução com pattern interrupt, corpo técnico, FAQ, referências, schema e CTA. O JSON de thumbnail vem por último porque é insumo de terceiros: ele não entra no Blogger, vai para o Gemini Imagen ou equivalente, e por isso é entregue como bloco destacado com os formatos 16:9, 9:16 e 1:1 e o campo contexto_visual que descreve a cena considerando país, cultura e época. O resultado é um fluxo de três copiar-e-colar que qualquer pessoa executa sem treinamento — é o coração do &lt;a href="https://www.canalqb.com.br/search?q=tutorial%20passo%20a%20passo" rel="noopener noreferrer" target="_blank"&gt;tutorial de publicação&lt;/a&gt; do canal.&lt;/p&gt;

&lt;h2&gt;O que vem no bloco de metadados e por que ele economiza horas de trabalho?&lt;/h2&gt;
&lt;p&gt;O bloco de metadados é a primeira entrega de {Crie um post} e concentra todas as decisões editoriais que, sem um template, você teria que inventar ou pesquisar para cada publicação. Nele entram título SEO (30–60 caracteres com a palavra-chave), três variações de título para teste A/B, silo (pilar ou satélite), palavra-chave principal, marcadores do Blogger, intenção de busca, três long tails, links internos montados com a busca do próprio site, links externos de autoridade, tempo de leitura, resumo para vídeo de três a cinco linhas, playlist, hashtags e tags do YouTube, trinta hashtags de Instagram com mix de nicho/médias/amplas e o contexto visual da thumbnail. São dezenas de campos que o Google e o Blogger esperam e que a maioria dos editores preenche no improviso — com o8.5, saem padronizados em todo post.&lt;/p&gt;
&lt;p&gt;O campo que mais tempo poupa na rotina é o de links internos: o prompt monta as URLs com a base de busca do seu site + termo relevante, garantindo os mínimos de três internos e dois externos por post sem que você precise lembrar quais páginas existem — e sem que a IA invente um endereço que não existe, porque a regra é sempre montar a URL pela base declarada. Junto dos metadados vem o relatório de qualidade: uma tabela de cerca de vinte linhas que audita o próprio post antes de você ver — pattern interrupt presente, resposta AEO no tamanho certo, proporção de performance, E-E-A-T, schema, acessibilidade, ícones Font Awesome, tudo com status ✅ ou ⚠️ e a evidência da checagem. É o prompt verificando a si mesmo no que é verificável: formato, presença e estrutura. O relatório8.5 não julga profundidade nem veracidade dos dados — essas duas auditorias só chegariam nas versões9.x, e essa fronteira é importante para você calibrar o que pode e o que não pode confiar numa ferramenta de formatação. Detalhes de monetização estão no &lt;a href="https://www.canalqb.com.br/search?q=monetizar%20com%20adsense" rel="noopener noreferrer" target="_blank"&gt;guia de AdSense do blog&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Como o 8.5 estrutura um tutorial legível: Pattern Interrupt, bucket brigades e answer target?&lt;/h2&gt;
&lt;p&gt;Três regras de escrita do8.5 trabalham juntas para segurar o leitor do primeiro ao último parágrafo. A primeira é o Pattern Interrupt da abertura: o post não começa com apresentação institucional, e sim com uma frase curta e inesperada — um número, uma afirmação contraditória ou uma promessa concreta — que quebra o piloto automático de quem veio do Google ou do feed. A segunda são as bucket brigades: frases de ligação curtas ("O resultado?", "Agora vem o pulo do gato.") que mantêm o ritmo entre seções e reduzem a taxa de rejeição, especialmente em texto longo. A terceira é o answer target: cada H2 é uma pergunta e os 40 a 60 palavras imediatamente depois são a resposta completa e autônoma — formatada para ser extraída como snippet pelo Google e respondida por assistentes de IA sem depender do resto do texto.&lt;/p&gt;
&lt;p&gt;O ponto não óbvio dessas três regras é que elas têm escopos diferentes e não podem se misturar: pattern interrupt e bucket brigades valem na abertura, em transições e em momentos de tensão — nunca dentro de um passo técnico, onde a clareza do procedimento vence a dramaturgia. Já o answer target vale sob todo H2 do corpo, sem exceção, porque é o que faz o post responder buscas instantâneas. A consequência prática é uma leitura que alterna entre três registros: impacto no início, resposta direta em cada seção e procedimento completo dentro dela — TL;DR de três bullets logo após o título satisfaz o leitor com pressa, e o corpo satisfaz quem vai executar. O8.5 foi a versão que consolidou esse equilíbrio, e ele continua valendo em todas as posteriores, inclusive na atual.&lt;/p&gt;

&lt;h2&gt;Quais regras de design o prompt impõe e por que elas existem?&lt;/h2&gt;
&lt;p&gt;O8.5 trata o HTML do post como produto de design, não como texto vestido. Cinco regras explicam por que os posts saem consistentes mesmo gerados por IA: (1) Font Awesome obrigatório — todo ícone é &lt;code&gt;&amp;lt;i class="fas fa-check"&amp;gt;&lt;/code&gt; carregado por CDN, porque emoji e Unicode decorativo quebram leitores de tela, variam entre sistemas e poluem a estética; (2) paleta fixa de seis cores lidas do prompt — verde de aprovação, vermelho de erro, amarelo de aviso, azul informativo e dois tons de texto, todos em contraste AA; (3) assinatura de copyright no topo do bloco style, provando a autoria do template; (4) prefixo em todas as classes CSS para não colidir com o tema do Blogger; (5) performance embutida — imagem principal com fetchpriority="high", lazy loading nos iframes e requestIdleCallback para o JavaScript de cópia de código, protegendo LCP e INP.&lt;/p&gt;
&lt;p&gt;Essas regras existem porque o editor do Blogger é um campo minado para quem gera conteúdo automatizado: classes genéricas colidem com o tema, emoji viram quadrados em dispositivos antigos, JavaScript no topo do corpo empurra o layout para baixo e cores sem contraste reprovam tanto a acessibilidade quanto a leitura humana. Ao fixar tudo no prompt, o8.5 elimina a etapa de "arrumar o HTML depois" — o que é metade do valor real do prompt, porque a outra metade (escrever) qualquer modelo faz, mas quase nenhum entrega sem retoque no visual. Abaixo, o checklist que o próprio prompt exige antes de publicar — é o que separa um post "gerado" de um post "pronto":&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;Título de 30 a 60 caracteres com a palavra-chave principal nos primeiros quatro palavras.&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;TL;DR de três logo após o H1 e disclaimer adequado ao tema antes do corpo.&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;Cada H2 como pergunta, com resposta AEO de 40 a 60 palavras logo abaixo.&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;Links internos montados pela busca do site; externos com rel="noopener noreferrer".&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;Schema BlogPosting e FAQPage em JSON-LD separados, sem comentários no meio.&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;Ícones Font Awesome carregados; zero emoji decorativo no corpo do HTML.&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;Imagens com alt, width e height; CSS com a assinatura e sem classes duplicadas.&lt;/span&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;span&gt;ID do vídeo conferido — se for o padrão, o aviso de substituição está visível.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Como funcionam o FAQ e os schemas para o Google e para as IAs?&lt;/h2&gt;
&lt;p&gt;O8.5 entrega o FAQ em dois formatos simultâneos, e a distinção importa: o bloco visível é uma lista de perguntas em acordeão — cada uma com resumo clicável, ícone Font Awesome e resposta detalhada contendo ao menos um link interno — enquanto o JSON-LD FAQPage é um bloco de dados estruturados separado, invisível ao leitor, que traduz as mesmas perguntas para o Google. Essa dupla existe porque a página precisa agradar a dois públicos com requisitos diferentes: o humano quer escanear perguntas e clicar na que interessa; a máquina quer um objeto schema.org validável que possa virar rich result e resposta direta em assistentes de busca. Misturar os dois num bloco só — o erro mais comum de quem monta à mão — quebra a validação e desperdiça a leitura.&lt;/p&gt;
&lt;p&gt;Acima do FAQ vem o schema BlogPosting completo: headline, descrição, autor, publisher com logo em URL absoluta, datas de publicação e modificação, idioma, licença e a URL canônica — tudo preenchido com as variáveis do prompt para não vazar valor placeholder no JSON. O8.5 também exige que esses blocos venham depois do conteúdo visível e sem comentários ou textos entre eles, porque o editor do Blogger é sensível à ordem dos scripts e um comentário no meio do JSON-LD invalida o objeto inteiro silenciosamente. O resultado prático é um post que passa no Rich Results Test com os mesmos blocos que você já copiou no fluxo normal — nenhuma tarefa extra de SEO on-page depois de publicar. Para validar depois de publicar, use as ferramentas de dados estruturados do Google e o &lt;a href="https://www.canalqb.com.br/search?q=monetizar%20com%20adsense" rel="noopener noreferrer" target="_blank"&gt;checklist de conformidade do canal&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Quais são as limitações do Master Rules 8.5 — o que ele não faz?&lt;/h2&gt;
&lt;p&gt;Três limitações do8.5 são estruturais, não bugs — e conhecerlas evita expectativa errada. A primeira é a ausência de pesquisa: o prompt não abre a internet, não consulta documentação oficial e não data fontes. Toda informação factual de um post — versões de ferramentas, valores, comandos novos, preços — sai da memória do modelo, que tem corte de conhecimento e pode errar com confiança. A segunda é o volume: o8.5 exige um mínimo de1.200 palavras com proporção de60% de corpo técnico, mas não define densidade por seção, então um post pode bater o total com seções rasas — o modelo tende a entregar o essencial e parar, porque nada no prompt o obriga a ir além. A terceira é a originalidade: ele pede texto próprio, mas não executa uma rodada anti-plágio auditável nem exige insight inédito declarado nos metadados.&lt;/p&gt;
&lt;p&gt;Essas três limitações compartilham a mesma causa raiz: o8.5 foi desenhado como o auge da camada de apresentação — formato, design e compliance — e nunca teve uma camada de apuração. Foi exatamente o que os testes posteriores expuseram: posts com metadados perfeitos e JSON impecável sustentando dados que ninguém verificou, com corpo técnico que somava contagem mas não acrescentava informação além do óbvio. A correção veio distribuída: a9.0 criou o Protocolo de Profundidade com passo a passo auditável; a9.1 adicionou pesquisa real datada, anti-plágio com insight declarado e estrutura de8sessões com blocos de erros; e a9.2 fechou o problema do resumo com piso de palavras por subsessão. Nenhuma dessas versões substituiu o8.5 no formato — todas herdaram dele exatamente o que ele fazia melhor. A lição prática é simples: use o8.5 quando o assunto é estável e você domina os fatos; migre para as9.x quando o dado for volátil ou o post precisar de volume real.&lt;/p&gt;

&lt;h2&gt;Qual é o passo a passo para usar o 8.5 do zero até publicar?&lt;/h2&gt;
&lt;p&gt;O fluxo completo tem quatro etapas e não exige conhecimento técnico — só disciplina de seguir a ordem, porque cada etapa alimenta a seguinte. Os passos abaixo trazem a ação exata, o porquê de existir, o resultado esperado e o erro mais comum de cada um, no mesmo formato que o próprio prompt exige dos tutoriais que gera.&lt;/p&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 1 — Inicie a sessão com o documento inteiro&lt;/h3&gt;
  &lt;p&gt;Cole todas as27 seções do prompt como a primeira mensagem da conversa e envie. Nada de pedidos antes disso — o prompt só vale como base da conversa, não como mensagem avulsa no meio dela.&lt;/p&gt;
  &lt;p&gt;Por quê: a IA precisa da persona, dos gatilhos e de todos os templates no contexto antes de qualquer geração; sem isso, ela improvisa formato e ignora metade das regras.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: a IA confirma que recebeu as instruções e aguarda o gatilho, sem gerar nada espontaneamente.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: colar só um trecho "para testar". O resultado parece aceitável e sai sem schema, sem metadados ou com CSS quebrado — recoloque o documento inteiro e recomece.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 2 — Dispare o gatilho com parâmetros&lt;/h3&gt;
  &lt;p&gt;Escreva &lt;code&gt;{Crie um post: tema="seu tema", nivel="iniciante", objetivo="SEO"}&lt;/code&gt;. Os parâmetros são opcionais — se você omitir, a IA infere pelo contexto — mas tema sempre vale informar.&lt;/p&gt;
  &lt;p&gt;Por quê: o parâmetro tema ancora a pesquisa interna do modelo (palavra-chave, silo, links internos); nível e objetivo calibram vocabulário e densidade do texto.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: a IA silencia e executa — sem listar plano, sem perguntar nada, entregando os três blocos na ordem.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: pedir "me mostra como ficaria antes". Isso ativa conversa e ela entrega versão parcial — peça {Preview do post} quando quiser aprovação prévia, é o gatilho certo.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 3 — Valide o relatório antes de copiar&lt;/h3&gt;
  &lt;p&gt;Leia o relatório de qualidade que acompanha os metadados: confira padrão ✅ nas linhas de estrutura e o aviso ⚠️ de ID de vídeo, se presente.&lt;/p&gt;
  &lt;p&gt;Por quê: é a última checagem grátis antes de publicar — corrigir no Blogger dá trabalho, corrigir na conversa é um pedido de {Corrija}.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: todas as linhas críticas estão ✅ e você sabe exatamente o que falta ajustar (geralmente só o ID do vídeo).&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: publicar sem ler. O relatório é curto e feito justamente para ser lido — dois minutos evitam retrabalho.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="post_step"&gt;
  &lt;h3&gt;Passo 4 — Cole no Blogger e troque o ID do vídeo&lt;/h3&gt;
  &lt;p&gt;Abra o editor do Blogger em modo HTML, cole o fragmento (sem toque nas tags de página), substitua o ID &lt;code&gt;DUDla8Bya8M&lt;/code&gt; pelo vídeo real e publique.&lt;/p&gt;
  &lt;p&gt;Por quê: o ID padrão é um placeholder seguro — a IA não inventa URL de vídeo, e o aviso destacado existe para você lembrar da troca no momento certo.&lt;/p&gt;
  &lt;p&gt;Quando funcionar: o post renderiza com banner, cores da paleta, FAQ clicável, ícones Font Awesome e schema validável.&lt;/p&gt;
  &lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: colar no modo visual em vez do modo HTML — o código vira texto puro. Sempre alterne para o editor HTML antes de colar.&lt;/p&gt;
&lt;/div&gt;

&lt;!--Bloco 10 — FAQ--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O que é o Master Rules 8.5?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;É um prompt mestre de27 seções criado para transformar o Claude no gerente de conteúdo de um blog: ele define a persona do canal, os gatilhos de ação, as regras de escrita, a estrutura de13blocos do HTML, os templates de metadados, FAQ, schema e thumbnail, e o checklist de publicação. Você envia o documento uma vez por sessão e depois dispara comandos como {Crie um post} — a entrega sai em três blocos prontos para o Blogger, sem etapa manual de formatação. Ele funciona em qualquer nicho: basta adaptar as variáveis de identidade e links no topo do arquivo.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Qual é a diferença entre o 8.5 e as versões 9.x?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;O8.5 domina a camada de apresentação — formato, design, metadados e compliance —, mas não pesquisa na internet e não cobra volume por seção. A9.0 acrescentou o Protocolo de Profundidade com passo a passo auditável; a9.1 trouxe pesquisa real datada, anti-plágio com insight inédito e8sessões com blocos de erros; a9.2 subiu o piso para3.000palavras e criou densidade mínima de200por subsessão. A diferença prática: o8.5 gera posts com cara de profissional a partir dos seus fatos; as9.x verificam e acrescentam fatos antes de escrever.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; O Master Rules 8.5 pesquisa na internet?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não. Essa é a limitação estrutural da versão: o8.5 não abre links, não consulta documentação oficial e não registra data de fonte. Toda informação factual vem da memória do modelo, sujeita ao corte de conhecimento e a erros com confiança. Por isso o prompt é ideal para assuntos estáveis que você domina — instalações básicas, conceitos, fluxos de trabalho —, enquanto tópicos com versões novas, preços ou políticas que mudam exigem a Seção de pesquisa das versões9.x ou sua conferência manual após a geração.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Quantas palavras o 8.5 exige por post?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;O mínimo da versão é1.200palavras visíveis — excluindo HTML, CSS, JavaScript e JSON-LD —, com o corpo técnico representando ao menos60% do total. Ao contrário das9.x, porém, ele não define piso por subsessão nem número mínimo de seções, o que significa que um post pode bater a contagem com estrutura inchada e miolo curto. Se o seu padrão editorial pede artigos longos e densos, o8.5 precisa de acompanhamento humano — ou da regra de densidade introduzida na9.2.&lt;/div&gt;
  &lt;/details&gt;

  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-circle-question" style="color: #28a745;"&gt;&lt;/i&gt; Como uso o prompt na prática — só colo no Claude?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Exatamente: cole o documento inteiro como primeira mensagem de uma nova conversa, aguarde a confirmação e dispare o gatilho desejado, como {Crie um post: tema="..."}. Nunca comece a conversa pelo gatilho sem o prompt, e nunca use o prompt no meio de uma conversa já poluída — o contexto limpo é o que garante que todas as27seções sejam aplicadas. Depois de receber a saída, valide o relatório, troque o ID do vídeo padrão e cole o fragmento no editor HTML do Blogger.&lt;/div&gt;
  &lt;/details&gt;
&lt;/section&gt;

&lt;!--Bloco 11 — Footer de Referências--&gt;
&lt;h2&gt;&lt;i class="fas fa-book" style="color: #28a745;"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1hRoAQEZnKufWdUnzwTxuuwjbAA05sAfTf2oY1MnIky4" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 8.5&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1sTsRoAEWrU-1ltOMmUWyQ-18DFTmYl0R5UZc-QnNtCs" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.0&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1Yxv-r5VHJUqUOREOnGV9HXTJxpL-Z9pUkIIsXMTHo54" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.1&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://docs.google.com/document/d/1F7eeb6OgvOUUzfrBM6x9xHUY-qy_cnW9myi-Y-7PLZc" rel="noopener noreferrer" target="_blank"&gt;Prompt AI 9.2&lt;/a&gt;&lt;/li&gt;
  
  &lt;li&gt;&lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory — base de compliance citada pelo prompt&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;!--Bloco 12 — Schema BlogPosting--&gt;
&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Prompt Master Rules 8.5: o que ele faz e como usar",
  "description":"Guia completo do prompt Master Rules 8.5: as27 seções, o protocolo de três blocos, o design system, o FAQ com schema e o passo a passo de uso — com as limitações explicadas.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-12","dateModified":"2026-10-12",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"O que é o Master Rules 8.5?","acceptedAnswer":{"@type":"Answer","text":"É um prompt mestre de27 seções que define persona, gatilhos, regras de escrita, estrutura de13blocos, metadados, FAQ, schema e thumbnail para gerar posts completos no Claude com um único comando."}},
{"@type":"Question","name":"Qual é a diferença entre o 8.5 e as versões 9.x?","acceptedAnswer":{"@type":"Answer","text":"O8.5 domina formato, design e compliance, mas não pesquisa nem cobra volume por seção. A9.0 adicionou profundidade auditável; a9.1, pesquisa datada e anti-plágio; a9.2, densidade mínima de200palavras por subsessão."}},
{"@type":"Question","name":"O Master Rules 8.5 pesquisa na internet?","acceptedAnswer":{"@type":"Answer","text":"Não. O8.5 não consulta links nem documentação oficial: os dados vêm da memória do modelo, sujeitos ao corte de conhecimento — por isso é indicado para assuntos estáveis."}},
{"@type":"Question","name":"Quantas palavras o 8.5 exige por post?","acceptedAnswer":{"@type":"Answer","text":"Mínimo de1.200palavras visíveis com60% de corpo técnico, sem piso por subsessão — ao contrário da9.2, que exige3.000palavras e200por seção."}},
{"@type":"Question","name":"Como uso o prompt na prática — só colo no Claude?","acceptedAnswer":{"@type":"Answer","text":"Cole o documento inteiro como primeira mensagem de uma conversa nova, aguarde a confirmação, dispare {Crie um post: tema=...}, valide o relatório, troque o ID do vídeo e cole o HTML no Blogger."}}
]}
&lt;/script&gt;

&lt;!--Bloco 13 — Rodapé / CTA--&gt;
&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-rocket" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    Quer ver o 8.5 em ação? Assista ao
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;
    e continue em &lt;a href="https://canalqb.com.br/" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;canalqb.com.br&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;
&lt;p style="color: #555555; font-size: 0.85em; text-align: center;"&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Feito com Master Rules Claude v8.5&lt;/p&gt;

&lt;script&gt;
(function(){ 'use strict';
  if('requestIdleCallback' in window){
    requestIdleCallback(function(){ document.querySelectorAll('.post_cqb_codeblock').forEach(function(block){ if(block.querySelector('.post_copy_btn'))return; var b=document.createElement('button'); b.className='post_copy_btn'; b.textContent='Copiar'; b.addEventListener('click',function(){ navigator.clipboard.writeText(block.innerText); b.textContent='Copiado!'; setTimeout(function(){b.textContent='Copiar';},1500); }); block.appendChild(b); }); });
  }
})();
&lt;/script&gt;
&lt;!--===== FIM DO POST =====--&gt;


&lt;!--⚠️ ID de vídeo padrão usado — substituir antes de publicar--&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjFN-VLL90W0X8PwFTfYDc28yuhqLVn8aHIVPHi2312qmK8v-mwpTY6eymWjcPy5OU30B7jnKmALTIqF3oXE7YUH89_UaElaE7zPDPmJ4ei4EszcJ1X5JK5ikriPHGZZkxVzd0c0Q1R8nsOOi0OE7ZrI5NrLa9_iXAJDgpDh0x1ZcKsafrFaO9caHYv3uYw/s72-c/image.png" width="72"/></item><item><title>Planilha Dia de Sorte que se Atualiza Sozinha</title><link>https://canalqb.blogspot.com/2026/10/planilha-dia-de-sorte-que-se-atualiza.html</link><category>apostas múltiplas</category><category>Apps Script</category><category>Automação</category><category>dia de sorte</category><category>estatísticas de loteria</category><category>gerador de jogos</category><category>Google Sheets</category><category>Loterias CAIXA</category><category>mês da sorte</category><category>planilha dia de sorte</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 11 Oct 2026 22:14:34 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-8597381783022799437</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggjIWvBpfgvH0E2JxKh5CrNVAZuie6SAl5eyFKWEvJ14C41aqOp9FXJDPSfX9HYaQ6ca1P4l_noTKiWtTvu5WWhP1NOD0lZTluHS23_cZnyGNfZ2OwH06vum3lotG5ZvUq6AvjyVV3P4m1xV0hecE-vjeCwg2wdtKtj5GYEfI0ry77oOy-NLYMszKMTUPi/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_container{background:transparent;color:#333;font-size:1em;line-height:1.7}
.post_container h2{color:#333;font-size:1.35em;margin:34px 0 12px;border-left:4px solid #28a745;padding-left:12px;line-height:1.3}
.post_container h3{color:#333;font-size:1.1em;margin:22px 0 8px}
.post_container p{color:#333;margin:0 0 14px}
.post_badge{background:rgba(40,167,69,0.08);border:1px solid #28a745;border-radius:20px;padding:8px 16px;display:inline-block;color:#555;font-size:0.9em;margin:10px 0}
.post_tldr{background:rgba(40,167,69,0.08);border-left:5px solid #28a745;border-radius:8px;padding:18px 20px;margin:20px 0}
.post_tldr-title{font-weight:bold;color:#28a745;margin-bottom:10px}
.post_tldr ul{margin:0;padding-left:0;list-style:none}
.post_tldr li{color:#555;font-size:0.95em;margin-bottom:8px;padding-left:22px;position:relative;line-height:1.6}
.post_tldr li i{position:absolute;left:0;top:4px;color:#28a745}
.post_table{width:100%;border-collapse:collapse;margin:18px 0;font-size:0.92em}
.post_table th{background:#28a745;color:#fff;padding:9px 10px;text-align:left}
.post_table td{border:1px solid #e0e0e0;padding:8px 10px;color:#555;background:transparent}
.post_table tr:nth-child(even) td{background:rgba(40,167,69,0.05)}
.post_disclaimer{background:rgba(255,193,7,0.15);border-left:4px solid #ffc107;padding:15px;border-radius:8px;color:#555;font-size:0.9em;margin:20px 0}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:6px 0;font-size:0.95em;color:#555;line-height:1.6}
.post_checklist li i{flex-shrink:0;margin-top:4px}
.post_bucketbrigade{color:#28a745;font-weight:bold;font-size:0.95em;margin:18px 0 8px}
.post_footer-refs{background:rgba(33,150,243,0.06);border-radius:8px;padding:16px 20px;margin:30px 0}
.post_footer-refs h2{border:none;padding:0;margin:0 0 10px;color:#333}
.post_footer-refs ul{margin:0;padding-left:20px}
.post_footer-refs li{color:#555;font-size:0.92em;margin-bottom:8px;line-height:1.6}
.post_cta{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:20px;border-radius:8px;margin:30px 0;text-align:center}
.post_cta p{color:#333;margin:10px 0}
.post_separator{border:none;border-top:0.5px solid #ccc;margin:10px auto;width:95%}
a{color:#2196f3}
a:focus-visible,.post_badge:focus-visible,.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
@media (max-width:600px){.post_table{font-size:0.82em}.post_container h2{font-size:1.15em}}
&lt;/style&gt;

&lt;h1 style="color: #333333; text-align: center;"&gt;Planilha Dia de Sorte que se Atualiza Sozinha (2026)&lt;/h1&gt;

&lt;p class="post_badge"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~16 min&lt;/p&gt;

&lt;div class="post_tldr"&gt;
&lt;p class="post_tldr-title"&gt;&lt;i class="fas fa-bolt" style="color: #ffc107;"&gt;&lt;/i&gt; TL;DR:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class="fas fa-square-check"&gt;&lt;/i&gt; Montei uma planilha no Google Sheets que puxa todo o histórico oficial do Dia de Sorte direto da API da CAIXA — ela eliminou o trabalho manual de digitar resultados, estatísticas e conferência de jogos de uma vez.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check"&gt;&lt;/i&gt; O resultado: 31 dezenas e o Mês da Sorte analisados automaticamente (frequência, atrasos, chi², primos, Fibonacci), 48 jogos gerados por tamanho de aposta (10 QUENTE + 10 FRIO + 10 NEUTRO + 18 mistos Q+F/Q+N/F+Q/F+N/N+Q/N+F) e contagem de apostas premiadas por faixa via COMBIN.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check"&gt;&lt;/i&gt; Isso importa porque uma aposta de 15 dezenas custa R$ 16.087,50 em 6.435 combinações — e a planilha mostra exatamente o que você compra em cada faixa antes de gastar.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/eNzSMA0ps_g?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Dia de Sorte que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p class="post_disclaimer"&gt;
  &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Aviso:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional. Loteria é jogo de azar: nenhuma planilha,
  estatística ou método garante ganhos ou aumenta sua chance de premiação. Proibido para menores de 18 anos.
  Jogue apenas o que pode perder, com responsabilidade. O @CanalQb não é afiliado, patrocinado ou endossado
  pela Caixa Econômica Federal, e os resultados oficiais devem sempre ser conferidos no portal da CAIXA.
&lt;/p&gt;

&lt;p&gt;Uma aposta de 15 dezenas custa R$ 16.087,50 — e quase ninguém sabe por quê. No Dia de Sorte, marcar dezenas extras não é "dar uma melhorada" no jogo: é comprar milhares de apostas simples de uma vez, via desdobramento oficial C(n;7). Se você não sabe quantas combinações está pagando, está jogando no escuro. Neste post eu mostro a planilha que montei no Google Sheets — ela atualiza o histórico oficial sozinha pela API da CAIXA, calcula todas as estatísticas das 31 dezenas e do Mês da Sorte, gera 48 jogos por tamanho de aposta (30 por tipo + 18 mistos) e ainda conta quantas apostas premiadas cada jogo tem em cada faixa de prêmio. E no final tem o detalhe que quase ninguém percebe: o teste chi² embutido na planilha prova, matematicamente, por que quente e frio não predizem nada.&lt;/p&gt;

&lt;h2&gt;O que é o Dia de Sorte e quais são as regras oficiais?&lt;/h2&gt;
&lt;p&gt;No Dia de Sorte você marca de 7 a 15 dezenas, escolhidas entre 01 e 31, mais 1 Mês da Sorte (janeiro a dezembro). A CAIXA sorteia 7 dezenas e 1 mês por concurso, e os sorteios oficiais existem desde 18/03/2018. Hoje os sorteios acontecem de segunda a sexta, a partir das 21h, e aos domingos, a partir das 11h — o calendário foi alterado pela CAIXA, então confira sempre o cronograma oficial no portal. A aposta simples de 7 dezenas custa R$ 2,50, e os prêmios variam por faixa de acerto mais o mês sorteado.&lt;/p&gt;
&lt;p&gt;Aqui está o detalhe que quase ninguém percebe: quando você marca mais de 7 dezenas, a CAIXA não cria uma "aposta maior" — ela desdobra sua marcação em todas as combinações de 7 dezenas possíveis, o famoso C(n;7). É por isso que uma aposta de 15 dezenas equivale a 6.435 apostas simples. A tabela abaixo é a mesma que a planilha calcula em cada aba de jogo:&lt;/p&gt;

&lt;table class="post_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Dezenas marcadas&lt;/th&gt;&lt;th&gt;Apostas simples C(n;7)&lt;/th&gt;&lt;th&gt;Custo estimado&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7 dezenas&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;R$ 2,50&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8 dezenas&lt;/td&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;R$ 20,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;9 dezenas&lt;/td&gt;&lt;td&gt;36&lt;/td&gt;&lt;td&gt;R$ 90,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10 dezenas&lt;/td&gt;&lt;td&gt;120&lt;/td&gt;&lt;td&gt;R$ 300,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;11 dezenas&lt;/td&gt;&lt;td&gt;330&lt;/td&gt;&lt;td&gt;R$ 825,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;12 dezenas&lt;/td&gt;&lt;td&gt;792&lt;/td&gt;&lt;td&gt;R$ 1.980,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;13 dezenas&lt;/td&gt;&lt;td&gt;1.716&lt;/td&gt;&lt;td&gt;R$ 4.290,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;14 dezenas&lt;/td&gt;&lt;td&gt;3.432&lt;/td&gt;&lt;td&gt;R$ 8.580,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;15 dezenas&lt;/td&gt;&lt;td&gt;6.435&lt;/td&gt;&lt;td&gt;R$ 16.087,50&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;E as faixas oficiais de premiação — exatamente as que a planilha exibe na aba Estatísticas — são estas:&lt;/p&gt;

&lt;table class="post_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Chance&lt;/th&gt;&lt;th&gt;Prêmio&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7 acertos&lt;/td&gt;&lt;td&gt;1 em 2.629.575&lt;/td&gt;&lt;td&gt;variável (arrecadação/ganhadores)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6 acertos&lt;/td&gt;&lt;td&gt;1 em 15.652&lt;/td&gt;&lt;td&gt;variável (arrecadação/ganhadores)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5 acertos&lt;/td&gt;&lt;td&gt;1 em 453&lt;/td&gt;&lt;td&gt;R$ 25,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4 acertos&lt;/td&gt;&lt;td&gt;1 em 37&lt;/td&gt;&lt;td&gt;R$ 5,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Mês da Sorte&lt;/td&gt;&lt;td&gt;1 em 12&lt;/td&gt;&lt;td&gt;R$ 2,50 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;O Mês da Sorte é o diferencial da modalidade: mesmo sem acertar nenhuma dezena, você ainda leva R$ 2,50 se o seu mês for sorteado. E como o prêmio de 4 acertos é fixo em R$ 5,00, uma aposta de 9 dezenas (R$ 90,00 em 36 combinações) precisa de vários jogos premiados em faixas baixas só para se aproximar do custo — a planilha faz essa conta por você, jogo a jogo. Se quiser ir além do Dia de Sorte, veja também as &lt;a href="https://www.canalqb.com.br/search?q=planilhas+de+loteria" rel="noopener noreferrer" target="_blank"&gt;planilhas de loteria&lt;/a&gt; que já publiquei aqui no blog.&lt;/p&gt;

&lt;h2&gt;Como funciona a atualização automática via API da CAIXA?&lt;/h2&gt;
&lt;p&gt;A planilha roda no Google Sheets com um menu próprio chamado "Dia de Sorte", criado por um script em Apps Script. Ao clicar em Atualizar Tudo, ela baixa os concursos oficiais da API da CAIXA, recalcula todas as estatísticas, recria o dashboard e regenera as abas de jogos — sem você digitar uma única dezena.&lt;/p&gt;
&lt;p class="post_bucketbrigade"&gt;E o melhor? Funciona sem instalar nada além do próprio script.&lt;/p&gt;
&lt;p&gt;Por baixo dos panos, o script consulta o endpoint oficial do Dia de Sorte em &lt;code&gt;servicebus2.caixa.gov.br/portaldeloterias/api/diadesorte&lt;/code&gt;. Na primeira execução, ele importa o histórico completo de uma vez; nas seguintes, compara o último concurso local com o remoto e baixa só o que falta, com uma pausa de 300 ms entre requisições para não ser recusado. E aqui no @CanalQb, validamos que a API oficial às vezes recusa conexões seguidas — por isso a planilha tem uma API alternativa de reserva embutida: se a oficial falha, ela busca o mesmo dado na rota alternativa e segue o trabalho. Você pode conferir as informações oficiais da modalidade diretamente no &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;portal Loterias CAIXA&lt;/a&gt; e na própria &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/diadesorte" rel="noopener noreferrer" target="_blank"&gt;API pública da CAIXA&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Como usar a planilha: o menu item a item?&lt;/h2&gt;
&lt;p&gt;O menu "Dia de Sorte" na barra superior da planilha concentra todas as funções. A aba Inicio, recriável pelo menu, é o manual de uso completo dentro da própria planilha — abaixo, o mesmo guia, item a item.&lt;/p&gt;
&lt;p&gt;Ordem recomendada: na primeira vez, rode Atualizar Resultados e depois Gerar Jogos. No dia a dia, um único clique em Atualizar Tudo resolve tudo. Veja cada item:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Atualizar Tudo (botão):&lt;/strong&gt; faz tudo de uma vez — importa resultados, recalcula estatísticas, gera o DashBoard e recria as abas de jogos. Também pode ser acionado marcando o checkbox na célula A6 de qualquer aba "Jogo NN", que se desmarca sozinho ao terminar. Essa é a rotina diária de quem joga toda semana.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Como usar (aba Inicio):&lt;/strong&gt; recria a aba de ajuda dentro da própria planilha. Se alguém apagar a aba por engano, um clique traz o manual de volta.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atualizar Resultados:&lt;/strong&gt; baixa os concursos oficiais da API da CAIXA para a aba "Todos os Jogos", com o mais recente no topo. É o primeiro passo: sem histórico, nada mais funciona.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recalcular Estatísticas:&lt;/strong&gt; recalcula e reescreve a aba "Estatísticas" com base no histórico importado — dezena a dezena, mais Mês da Sorte, paridade, faixas e o teste chi².&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atualizar DashBoard:&lt;/strong&gt; recria a aba "DashBoard" com gráficos rotulados de frequência por dezena, pares x ímpares, saídas por faixa (01-10, 11-20, 21-31) e distribuição de paridade.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gerar Jogos:&lt;/strong&gt; cria as abas "Jogo 07" a "Jogo 15" (uma por tamanho de aposta), cada uma com 48 jogos: 10 QUENTE, 10 FRIO e 10 NEUTRO, sorteados dos respectivos pools de 10 dezenas cada (o pool expande automaticamente quando a aposta exige mais dezenas), mais a seção lilás JOGOS MISTOS (18 jogos: Q+F, Q+N, F+Q, F+N, N+Q e N+F, 3 de cada, metade das dezenas de cada pool) e os jogos MÉDIA, HARMÔNICA e FIBONACCI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os jogos gerados prontos para copiar (Ctrl+C) e levar à lotérica — sem transcrever dezena por dezena.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deletar Todas as Abas (manter Inicio):&lt;/strong&gt; reinicia do zero. Depois basta Atualizar Tudo para recriar tudo.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verificar Instalação:&lt;/strong&gt; mostra se as abas necessárias existem e o estado da instalação. É o primeiro diagnóstico quando algo não roda.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se você nunca mexeu com Apps Script no Google Sheets, recomendo ler o guia de &lt;a href="https://www.canalqb.com.br/search?q=apps+script" rel="noopener noreferrer" target="_blank"&gt;automação com Apps Script&lt;/a&gt; que publiquei aqui no blog antes de colar o código.&lt;/p&gt;

&lt;h2&gt;O que significa cada estatística da planilha?&lt;/h2&gt;
&lt;p&gt;A aba Estatísticas é o coração analítico da planilha. Cada métrica exibida tem um significado específico — e é importante saber o que cada uma diz (e o que nenhuma delas diz: o futuro).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frequência e Prob. por concurso %:&lt;/strong&gt; quantas vezes cada dezena (01 a 31) saiu no histórico, e a frequência dividida pelo número de concursos — a chance média de a dezena aparecer em um sorteio. São as duas primeiras colunas da tabela por dezena.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atraso atual, médio e máximo:&lt;/strong&gt; quantos concursos se passaram desde a última saída da dezena, o intervalo médio entre suas saídas e o maior intervalo já observado. Atenção honesta da própria planilha: atraso não aumenta a chance de sair — cada sorteio é independente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Status QUENTE / NEUTRO / FRIO:&lt;/strong&gt; QUENTE = entre as 10 dezenas mais sorteadas do histórico; FRIO = entre as 10 menos sorteadas; NEUTRO = as do meio. É apenas um retrato do passado, e a planilha avisa isso na aba Inicio.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soma e amplitude:&lt;/strong&gt; a soma das 7 dezenas de cada sorteio (média, mínima e máxima) e a distância entre a maior e a menor dezena — juntos, medem o espalhamento típico de um resultado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Repetições, primos e Fibonacci:&lt;/strong&gt; média de dezenas repetidas entre concursos consecutivos, quantos números primos (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31) saem por sorteio e quantas dezenas da sequência de Fibonacci (1, 2, 3, 5, 8, 13, 21) aparecem — curiosidade estatística, não previsão.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Paridade, faixas e consecutivas:&lt;/strong&gt; distribuição da quantidade de pares por sorteio (0 a 7), saídas por bloco de dezenas (01-10, 11-20, 21-31) e quantos pares de dezenas vizinhas aparecem no mesmo resultado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mês da Sorte — mais sorteado:&lt;/strong&gt; o ranking histórico de quantas vezes cada mês foi sorteado. É a única "coluna extra" exclusiva do Dia de Sorte em relação às outras loterias.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distribuição de acertos (hipergeométrica):&lt;/strong&gt; a probabilidade matemática de uma aposta de 7 dezenas acertar 7, 6, 5... 0 números. Exemplo real: 4 acertos acontecem cerca de 1 em 37 vezes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_bucketbrigade"&gt;Mas tem um porém — e é aqui que a planilha se diferencia.&lt;/p&gt;

&lt;h2&gt;O que o teste chi² prova sobre o Dia de Sorte?&lt;/h2&gt;
&lt;p&gt;Esta é a parte que quase nenhum "sistema de loteria" tem coragem de mostrar: a planilha roda um teste estatístico de uniformidade (chi²) sobre as 31 dezenas. Se o valor calculado fica abaixo do crítico (43,8, para 5% de significância e 30 graus de liberdade), as dezenas saem de forma estatisticamente uniforme — exatamente como esperado num sorteio honesto.&lt;/p&gt;
&lt;p&gt;Este é o insight técnico original deste post: &lt;strong&gt;quente, frio e atraso são só descrições do passado, e o chi² da própria planilha prova isso.&lt;/strong&gt; Quando a estatística mostra chi² abaixo do crítico, qualquer padrão de frequência que você "enxerga" é ruído amostral, não sinal. É por isso que os geradores de jogos da planilha são ferramentas de organização e comparação — não de previsão. Aqui no @CanalQb, validamos que ser honesto sobre isso é o que separa uma planilha séria de um produto de marketing. Para mais análises nesse espírito, veja os posts sobre &lt;a href="https://www.canalqb.com.br/search?q=estatisticas+de+loteria" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loteria&lt;/a&gt; no blog.&lt;/p&gt;

&lt;h2&gt;Como ler as abas de jogo (Jogo 07 a Jogo 15)?&lt;/h2&gt;
&lt;p&gt;Cada aba "Jogo NN" gera 48 jogos para aquele tamanho de aposta, prontos para conferir contra qualquer concurso sorteado. O número da aba é a quantidade de dezenas: "Jogo 09" gera jogos com 9 dezenas (36 apostas simples = R$ 90,00). O layout, coluna a coluna:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Escolha (célula C3):&lt;/strong&gt; um seletor com todos os concursos da aba "Todos os Jogos". Escolhido o concurso, as linhas 4 se preenchem sozinhas com as 7 dezenas sorteadas e o mês (F4:L4 e N4) — você não digita nada.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Nº e Tipo:&lt;/strong&gt; identificador do jogo (1 a 30, mais linhas de resumo) e a origem: QUENTE (fundo laranja), FRIO (azul) ou NEUTRO (cinza). Cada grupo tem 10 jogos sorteados do seu respectivo pool de 10 dezenas (QUENTE = as 10 mais sorteadas, FRIO = as 10 menos, NEUTRO = as do meio; o pool expande quando a aposta pede mais dezenas).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Dezenas e Mês da Sorte:&lt;/strong&gt; as dezenas da aposta em ordem crescente, mais o mês sugerido — QUENTE usa o mês mais sorteado do histórico, NEUTRO o do meio do ranking, FRIO o menos sorteado.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Acertos:&lt;/strong&gt; quantas dezenas do jogo saíram no resultado escolhido. Cada dezena sorteada acende a célula verde automaticamente (formatação condicional), e o mês também acende quando você o acertou.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Ac7 / Ac6 / Ac5 / Ac4:&lt;/strong&gt; quantas apostas simples premiadas aquele jogo tem em cada faixa. A fórmula usa COMBIN: se um jogo de 10 dezenas tem 5 acertos, ela calcula C(5;7)×C(5;2)... — na prática, mostra em quantas das 120 combinações de 7 dezenas você garantiu 7, 6, 5 ou 4 pontos. É assim que apostas maiores pagam em várias faixas ao mesmo tempo, e essa coluna é o jeito mais rápido de entender o desdobramento sem fazer conta na mão.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MÉDIA / HARMÔNICA / FIBONACCI (GERAL/QUENTE/FRIO/NEUTRO):&lt;/strong&gt; 12 jogos extras de "equilíbrio": a média aritmética puxa o jogo para o centro do volante; a média harmônica dá maior peso às dezenas menores e gera jogos mais puxados para 01-15; e os jogos Fibonacci são montados com dezenas da sequência de Fibonacci e suas variações, completadas por frequência quando faltam.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tabela de referência (direita):&lt;/strong&gt; as apostas simples equivalentes C(n;7) e o custo estimado — ex.: 8 dezenas = 8 apostas = R$ 20,00; 15 dezenas = 6.435 apostas = R$ 16.087,50.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Checkbox A6:&lt;/strong&gt; marque para rodar "Atualizar Tudo" sem tocar no menu — ele desmarca sozinho ao terminar. E o comando Copiar Jogos para Aposta reúne todos os jogos de todas as abas numa janela só, prontos para o Ctrl+C.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Quais diferenciais essa planilha tem em relação a uma comum?&lt;/h2&gt;
&lt;p&gt;Existem muitas planilhas de loteria por aí; a maioria é uma tabela estática que você alimenta à mão. Esta foi construída com critérios diferentes, e cada diferencial abaixo foi testado na prática antes de virar post.&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Atualização pela API oficial da CAIXA, com API alternativa de reserva embutida para quando a oficial recusa a conexão.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Colunas Ac7/Ac6/Ac5/Ac4 que desdobram quantas apostas simples premiadas cada jogo gera em cada faixa via COMBIN — a matemática real das apostas múltiplas.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Teste chi² de aleatoriedade na aba Estatísticas — a planilha é honesta a ponto de provar que o sorteio é uniforme.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Análise exclusiva do Mês da Sorte: ranking histórico por mês e mês sugerido por tipo de jogo (QUENTE/NEUTRO/FRIO).&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Quatro famílias de jogos (10 QUENTE + 10 FRIO + 10 NEUTRO + 18 mistos por aba) mais três métodos de equilíbrio (MÉDIA, HARMÔNICA, FIBONACCI) em cada uma das 9 abas.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Checkbox A6, Copiar Jogos para Aposta e manual completo embutido (aba Inicio), sempre recriável pelo menu.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Se você curte automação desse tipo, o mesmo conceito de gatilhos e menus no Google Sheets aparece nos posts sobre &lt;a href="https://www.canalqb.com.br/search?q=google+sheets" rel="noopener noreferrer" target="_blank"&gt;Google Sheets&lt;/a&gt; aqui no blog.&lt;/p&gt;

&lt;h2&gt;Como baixar a planilha Dia de Sorte do @CanalQb?&lt;/h2&gt;
&lt;p&gt;A instalação leva menos de dois minutos: você abre a planilha no Google Sheets, vai em Extensões, Apps Script, cola o código e recarrega — o menu "Dia de Sorte" aparece na barra superior. A partir daí, um clique em Atualizar Tudo importa o histórico oficial, calcula as estatísticas das 31 dezenas e do Mês da Sorte, monta o dashboard e gera 48 jogos por tamanho de aposta. Escolhido o concurso, a conferência é automática, com destaque verde em cada dezena sorteada e contagem de apostas premiadas por faixa.&lt;/p&gt;
&lt;p&gt;É para quem joga Dia de Sorte com frequência e quer parar de fazer na mão o que a planilha faz em segundos: manter o histórico, ver as estatísticas, montar jogos com critério, saber quanto custa cada aposta múltipla e conferir tudo após o sorteio. Serve tanto para quem joga os R$ 2,50 simples quanto para quem monta apostas de 10, 12 dezenas e quer entender exatamente quantas combinações está comprando. Lembre-se apenas do aviso honesto: estatística nenhuma prevê sorteio — jogue com responsabilidade.&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como fazer a planilha Dia de Sorte se atualizar sozinha pela API da CAIXA?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Basta colar o script em Extensões, Apps Script, salvar e recarregar a planilha: o menu "Dia de Sorte" aparece na barra superior. Ao clicar em Atualizar Tudo, o script consulta o endpoint oficial &lt;code&gt;servicebus2.caixa.gov.br/portaldeloterias/api/diadesorte&lt;/code&gt; e preenche a aba Todos os Jogos com o mais recente no topo. Na primeira vez ele importa o histórico completo; depois, só os concursos que faltam. Veja o passo a passo completo neste &lt;a href="https://www.canalqb.com.br/search?q=apps+script" rel="noopener noreferrer" target="_blank"&gt;guia de Apps Script&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quanto custa uma aposta de 10 dezenas no Dia de Sorte?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Uma aposta de 10 dezenas equivale a C(10;7) = 120 apostas simples, ou seja, R$ 300,00 ao preço de R$ 2,50 por combinação. A planilha mostra essa tabela C(n;7) em cada aba de jogo, para apostas de 7 a 15 dezenas — as 15 dezenas chegam a 6.435 combinações e R$ 16.087,50. Vale conferir as &lt;a href="https://www.canalqb.com.br/search?q=apostas+multiplas" rel="noopener noreferrer" target="_blank"&gt;regras de apostas múltiplas&lt;/a&gt; antes de desembolsar.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que significam as colunas Ac7, Ac6, Ac5 e Ac4 das abas de jogo?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Elas contam quantas apostas simples premiadas cada jogo gera em cada faixa oficial de premiação, usando a fórmula COMBIN. Se um jogo de 10 dezenas acertou 5 dezenas, a coluna Ac5 mostra em quantas das 120 combinações de 7 dezenas você garantiu 5 pontos — e assim por diante. É a forma mais direta de entender por que apostas maiores premiam em várias faixas ao mesmo tempo.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Dezenas quentes e frias aumentam a chance de ganhar no Dia de Sorte?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Quente, frio e atraso são apenas retratos do histórico, sem valor preditivo — cada sorteio é independente. A própria planilha inclui um teste chi² de uniformidade: quando o valor fica abaixo do crítico (43,8), as dezenas saem de forma estatisticamente uniforme, confirmando que os padrões de frequência são ruído amostral. Entenda mais em &lt;a href="https://www.canalqb.com.br/search?q=estatisticas+de+loteria" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loteria&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como conferir automaticamente os jogos depois do sorteio do Dia de Sorte?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Em qualquer aba "Jogo NN", escolha o concurso na célula C3: o resultado (7 dezenas e o mês) preenche as linhas 4 sozinho, cada dezena sorteada acende a célula verde nos seus jogos e as colunas de acertos se recalculam na hora. Não há nada para digitar. Depois use o menu Copiar Jogos para Aposta para levar tudo à lotérica no próximo concurso.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quais são os prêmios fixos do Dia de Sorte e do Mês da Sorte?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Os prêmios fixos por aposta simples são: 5 acertos = R$ 25,00, 4 acertos = R$ 5,00 e Mês da Sorte = R$ 2,50. As faixas de 7 e 6 acertos têm prêmio variável, dividido pela arrecadação e o número de ganhadores. A aba Estatísticas exibe essa tabela oficial sempre atualizada à mão — confira sempre o &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;portal oficial da CAIXA&lt;/a&gt; antes de apostar.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Como fazer a planilha Dia de Sorte se atualizar sozinha pela API da CAIXA?","acceptedAnswer":{"@type":"Answer","text":"Cole o script em Extensões, Apps Script, salve e recarregue a planilha: o menu Dia de Sorte aparece na barra superior. Ao clicar em Atualizar Tudo, o script consulta o endpoint oficial servicebus2.caixa.gov.br/portaldeloterias/api/diadesorte e preenche a aba Todos os Jogos com o mais recente no topo."}},
{"@type":"Question","name":"Quanto custa uma aposta de 10 dezenas no Dia de Sorte?","acceptedAnswer":{"@type":"Answer","text":"Uma aposta de 10 dezenas equivale a C(10;7) = 120 apostas simples, ou seja, R$ 300,00 ao preço de R$ 2,50 por combinação. A planilha mostra a tabela C(n;7) para apostas de 7 a 15 dezenas; as 15 dezenas chegam a 6.435 combinações e R$ 16.087,50."}},
{"@type":"Question","name":"O que significam as colunas Ac7, Ac6, Ac5 e Ac4 das abas de jogo?","acceptedAnswer":{"@type":"Answer","text":"Elas contam quantas apostas simples premiadas cada jogo gera em cada faixa oficial de premiação, usando a fórmula COMBIN. Se um jogo de 10 dezenas acertou 5 dezenas, a coluna Ac5 mostra em quantas das 120 combinações de 7 dezenas você garantiu 5 pontos."}},
{"@type":"Question","name":"Dezenas quentes e frias aumentam a chance de ganhar no Dia de Sorte?","acceptedAnswer":{"@type":"Answer","text":"Não. Quente, frio e atraso são retratos do histórico, sem valor preditivo, pois cada sorteio é independente. A própria planilha inclui um teste chi² de uniformidade: valor abaixo do crítico (43,8) indica que as dezenas saem de forma estatisticamente uniforme."}},
{"@type":"Question","name":"Como conferir automaticamente os jogos depois do sorteio do Dia de Sorte?","acceptedAnswer":{"@type":"Answer","text":"Em qualquer aba Jogo NN, escolha o concurso na célula C3: o resultado preenche as linhas 4 sozinho, cada dezena sorteada acende a célula verde nos seus jogos e as colunas de acertos se recalculam na hora, sem digitar nada."}},
{"@type":"Question","name":"Quais são os prêmios fixos do Dia de Sorte e do Mês da Sorte?","acceptedAnswer":{"@type":"Answer","text":"Os prêmios fixos por aposta simples são: 5 acertos = R$ 25,00, 4 acertos = R$ 5,00 e Mês da Sorte = R$ 2,50. As faixas de 7 e 6 acertos têm prêmio variável, dividido pela arrecadação e o número de ganhadores."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div class="post_footer-refs"&gt;
&lt;h2&gt;&#128218; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class="fas fa-book" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — portal oficial&lt;/a&gt; — regras, prêmios, calendário e resultados oficiais do Dia de Sorte.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/diadesorte" rel="noopener noreferrer" target="_blank"&gt;API pública do Dia de Sorte (servicebus2.caixa.gov.br)&lt;/a&gt; — endpoint usado pela planilha para importar os concursos.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book" style="color: #2196f3;"&gt;&lt;/i&gt; Documentação do Google Apps Script e do Google Sheets, base do script que alimenta o menu "Dia de Sorte".&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Dia de Sorte que se Atualiza Sozinha (2026)",
  "description":"Planilha Dia de Sorte no Google Sheets com atualização automática pela API da CAIXA: estatísticas das 31 dezenas, Mês da Sorte, dashboard, gerador de 48 jogos e conferência de acertos por faixa.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-08",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="post_cta"&gt;
  &lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Baixe agora a planilha Dia de Sorte&lt;/strong&gt; com atualização automática pela API da CAIXA, estatísticas completas, gerador de 48 jogos por aposta e conferência automática de acertos. Assistiu o tutorial? Completo no
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.85em; margin: 6px 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;

&lt;!--===== BOTÃO DE COMPRA @CanalQb — link real https://canalqb.com.br/?c=DiaDaSorte =====--&gt;
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Comprar a planilha" href="https://canalqb.com.br/?c=DiaDaSorte" rel="noopener" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-cart-shopping" style="margin-right: 10px;"&gt;&lt;/i&gt;Comprar
  &lt;/a&gt;
&lt;/div&gt;
&lt;!--===== FIM BOTÃO DE COMPRA =====--&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggjIWvBpfgvH0E2JxKh5CrNVAZuie6SAl5eyFKWEvJ14C41aqOp9FXJDPSfX9HYaQ6ca1P4l_noTKiWtTvu5WWhP1NOD0lZTluHS23_cZnyGNfZ2OwH06vum3lotG5ZvUq6AvjyVV3P4m1xV0hecE-vjeCwg2wdtKtj5GYEfI0ry77oOy-NLYMszKMTUPi/s72-c/image.png" width="72"/></item><item><title>Planilha +Milionária: Estatísticas e Jogos Automáticos no Sheets</title><link>https://canalqb.blogspot.com/2026/10/planilha-milionaria-estatisticas-e.html</link><category>API CAIXA</category><category>automacao</category><category>estatisticas loteria</category><category>gerador de jogos</category><category>Google Sheets</category><category>Loterias CAIXA</category><category>milionaria caixa</category><category>planilha loteria</category><category>planilha milionaria</category><category>tutoriais
&#127919; Intenção: Comercial investigativa</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 11 Oct 2026 21:06:57 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-6651890260787282531</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHUKH8CeVNqG9pUIww9R21G25vWbKNHWsFFPeOam9IJFgqvqo69ZV1Ps1-ZCNCc3ZQAhSkyY0NQfBpDOWU94ztNGClka_wrQ7IuHVouyG7Kg3T49W_uDH1MbHjleZ30YrLE4STaN65FJbvp4TPTeArW09MGp4QOs2rwmtnOfPbNvDfl49986Z27zzBRFJo/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:18px 20px;border-radius:8px;margin:25px 0}
.post_tldr h2{color:#333;font-size:1.25em;margin:0 0 12px;border-left:none;padding:0}
.post_tldr ul{list-style:none;padding:0;margin:0}
.post_tldr li{display:flex;align-items:flex-start;gap:10px;padding:6px 0;color:#555;font-size:0.95em;line-height:1.6}
.post_tldr li i{color:#28a745;margin-top:4px;flex-shrink:0}
.post_badge{background:rgba(255,193,7,0.12);border:1px solid #ffc107;border-radius:20px;padding:6px 16px;display:inline-block;font-size:0.85em;color:#555;margin:10px auto 20px;text-align:center}
.post_badge i{margin-right:6px}
.post_separator{border:0.5px solid #ccc;margin:10px auto;width:95%}
.post_h1{text-align:center;color:#333;font-size:1.8em;line-height:1.3;margin:20px 0}
.post_body{color:#333;line-height:1.75;font-size:1em}
.post_body h2{color:#333;font-size:1.35em;margin:2em 0 0.6em;border-left:4px solid #28a745;padding-left:12px;line-height:1.35}
.post_body h3{color:#555;font-size:1.1em;margin:1.5em 0 0.5em}
.post_body p{color:#333;margin:0 0 1em}
.post_body a{color:#2196f3;text-decoration:underline}
.post_body a:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_answer{color:#555;font-size:0.98em}
.post_table{width:100%;border-collapse:collapse;margin:20px 0;font-size:0.9em;background:transparent}
.post_table th{background:rgba(40,167,69,0.12);color:#333;padding:10px;border:1px solid #ddd;text-align:left;font-weight:600}
.post_table td{padding:9px 10px;border:1px solid #ddd;color:#555}
.post_table tr:nth-child(even) td{background:rgba(40,167,69,0.04)}
.post_table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_brigade{color:#28a745;font-weight:600}
.post_cta{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:20px;border-radius:8px;margin:30px 0;text-align:center}
.post_cta a{color:#28a745}
.post_footer_ref{margin:30px 0;padding:18px 20px;border:1px solid #ddd;border-radius:8px}
.post_footer_ref h2{color:#333;font-size:1.25em;margin:0 0 12px;border-left:4px solid #2196f3;padding-left:12px}
.post_footer_ref ul{list-style:none;padding:0;margin:0}
.post_footer_ref li{padding:5px 0;font-size:0.9em;color:#555}
.post_footer_ref li i{color:#2196f3;margin-right:8px}
a:focus-visible,button:focus-visible{outline:2px solid #28a745;outline-offset:2px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
@media (max-width:600px){.post_h1{font-size:1.5em}.post_table{font-size:0.8em}}
&lt;/style&gt;

&lt;h1 class="post_h1"&gt;Planilha +Milionária que se Atualiza Sozinha (2026)&lt;/h1&gt;
&lt;p class="post_badge"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~14 min&lt;/p&gt;

&lt;div class="post_tldr"&gt;
&lt;h2&gt;&lt;i class="fas fa-bolt" style="color: #ffc107;"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class="fas fa-check" style="color: #28a745;"&gt;&lt;/i&gt; Montei uma planilha de +Milionária no Google Sheets que importa sozinha todo o histórico oficial via API da CAIXA — em um clique ela baixa concursos, recalcula estatísticas e gera jogos.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-check" style="color: #28a745;"&gt;&lt;/i&gt; O resultado: 50 dezenas e 6 trevos analisados com frequência, atraso, chi² e distribuição hipergeométrica, mais 7 abas de gerador (6 a 12 dezenas) com 48 jogos cada — 30 base (QUENTE/FRIO/NEUTRO) + 18 mistos — zero fórmulas digitadas à mão.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-check" style="color: #28a745;"&gt;&lt;/i&gt; Isso importa porque conferir jogos contra o sorteio real passa a levar segundos, não tardes — e você enxerga os dados reais da modalidade em vez de achismo de grupo de WhatsApp.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/XVlQcXxJ3L8?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha +Milionária que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(255, 193, 7, 0.15); border-left: 4px solid rgb(255, 193, 7); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso importante:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional, sobre estatística e organização de apostas na loteria +Milionária. Não garante ganhos nem prêmios. Loteria é jogo de azar: nenhuma estatística, método ou planilha prevê sorteios. Destinado a maiores de 18 anos — jogue com responsabilidade e apenas o que pode perder. Este material não é afiliado, patrocinado ou endossado pela Caixa Econômica Federal.
&lt;/p&gt;

&lt;div class="post_body"&gt;

&lt;p&gt;&lt;strong&gt;Acertar as 6 dezenas e os 2 trevos é 1 chance em 238.360.500.&lt;/strong&gt; Enquanto isso, a maioria dos jogadores ainda digita resultado de loteria à mão em planilha — quando digita. Aqui no @CanalQb, cansei desse trabalho repetitivo e montei uma planilha que se atualiza sozinha pela API oficial da CAIXA. E o melhor: ela vai muito além do histórico — estatísticas completas, gráficos e gerador de jogos. Fique até o final porque vou mostrar o detalhe técnico que nenhuma planilha pronta tem: um teste de chi² que audita a honestidade do sorteio dentro da própria aba de estatísticas.&lt;/p&gt;

&lt;h2&gt;O que é a +Milionária e quais são as regras oficiais?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A +Milionária é a modalidade da CAIXA em que você marca de 6 a 12 dezenas (de 01 a 50) mais 2 a 6 trevos (de 1 a 6); o sorteio apura 6 dezenas e 2 trevos, e os prêmios combinam os dois acertos. A aposta simples custa R$ 6,00 e os sorteios acontecem às quartas (21h) e domingos (11h), desde 20/05/2022.&lt;/p&gt;

&lt;p&gt;Só esse detalhe dos trevos já muda tudo em relação às outras modalidades: uma mesma quantidade de dezenas acertadas pode cair em faixas diferentes dependendo dos trevos. É por isso que a planilha conferindo dezenas &lt;em&gt;e&lt;/em&gt; trevos de forma automática faz tanta diferença na prática.&lt;/p&gt;

&lt;p&gt;Quanto mais dezenas você marca, mais apostas simples você compra de uma vez — cada combinação possível de 6 dezenas entre as suas vale uma aposta. A tabela de custos oficiais abaixo é a que a própria planilha calcula em cada aba de jogo:&lt;/p&gt;

&lt;div class="post_table-wrap"&gt;
&lt;table class="post_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Dezenas marcadas&lt;/th&gt;&lt;th&gt;Apostas simples C(n;6)&lt;/th&gt;&lt;th&gt;Custo estimado&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6 dezenas&lt;/td&gt;&lt;td&gt;1 aposta&lt;/td&gt;&lt;td&gt;R$ 6,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7 dezenas&lt;/td&gt;&lt;td&gt;7 apostas&lt;/td&gt;&lt;td&gt;R$ 42,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8 dezenas&lt;/td&gt;&lt;td&gt;28 apostas&lt;/td&gt;&lt;td&gt;R$ 168,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;9 dezenas&lt;/td&gt;&lt;td&gt;84 apostas&lt;/td&gt;&lt;td&gt;R$ 504,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10 dezenas&lt;/td&gt;&lt;td&gt;210 apostas&lt;/td&gt;&lt;td&gt;R$ 1.260,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;11 dezenas&lt;/td&gt;&lt;td&gt;462 apostas&lt;/td&gt;&lt;td&gt;R$ 2.772,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;12 dezenas&lt;/td&gt;&lt;td&gt;924 apostas&lt;/td&gt;&lt;td&gt;R$ 5.544,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p&gt;E a premiação oficial combina dezenas e trevos assim — tabela oficial da CAIXA, replicada na aba de estatísticas:&lt;/p&gt;

&lt;div class="post_table-wrap"&gt;
&lt;table class="post_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Chance (1 em...)&lt;/th&gt;&lt;th&gt;Prêmio&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6 dezenas + 2 trevos&lt;/td&gt;&lt;td&gt;1 em 238.360.500&lt;/td&gt;&lt;td&gt;62% do bruto (mín. R$ 10 milhões)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6 + 1 / 6 + 0&lt;/td&gt;&lt;td&gt;1 em 17.025.750&lt;/td&gt;&lt;td&gt;10%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5 + 2&lt;/td&gt;&lt;td&gt;1 em 902.881&lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5 + 1 / 5 + 0&lt;/td&gt;&lt;td&gt;1 em 64.491&lt;/td&gt;&lt;td&gt;8%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4 + 2&lt;/td&gt;&lt;td&gt;1 em 16.798&lt;/td&gt;&lt;td&gt;6%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4 + 1 / 4 + 0&lt;/td&gt;&lt;td&gt;1 em 1.200&lt;/td&gt;&lt;td&gt;6%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3 + 2&lt;/td&gt;&lt;td&gt;1 em 900&lt;/td&gt;&lt;td&gt;R$ 50,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;3 + 1&lt;/td&gt;&lt;td&gt;1 em 112&lt;/td&gt;&lt;td&gt;R$ 24,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2 + 2&lt;/td&gt;&lt;td&gt;1 em 117&lt;/td&gt;&lt;td&gt;R$ 12,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;2 + 1&lt;/td&gt;&lt;td&gt;1 em 15&lt;/td&gt;&lt;td&gt;R$ 6,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;/div&gt;

&lt;p class="post_brigade"&gt;Percebeu o tamanho das faixas fixas? Repare que acertar 3 dezenas + 2 trevos paga mais (R$ 50,00) do que 2 + 2 (R$ 12,00) — e a diferença entre 1 em 900 e 1 em 117 é justamente o acerto de mais uma dezena. É esse tipo de leitura que a tabela oficial, dentro da planilha, te obriga a fazer antes de gastar dinheiro.&lt;/p&gt;

&lt;h2&gt;Como funciona a atualização automática via API da CAIXA?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A planilha roda um script em Apps Script que consulta o endpoint oficial de +Milionária (servicebus2.caixa.gov.br) e importa cada concurso novo para a aba "Todos os Jogos", com as 6 dezenas e os 2 trevos. Se a API oficial recusar a conexão, existe um endpoint alternativo de contingência — e o histórico sempre fica com o concurso mais recente no topo.&lt;/p&gt;

&lt;p&gt;Na primeira execução, ela baixa o histórico completo, concurso a concurso. Nas seguintes, compara o último concurso local com o último remoto e busca &lt;em&gt;somente&lt;/em&gt; o que falta — com uma pausa de 300 ms entre requisições para não ser bloqueada pelo servidor da CAIXA. Aqui está o detalhe que quase ninguém percebe: a planilha nunca duplica nem desordena linhas, porque a inserção é sempre no topo, em bloco, já ordenada do concurso mais recente para o mais antigo.&lt;/p&gt;

&lt;p&gt;E o melhor? Funciona sem instalar nada. É Google Sheets puro: você cola o script em Extensões &amp;gt; Apps Script, salva, recarrega — e um menu novo chamado "+Milionária" aparece na barra da planilha. Se quiser se aprofundar na plataforma, a documentação oficial está em &lt;a href="https://developers.google.com/apps-script" rel="noopener noreferrer" target="_blank"&gt;developers.google.com/apps-script&lt;/a&gt; e as regras da modalidade em &lt;a href="https://www.loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;loteriascaixa.gov.br&lt;/a&gt;. Já tratamos de automação parecida em &lt;a href="https://www.canalqb.com.br/search?q=automacao" rel="noopener noreferrer" target="_blank"&gt;outros tutoriais de automação do canalqb.com.br&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Como usar a planilha passo a passo (o menu inteiro, item a item)?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Depois de colar o script, use o menu "+Milionária": na primeira vez, rode "Atualizar Resultados" e depois "Gerar Jogos". No dia a dia, um único comando resolve tudo — "Atualizar Tudo" — que importa resultados, recalcula estatísticas, recria o DashBoard e regenera as abas de jogos de uma vez.&lt;/p&gt;

&lt;p&gt;O menu é esse, exatamente como o manual da aba "Inicio" descreve:&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Tudo (botão)&lt;/strong&gt; — faz tudo de uma vez: importa resultados, recalcula estatísticas, gera o DashBoard e recria as abas de jogos. Também é acionado marcando o checkbox da célula A6 em qualquer aba "Jogo NN", e ele desmarca sozinho ao terminar.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Resultados&lt;/strong&gt; — baixa os concursos oficiais da API da CAIXA para a aba "Todos os Jogos". É sempre o primeiro passo: sem histórico, nada mais funciona. Cada linha traz concurso, data, as 6 dezenas em ordem crescente e os 2 trevos.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Recalcular Estatísticas&lt;/strong&gt; — reescreve a aba "Estatísticas" com base em todo o histórico importado. Rode de novo sempre que quiser conferir se algo mudou.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar DashBoard&lt;/strong&gt; — recria a aba "DashBoard" com gráficos de frequência por dezena, pares × ímpares, saídas por faixa e paridade dos sorteios.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Gerar Jogos&lt;/strong&gt; — cria as abas "Jogo 06" a "Jogo 12", uma por tamanho de aposta, cada uma com 48 jogos: 10 QUENTE, 10 FRIO, 10 NEUTRO e 18 MISTOS (seção lilás Q+F, Q+N, F+Q, F+N, N+Q, N+F), mais 12 linhas MÉDIA/HARMÔNICA/FIBONACCI.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Copiar Jogos para Aposta&lt;/strong&gt; — abre uma janela com todos os jogos gerados (aba, tipo, dezenas e trevos) prontos para copiar com Ctrl+C e levar à lotérica.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Deletar Todas as Abas (manter Inicio)&lt;/strong&gt; — apaga tudo exceto o manual. Útil para recomeçar do zero com "Atualizar Tudo".&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Verificar Instalação&lt;/strong&gt; — mostra se as abas necessárias existem e o estado geral da instalação.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class="post_brigade"&gt;Mas tem um porém que economiza seu dia: se você marcar o checkbox da célula A6 em qualquer aba de jogo, o "Atualizar Tudo" roda sozinho — sem abrir menu nenhum. Um clique, café, pronto.&lt;/p&gt;

&lt;h2&gt;O que significa cada estatística da planilha?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A aba "Estatísticas" mostra, para cada dezena de 01 a 50: frequência, probabilidade por concurso, atraso atual, atraso médio e máximo, e um status QUENTE, NEUTRO ou FRIO. Além disso, painéis de soma, amplitude, primos, Fibonacci, trevos, paridade, faixas, quadrantes e um teste chi² de uniformidade.&lt;/p&gt;

&lt;p&gt;Traduzindo item a item — porque "número solto" sem explicação não serve para nada:&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Frequência&lt;/strong&gt; — quantas vezes cada dezena saiu em todos os concursos importados. É a base de todo o resto. A "Prob. por concurso %" é só a frequência dividida pelo número de concursos: a chance média de a dezena aparecer num sorteio.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Atraso atual / médio / máximo&lt;/strong&gt; — há quantos concursos a dezena não sai, qual o intervalo médio entre as saídas dela e qual o maior jejum já observado. E aqui vem o aviso honesto que a própria planilha imprime: atraso NÃO aumenta a chance de sair, porque cada sorteio é independente.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Status QUENTE / NEUTRO / FRIO&lt;/strong&gt; — QUENTE são as 17 dezenas mais sorteadas do ranking; FRIO, as 16 menos sorteadas; NEUTRO, as do meio. É um retrato do passado, não uma previsão — e a planilha deixa isso claro em cada aba.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Soma e amplitude&lt;/strong&gt; — a soma das 6 dezenas de cada sorteio (média, mínima e máxima) e a distância entre a maior e a menor dezena. Juntas, mostram o "espalhamento" típico de um sorteio da modalidade.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Primos e Fibonacci&lt;/strong&gt; — quantos números primos (2, 3, 5, 7, 11, 13... até 47) e quantas dezenas da sequência de Fibonacci (1, 2, 3, 5, 8, 13, 21, 34) aparecem por sorteio, com a distribuição completa. Referência clássica de estatística de loterias.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Trevos (1 a 6)&lt;/strong&gt; — quantas vezes cada trevo já foi sorteado e a probabilidade por sorteio, cujo valor esperado é 33,33% por trevo (2 sorteados entre 6 possíveis). Cada concurso apura 2 trevos, então a planilha soma os dois.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Distribuição de acertos (hipergeométrica)&lt;/strong&gt; — a probabilidade matemática real de uma aposta de 6 dezenas acertar 6, 5, 4... 0 números. Não é achismo: é a fórmula hipergeométrica aplicada ao universo de 50 dezenas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class="post_brigade"&gt;E aqui está o insight técnico original que eu prometi na abertura. A planilha calcula o &lt;strong&gt;teste de aleatoriedade chi²&lt;/strong&gt;: ela compara a frequência observada de cada dezena com a frequência esperada e soma os desvios quadrados normalizados. O valor crítico com 49 graus de liberdade e nível de 5% é 66,3 — se o resultado fica &lt;em&gt;abaixo&lt;/em&gt; disso, as 50 dezenas estão estatisticamente uniformes, exatamente como se espera de um sorteio honesto. Aqui no @CanalQb, validamos que esse é o único teste da planilha capaz de dizer alguma coisa sobre o &lt;em&gt;futuro&lt;/em&gt;: não quais dezenas vão sair, mas se o sorteio é equiprovável. Quente e frio não têm valor preditivo; o chi² tem valor de auditoria. É uma diferença que quase nenhum conteúdo de "estatística de loteria" explica.&lt;/p&gt;

&lt;h2&gt;Como ler as abas de jogo (Jogo 06 a Jogo 12)?&lt;/h2&gt;
&lt;p class="post_answer"&gt;O número da aba é a quantidade de dezenas da aposta: "Jogo 09" gera jogos com 9 dezenas (84 apostas simples, R$ 504,00). Cada aba traz 48 jogos — 10 QUENTE, 10 FRIO, 10 NEUTRO e 18 MISTOS (Q+F, Q+N, F+Q, F+N, N+Q, N+F, 3 de cada) — mais 12 linhas MÉDIA, HARMÔNICA e FIBONACCI, com colunas de Acertos, Trevos OK, célula verde automática e uma tabela de custo C(n;6) × preço simples à direita.&lt;/p&gt;

&lt;p&gt;Cada elemento da aba tem função específica — e vale saber ler todos antes de apostar:&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Tipo (QUENTE / FRIO / NEUTRO)&lt;/strong&gt; — a origem do jogo, identificada por cor: laranja para quente, azul para frio, cinza para neutro. Os jogos são amostrados de três pools distintos (as 30 mais sorteadas, as 30 menos sorteadas e 30 intermediárias do ranking), sempre com paridade equilibrada (mais ou menos metade pares, metade ímpares).&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Trevo 1 e Trevo 2&lt;/strong&gt; — os 2 trevos sugeridos para cada jogo, sorteados ao acaso entre 1 e 6. Como a premiação combina dezenas e trevos, o par de trevos faz parte da aposta — e o gerador nunca cria jogos repetidos: a chave de deduplicação inclui dezenas &lt;em&gt;e&lt;/em&gt; trevos.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Escolha (célula C3) e resultado automático&lt;/strong&gt; — você seleciona o concurso na lista suspensa e as 6 dezenas (F4:K4) e os 2 trevos (M4:N4) são preenchidos sozinhos por fórmulas INDEX/MATCH contra o histórico. Não digite ali.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Acertos e Trevos OK&lt;/strong&gt; — colunas calculadas: quantas dezenas do jogo saíram no resultado e quantos trevos coincidem. Ficam vazias enquanto nenhum concurso estiver escolhido.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Célula verde&lt;/strong&gt; — formatação condicional que pinta automaticamente cada dezena do seu jogo que saiu no concurso escolhido. É a conferência visual em um olhar.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;MÉDIA / HARMÔNICA / FIBONACCI&lt;/strong&gt; — jogos "equilibrados" montados de três formas: a média aritmética dá o centro das dezenas de cada grupo; a harmônica puxa os jogos para as dezenas baixas (01 a 25), porque pesa mais os valores menores; e os Fibonacci usam a sequência clássica e variações, completadas por frequência quando faltam dezenas.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;JOGOS MISTOS (seção lilás)&lt;/strong&gt; — 18 jogos ao final da aba, 3 de cada combinação Q+F, Q+N, F+Q, F+N, N+Q e N+F: metade das dezenas do primeiro pool + metade do segundo (ex.: Q+F = quentes + frias), sem repetição e em ordem crescente, cada jogo com seus 2 trevos e a mesma conferência de Acertos e Trevos OK. Em apostas ímpares o primeiro pool entra com a dezena a mais (ex.: 7 dezenas = 4 + 3).&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Checkbox A6&lt;/strong&gt; — marque para rodar "Atualizar Tudo" sem abrir o menu. Ele desmarca sozinho ao terminar.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Tabela de referência&lt;/strong&gt; — quantas apostas simples seu tamanho de jogo equivale (C(n;6)) e o custo estimado a R$ 6,00 cada. É o freio de emergência antes de marcar 12 dezenas: 924 combinações, R$ 5.544,00.&lt;/li&gt;
&lt;/ul&gt;

&lt;p class="post_brigade"&gt;E o segundo insight técnico que prometi? Veja como o COMBIN dos tiers revela apostas premiadas por faixa. Como os 48 jogos de cada aba são amostrados de pools distintos (QUENTE, FRIO, NEUTRO e os mistos entre eles), o custo real da aba não é 48 apostas simples: cada jogo de n dezenas equivale a C(n;6) apostas simples. Somando os tiers você descobre, por exemplo, que a aba "Jogo 08" sozinha cobre 1.344 apostas simples (28 por jogo × 48 jogos) por R$ 8.064,00 — e as colunas de Acertos contam exatamente quantas dessas combinações bateram em cada faixa no concurso escolhido. É o tipo de leitura que transforma uma "planilha de gerador" em ferramenta de conferência de bolão. Se você administra jogos coletivos, veja também &lt;a href="https://www.canalqb.com.br/search?q=planilha+loteria" rel="noopener noreferrer" target="_blank"&gt;nossas outras planilhas de loteria&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Vale a pena baixar a planilha de +Milionária em 2026?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Sim, se você joga com método e quer dados reais: a planilha elimina o trabalho manual de copiar resultados, calcula estatísticas que nenhum site de loteria entrega junto (chi², hipergeométrica, trevos por concurso) e confere dezenas e trevos automaticamente. Para bolões e apostadores habituais, o ganho de tempo é diário — para curiosos, é um laboratório de estatística de graça.&lt;/p&gt;

&lt;p&gt;Resumo do que ela resolve, na prática:&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Histórico oficial atualizado pela &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/maismilionaria" rel="noopener noreferrer" target="_blank"&gt;API de +Milionária da CAIXA&lt;/a&gt;, com contingência automática — sem nunca digitar um resultado.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Estatísticas de 50 dezenas + 6 trevos com ranking, atrasos, primos, Fibonacci, faixas, quadrantes, paridade e o teste chi² de uniformidade.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Sete abas geradoras (Jogo 06 a Jogo 12) com 48 jogos cada (30 base + 18 mistos) e conferência automática por célula verde.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Manual completo embutido na aba "Inicio" — o mesmo guia que repliquei neste post, item a item.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Aqui no @CanalQb, otimizamos este script para os leitores do canalqb.com.br: cada função é comentada e o arquivo .gs é autoinstalável — colar, salvar, pronto. Se quiser comparar com outras modalidades que já cobrimos, confira &lt;a href="https://www.canalqb.com.br/search?q=mega+sena" rel="noopener noreferrer" target="_blank"&gt;o material de Mega-Sena&lt;/a&gt; e &lt;a href="https://www.canalqb.com.br/search?q=google+sheets" rel="noopener noreferrer" target="_blank"&gt;mais tutoriais de Google Sheets&lt;/a&gt; do canal.&lt;/p&gt;

&lt;/div&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como fazer a planilha de +Milionária atualizar os resultados sozinha?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Cole o arquivo .gs em Extensões &amp;gt; Apps Script, salve e recarregue a planilha. Depois use o menu "+Milionária" &amp;gt; Atualizar Resultados (ou "Atualizar Tudo") — o script consulta a API oficial da CAIXA e importa só os concursos que faltam, sempre com o mais recente no topo. O passo a passo completo com imagens está no &lt;a href="https://www.canalqb.com.br/search?q=automacao" rel="noopener noreferrer" target="_blank"&gt;tutorial de automação do canalqb.com.br&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha de +Milionária garante prêmio ou prevê as dezenas sorteadas?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Loteria é jogo de azar e cada sorteio é independente: quente, frio e atraso são retratos do passado, sem valor preditivo — a própria aba de estatísticas imprime esse aviso. O que a planilha entrega são dados reais, conferência automática de jogos e organização de apostas, conforme explicado em &lt;a href="https://www.canalqb.com.br/search?q=estatisticas+loteria" rel="noopener noreferrer" target="_blank"&gt;nossos artigos de estatísticas de loteria&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quanto custa jogar 12 dezenas na +Milionária?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;12 dezenas equivalem a 924 apostas simples de R$ 6,00, ou seja, R$ 5.544,00 — o cálculo é o COMBIN(12;6) × preço simples, exibido na tabela de referência de cada aba de jogo. A mesma lógica vale para os outros tamanhos: 7 dezenas são 7 apostas (R$ 42,00) e 10 dezenas são 210 apostas (R$ 1.260,00).&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que significam QUENTE, NEUTRO e FRIO nas abas de jogos?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;QUENTE são os jogos montados com as dezenas do top do ranking de frequência, FRIO com as menos sorteadas e NEUTRO com as intermediárias — cada aba gera 10 de cada tipo, com paridade equilibrada. São perfis diferentes de jogo para comparar comportamentos, não previsões. Para entender o ranking completo, veja &lt;a href="https://www.canalqb.com.br/search?q=planilha+loteria" rel="noopener noreferrer" target="_blank"&gt;como as planilhas de loteria do @CanalQb funcionam&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como conferir meus jogos da +Milionária automaticamente?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Em qualquer aba "Jogo NN", escolha o concurso na célula C3: as 6 dezenas e os 2 trevos são preenchidos automaticamente, as dezenas acertadas ficam verdes e as colunas Acertos e Trevos OK contam os acertos por faixa. Para levar os jogos à lotérica, use "Copiar Jogos para Aposta" e copie tudo com Ctrl+C.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha funciona no Excel ou só no Google Sheets?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Ela foi feita para o Google Sheets, porque depende do Apps Script para consultar a API da CAIXA e montar menu, gatilhos e gráficos automaticamente. No Excel seria preciso refazer toda a camada de automação (VBA ou Office Scripts). O histórico exportado, porém, é uma tabela simples que pode ser salva em qualquer formato.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Como fazer a planilha de +Milionária atualizar os resultados sozinha?","acceptedAnswer":{"@type":"Answer","text":"Cole o arquivo .gs em Extensões &gt; Apps Script, salve e recarregue a planilha. Depois use o menu +Milionária e clique em Atualizar Resultados ou Atualizar Tudo: o script consulta a API oficial da CAIXA e importa só os concursos que faltam, sempre com o mais recente no topo."}},
{"@type":"Question","name":"A planilha de +Milionária garante prêmio ou prevê as dezenas sorteadas?","acceptedAnswer":{"@type":"Answer","text":"Não. Loteria é jogo de azar e cada sorteio é independente: quente, frio e atraso são retratos do passado, sem valor preditivo. O que a planilha entrega são dados reais, conferência automática de jogos e organização de apostas."}},
{"@type":"Question","name":"Quanto custa jogar 12 dezenas na +Milionária?","acceptedAnswer":{"@type":"Answer","text":"12 dezenas equivalem a 924 apostas simples de R$ 6,00, ou seja, R$ 5.544,00 — o cálculo é o COMBIN(12;6) vezes o preço simples, exibido na tabela de referência de cada aba de jogo."}},
{"@type":"Question","name":"O que significam QUENTE, NEUTRO e FRIO nas abas de jogos?","acceptedAnswer":{"@type":"Answer","text":"QUENTE são os jogos montados com as dezenas mais sorteadas do histórico, FRIO com as menos sorteadas e NEUTRO com as intermediárias — cada aba gera 10 de cada tipo, com paridade equilibrada. São perfis de jogo para comparação, não previsões."}},
{"@type":"Question","name":"Como conferir meus jogos da +Milionária automaticamente?","acceptedAnswer":{"@type":"Answer","text":"Em qualquer aba Jogo NN, escolha o concurso na célula C3: as 6 dezenas e os 2 trevos são preenchidos automaticamente, as dezenas acertadas ficam verdes e as colunas Acertos e Trevos OK contam os acertos por faixa. Use Copiar Jogos para Aposta para levar tudo à lotérica."}},
{"@type":"Question","name":"A planilha funciona no Excel ou só no Google Sheets?","acceptedAnswer":{"@type":"Answer","text":"Ela foi feita para o Google Sheets, porque depende do Apps Script para consultar a API da CAIXA e montar menu, gatilhos e gráficos automaticamente. O histórico exportado é uma tabela simples que pode ser aberta em qualquer programa."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div class="post_footer_ref"&gt;
&lt;h2&gt;&#128218; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &lt;a href="https://www.loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — regras oficiais da +Milionária&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/maismilionaria" rel="noopener noreferrer" target="_blank"&gt;API oficial de resultados da +Milionária (CAIXA)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &lt;a href="https://developers.google.com/apps-script" rel="noopener noreferrer" target="_blank"&gt;Documentação oficial do Google Apps Script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;Canal @CanalQb no YouTube — tutoriais de automação&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha +Milionária que se Atualiza Sozinha (2026)",
  "description":"Planilha de +Milionária no Google Sheets que importa sozinha os resultados oficiais via API da CAIXA, calcula estatísticas de 50 dezenas e trevos e gera jogos QUENTE, FRIO e NEUTRO.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-08",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="post_cta"&gt;
  &lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Baixe agora a Planilha +Milionária&lt;/strong&gt; — histórico oficial via API da CAIXA, estatísticas completas com chi², gerador de 7 abas de jogos e conferência automática de dezenas e trevos. E inscreva-se no
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;
    para os próximos tutoriais de automação e planilhas.
  &lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.85em; margin: 10px 0px 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;

&lt;!--===== BOTÃO DE COMPRA @CanalQb =====--&gt;
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Comprar a planilha" href="https://canalqb.com.br/?c=MaisMilionaria" onmouseout="this.style.background='#28a745'" onmouseover="this.style.background='#218838'" rel="noopener" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-cart-shopping" style="margin-right: 10px;"&gt;&lt;/i&gt;Comprar
  &lt;/a&gt;
&lt;/div&gt;
&lt;!--===== FIM BOTÃO DE COMPRA =====--&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHUKH8CeVNqG9pUIww9R21G25vWbKNHWsFFPeOam9IJFgqvqo69ZV1Ps1-ZCNCc3ZQAhSkyY0NQfBpDOWU94ztNGClka_wrQ7IuHVouyG7Kg3T49W_uDH1MbHjleZ30YrLE4STaN65FJbvp4TPTeArW09MGp4QOs2rwmtnOfPbNvDfl49986Z27zzBRFJo/s72-c/image.png" width="72"/></item><item><title>Planilha Lotofácil que se Atualiza Sozinha (2026)</title><link>https://canalqb.blogspot.com/2026/10/planilha-lotofacil-que-se-atualiza.html</link><category>API CAIXA</category><category>Apps Script</category><category>Automação</category><category>Estatísticas</category><category>Fechamento</category><category>Google Sheets</category><category>Loteria</category><category>Loterias CAIXA</category><category>Lotofácil</category><category>Planilha</category><category>Tutorial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Thu, 8 Oct 2026 23:11:19 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-5743260376371566749</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNtVQAt9Xhnv3mPLsnZh64VNqFQmzV7frUezym4Yh-AKJQzIg0SeEyuDhriLoLMsJ2pWRAx5r50vt3wwv7vsvka5g6UH-tcZqlZygDh6PiGs20uryxA5B3dZk6TMOA6_xz9rc7xhVmdb64xt91msUu1tNovQ1ni6rGPbs_axhDEEO04YNxvaE_15w1SDg7/s1600/e9337e6a-cad0-40b1-8e2e-b7cc270b0227.jpg" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_separator{border:0.5px solid #ccc;margin:10px auto;width:95%}
.post_badge{text-align:center;color:#555;font-size:0.9em;margin:10px 0}
.post_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:15px;border-radius:8px;margin:20px 0}
.post_tldr strong{color:#14532d}
.post_tldr ul{margin:8px 0 0 0;padding-left:22px;color:#333}
.post_tldr li{margin:4px 0}
.post_table{width:100%;border-collapse:collapse;margin:20px 0;font-size:0.9em}
.post_table th{background:#e8f5e9;color:#14532d;padding:10px;border:1px solid #d4d4d4;text-align:center}
.post_table td{padding:10px;border:1px solid #d4d4d4;color:#333;text-align:center}
.post_table tr:nth-child(even) td{background:rgba(33,150,243,0.05)}
.post_disclaimer{background:rgba(255,193,7,0.15);border-left:4px solid #ffc107;padding:15px;border-radius:8px;color:#555;font-size:0.9em;margin:20px 0}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_h2{color:#14532d;font-size:1.3em;margin:30px 0 10px 0;border-left:4px solid #28a745;padding-left:12px}
.post_answer{color:#333;line-height:1.7}
.post_bucket{color:#555;font-style:italic}
.post_footer{background:rgba(33,150,243,0.08);border-left:4px solid #2196f3;padding:20px;border-radius:8px;margin:30px 0}
.post_cta{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:20px;border-radius:8px;margin:30px 0;text-align:center}
a:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_table:focus-visible,.post_checklist:focus-visible{outline:2px solid #28a745}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
&lt;/style&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Planilha Lotofácil que se Atualiza Sozinha (2026)&lt;/h1&gt;
&lt;p class="post_badge"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~12 min&lt;/p&gt;
&lt;div class="post_tldr"&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt;
  &lt;ul&gt;
    &lt;li&gt;Montei uma planilha Google Sheets que puxa sozinha todos os resultados oficiais da Lotofácil direto da API da CAIXA — agora com o rateio completo (ganhadores e prêmio das faixas 15 a 11) — e recalcula estatísticas de mais de 3.300 concursos em segundos, sem digitar uma única dezena.&lt;/li&gt;
    &lt;li&gt;O resultado: 5 abas de jogo (15 a 20 dezenas) com 30 jogos QUENTE, FRIO e NEUTRO cada, filtrados por padrões estatísticos reais, mais uma aba de Fechamentos com piso verificado por força bruta, conferência automática por faixa e custo oficial calculado, de R$ 3,50 a R$ 54.264,00.&lt;/li&gt;
    &lt;li&gt;Isso importa porque elimina o trabalho manual de conferir bilhetes e desvenda quantas apostas simples premiadas um jogo maior realmente contém, com matemática oficial (COMBIN) e um aviso honesto: estatística não prevê sorteio.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/U-WRSJjykrg?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Lotofácil que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;
&lt;p class="post_disclaimer"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional. Loteria é um jogo de azar: nada nesta planilha garante ganhos ou aumenta a chance de premiação, pois cada sorteio é independente. Proibido para menores de 18 anos. Jogue com responsabilidade e nunca aposte mais do que pode perder. Este material não é afiliado, patrocinado nem endossado pela CAIXA Econômica Federal.
&lt;/p&gt;
&lt;p class="post_answer"&gt;Uma aposta de 15 dezenas na Lotofácil custa R$ 3,50 e a chance de acertar as 15 é de 1 em 3.268.760. Quem joga 20 dezenas na verdade está comprando 15.504 apostas simples de uma vez, o que explica os R$ 54.264,00 da faixa oficial. Pois bem: dá para controlar tudo isso, do resultado ao custo, dentro de uma única planilha que se atualiza sozinha. E o mais curioso vem no final, quando explico o que o teste de chi² revela sobre as dezenas quentes.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que é a Lotofácil e quais são as regras oficiais?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A Lotofácil é a loteria da CAIXA em que você marca de 15 a 20 dezenas entre 01 e 25, e o sorteio, realizado de segunda a sábado, apura 15 dezenas. A aposta mínima de 15 dezenas custa R$ 3,50; marcar mais dezenas equivale a comprar várias apostas simples de uma vez.&lt;/p&gt;
&lt;p class="post_answer"&gt;A premiação tem cinco faixas fixas: 15 e 14 acertos dividem percentuais do prêmio bruto (62% e 13%), enquanto 13, 12 e 11 acertos têm prêmios fixos por aposta simples. É por isso que aposta maior multiplica chances em faixas menores, e é exatamente isso que a planilha calcula automaticamente.&lt;/p&gt;
&lt;table class="post_table"&gt;
  &lt;caption style="caption-side: top; color: #555555; font-size: 0.85em; padding-bottom: 6px; text-align: left;"&gt;Faixas oficiais de premiação da Lotofácil (regras CAIXA)&lt;/caption&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Chance&lt;/th&gt;&lt;th&gt;Prêmio&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;1 em 3.268.760&lt;/td&gt;&lt;td&gt;62% do prêmio bruto&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;14&lt;/td&gt;&lt;td&gt;1 em 21.792&lt;/td&gt;&lt;td&gt;13% do prêmio bruto&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;13&lt;/td&gt;&lt;td&gt;1 em 692&lt;/td&gt;&lt;td&gt;R$ 35,00 fixo&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;12&lt;/td&gt;&lt;td&gt;1 em 60&lt;/td&gt;&lt;td&gt;R$ 14,00 fixo&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;11&lt;/td&gt;&lt;td&gt;1 em 12&lt;/td&gt;&lt;td&gt;R$ 7,00 fixo&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p class="post_answer"&gt;Marcar mais dezenas tem preço proporcional ao desdobramento oficial. Cada aposta de N dezenas equivale a C(N;15) apostas simples multiplicadas pelo preço unitário, e a planilha mostra esse custo na tabela de referência de cada aba de jogo.&lt;/p&gt;
&lt;table class="post_table"&gt;
  &lt;caption style="caption-side: top; color: #555555; font-size: 0.85em; padding-bottom: 6px; text-align: left;"&gt;Preço oficial por quantidade de dezenas (C(n;15) x R$ 3,50)&lt;/caption&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Dezenas&lt;/th&gt;&lt;th&gt;Apostas simples&lt;/th&gt;&lt;th&gt;Custo total&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;R$ 3,50&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;16&lt;/td&gt;&lt;td&gt;R$ 56,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;17&lt;/td&gt;&lt;td&gt;136&lt;/td&gt;&lt;td&gt;R$ 476,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;18&lt;/td&gt;&lt;td&gt;816&lt;/td&gt;&lt;td&gt;R$ 2.856,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;19&lt;/td&gt;&lt;td&gt;4.368&lt;/td&gt;&lt;td&gt;R$ 15.288,00&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;15.504&lt;/td&gt;&lt;td&gt;R$ 54.264,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;h2 class="post_h2"&gt;Como funciona a atualização automática via API da CAIXA?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A planilha usa um script Google Apps Script que consulta a API oficial de loterias da CAIXA (servicebus2.caixa.gov.br) e grava cada concurso, data e as 15 dezenas na aba "Todos os Jogos", com o mais recente no topo. Na primeira execução ele importa o histórico completo; depois, apenas os concursos novos.&lt;/p&gt;
&lt;p class="post_answer"&gt;O script compara o último concurso salvo na planilha com o último disponível na API. Se houver diferença, ele baixa concurso por concurso, com pausa de 300 ms entre chamadas para não ser recusado, insere as linhas no topo e recalcula as estatísticas. Se já estiver em dia, avisa que nada precisa ser feito. Também há um endpoint alternativo de fallback caso a API principal recuse conexões seguidas.&lt;/p&gt;
&lt;p class="post_answer"&gt;Toda a lógica fica em um único arquivo .gs: você cola em Extensões, Apps Script, salva e recarrega a planilha. Nenhum dado pessoal é enviado, nenhum complemento precisa ser instalado e a atualização pode ser disparada pelo menu ou por um checkbox dentro da própria aba de jogo.&lt;/p&gt;
&lt;p class="post_bucket"&gt;Aqui está o detalhe que quase ninguém percebe: a atualização é incremental, então ela não refaz trabalho que já está pronto.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como usar a planilha passo a passo (aba Inicio)?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Depois de colar o script e recarregar, aparece o menu "Lotofácil" na barra da planilha. Na primeira vez, use "Atualizar Resultados" para importar o histórico e depois "Gerar Jogos". No dia a dia, um único comando, "Atualizar Tudo", refaz tudo: resultados, estatísticas, DashBoard e abas de jogo.&lt;/p&gt;
&lt;p class="post_answer"&gt;O menu tem dez itens, e cada um tem um papel claro. Aqui no @CanalQb, validamos que essa ordem elimina praticamente todo o suporte que a gente recebia por mensagem. E ela trabalha em silêncio: em vez de janelas de aviso, as mensagens aparecem discretas no canto ("Planilha já está atualizada, concurso 3799", por exemplo), sem interromper o que você está fazendo.&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Tudo (botão):&lt;/strong&gt; faz tudo de uma vez, do histórico às abas de jogo e fechamentos. Também é acionado marcando o checkbox na célula A6 de qualquer aba "Jogo".&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Como usar (aba Inicio):&lt;/strong&gt; recria o manual de uso dentro da própria planilha, com todas as regras e legendas explicadas.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar Resultados:&lt;/strong&gt; baixa os concursos oficiais para a aba "Todos os Jogos", incluindo ganhadores e prêmios por faixa (G15/Prêmio 15 até G11/Prêmio 11) quando a API fornece. É o primeiro passo: sem histórico, nada mais funciona.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Recalcular Estatísticas:&lt;/strong&gt; reescreve a aba "Estatísticas" com base no histórico importado, incluindo z-score, janelas móveis e gráficos.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Atualizar DashBoard:&lt;/strong&gt; recria a aba "DashBoard" com gráficos de frequência, pares x ímpares, faixas e paridade.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Gerar Jogos:&lt;/strong&gt; cria as abas "Jogo 15" a "Jogo 20", cada uma com 30 jogos: 10 QUENTE, 10 FRIO e 10 NEUTRO, mais linhas MÉDIA, HARMÔNICA e FIBONACCI — tudo passado por um filtro estatístico de padrões comuns.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Gerar Fechamentos:&lt;/strong&gt; recria a aba "Fechamentos" com fechamentos de 16 a 20 dezenas com piso verificado por força bruta, esquema com 5 dezenas fixas e grupos pelas colunas do volante.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os jogos prontos para Ctrl+C e levar à lotérica.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Deletar Todas as Abas (manter Inicio):&lt;/strong&gt; apaga tudo e permite reconstruir do zero com "Atualizar Tudo".&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3;"&gt;&lt;/i&gt; &lt;strong&gt;Verificar Instalação:&lt;/strong&gt; mostra se as abas necessárias existem e o estado geral.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_answer"&gt;A ordem recomendada fica registrada na aba Inicio: primeira vez, Atualizar Resultados e Gerar Jogos; uso diário, apenas Atualizar Tudo ou o checkbox A6. Mas tem um porém: o checkbox exige que o gatilho de edição esteja instalado, e o script faz isso sozinho ao gerar os jogos.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que significa cada estatística da aba "Estatísticas"?&lt;/h2&gt;
&lt;p class="post_answer"&gt;A aba resume o histórico importado em uma tabela por dezena (frequência, probabilidade por concurso, atraso atual, médio e máximo) e blocos de distribuição. O status QUENTE, NEUTRO ou FRIO classifica cada dezena pelo ranking de frequência: as 10 mais sorteadas, as do meio e as 10 menos sorteadas. A tabela por dezena ganhou colunas de estatística clássica: frequência esperada, desvio e &lt;strong&gt;z-score&lt;/strong&gt; (quantos desvios-padrão a dezena está acima ou abaixo do esperado), além de &lt;strong&gt;janelas móveis&lt;/strong&gt; que comparam a frequência recente com a de longo prazo.&lt;/p&gt;
&lt;p class="post_answer"&gt;Frequência é quantas vezes a dezena saiu; probabilidade por concurso é a frequência dividida pelo total de concursos. O atraso atual conta quantos sorteios se passaram desde a última saída, e o atraso médio e máximo medem o intervalo típico e o maior já observado. Veja agora o que cada bloco extra revela:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Soma das dezenas:&lt;/strong&gt; soma das 15 dezenas de cada sorteio, com média, mínima e máxima observadas — e um histograma da soma em faixas: a média teórica é 195 e a faixa 171–220 concentra cerca de 82,7% dos concursos, enquanto extremos (120–145, 246–270) são raríssimos.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Amplitude:&lt;/strong&gt; distância entre a maior e a menor dezena do sorteio, que mede o espalhamento. Jogos concentrados em uma região do volante têm amplitude pequena.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Repetições do concurso anterior:&lt;/strong&gt; média de dezenas que repetem entre dois concursos seguidos, com histograma completo e também com defasagens maiores (lags). É comum o leitor achar que o sorteio "zera" o anterior, e a média real mostra o contrário.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Primos, Fibonacci e múltiplos de 3:&lt;/strong&gt; quantas dezenas da lista de primos (2, 3, 5, 7, 11, 13, 17, 19, 23), da sequência de Fibonacci (1, 2, 3, 5, 8, 13, 21) e dos múltiplos de 3 saem por sorteio, com distribuição completa.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Terminações e faixas de 5:&lt;/strong&gt; distribuição da última cifra das dezenas (0 a 9, cada uma deve ficar perto de 10%) e das faixas do volante (01–05, 06–10, ...), o que mostra se o sorteio espalha dezenas por todo o volante.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Moldura x centro e linhas x colunas:&lt;/strong&gt; quantas dezenas caem na borda do volante 5x5 e a média por linha e coluna, o que ajuda a visualizar o equilíbrio geométrico dos sorteios.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Paridade, consecutivas, dezenas baixas e sequências:&lt;/strong&gt; distribuição da quantidade de pares por sorteio (0 a 15), de pares vizinhos como 07 e 08, de dezenas baixas (01–12) e da maior sequência contínua presente em cada resultado.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Top duplas e trincas:&lt;/strong&gt; os pares e trios de dezenas que mais apareceram juntos no histórico — pura curiosidade estatística, sem valor preditivo.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Entropia de Shannon e ciclo:&lt;/strong&gt; a entropia mede a uniformidade da distribuição em bits (máximo teórico 4,64 para 25 dezenas); o bloco de ciclo mostra quantos concursos cada dezena levou para fechar seu "ciclo" de saídas.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Sazonalidade e final 0:&lt;/strong&gt; contagem de concursos por dia da semana, por mês e quantos concursos de número terminado em 0 saíram — um retrato do calendário dos sorteios.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Premiação e ganhadores:&lt;/strong&gt; usando as colunas G15/Prêmio 15 a G11/Prêmio 11 gravadas na importação, a aba calcula quantos concursos acumularam, a média de ganhadores da faixa 15 e o prêmio médio por faixa (vale para os concursos importados com rateio).&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_answer"&gt;E o melhor? Tudo isso é recalculado a cada atualização, sem você mexer em fórmula nenhuma. O rodapé da aba ainda traz a distribuição de acertos hipergeométrica de uma aposta de 15 dezenas: 11 acertos acontecem cerca de 1 em 12, 13 acertos cerca de 1 em 692.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que o teste de chi² prova sobre as dezenas quentes e frias?&lt;/h2&gt;
&lt;p class="post_answer"&gt;O chi² compara a frequência observada de cada dezena com a frequência esperada num sorteio perfeitamente uniforme. Com 24 graus de liberdade, o valor crítico a 5% é 36,4; se o chi² do histórico fica abaixo disso, as dezenas estão saindo de forma estatisticamente uniforme.&lt;/p&gt;
&lt;p class="post_answer"&gt;Este é o insight técnico que mais mudou a forma como eu leio a planilha: se o chi² confirma uniformidade, então QUENTE e FRIO são apenas fotografia do passado, não tendência. A dezena quente não "está com sorte" e a fria não "está devendo": cada sorteio é independente e a probabilidade de cada dezena permanece a mesma. A planilha até escreve isso ao lado dos maiores atrasos: atraso não aumenta a chance de sair. É um retrato honesto, e é por isso que ela avisa no manual: estatísticas não prevêem sorteio.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como ler as abas "Jogo 15" a "Jogo 20"?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Cada aba gera 30 jogos com o número de dezenas do título: 10 QUENTE (dezenas mais sorteadas), 10 FRIO (menos sorteadas) e 10 NEUTRO (meio do ranking), mais 12 linhas extras de jogos MÉDIA, HARMÔNICA e FIBONACCI. Escolhendo um concurso na célula C3, o resultado preenche F4:T4 sozinho e a coluna Acertos conta quantas dezenas do jogo saíram.&lt;/p&gt;
&lt;p class="post_answer"&gt;E aqui entra uma novidade importante: cada jogo passa por um &lt;strong&gt;filtro estatístico&lt;/strong&gt; antes de ser aceito. São até 200 tentativas por jogo buscando os padrões mais comuns do histórico — soma entre 171 e 220, 6 a 9 pares, 4 a 7 primos, 3 a 5 Fibonacci, 4 a 6 múltiplos de 3, 8 a 10 dezenas repetidas do último concurso e nenhuma sequência de 4+ consecutivas. Se nenhuma tentativa passar, os critérios são relaxados um a um até o jogo ser aceito. Nada disso muda a probabilidade do sorteio — apenas descarta jogos com perfil historicamente raro.&lt;/p&gt;
&lt;p class="post_answer"&gt;A célula verde é o destaque condicional: qualquer dezena do jogo que saiu no concurso escolhido fica com fundo verde automaticamente, o que torna a conferência visual imediata. O checkbox A6 na parte de cima dispara o "Atualizar Tudo" e desmarca sozinho ao terminar. As linhas de resumo merecem atenção:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;MÉDIA (GERAL, QUENTE, FRIO, NEUTRO):&lt;/strong&gt; jogos reais de consenso — o script conta quantas vezes cada dezena do grupo aparece nos jogos gerados e monta um jogo com as mais presentes (desempate por frequência no histórico). É o "centro" do grupo em forma de aposta.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;HARMÔNICA:&lt;/strong&gt; mesmo consenso, mas o desempate usa a média harmônica (o inverso da média dos inversos), que dá maior peso às dezenas menores. O resultado é um jogo mais puxado para o início do volante (01 a 12), outra forma legítima de montar equilíbrio. Jogo real, dezenas únicas, ordem crescente.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;FIBONACCI:&lt;/strong&gt; jogos montados com dezenas do universo Fibonacci (a sequência clássica mais variações iniciadas com outros números), completadas por frequência quando faltam dezenas, sempre em ordem crescente e sem repetição.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_answer"&gt;O insight que quase ninguém explica são as colunas &lt;strong&gt;Apostas 15a, 14a, 13a, 12a e 11a&lt;/strong&gt; (antes chamadas Ac15 a Ac11). Elas usam COMBIN para revelar quantas apostas simples premiadas existem dentro do seu jogo por faixa. Um jogo de 18 dezenas contém 816 combinações de 15; se ele tem 16 acertos no resultado, "Apostas 15a" mostra em quantas dessas combinações você garantiu os 15 pontos, "Apostas 14a" as combinações com 14 pontos, e assim por diante. É exatamente assim que uma aposta maior paga em várias faixas ao mesmo tempo, e é por isso que a tabela de referência à direita mostra o custo oficial: 18 dezenas equivalem a 816 apostas simples, ou R$ 2.856,00.&lt;/p&gt;
&lt;p class="post_bucket"&gt;E o melhor? O botão "Copiar Jogos para Aposta" formata tudo em texto pronto para Ctrl+C na lotérica.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que é a aba "Fechamentos" e como usar os blocos A, B e C?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Fechamento é uma forma de jogar n dezenas em menos jogos, garantindo um piso mínimo de acertos &lt;em&gt;caso as 15 dezenas sorteadas estejam entre as n dezenas escolhidas&lt;/em&gt;. O menu "Gerar Fechamentos" cria a aba com três blocos prontos:&lt;/p&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;strong&gt;Bloco A — fechamentos com piso verificado (16 a 20 dezenas):&lt;/strong&gt; monta poucos jogos (1, 8, 6, 4 e 4, respectivamente) por construção cíclica, em que cada jogo exclui um bloco de dezenas que gira, para que cada dezena seja excluída aproximadamente o mesmo número de vezes. O piso exibido é &lt;strong&gt;verificado por força bruta&lt;/strong&gt;: o script testa o conjunto contra todas as combinações de 15 possíveis dentro das n dezenas e mostra o menor acerto garantido. Você vê também o custo oficial de cada fechamento.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bloco B — 5 dezenas fixas:&lt;/strong&gt; escolha 5 dezenas que entram em todos os jogos; as demais giram em rodízio entre as posições restantes.&lt;/li&gt;
  &lt;li&gt;&lt;strong&gt;Bloco C — grupos pelas colunas do volante:&lt;/strong&gt; divide as 25 dezenas nas 5 colunas do volante físico (01–05, 06–10, 11–15, 16–20, 21–25) e monta jogos pegando dezenas de cada grupo.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_answer"&gt;A própria aba traz o aviso honesto, e eu repito aqui: o piso só vale se as 15 sorteadas estiverem entre as dezenas usadas no fechamento. Fechamento nenhum muda a probabilidade de acertar — apenas organiza a aposta para gastar menos jogando mais dezenas. É matemática de cobertura, não de previsão.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Por que essa planilha é melhor que conferir na mão?&lt;/h2&gt;
&lt;p class="post_answer"&gt;Conferir um volante de 18 dezenas contra 15 dezenas sorteadas na mão exige dezenas de comparações por jogo; com 30 jogos por aba e seis abas, o trabalho manual beira o impossível. A planilha faz a mesma conferência em tempo real, destaca acertos em verde e ainda converte tudo em apostas simples equivalentes por faixa de prêmio.&lt;/p&gt;
&lt;p class="post_answer"&gt;Para quem estuda estatística de loterias, os outros posts do canal cobrem desde conceitos de &lt;a href="https://www.canalqb.com.br/search?q=estatisticas" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loterias&lt;/a&gt; até &lt;a href="https://www.canalqb.com.br/search?q=planilha" rel="noopener noreferrer" target="_blank"&gt;planilhas de outros jogos da CAIXA&lt;/a&gt; que seguem o mesmo motor de atualização. Se você prefere conferir as regras direto na fonte, vale também o guia de &lt;a href="https://www.canalqb.com.br/search?q=lotofacil" rel="noopener noreferrer" target="_blank"&gt;resultados da Lotofácil&lt;/a&gt; do blog. As referências oficiais estão no rodapé, incluindo o &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;portal Loterias CAIXA&lt;/a&gt; e a &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/lotofacil" rel="noopener noreferrer" target="_blank"&gt;API oficial da CAIXA&lt;/a&gt; usada pelo script.&lt;/p&gt;
&lt;p class="post_answer"&gt;Aqui no @CanalQb, validamos que o fluxo completo (atualizar, conferir e copiar jogos) leva menos de um minuto por dia. Não é mágica, é Google Apps Script fazendo o trabalho repetitivo enquanto você decide, com dados reais na tela, se vale a pena jogar.&lt;/p&gt;
&lt;p class="post_answer"&gt;Baixe a planilha, cole o script e marque o checkbox A6. Se quiser o passo a passo em vídeo, ele está no topo desta página e no &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;canal no YouTube&lt;/a&gt;.&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como atualizar a planilha da Lotofácil automaticamente com os resultados da CAIXA?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Use o menu "Lotofácil" e clique em "Atualizar Tudo", ou marque o checkbox na célula A6 de qualquer aba "Jogo". O script consulta a API oficial da CAIXA, importa os concursos que faltam e recalcula estatísticas, DashBoard e jogos em uma única execução. Veja também o tutorial de &lt;a href="https://www.canalqb.com.br/search?q=apps+script" rel="noopener noreferrer" target="_blank"&gt;Google Apps Script&lt;/a&gt; do canal.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha aumenta a chance de ganhar na Lotofácil?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Cada sorteio é independente e estatísticas de frequência e atraso são apenas retratos do passado, sem valor preditivo. O que a planilha faz é organizar dados oficiais, conferir jogos automaticamente e calcular custos e prêmios por faixa com matemática oficial. Jogue com responsabilidade, pois loteria é jogo de azar.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quanto custa jogar mais de 15 dezenas na Lotofácil?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;A aposta simples de 15 dezenas custa R$ 3,50 e cada dezena extra multiplica as combinações: 16 dezenas custam R$ 56,00, 18 custam R$ 2.856,00 e 20 chegam a R$ 54.264,00. A tabela de referência de cada aba de jogo calcula isso com C(n;15) vezes o preço simples. Mais detalhes no guia de &lt;a href="https://www.canalqb.com.br/search?q=lotofacil" rel="noopener noreferrer" target="_blank"&gt;resultados da Lotofácil&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como conferir quantos acertos meu jogo teve em cada faixa de premiação?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Escolha o concurso na célula C3 da aba "Jogo NN" e o resultado preenche a linha F4:T4 automaticamente. A coluna "Acertos" soma as dezenas coincidentes, as células verdes destacam o que saiu e as colunas "Apostas 15a" a "Apostas 11a" mostram, via COMBIN, quantas apostas simples premiadas seu jogo contém em cada faixa.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que é fechamento na Lotofácil e a aba "Fechamentos" garante prêmio?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Fechamento é jogar n dezenas (16 a 20) em poucos jogos garantindo um piso mínimo de acertos, desde que as 15 dezenas sorteadas estejam entre as n escolhidas. A aba gera três blocos: fechamentos com piso verificado por força bruta, esquema com 5 dezenas fixas e grupos pelas colunas do volante. Nenhum fechamento muda a probabilidade do sorteio — apenas organiza a aposta para gastar menos.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que significam as linhas MÉDIA e HARMÔNICA nas abas de jogo?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;São jogos reais de consenso: o script conta quantas vezes cada dezena do grupo aparece nos 30 jogos gerados e monta uma aposta com as mais presentes. A linha MÉDIA desempata pela frequência no histórico; a HARMÔNICA usa a média harmônica, que puxa o jogo para as dezenas menores (01 a 12). Dezenas únicas, ordem crescente, prontas para apostar.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A API da CAIXA é gratuita e posso usá-la no Google Sheets?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim, o endpoint público servicebus2.caixa.gov.br retorna os resultados em JSON e o UrlFetchApp do Apps Script consome sem custo, respeitando pausas entre chamadas para não ser recusado. O script ainda tem um endpoint alternativo como fallback. Trata-se de uso educacional de dados públicos oficiais, sem afiliação com a CAIXA.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que significam QUENTE, FRIO e NEUTRO nas abas de jogo?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;QUENTE são as 10 dezenas mais sorteadas do histórico, FRIO as 10 menos sorteadas e NEUTRO as do meio do ranking. São formas diferentes de amostrar o volante para gerar os 30 jogos de cada aba. Lembrando mais uma vez: o ranking não prevê sorteios futuros, apenas organiza o passado.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"Como atualizar a planilha da Lotofácil automaticamente com os resultados da CAIXA?","acceptedAnswer":{"@type":"Answer","text":"Use o menu Lotofácil e clique em Atualizar Tudo, ou marque o checkbox na célula A6 de qualquer aba Jogo. O script consulta a API oficial da CAIXA, importa os concursos que faltam e recalcula estatísticas, DashBoard e jogos em uma única execução."}},
{"@type":"Question","name":"A planilha aumenta a chance de ganhar na Lotofácil?","acceptedAnswer":{"@type":"Answer","text":"Não. Cada sorteio é independente e estatísticas de frequência e atraso são apenas retratos do passado, sem valor preditivo. A planilha organiza dados oficiais, confere jogos e calcula custos e prêmios por faixa. Jogue com responsabilidade."}},
{"@type":"Question","name":"Quanto custa jogar mais de 15 dezenas na Lotofácil?","acceptedAnswer":{"@type":"Answer","text":"A aposta simples de 15 dezenas custa R$ 3,50; 16 dezenas custam R$ 56,00, 18 custam R$ 2.856,00 e 20 chegam a R$ 54.264,00. Cada aba de jogo calcula isso com C(n;15) vezes o preço simples."}},
{"@type":"Question","name":"Como conferir quantos acertos meu jogo teve em cada faixa de premiação?","acceptedAnswer":{"@type":"Answer","text":"Escolha o concurso na célula C3 da aba Jogo NN: o resultado preenche F4:T4, a coluna Acertos soma as coincidências, as células verdes destacam o que saiu e as colunas Apostas 15a a Apostas 11a mostram via COMBIN quantas apostas simples premiadas o jogo contém em cada faixa."}},
{"@type":"Question","name":"O que é fechamento na Lotofácil e a aba Fechamentos garante prêmio?","acceptedAnswer":{"@type":"Answer","text":"Fechamento é jogar n dezenas (16 a 20) em poucos jogos garantindo um piso mínimo de acertos, desde que as 15 dezenas sorteadas estejam entre as n escolhidas. A aba gera três blocos: fechamentos com piso verificado por força bruta, esquema com 5 dezenas fixas e grupos pelas colunas do volante. Nenhum fechamento muda a probabilidade do sorteio."}},
{"@type":"Question","name":"O que significam as linhas MÉDIA e HARMÔNICA nas abas de jogo?","acceptedAnswer":{"@type":"Answer","text":"São jogos reais de consenso: o script conta quantas vezes cada dezena do grupo aparece nos 30 jogos gerados e monta uma aposta com as mais presentes. A linha MÉDIA desempata pela frequência no histórico; a HARMÔNICA usa a média harmônica, que puxa o jogo para as dezenas menores."}},
{"@type":"Question","name":"A API da CAIXA é gratuita e posso usá-la no Google Sheets?","acceptedAnswer":{"@type":"Answer","text":"Sim, o endpoint público servicebus2.caixa.gov.br retorna os resultados em JSON e o UrlFetchApp do Apps Script consome sem custo, com pausas entre chamadas e um endpoint alternativo como fallback. Uso educacional de dados públicos oficiais, sem afiliação com a CAIXA."}},
{"@type":"Question","name":"O que significam QUENTE, FRIO e NEUTRO nas abas de jogo?","acceptedAnswer":{"@type":"Answer","text":"QUENTE são as 10 dezenas mais sorteadas do histórico, FRIO as 10 menos sorteadas e NEUTRO as do meio do ranking. São formas diferentes de amostrar o volante para gerar os 30 jogos de cada aba, sem valor preditivo."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div class="post_footer"&gt;
  &lt;h2 style="color: #333333; font-size: 1.2em; margin: 0px 0px 12px;"&gt;&lt;i class="fas fa-book" style="color: #28a745;"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
  &lt;ul style="color: #555555; font-size: 0.9em; line-height: 1.8; margin: 0px; padding-left: 20px;"&gt;
    &lt;li&gt;&lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — regras e resultados oficiais da Lotofácil&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/lotofacil" rel="noopener noreferrer" target="_blank"&gt;API oficial de loterias da CAIXA (endpoint Lotofácil)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://developers.google.com/apps-script" rel="noopener noreferrer" target="_blank"&gt;Documentação do Google Apps Script&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;Canal @CanalQb no YouTube — tutoriais de automação&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Lotofácil que se Atualiza Sozinha (2026)",
  "description":"Planilha de Lotofácil no Google Sheets que se auto-atualiza via API da CAIXA: estatísticas com z-score e entropia, rateio oficial das faixas 15 a 11, 150 jogos filtrados, aba de Fechamentos com piso verificado e conferência automática de acertos por faixa de prêmio.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-08",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="post_cta"&gt;
  &lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Baixe a planilha da Lotofácil que se atualiza sozinha&lt;/strong&gt; e confira seus jogos em segundos, todos os dias, sem digitar nada. O passo a passo completo está no vídeo no topo desta página e no canal
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.8em; margin: 6px 0px 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;

&lt;!--===== BOTÃO DE COMPRA @CanalQb =====--&gt;
&lt;div style="margin: 35px 0px; text-align: center;"&gt;
  &lt;a aria-label="Comprar a planilha" href="https://canalqb.com.br/?c=lotofacil" rel="noopener noreferrer" style="background: rgb(40, 167, 69); border-radius: 10px; box-shadow: rgba(40, 167, 69, 0.35) 0px 4px 12px; color: white; display: inline-block; font-size: 1.2em; font-weight: bold; min-height: 44px; padding: 16px 42px; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-cart-shopping" style="margin-right: 10px;"&gt;&lt;/i&gt;Comprar planilha
  &lt;/a&gt;
&lt;/div&gt;
&lt;!--===== FIM BOTÃO DE COMPRA =====--&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNtVQAt9Xhnv3mPLsnZh64VNqFQmzV7frUezym4Yh-AKJQzIg0SeEyuDhriLoLMsJ2pWRAx5r50vt3wwv7vsvka5g6UH-tcZqlZygDh6PiGs20uryxA5B3dZk6TMOA6_xz9rc7xhVmdb64xt91msUu1tNovQ1ni6rGPbs_axhDEEO04YNxvaE_15w1SDg7/s72-c/e9337e6a-cad0-40b1-8e2e-b7cc270b0227.jpg" width="72"/></item><item><title>Planilha Mega-Sena que se Atualiza Sozinha (2026)</title><link>https://canalqb.blogspot.com/2026/10/planilha-mega-sena-que-se-atualiza.html</link><category>Apps Script</category><category>Automação</category><category>Estatísticas Loteria</category><category>Google Sheets</category><category>Loterias CAIXA</category><category>Mega-Sena</category><category>Planilha Automática</category><category>Planilha Mega-Sena</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Thu, 8 Oct 2026 00:42:56 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-6034679402183415562</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAe1bs-HQchleKUFDmG3QCIJdm8yRs1gdkQxX64duR1h23UeTjD22WwFYGE3RDofDuZGRJrhacsqZdof6PtYKr9iVtHRdG94OVIMBxcgrDQ4xDYIYOnsObpoKFl5I7DbhoOm7vdiNmd1VAcMsS6KXznsBNj-zg4kPBTtkx_8EtbUUz9YeVQbCmQ6Lz9Tg/s1600/image.png" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;!--Feito com Master Rules Claude v8.5--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:15px 18px;border-radius:8px;margin:20px 0;color:#333}
.post_tldr h2{font-size:1.15em;margin:0 0 10px;color:#28a745}
.post_tldr ul{margin:0;padding-left:20px}
.post_tldr li{margin:6px 0;color:#333;line-height:1.6}
.post_badge{display:inline-flex;align-items:center;gap:8px;background:rgba(33,150,243,0.1);color:#555;font-size:0.85em;padding:8px 14px;border-radius:20px;margin:10px auto 20px}
.post_h1{margin:24px auto;max-width:95%;line-height:1.3}
.post_h1 a{text-decoration:none;color:#333}
.post_table{width:100%;border-collapse:collapse;margin:20px 0;font-size:0.9em;background:transparent}
.post_table th{background:#28a745;color:#fff;padding:10px 12px;text-align:center;font-weight:600}
.post_table td{border:1px solid #e0e0e0;padding:8px 12px;color:#333;text-align:center}
.post_table tr:nth-child(even) td{background:rgba(40,167,69,0.04)}
.post_table caption{caption-side:bottom;font-size:0.8em;color:#555;padding-top:8px}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:0.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_bucketbrigade{font-style:italic;color:#555;font-size:0.95em;margin:18px 0}
.post_body h2{color:#28a745;font-size:1.35em;margin:32px 0 12px;border-left:4px solid #28a745;padding-left:12px}
.post_body p{color:#333;line-height:1.75;margin:12px 0}
.post_body a{color:#2196f3}
.post_answertarget{color:#333;line-height:1.7}
.post_fontes{background:rgba(33,150,243,0.06);border-left:4px solid #2196f3;padding:16px 18px;border-radius:8px;margin:30px 0;color:#555;font-size:0.9em;line-height:1.8}
.post_fontes h2{font-size:1.2em;color:#333;margin:0 0 12px}
.post_fontes a{color:#2196f3}
.post_cta{background:rgba(40,167,69,0.1);border-left:4px solid #28a745;padding:20px;border-radius:8px;margin:30px 0;text-align:center}
.post_disclaimer{background:rgba(255,193,7,0.15);border-left:4px solid #ffc107;padding:15px;border-radius:8px;color:#555;font-size:0.9em;margin:20px 0}
.post_badge:focus-visible,.post_body a:focus-visible,.post_cta a:focus-visible,.post_fontes a:focus-visible{outline:2px solid #28a745;outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
&lt;/style&gt;

&lt;h1 class="post_h1" style="color: #333333; text-align: center;"&gt;Planilha Mega-Sena que se Atualiza Sozinha (2026)&lt;/h1&gt;

&lt;p class="post_badge" style="text-align: center;"&gt;&lt;i class="fas fa-clock" style="color: #28a745;"&gt;&lt;/i&gt; Leitura: ~11 min&lt;/p&gt;

&lt;div class="post_tldr"&gt;
&lt;h2&gt;&lt;i class="fas fa-bolt" style="color: #28a745;"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Fiz uma planilha Google Sheets da Mega-Sena que puxa todos os concursos direto da API oficial da CAIXA em um clique — o histórico completo entra em segundos, sem copiar e colar nada. Isso importa porque elimina o trabalho manual de conferir resultado por resultado.&lt;/li&gt;
&lt;li&gt;Com o histórico carregado, ela recalcula sozinha frequência, atraso, paridade, primos, Fibonacci e o teste chi² de 60 dezenas — e ainda gera 30 jogos por tamanho de aposta (6 a 20 dezenas) com QUENTE, FRIO, NEUTRO, MÉDIA, HARMÔNICA e FIBONACCI.&lt;/li&gt;
&lt;li&gt;Cada aba de jogo mostra quantas apostas simples premiadas você tem por faixa (Sena, Quina, Quadra) via COMBIN — isso importa porque revela o custo real: 15 dezenas = 5.005 apostas = R$ 25.025,00. Estatística não prevê sorteio; a planilha é ferramenta de organização, não de adivinhação.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/_rXfDQTTE5Y?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Mega-Sena que se Atualiza Sozinha (2026)" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p class="post_disclaimer"&gt;
  &lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Aviso sobre jogo e conteúdo:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional sobre automação de planilhas e estatística descritiva.
  Loteria é jogo de azar: nenhuma planilha, estatística ou método garante ganhos, e resultados passados não influenciam sorteios futuros.
  Proibido para menores de 18 anos. Jogue com responsabilidade e somente valores que pode perder.
  O @CanalQb não tem vínculo, afiliação ou patrocínio com a CAIXA Econômica Federal.
&lt;/p&gt;

&lt;div class="post_body"&gt;

&lt;p&gt;&lt;strong&gt;Marcar 15 dezenas na Mega-Sena custa R$ 25.025,00 — e quase ninguém faz essa conta antes de apostar.&lt;/strong&gt; O preço não é achismo: 15 dezenas equivalem a 5.005 apostas simples de R$ 5,00, e é exatamente essa matemática que a planilha que vou te entregar expõe na cara. Ela importa todos os concursos da Mega-Sena direto da API da CAIXA, recalcula as estatísticas sozinhas e gera jogos prontos. No fim deste post você vai entender o truque escondido nas colunas Sena, Quina e Quadra — e por que ele muda a forma de enxergar apostas grandes.&lt;/p&gt;

&lt;h2&gt;O que é a Mega-Sena e quais são as regras oficiais em 2026?&lt;/h2&gt;
&lt;p class="post_answertarget"&gt;A Mega-Sena é a loteria de maior prêmio do Brasil, administrada pela CAIXA: você marca de 6 a 20 dezenas entre 60 possíveis, e o sorteio acontece terças, quintas e sábados, extraindo 6 dezenas. A aposta simples de 6 dezenas custa R$ 5,00, e os prêmios vão para Sena (6 acertos), Quina (5) e Quadra (4).&lt;/p&gt;
&lt;p&gt;O volante tem 60 dezenas numeradas de 01 a 60, e quanto mais dezenas você marca, mais apostas simples equivalentes compra. É a combinação C(n;6): 7 dezenas = 7 apostas simples, 10 dezenas = 210, e assim por diante. A planilha usa exatamente esses limites oficiais — aposta mínima de 6 e máxima de 20 dezenas — com o preço simples de R$ 5,00 como base de todos os cálculos de custo.&lt;/p&gt;
&lt;p&gt;Aqui está o detalhe que quase ninguém percebe: a distribuição do prêmio bruto também é oficial e fixa. A tabela abaixo vem direto das regras da CAIXA e está impressa dentro da própria planilha, na aba Estatísticas.&lt;/p&gt;
&lt;table class="post_table"&gt;
&lt;caption&gt;Faixas oficiais de premiação da Mega-Sena (regras CAIXA)&lt;/caption&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Acertos&lt;/th&gt;&lt;th&gt;Faixa&lt;/th&gt;&lt;th&gt;Chance (1 em...)&lt;/th&gt;&lt;th&gt;% do prêmio bruto&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;Sena&lt;/td&gt;&lt;td&gt;1 em 50.063.860&lt;/td&gt;&lt;td&gt;35%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;5&lt;/td&gt;&lt;td&gt;Quina&lt;/td&gt;&lt;td&gt;1 em 154.518&lt;/td&gt;&lt;td&gt;19%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;4&lt;/td&gt;&lt;td&gt;Quadra&lt;/td&gt;&lt;td&gt;1 em 2.332&lt;/td&gt;&lt;td&gt;19%&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;0 (sem ganhador na Sena)&lt;/td&gt;&lt;td&gt;Acumulação&lt;/td&gt;&lt;td&gt;—&lt;/td&gt;&lt;td&gt;27% acumulam (+7% para custas)&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Fonte das regras: a página oficial das &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA&lt;/a&gt;. Esses percentuais explicam por que a Sena acumula tanto: quando ninguém acerta 6, a fatia principal vai para o concurso seguinte.&lt;/p&gt;

&lt;h2&gt;Como funciona a atualização automática via API da CAIXA?&lt;/h2&gt;
&lt;p class="post_answertarget"&gt;A planilha usa um script Google Apps Script que consulta a API pública da CAIXA em &lt;code&gt;servicebus2.caixa.gov.br/portaldeloterias/api/megasena&lt;/code&gt;, baixa o número do último concurso e importa somente os concursos que faltam na aba "Todos os Jogos". O mais recente fica sempre na linha 2, e o histórico completo entra na primeira execução em poucos segundos.&lt;/p&gt;
&lt;p&gt;O ponto central do script é a comparação inteligente: ele lê o último concurso que você já tem na planilha, pergunta à API qual é o último publicado, e importa apenas a diferença — do seu último +1 até o mais recente. Isso evita baixar tudo de novo a cada atualização e mantém a planilha leve.&lt;/p&gt;
&lt;p class="post_bucketbrigade"&gt;E o melhor? Funciona sem instalar nada.&lt;/p&gt;
&lt;p&gt;Ah, um detalhe de resiliência: a API oficial às vezes recusa conexões seguidas, então o script tem uma API alternativa como fallback e uma pausa de 300 ms entre concursos para não ser bloqueado. Aqui no @CanalQb, validamos que mesmo depois de uma semana sem abrir a planilha, um clique em "Atualizar Tudo" traz todos os concursos perdidos de uma vez — e recalcula as estatísticas automaticamente depois da importação.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;API principal:&lt;/strong&gt; o endpoint oficial da CAIXA serve o último concurso e qualquer concurso específico por número, com as 6 dezenas e a data de apuração. É a fonte autoritativa — a que o próprio portal das Loterias usa.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;API de fallback:&lt;/strong&gt; se a CAIXA recusar a conexão, o script tenta uma API alternativa open source com o mesmo histórico. Você não fica na mão quando o endpoint oficial está instável.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;Como usar a planilha passo a passo (replicando a aba Inicio)?&lt;/h2&gt;
&lt;p class="post_answertarget"&gt;Depois de colar o script em Extensões &amp;gt; Apps Script e recarregar a planilha, aparece o menu "Mega-Sena" na barra superior. Na primeira vez, rode "Atualizar Resultados" e depois "Gerar Jogos". No uso diário, um único comando resolve tudo: "Atualizar Tudo" — ou marcar o checkbox na célula A6 de qualquer aba de jogo.&lt;/p&gt;
&lt;p&gt;O menu é o painel de controle da planilha. Cada item faz uma coisa específica, e a ordem importa — sem histórico importado, nada mais funciona porque todas as estatísticas dependem do histórico oficial. Vamos item por item, exatamente como está descrito no manual dentro da aba Inicio:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Atualizar Tudo (botão):&lt;/strong&gt; faz tudo de uma vez — importa resultados, recalcula estatísticas, gera o DashBoard e recria as abas de jogos. É o caminho recomendado para o dia a dia, e também é acionado marcando o checkbox na célula A6 de qualquer aba "Jogo NN".&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atualizar Resultados:&lt;/strong&gt; baixa os concursos oficiais da API da CAIXA para a aba "Todos os Jogos", com o mais recente no topo. É o primeiro passo obrigatório em uma planilha nova.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recalcular Estatísticas:&lt;/strong&gt; reescreve a aba "Estatísticas" inteira com base no histórico importado — frequências, atrasos, distribuições e o teste chi².&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atualizar DashBoard:&lt;/strong&gt; recria a aba "DashBoard" com gráficos de frequência por dezena, pares x ímpares, saídas por faixa e distribuição de paridade.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gerar Jogos:&lt;/strong&gt; cria as abas "Jogo 06" a "Jogo 20" (uma para cada tamanho de aposta), cada uma com 30 jogos: 10 QUENTE, 10 FRIO e 10 NEUTRO, mais as linhas MÉDIA, HARMÔNICA e FIBONACCI.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Copiar Jogos para Aposta:&lt;/strong&gt; abre uma janela com todos os jogos gerados prontos para copiar com Ctrl+C e levar à lotérica — sem digitar dezena por dezena.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Deletar Todas as Abas (manter Inicio):&lt;/strong&gt; apaga as abas de trabalho e mantém só a de ajuda; útil para recomeçar do zero com "Atualizar Tudo".&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verificar Instalação:&lt;/strong&gt; mostra se as abas necessárias existem e o estado geral da instalação — o primeiro diagnóstico quando algo parece estranho.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_bucketbrigade"&gt;Mas tem um porém: você precisa da versão correta do script vinculada à planilha.&lt;/p&gt;
&lt;p&gt;Um script solto, sem planilha vinculada, não funciona — o Apps Script precisa estar dentro da planilha para enxergar as abas. Se algo der errado, o menu "Verificar Instalação" lista o que existe e o que falta. Mais tutoriais de Apps Script e automação você encontra na busca do nosso conteúdo sobre &lt;a href="https://www.canalqb.com.br/search?q=apps+script" rel="noopener noreferrer" target="_blank"&gt;Apps Script&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;O que significa cada estatística da aba Estatísticas?&lt;/h2&gt;
&lt;p class="post_answertarget"&gt;Cada dezena recebe frequência (quantas vezes saiu), probabilidade por concurso, atraso atual, atraso médio e atraso máximo. As dezenas ganham o status QUENTE (entre as 20 mais sorteadas), FRIO (entre as 20 menos sorteadas) ou NEUTRO (as do meio), e a aba ainda traz a soma, amplitude, paridade, primos, Fibonacci, consecutivas, faixas e quadrantes.&lt;/p&gt;
&lt;p&gt;Vale destrinchar cada medida, porque a planilha não esconde nada — tudo está descrito no manual interno:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Frequência e probabilidade:&lt;/strong&gt; a frequência conta quantas vezes cada dezena de 01 a 60 saiu em todos os concursos importados; a probabilidade por concurso é a frequência dividida pelo número de concursos. Juntas, mostram o retrato histórico de cada dezena.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atraso atual, médio e máximo:&lt;/strong&gt; o atraso atual conta quantos concursos se passaram desde a última saída da dezena; o médio e o máximo mostram o intervalo típico e o recorde. E fica o alerta honesto impresso na planilha: atraso NÃO aumenta a chance de sair, porque cada sorteio é independente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Soma e amplitude:&lt;/strong&gt; a soma das 6 dezenas de cada sorteio tem média, mínima e máxima observadas; a amplitude (maior menos menor dezena) mede o espalhamento. Sorteios equilibrados costumam ficar no meio dessas faixas — no passado, o que não garante nada no futuro.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Primos e Fibonacci:&lt;/strong&gt; contam quantos números primos (2, 3, 5, 7, 11... até 59) e quantas dezenas da sequência de Fibonacci (1, 2, 3, 5, 8, 13, 21, 34, 55) aparecem por sorteio. Referência clássica de Radamés Manosso: sequências assim têm a mesma probabilidade de qualquer outra combinação.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Paridade, faixas e quadrantes:&lt;/strong&gt; a paridade mostra a distribução de dezenas pares por sorteio (0 a 6); as faixas agrupam as saídas em blocos de 10 dezenas (01-10 até 51-60); os quadrantes dividem o volante em quatro blocos de 15. Servem para checar se um jogo está muito concentrado em uma região do volante.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Distribuição de acertos (hipergeométrica):&lt;/strong&gt; a probabilidade matemática pura de uma aposta de 6 dezenas acertar 6, 5, 4... números. É o mesmo cálculo das chances oficiais: Quadra ≈ 1 em 2.332, Quina ≈ 1 em 154.518, Sena ≈ 1 em 50.063.860.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;E aqui entra o &lt;strong&gt;insight técnico original&lt;/strong&gt; deste post: o teste chi² de aleatoriedade. A planilha calcula o qui-quadrado das 60 frequências contra a frequência esperada (n × 6 ÷ 60) e compara com o valor crítico de 78,2 para 59 graus de liberdade no nível de 5%. Enquanto o chi² fica abaixo do crítico, não há evidência estatística de viés — ou seja, os números saem de forma uniforme, como esperado num sorteio honesto. Isso é a prova matemática de que "dezena quente" é só a ponta da variação natural, não um padrão explorável. Quente, frio e atraso são retratos do passado, sem qualquer valor preditivo — e a própria planilha avisa isso na aba Inicio, porque transparência vale mais que promessa.&lt;/p&gt;

&lt;h2&gt;Como ler as abas de jogo (Jogo 06 a Jogo 20)?&lt;/h2&gt;
&lt;p class="post_answertarget"&gt;Cada aba "Jogo NN" corresponde a um tamanho de aposta de N dezenas e traz 30 jogos: 10 QUENTE, 10 FRIO e 10 NEUTRO, mais linhas de MÉDIA, HARMÔNICA e FIBONACCI. Escolhendo o concurso na célula C3, o resultado preenche F4:K4 automaticamente, a coluna Acertos compara cada jogo com o sorteio e as dezenas acertadas ficam verdes.&lt;/p&gt;
&lt;p&gt;Vamos por partes, porque essa é a aba onde a planilha brilha:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Escolha (célula C3) e resultado (F4:K4):&lt;/strong&gt; C3 é uma lista suspensa com todos os concursos importados; ao escolher um, as fórmulas INDEX + MATCH buscam as 6 dezenas sorteadas direto do histórico para F4:K4. Você nunca digita o resultado — ele vem da fonte oficial.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Coluna Acertos (Ac?):&lt;/strong&gt; um SUMPRODUCT com COUNTIF conta quantas dezenas do jogo saíram no resultado. Fica vazio enquanto nenhum concurso estiver escolhido, para não poluir a visualização.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Célula verde:&lt;/strong&gt; uma regra de formatação condicional pinta de verde cada dezena do jogo que está no resultado (COUNTIF contra F4:K4). É a conferência visual instantânea, dezena por dezena.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tipo QUENTE / FRIO / NEUTRO:&lt;/strong&gt; os 30 jogos são amostrados dos pools das 20 dezenas mais sorteadas (laranja), 20 menos sorteadas (azul) e do meio do ranking (cinza). A cartela equilibra paridade perto de meio a meio antes de fechar.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;MÉDIA / HARMÔNICA / FIBONACCI:&lt;/strong&gt; as linhas de resumo montam jogos pela média aritmética de cada grupo (o "centro" das dezenas), pela média harmônica (que dá maior peso às dezenas menores e puxa o jogo para o início do volante, 01-30) e por dezenas da sequência de Fibonacci e suas variações, completadas por frequência quando faltam números. São três referências diferentes de "jogo equilibrado" — não previsões.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tabela de referência (direita):&lt;/strong&gt; mostra quantas apostas simples C(n;6) o jogo representa e o custo estimado multiplicando pelo preço simples de R$ 5,00. É a tabela que abre os olhos.&lt;/li&gt;
&lt;/ul&gt;
&lt;p class="post_bucketbrigade"&gt;Aqui está o detalhe que quase ninguém percebe: as colunas Sena, Quina e Quadra.&lt;/p&gt;
&lt;p&gt;Esse é o segundo insight original do post. Quando você joga 10 dezenas, não está fazendo uma aposta: está fazendo 210 apostas simples simultâneas. As colunas Sena/Quina/Quadra usam &lt;code&gt;COMBIN(acertos;t)&lt;/code&gt; × &lt;code&gt;COMBIN(n-acertos;6-t)&lt;/code&gt; para contar em quantas dessas combinações de 6 dezenas você garantiu 6, 5 ou 4 pontos. Um jogo de 10 dezenas com 5 acertos, por exemplo, não "quase ganhou a Sena" — ele contém dezenas de combinações premiadas na Quadra e algumas na Quina, todas pagáveis. É assim que uma aposta grande paga em várias faixas ao mesmo tempo, e é por isso que o custo cresce exponencialmente: cada dezena extra multiplica o número de apostas simples dentro do mesmo jogo. A tabela de custos deixa isso explícito:&lt;/p&gt;
&lt;table class="post_table"&gt;
&lt;caption&gt;Custo por quantidade de dezenas marcadas (preço simples R$ 5,00)&lt;/caption&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Dezenas&lt;/th&gt;&lt;th&gt;Apostas simples C(n;6)&lt;/th&gt;&lt;th&gt;Custo estimado&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;6&lt;/td&gt;&lt;td&gt;1&lt;/td&gt;&lt;td&gt;R$ 5,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;7&lt;/td&gt;&lt;td&gt;R$ 35,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;8&lt;/td&gt;&lt;td&gt;28&lt;/td&gt;&lt;td&gt;R$ 140,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;9&lt;/td&gt;&lt;td&gt;84&lt;/td&gt;&lt;td&gt;R$ 420,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;10&lt;/td&gt;&lt;td&gt;210&lt;/td&gt;&lt;td&gt;R$ 1.050,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;15&lt;/td&gt;&lt;td&gt;5.005&lt;/td&gt;&lt;td&gt;R$ 25.025,00&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;20&lt;/td&gt;&lt;td&gt;38.760&lt;/td&gt;&lt;td&gt;R$ 193.800,00&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;p&gt;Veja agora o salto: dobrar de 10 para 15 dezenas multiplica o custo por 24. O checkbox na célula A6 de cada aba, que dispara o "Atualizar Tudo" e desmarca sozinho ao terminar, existe justamente para você recalcular tudo com um gesto antes de decidir qualquer aposta. E quando os jogos estiverem prontos, o item "Copiar Jogos para Aposta" entrega tudo formatado para colar — mais dicas na nossa cobertura sobre &lt;a href="https://www.canalqb.com.br/search?q=loterias" rel="noopener noreferrer" target="_blank"&gt;loterias&lt;/a&gt; e em &lt;a href="https://www.canalqb.com.br/search?q=planilhas" rel="noopener noreferrer" target="_blank"&gt;planilhas&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Por que baixar esta planilha da Mega-Sena?&lt;/h2&gt;
&lt;p class="post_answertarget"&gt;Porque ela reúne em um arquivo gratuito o que normalmente exige três ferramentas: importação automática de resultados oficiais, estatística descritiva completa de 60 dezenas e um gerador de jogos com conferência automática por faixa de prêmio. Você economiza o trabalho manual de conferência e ganha transparência total sobre custos e probabilidades reais.&lt;/p&gt;
&lt;p&gt;Aqui no @CanalQb, validamos que a instalação leva menos de dois minutos: colar o script, salvar, recarregar, clicar em "Atualizar Tudo". Depois disso a planilha se mantém sozinha — cada novo concurso chega com um clique. Os diferenciais, na prática:&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Histórico oficial completo importado da API da CAIXA, com fallback automático para API alternativa.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; 15 abas de jogo (Jogo 06 a Jogo 20), uma para cada tamanho de aposta permitido pelas regras.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Conferência automática: escolha o concurso e veja acertos por faixa e dezenas verdes sem digitar nada.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Custo real por jogo calculado com C(n;6) × R$ 5,00 — sem surpresa no caixa da lotérica.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-circle-info" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; Aviso honesto embutido: estatística não prevê sorteio. Quente, frio e atraso são passado, não futuro.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A documentação oficial de referência fica no portal &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA&lt;/a&gt; e no endpoint da &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/megasena" rel="noopener noreferrer" target="_blank"&gt;API oficial da Mega-Sena&lt;/a&gt; — as mesmas fontes que o script consulta. Se quiser entender as outras loterias que já cobrimos com o mesmo formato de planilha automática, comece por &lt;a href="https://www.canalqb.com.br/search?q=mega-sena" rel="noopener noreferrer" target="_blank"&gt;Mega-Sena&lt;/a&gt; aqui no blog.&lt;/p&gt;

&lt;/div&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha da Mega-Sena se atualiza sozinha mesmo, sem eu fazer nada?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Quase isso: a atualização é automática, mas precisa de um clique seu no menu "Atualizar Tudo" (ou no checkbox da célula A6). O Google Apps Script só executa sob demanda por segurança. Um clique importa todos os concursos que faltarem direto da API oficial da CAIXA — veja como configurar em &lt;a href="https://www.canalqb.com.br/search?q=apps+script" rel="noopener noreferrer" target="_blank"&gt;nosso conteúdo de Apps Script&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Quanto custa jogar 15 dezenas na Mega-Sena em 2026?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;15 dezenas equivalem a 5.005 apostas simples, ou seja, R$ 25.025,00 ao preço oficial de R$ 5,00 por aposta simples de 6 dezenas. A planilha calcula esse custo automaticamente com a fórmula C(n;6) na tabela de referência de cada aba de jogo, então você confere o preço real antes de ir à lotérica.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que significam os jogos QUENTE, FRIO e NEUTRO gerados pela planilha?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;QUENTE são jogos sorteados do pool das 20 dezenas mais sorteadas do histórico, FRIO das 20 menos sorteadas e NEUTRO das dezenas do meio do ranking. É importante repetir: isso é um retrato do passado, sem valor preditivo — cada sorteio é independente e nenhuma dezena fica "devendo". Acompanhe as análises completas na nossa página sobre &lt;a href="https://www.canalqb.com.br/search?q=estatisticas+loteria" rel="noopener noreferrer" target="_blank"&gt;estatísticas de loteria&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha prevê os números que vão sair na Mega-Sena?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não, e nenhuma ferramenta honesta promete isso. A planilha organiza o histórico oficial e calcula estatística descritiva — frequência, atraso, paridade, teste chi² — para você entender o jogo, não para adivinhá-lo. O próprio teste chi² embutido mostra que as dezenas saem de forma uniforme, como num sorteio honesto.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Preciso pagar algo ou instalar programa para usar a planilha?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Ela roda em Google Sheets gratuito: basta uma conta Google, colar o script em Extensões &amp;gt; Apps Script e salvar. Tudo acontece no navegador e na nuvem, sem instalar nada no computador — o passo a passo completo está no corpo deste post e no canal &lt;a href="https://www.canalqb.com.br/search?q=planilhas" rel="noopener noreferrer" target="_blank"&gt;de planilhas do blog&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;De onde vêm os resultados importados pela planilha?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Da API pública oficial da CAIXA, o mesmo serviço que alimenta o portal Loterias CAIXA, com uma API alternativa como contingência quando a oficial recusa conexões seguidas. Na primeira execução, todo o histórico desde 25/03/1996 é importado de uma vez para a aba "Todos os Jogos".&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"A planilha da Mega-Sena se atualiza sozinha mesmo, sem eu fazer nada?","acceptedAnswer":{"@type":"Answer","text":"Quase isso: a atualização é automática, mas precisa de um clique seu no menu \"Atualizar Tudo\" (ou no checkbox da célula A6). O Google Apps Script só executa sob demanda por segurança. Um clique importa todos os concursos que faltarem direto da API oficial da CAIXA."}},{"@type":"Question","name":"Quanto custa jogar 15 dezenas na Mega-Sena em 2026?","acceptedAnswer":{"@type":"Answer","text":"15 dezenas equivalem a 5.005 apostas simples, ou seja, R$ 25.025,00 ao preço oficial de R$ 5,00 por aposta simples de 6 dezenas. A planilha calcula esse custo automaticamente com a fórmula C(n;6) na tabela de referência de cada aba de jogo."}},{"@type":"Question","name":"O que significam os jogos QUENTE, FRIO e NEUTRO gerados pela planilha?","acceptedAnswer":{"@type":"Answer","text":"QUENTE são jogos sorteados do pool das 20 dezenas mais sorteadas do histórico, FRIO das 20 menos sorteadas e NEUTRO das dezenas do meio do ranking. É um retrato do passado, sem valor preditivo — cada sorteio é independente."}},{"@type":"Question","name":"A planilha prevê os números que vão sair na Mega-Sena?","acceptedAnswer":{"@type":"Answer","text":"Não, e nenhuma ferramenta honesta promete isso. A planilha organiza o histórico oficial e calcula estatística descritiva — frequência, atraso, paridade, teste chi² — para você entender o jogo, não para adivinhá-lo."}},{"@type":"Question","name":"Preciso pagar algo ou instalar programa para usar a planilha?","acceptedAnswer":{"@type":"Answer","text":"Não. Ela roda em Google Sheets gratuito: basta uma conta Google, colar o script em Extensões &gt; Apps Script e salvar. Tudo acontece no navegador e na nuvem, sem instalar nada no computador."}},{"@type":"Question","name":"De onde vêm os resultados importados pela planilha?","acceptedAnswer":{"@type":"Answer","text":"Da API pública oficial da CAIXA, o mesmo serviço que alimenta o portal Loterias CAIXA, com uma API alternativa como contingência. Na primeira execução, todo o histórico desde 25/03/1996 é importado de uma vez para a aba \"Todos os Jogos\"."}}]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div class="post_fontes"&gt;
&lt;h2&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &#128218; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;i class="fas fa-link" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://loteriascaixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias CAIXA — portal oficial&lt;/a&gt; — regras, faixas de premiação e resultados oficiais da Mega-Sena.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-link" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; &lt;a href="https://servicebus2.caixa.gov.br/portaldeloterias/api/megasena" rel="noopener noreferrer" target="_blank"&gt;API oficial da Mega-Sena (servicebus2.caixa.gov.br)&lt;/a&gt; — endpoint público usado pela planilha para importar os concursos.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-link" style="color: #2196f3; margin-right: 8px;"&gt;&lt;/i&gt; Referências de conceitos estatísticos: MazuSoft, MegaLoterias, Estatísticas da Mega-Sena e Radamés Manosso (primos/Fibonacci) — mesmas fontes citadas no manual da planilha.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Mega-Sena que se Atualiza Sozinha (2026)",
  "description":"Baixe a planilha da Mega-Sena que importa os resultados direto da API da CAIXA, recalcula estatísticas sozinha e gera jogos QUENTE, FRIO e NEUTRO de 6 a 20 dezenas, com custo real por aposta calculado automaticamente.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-08","dateModified":"2026-10-08",
  "mainEntityOfPage":"https://canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div class="post_cta"&gt;
  &lt;i class="fas fa-download" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Quer a planilha completa?&lt;/strong&gt;&amp;nbsp;&lt;a href="https://canalqb.com.br/?c=Megasena" target="_blank"&gt;Link de acesso&lt;/a&gt;&lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.85em; margin: 0px;"&gt;Feito com Master Rules Claude v8.5&lt;/p&gt;
&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKAe1bs-HQchleKUFDmG3QCIJdm8yRs1gdkQxX64duR1h23UeTjD22WwFYGE3RDofDuZGRJrhacsqZdof6PtYKr9iVtHRdG94OVIMBxcgrDQ4xDYIYOnsObpoKFl5I7DbhoOm7vdiNmd1VAcMsS6KXznsBNj-zg4kPBTtkx_8EtbUUz9YeVQbCmQ6Lz9Tg/s72-c/image.png" width="72"/></item><item><title>Planilha Lotomania com Estatísticas Automáticas e Gerador de Jogos</title><link>https://canalqb.blogspot.com/2026/10/planilha-lotomania-com-estatisticas.html</link><category>Apps Script</category><category>Automação</category><category>Estatísticas</category><category>Google Sheets</category><category>Lotomania</category><category>Planilhas</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 4 Oct 2026 23:18:31 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-8635762008735944598</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEiNgQrsg0zxdErdtFIthRWjHqdtjP--C08uudaAi5G2UP-hsApltk5A0ZNnwQMS6O87tk1M_G8-6Yg4GitZ9dA8aewpaHRWSvOmF6AZZ28ScDyWjFF43Agm41xul052GmydxWJ3iz1IvdtKXbkK0wkugucQPI8cocIPwrfpw-M4DHO-flZqVAh7qhgq66Kc" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Planilha Lotomania: Estatísticas Automáticas e Gerador de Jogos&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_reading_badge{display:inline-block;background:rgba(40,167,69,.12);color:#28a745;padding:6px 14px;border-radius:20px;font-size:.85em;font-weight:600;margin:10px auto;text-align:center}
.post_tldr{background:rgba(40,167,69,.08);border-left:5px solid #28a745;padding:18px 20px;border-radius:10px;margin:25px 0}
.post_tldr strong{color:#333}
.post_h2{color:#333;border-left:4px solid #28a745;padding-left:12px;font-size:1.35em;margin:38px 0 14px}
.post_cta{background:rgba(40,167,69,.1);border:2px solid #28a745;border-radius:12px;padding:22px;margin:30px 0;text-align:center}
.post_cta a{display:inline-block;background:#28a745;color:#fff;font-weight:700;padding:14px 28px;border-radius:8px;text-decoration:none;min-height:44px;min-width:44px;margin-top:10px}
.post_price{font-size:1.3em;font-weight:700;color:#28a745}
@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
:focus-visible{outline:2px solid #28a745;outline-offset:2px}
&lt;/style&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;p style="text-align: center;"&gt;&lt;span class="post_reading_badge"&gt;&lt;i aria-hidden="true" class="fas fa-stopwatch"&gt;&lt;/i&gt; Leitura: ~9 min&lt;/span&gt;&lt;/p&gt;

&lt;div aria-label="Resumo executivo" class="post_tldr"&gt;
  &lt;strong&gt;TL;DR:&lt;/strong&gt;
  &lt;ul class="post_checklist"&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Planilha Google Sheets + Apps Script que baixa os resultados oficiais da Lotomania e recalcula estatísticas das 100 dezenas automaticamente.&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Gerador cria 38 jogos em 1 clique (10 quentes, 10 frios, 10 neutros + médias), com checkbox que completa até 50 dezenas sem repetir.&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Conferidor automático destaca em verde cada dezena sorteada e soma os acertos por jogo — mas loteria é aleatória: a planilha organiza, não garante prêmio.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;style&gt;
.post_checklist{list-style:none;padding:0;margin:10px 0;}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5;}
.post_checklist li i{flex-shrink:0;margin-top:3px;}
&lt;/style&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/2Z6fO1bBmqc8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Planilha Lotomania" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(255, 193, 7, 0.15); border-left: 4px solid rgb(255, 193, 7); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso Financeiro:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional. Não constitui conselho, recomendação ou oferta de investimento. Loteria é jogo de azar: nenhum sistema, planilha ou estatística altera a probabilidade de ganho. Consulte um profissional habilitado antes de tomar decisões financeiras.
&lt;/p&gt;
&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p&gt;Gastei anos vendo gente anotar resultado de Lotomania num caderno. O caderno nunca somou nada sozinho.&lt;/p&gt;
&lt;p&gt;Daí nasceu esta planilha: um Google Sheets com script que conversa com a API oficial da Caixa, baixa os concursos, recalcula todas as estatísticas das 100 dezenas e monta 38 jogos com um clique. Este post mostra como ela funciona por dentro — e como você leva a sua. Spoiler: o recurso que mais economiza tempo está no final.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que a planilha Lotomania faz sozinha?&lt;/h2&gt;
&lt;p&gt;A planilha conecta o Google Sheets à API pública de resultados da Caixa e automatiza o ciclo completo de análise: atualização do histórico, estatísticas por dezena e geração de jogos. Aqui no @CanalQb, validamos o fluxo inteiro rodando os três comandos em sequência pelo menu "Lotomania" ou pela caixa de atualização na aba Jogo. Tudo roda no navegador, sem instalar nada, e o histórico já parte com quase 3.000 concursos oficiais carregados.&lt;/p&gt;
&lt;p&gt;E não para aí.&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Histórico oficial:&lt;/strong&gt; aba "Todos os Jogos" com concurso, data e as 20 dezenas sorteadas, sempre atualizadas pela API da Caixa.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Estatísticas por dezena (00 a 99):&lt;/strong&gt; frequência, probabilidade por concurso, atraso atual, atraso médio, atraso máximo e status QUENTE, FRIO ou NEUTRO.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Gerador de 38 linhas:&lt;/strong&gt; 10 jogos quentes, 10 frios, 10 neutros e 8 linhas de média (comum e harmônica), cada dezena em uma célula, sem linhas repetidas.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Conferidor automático:&lt;/strong&gt; escolha o concurso no menu suspenso e o resultado aparece na linha 4; cada dezena acertada fica verde e a coluna BB soma os acertos.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Tabela de pontuação:&lt;/strong&gt; quantos jogos fizeram 20, 19, 18... acertos, com o prêmio estimado de cada faixa ao lado.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="post_h2"&gt;Como o gerador cria os jogos quentes, frios e neutros?&lt;/h2&gt;
&lt;p&gt;O gerador divide as 100 dezenas em três pools estatísticos: as 50 mais sorteadas (QUENTE), as 50 menos sorteadas (FRIO) e as 50 do meio (NEUTRO), tudo calculado sobre o histórico oficial completo. Cada cartela sorteia 35 dezenas do seu pool com equilíbrio de paridade — metade pares, metade ímpares — e um verificador impede duas linhas iguais. Este script foi otimizado para os leitores do canalqb.com.br depois de dezenas de rodadas de teste.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;O que o checkbox 35/50 realmente faz?&lt;/h2&gt;
&lt;p&gt;Ele resolve a regra da Lotomania em que você marca 35 dezenas e a Caixa completa até 50. Marcado, o script calcula automaticamente as 15 dezenas faltantes de cada linha, sorteando entre as que não estão na linha — sem repetição. Desmarcado, limpa as 15 últimas posições. A curva de aprendizado desse detalhe foi o momento em que a planilha parou de ser uma tabela e virou ferramenta de verdade.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como conferir os jogos contra um concurso real?&lt;/h2&gt;
&lt;p&gt;Na aba Jogo, o menu suspenso em C3:D4 lista todos os concursos do histórico. Escolha um e o resultado oficial aparece na linha 4, nas colunas F a Y. As fórmulas comparam cada jogo com o resultado, pintam de verde as dezenas acertadas e somam os acertos na coluna BB — inclusive as 15 dezenas completadas pelo checkbox. A tabela lateral mostra quantos jogos alcançaram cada faixa de premiação.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Por que a planilha não promete ganhos?&lt;/h2&gt;
&lt;p&gt;Porque estatística descreve o passado; não prevê sorteio. O teste de chi² que a própria planilha calcula mostra a Lotomania como um sorteio uniforme, sem padrão explorável. O valor real da ferramenta está na organização: você deixa de gastar tempo com planilha manual e confere tudo em segundos. Quem promete fórmula de ganho em loteria está vendendo ilusão — e este produto não é isso.&lt;/p&gt;

&lt;h2 class="post_h2"&gt;Como comprar a planilha Lotomania?&lt;/h2&gt;
&lt;p&gt;A entrega é imediata: você recebe o arquivo .gs com o script completo, o link da planilha modelo e um guia rápido de instalação (colar no Apps Script e rodar o menu Lotomania). O script é aberto e comentado — dá para auditar cada cálculo e adaptar às suas regras. Funciona em qualquer conta Google, no computador ou no celular.&lt;/p&gt;

&lt;div aria-label="Oferta" class="post_cta" role="complementary"&gt;
  &lt;p style="color: #333333; font-size: 1.1em; margin: 0px;"&gt;&lt;i aria-hidden="true" class="fas fa-bolt" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Oferta de lançamento&lt;/strong&gt;&lt;/p&gt;
  &lt;p class="post_price" style="margin: 8px 0px;"&gt;R$ 29,90 &lt;span style="color: #555555; font-size: 0.6em; text-decoration: line-through;"&gt;R$ 59,90&lt;/span&gt;&lt;/p&gt;
  &lt;p style="color: #555555; font-size: 0.9em; margin: 6px 0px;"&gt;Planilha + script + guia de instalação + atualizações&lt;/p&gt;
  &lt;a href="https://canalqb.com.br/?c=Lotomania2" rel="noopener"&gt;QUERO MINHA PLANILHA AGORA&lt;/a&gt;
&lt;/div&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.5 =====--&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A planilha Lotomania garante prêmio?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Nenhuma ferramenta pode alterar a probabilidade de um sorteio aleatório — e qualquer promessa desse tipo é golpe. A planilha organiza dados reais e economiza seu tempo de conferência, como explicamos nos posts sobre &lt;a href="https://canalqb.com.br/search?q=automação"&gt;automação&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Preciso pagar mensalidade ou saber programar?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não e não. Pagamento único, e a instalação é copiar o script no menu Extensões do Google Sheets e clicar em Lotomania. O código é aberto e comentado para quem quiser mexer — quem curte isso vai gostar dos nossos conteúdos de &lt;a href="https://canalqb.com.br/search?q=apps+script"&gt;Apps Script&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;A atualização dos resultados é automática mesmo?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim: o script consulta a API oficial da Caixa e importa os concursos novos em segundos, sem copiar e colar nada. A carga inicial traz quase 3.000 concursos de uma vez. Depois, cada atualização busca apenas o que faltava.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Funciona para outras loterias da Caixa?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;A versão atual é específica da Lotomania, mas o script é modular e comentado, então dá para adaptar a lógica a outras modalidades que usam a mesma API. Adaptamos ferramentas sob encomenda — fale com a gente pelo &lt;a href="https://canalqb.com.br/contato"&gt;formulário de contato&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que exatamente eu recebo na compra?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Você recebe o arquivo LoteriaGS.gs completo, o link da planilha modelo com as três abas prontas e o guia de instalação em PDF. Junto vêm as atualizações futuras do script sem custo adicional, e o suporte responde dúvidas de instalação.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Dá para usar no celular?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim, porque tudo roda no Google Sheets, que tem app para Android e iOS. Os comandos do menu Lotomania funcionam pelo navegador do celular também. O menu "Copiar Jogos para Aposta" gera o texto pronto para conferir na hora de marcar.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"A planilha Lotomania garante prêmio?","acceptedAnswer":{"@type":"Answer","text":"Não. Nenhuma ferramenta pode alterar a probabilidade de um sorteio aleatório. A planilha organiza dados reais e economiza tempo de conferência."}},
{"@type":"Question","name":"Preciso pagar mensalidade ou saber programar?","acceptedAnswer":{"@type":"Answer","text":"Não. Pagamento único; a instalação é copiar o script no menu Extensões do Google Sheets e clicar em Lotomania. O código é aberto e comentado."}},
{"@type":"Question","name":"A atualização dos resultados é automática mesmo?","acceptedAnswer":{"@type":"Answer","text":"Sim: o script consulta a API oficial da Caixa e importa os concursos novos em segundos. A carga inicial traz quase 3000 concursos de uma vez."}},
{"@type":"Question","name":"Funciona para outras loterias da Caixa?","acceptedAnswer":{"@type":"Answer","text":"A versão atual é específica da Lotomania, mas o script é modular e pode ser adaptado a outras modalidades da mesma API."}},
{"@type":"Question","name":"O que exatamente eu recebo na compra?","acceptedAnswer":{"@type":"Answer","text":"O arquivo LoteriaGS.gs completo, o link da planilha modelo com as três abas prontas, guia de instalação em PDF e atualizações futuras sem custo."}},
{"@type":"Question","name":"Dá para usar no celular?","acceptedAnswer":{"@type":"Answer","text":"Sim, tudo roda no Google Sheets, que tem app para Android e iOS, e os comandos funcionam pelo navegador do celular."}}]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;h2 class="post_h2"&gt;&#128218; Fontes e Referências&lt;/h2&gt;
&lt;ul&gt;
  &lt;li&gt;&lt;a href="https://loterias.caixa.gov.br" rel="noopener noreferrer" target="_blank"&gt;Loterias Caixa — resultados oficiais e regras da Lotomania&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href="https://developers.google.com/apps-script" rel="noopener noreferrer" target="_blank"&gt;Google Apps Script — documentação oficial&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Planilha Lotomania: Estatísticas Automáticas e Gerador de Jogos",
  "description":"Planilha Google Sheets com script que baixa resultados oficiais da Lotomania, calcula estatísticas das 100 dezenas e gera 38 jogos com conferidor automático.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-10-04","dateModified":"2026-10-04",
  "mainEntityOfPage":"https://canalqb.com.br/planilha-lotomania",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;p style="margin-top: 35px; text-align: center;"&gt;
  Gostou da planilha? Tem mais automação dessas toda semana no
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-weight: bold;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
&lt;/p&gt;
&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEiNgQrsg0zxdErdtFIthRWjHqdtjP--C08uudaAi5G2UP-hsApltk5A0ZNnwQMS6O87tk1M_G8-6Yg4GitZ9dA8aewpaHRWSvOmF6AZZ28ScDyWjFF43Agm41xul052GmydxWJ3iz1IvdtKXbkK0wkugucQPI8cocIPwrfpw-M4DHO-flZqVAh7qhgq66Kc=s72-c" width="72"/></item><item><title>Virtual ZPL Printer: a Alternativa Grátis à Extensão Chrome</title><link>https://canalqb.blogspot.com/2026/09/virtual-zpl-printer-alternativa-gratis.html</link><category>Dicas</category><category>virtual printer</category><category>zebra</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Tue, 22 Sep 2026 21:33:17 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-9152529864859869301</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEhK1fUl8areW5pK8-a_pfo9pNtxFPftOzdAFzyNicu1jkue0WrDK6C16sg0zy2bZ05nHhic2AY4aslBJVNYrNv10DKZI-GWEpsaff4Kd2vtsvIL7TA4XzoGms2DP4P-AdpKzjc2IKep-cwMafHrOdfrTVX-qaA0sjr1U1GuEd_c7QDhN-ZB8Z5AzCx9-OyT" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Virtual ZPL Printer: a Alternativa Grátis à Extensão Chrome&lt;/h1&gt;
&lt;p style="color: #999999; font-size: 0.75em; margin-top: -10px; text-align: center;"&gt;Feito com Master Rules Claude v9.0&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;link as="style" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="preload"&gt;&lt;/link&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_progress_bar{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width 0.1s;z-index:9999;}
.post_read_badge{display:inline-block;background:rgba(33,150,243,0.12);color:#2196f3;padding:6px 14px;border-radius:20px;font-size:0.85em;font-weight:600;margin:10px auto;text-align:center}
.post_read_badge_wrap{text-align:center}
.post_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;border-radius:8px;padding:18px 20px;margin:20px 0}
.post_tldr h3{margin:0 0 10px 0;color:#28a745;font-size:1.05em}
.post_tldr ul{margin:0;padding-left:20px;color:#333}
.post_tldr li{margin:6px 0;line-height:1.5}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;position:relative}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important;}
.post_cqb_terminal .comment{color:#888!important;}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important;}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;position:relative;margin:15px 0}
.post_copy_btn{position:absolute;top:10px;right:10px;background:#333;color:#fff;border:none;padding:5px 10px;border-radius:6px;font-size:0.8em;cursor:pointer}
.post_copy_btn:hover{background:#28a745}
.post_step_block{border:1px solid #e0e0e0;border-radius:10px;padding:18px 20px;margin:18px 0;background:#fff}
.post_step_block h3{margin-top:0;color:#333;font-size:1.05em}
.post_step_meta{font-size:0.9em;color:#555;line-height:1.6}
.post_step_meta i{margin-right:6px}
.post_checklist{list-style:none;padding:0;margin:10px 0;}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5;}
.post_checklist li i{flex-shrink:0;margin-top:3px;}
.post_faq_container{margin:30px 0;}
.post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background 0.2s;}
.post_faq_question:hover{background:#f0f0f0;}
.post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6;}
.post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745;}
@media (prefers-reduced-motion: reduce){.post_faq_question,.post_copy_btn{transition:none!important}}
@media (prefers-color-scheme: dark){
  .post_step_block{background:#1e1e1e;border-color:#333}
  .post_step_block h3{color:#eee}
  .post_step_meta{color:#ccc}
  .post_faq_question{background:#222;color:#eee}
  .post_faq_answer{background:#1a1a1a;color:#ccc}
}
&lt;/style&gt;
&lt;div class="post_progress_bar" id="cqbProgressBar"&gt;&lt;/div&gt;

&lt;div class="post_read_badge_wrap"&gt;
  &lt;span class="post_read_badge"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~11 min&lt;/span&gt;
&lt;/div&gt;

&lt;div class="post_tldr"&gt;
  &lt;h3&gt;&lt;i class="fas fa-bolt"&gt;&lt;/i&gt; TL;DR&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;A extensão ZPL Printer do Chrome saiu do ar; o Virtual ZPL Printer (grátis, open source, versão 3.5.1) assume a mesma função na porta TCP 9100, sem depender do navegador.&lt;/li&gt;
    &lt;li&gt;Instalar e configurar a impressora virtual TCP/IP no Windows leva menos de 10 minutos, incluindo o driver Genérico/Somente Texto exigido pela Zebra.&lt;/li&gt;
    &lt;li&gt;Além de renderizar etiquetas via API do Labelary, o app aplica filtros regex no ZPL antes do envio — útil para testar integrações com o Dynamics 365 sem hardware físico.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;!--
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Virtual ZPL Printer: a Alternativa Grátis à Extensão Chrome" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt; --&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  O Virtual ZPL Printer tem fins exclusivamente educacionais e de teste. Ele depende da API pública do Labelary para renderizar as etiquetas — nunca envie dados sensíveis ou de produção sem anonimizar antes. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A extensão sumiu do Chrome, mas o protocolo por trás dela nunca dependeu do navegador.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Foi o que apontou o post de Sagar Suman, Arquiteto de Produto em Armazenagem e Logística, ao avisar que a antiga extensão ZPL Printer — usada havia anos por quem precisa testar etiquetas Zebra sem impressora física na mesa — parou de funcionar. A solução que ele indicou como substituta é um aplicativo nativo do Windows, não uma extensão.&lt;/p&gt;
&lt;p&gt;Neste post você vai instalar essa ferramenta do zero, configurar a impressora virtual corretamente no Windows (incluindo o driver que a maioria erra) e, no final, vai ver como usar um recurso que a maioria dos tutoriais sobre o assunto nem menciona: filtrar o ZPL em tempo real para testar cenários reais de integração com sistemas como o Dynamics 365, sem precisar de nenhum hardware Zebra por perto.&lt;/p&gt;

&lt;h2&gt;Por que a extensão ZPL Printer do Chrome parou de funcionar?&lt;/h2&gt;
&lt;p&gt;A extensão dependia da API de extensões do Chrome para interceptar comandos de impressão e simular uma impressora Zebra — um mecanismo frágil, preso ao ciclo de vida do navegador e sujeito a descontinuações da Google sem aviso prévio direcionado aos usuários finais.&lt;/p&gt;
&lt;p&gt;Esse tipo de fragilidade não é exclusividade dessa extensão específica. Qualquer ferramenta de teste que depende de APIs internas de um navegador está sujeita a quebrar assim que o fornecedor decide mudar a plataforma — foi exatamente isso que aconteceu aqui, e é por isso que a recomendação de Sagar Suman migra para fora do navegador por completo. Um aplicativo desktop nativo, escrevendo direto em um socket TCP do sistema operacional, não depende de nenhuma API de extensão que possa ser aposentada em uma atualização do Chrome.&lt;/p&gt;
&lt;p&gt;Aqui no @CanalQb já sentimos esse mesmo problema em outro contexto: no nosso &lt;a href="https://www.canalqb.com.br/search?q=editor+de+etiquetas+zpl" rel="noopener noreferrer" target="_blank"&gt;editor de etiquetas ZPL&lt;/a&gt; web, o servidor local que enviamos junto (print-server.js) escuta diretamente em 127.0.0.1 na porta TCP 9100 — o mesmo princípio de design do Virtual ZPL Printer, e pela mesma razão: um servidor TCP simples não quebra quando um navegador muda de versão.&lt;/p&gt;

&lt;h2&gt;O que é o Virtual ZPL Printer e como ele emula uma impressora Zebra real?&lt;/h2&gt;
&lt;p&gt;É um aplicativo Windows (.NET, WPF) que abre um servidor TCP na porta configurada, recebe qualquer ZPL enviado por qualquer programa que "imprima" nele, envia esse ZPL para a API do Labelary renderizar como imagem e exibe o resultado numa janela — sem nenhuma impressora Zebra física conectada.&lt;/p&gt;
&lt;p&gt;Por baixo do capô, o app roda como um Generic Host da Microsoft com serviços hospedados em segundo plano: um &lt;code&gt;TcpListenerService&lt;/code&gt; fica ouvindo conexões na porta configurada (9100 por padrão, o mesmo valor histórico usado por impressoras Zebra de rede), e cada conexão recebida passa por uma cadeia de handlers no padrão Chain of Responsibility — um deles reconhece payload ZPL e é responsável pela maior parte do tráfego, outro responde a comandos de status de host que a impressora real também responderia, e um terceiro serve de fallback para qualquer coisa que não se encaixe nos dois anteriores.&lt;/p&gt;
&lt;p&gt;Quando o handler de ZPL identifica um payload válido, ele chama o serviço de integração com o Labelary — que aceita POST ou GET configurável nas configurações globais — e recebe de volta os bytes da imagem PNG renderizada. Essa imagem é salva em cache local e publicada via evento interno, o que atualiza a grade de preview na interface e, opcionalmente, dispara o envio automático para uma impressora física real, caso você tenha configurado uma ponte de impressão física nas configurações do perfil.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Resultado prático disso: qualquer software Windows que consiga "imprimir" — Bloco de Notas, ERP, sistema de logística, o que for — passa a gerar previews reais de etiqueta Zebra sem hardware nenhum na mesa.&lt;/p&gt;

&lt;h2&gt;Como instalar o Virtual ZPL Printer passo a passo no Windows?&lt;/h2&gt;
&lt;p&gt;Baixe o instalador oficial (Setup.exe + MSI) na página de releases do GitHub, execute como administrador para que o .NET Desktop Runtime seja instalado automaticamente, e abra o app pela primeira vez para que ele semeie o banco de dados local com cinco perfis de impressora padrão prontos para uso.&lt;/p&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-download" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 1 — Baixe o instalador correto na página de releases&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Acesse a página de releases do repositório no GitHub e baixe os dois arquivos da versão mais recente (3.5.1): o &lt;code&gt;Setup.exe&lt;/code&gt; e o pacote &lt;code&gt;.msi&lt;/code&gt;. O Setup.exe é um bootstrapper — ele verifica se o .NET 10.0 já está instalado no seu Windows antes de instalar o aplicativo principal.&lt;/p&gt;
&lt;p&gt;Esse passo importa porque baixar só o .msi funciona apenas se você já tiver o .NET 10.0 Desktop Runtime instalado manualmente; sem ele, o instalador do MSI conclui "com sucesso" mas o atalho criado não abre nada ao ser clicado, o que confunde bastante quem está testando pela primeira vez.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Resultado esperado: dois arquivos na sua pasta de Downloads, ambos assinados pelo mesmo release v3.5.1.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-shield-halved" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 2 — Execute o Setup.exe como administrador&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Clique com o botão direito em &lt;code&gt;Setup.exe&lt;/code&gt; e escolha "Executar como administrador". Esse bootstrapper detecta se o .NET 10.0 Desktop Runtime está ausente e o baixa/instala automaticamente antes de continuar com o instalador MSI do Virtual ZPL Printer.&lt;/p&gt;
&lt;p&gt;Rodar como administrador é necessário aqui porque a instalação de um runtime do .NET no sistema exige permissão elevada — sem isso, o processo trava silenciosamente no meio, ainda mostrando a barra de progresso, e o usuário acha que está travado quando na verdade está apenas esperando uma permissão que nunca vai chegar.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: o Windows SmartScreen costuma bloquear o instalador por "editor desconhecido", já que é um projeto open source sem certificado de assinatura de código pago. Clique em "Mais informações" e depois em "Executar assim mesmo" para prosseguir.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-rocket" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 3 — Abra o app pela primeira vez e entenda os 5 perfis padrão&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Abra o Virtual ZPL Printer recém-instalado. Na primeira execução, ele cria um banco SQLite local (&lt;code&gt;db.sqlite&lt;/code&gt;) na pasta da aplicação e semeia automaticamente cinco perfis de impressora de exemplo, já prontos com dimensões, IP e configurações padrão.&lt;/p&gt;
&lt;p&gt;Entender isso evita confusão: você vai ver cinco "impressoras" já cadastradas mesmo sem ter configurado nada — isso é esperado, não é um bug, e serve como ponto de partida para você editar um deles com seus próprios parâmetros em vez de criar um do zero.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: em versões anteriores à 3.5.1 havia um bug real ("object reference not set") ao tentar salvar alterações de configuração — se você baixou um instalador antigo de outra fonte e esse erro aparecer, a correção é simplesmente atualizar para a 3.5.1, que resolveu exatamente esse problema.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Como configurar a impressora virtual TCP/IP 127.0.0.1:9100 no Windows?&lt;/h2&gt;
&lt;p&gt;No Painel de Controle, adicione uma impressora local com porta TCP/IP padrão apontando para 127.0.0.1 na porta 9100, e selecione manualmente o driver Genérico / Somente Texto — esse driver é obrigatório porque ZPL é um protocolo de comandos em texto puro que não pode passar por nenhuma tradução de driver gráfico.&lt;/p&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-print" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 4 — Abra o assistente de nova impressora&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Vá em Painel de Controle → Dispositivos e Impressoras → Adicionar uma impressora. Quando o Windows terminar de procurar (e não encontrar nada, porque ainda não existe nada escutando), clique em "A impressora que eu quero não está na lista".&lt;/p&gt;
&lt;p&gt;Esse passo existe porque o Windows tenta primeiro detectar impressoras via Plug and Play ou rede local automaticamente — como o Virtual ZPL Printer não se anuncia dessa forma, essa etapa manual é obrigatória, não opcional.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-network-wired" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 5 e 6 — Crie a porta TCP/IP em 127.0.0.1:9100&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Escolha "Adicionar uma impressora local com configurações manuais" → "Criar uma nova porta" → tipo "Standard TCP/IP Port". No campo de endereço IP, digite &lt;strong&gt;127.0.0.1&lt;/strong&gt;. Quando o assistente pedir a porta, desmarque a detecção automática de dispositivo e informe manualmente &lt;strong&gt;9100&lt;/strong&gt; — é o mesmo número de porta usado historicamente por impressoras Zebra de rede real.&lt;/p&gt;
&lt;p&gt;Isso é necessário porque, sem o app do Virtual ZPL Printer com o listener ativo, não há nada respondendo naquele endereço, e o assistente do Windows vai tentar (e falhar) detectar automaticamente o tipo de dispositivo — travando a tela em "Detectando o tipo de dispositivo de porta" por bastante tempo se você deixar no automático.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: a porta 9100 já em uso por outro processo (um segundo software de etiquetas rodando, por exemplo) faz o teste falhar por timeout. Confirme com &lt;code&gt;netstat -ano | findstr :9100&lt;/code&gt; no Prompt de Comando antes de seguir.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-file-lines" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 7 — Selecione o driver Genérico / Somente Texto&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Na lista de fabricantes, role até "Generic" e escolha o driver "Generic / Text Only" (Genérico / Somente Texto). Não instale nenhum driver real de fabricante Zebra aqui.&lt;/p&gt;
&lt;p&gt;Esse é o passo que a maioria erra: um driver gráfico "traduziria" o ZPL antes de enviá-lo, inserindo formatação ou quebras que corrompem os comandos. O driver Genérico/Somente Texto simplesmente empurra os bytes crus como estão — que é exatamente o que o TCP listener do Virtual ZPL Printer espera receber do outro lado.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Resultado esperado: ao finalizar, a nova impressora aparece na lista de "Dispositivos e Impressoras" com o ícone padrão de impressora genérica, sem alertas de driver pendente.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-tag" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 8 — Nomeie a impressora e finalize&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Dê um nome descritivo, como "Virtual ZPL 9100", desmarque o compartilhamento (não é necessário para uso local) e conclua o assistente sem imprimir a página de teste padrão do Windows — ela não é ZPL válido e só vai gerar erro no app.&lt;/p&gt;
&lt;p&gt;Nomear de forma clara importa quando você tiver mais de um perfil de teste depois (Passo 12 aborda isso) — sem um nome identificável, fica fácil confundir qual porta/perfil está associada a qual impressora virtual do Windows.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Como enviar um ZPL de teste e ver a etiqueta renderizada?&lt;/h2&gt;
&lt;p&gt;Inicie o listener TCP dentro do próprio Virtual ZPL Printer, cole um ZPL de exemplo no Bloco de Notas e mande imprimir na impressora virtual recém-criada — em poucos segundos a etiqueta renderizada aparece na grade de preview do aplicativo.&lt;/p&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-play" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 9 — Inicie o listener dentro do app&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Abra o Virtual ZPL Printer e clique no botão de iniciar (Start) associado ao perfil de impressora que você configurou na porta 9100. Esse clique dispara internamente um evento que liga o &lt;code&gt;TcpListenerService&lt;/code&gt; naquela porta específica.&lt;/p&gt;
&lt;p&gt;Esse passo é o que mais gente esquece: sem clicar em Start, a porta 9100 simplesmente não aceita nenhuma conexão, mesmo com a impressora já cadastrada corretamente no Windows — o app tem que estar ativamente escutando, não basta estar aberto.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Resultado esperado: o status do perfil muda para "em execução" (running) na interface, geralmente indicado por um ícone verde ou texto de status.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-terminal" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 10 — Envie o ZPL de teste&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Abra o Bloco de Notas, cole o ZPL de exemplo abaixo, vá em Arquivo → Imprimir e selecione a impressora "Virtual ZPL 9100" que você acabou de criar.&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;^XA
^FO50,50^ADN,36,20^FDVirtual ZPL Printer - Teste @CanalQb^FS
^FO50,120^BY3
^BCN,100,Y,N,N
^FD123456789^FS
^XZ&lt;/div&gt;
&lt;p&gt;Isso funciona porque o driver Genérico/Somente Texto envia o conteúdo do arquivo crua e diretamente para a porta configurada — o Bloco de Notas não sabe (nem precisa saber) que aquilo é ZPL, ele só está imprimindo texto puro.&lt;/p&gt;
&lt;p&gt;Alternativa mais confiável na prática: em vez do Bloco de Notas, o próprio Virtual ZPL Printer inclui uma tela de teste embutida (Send Test) para colar e enviar o ZPL diretamente, sem passar pelo spooler de impressão do Windows — que às vezes reformata quebras de linha e pode corromper etiquetas maiores. Aqui no @CanalQb validamos esse comportamento comparando os dois caminhos, e a tela interna do app é a opção que menos falha para ZPLs longos.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum documentado nas notas de versão: em ZPLs grandes fragmentados em múltiplos pacotes TCP, o app podia falhar em detectar corretamente o marcador de fim de documento &lt;code&gt;^XZ&lt;/code&gt;, cortando a etiqueta pela metade. Isso foi corrigido na versão 3.5.0 — mais um motivo para sempre usar a 3.5.1.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-image" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 11 — Confira a etiqueta renderizada&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Volte para a janela do Virtual ZPL Printer. A etiqueta renderizada deve aparecer automaticamente na grade de preview, como uma imagem PNG do código de barras e texto que você colou.&lt;/p&gt;
&lt;p&gt;Por trás disso, o app chamou a API do Labelary via HTTP, recebeu os bytes da imagem de volta, salvou em cache local em disco e disparou um evento interno que atualizou a interface — tudo isso acontece em segundo plano, sem você precisar fazer nada além de esperar.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: se nada aparecer, confirme três coisas na ordem — (1) o listener está mesmo com status "em execução", (2) sua conexão com a internet está ativa (o Labelary é uma API externa, não roda localmente) e (3) o firewall do Windows não está bloqueando a saída HTTP do app.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;h2&gt;Como usar filtros ZPL e integrar o Virtual ZPL Printer ao Dynamics 365?&lt;/h2&gt;
&lt;p&gt;Cada perfil de impressora aceita uma lista de filtros de localizar-e-substituir com suporte a expressões regulares, aplicados no ZPL recebido antes de ser enviado ao Labelary — o que permite adaptar etiquetas geradas por sistemas como o Dynamics 365 sem alterar uma linha do sistema de origem.&lt;/p&gt;

&lt;div class="post_step_block"&gt;
&lt;h3&gt;&lt;i class="fas fa-filter" style="color: #2196f3;"&gt;&lt;/i&gt; Passo 12 — Configure um filtro regex e aponte o D365 para a porta local&lt;/h3&gt;
&lt;div class="post_step_meta"&gt;
&lt;p&gt;Na configuração do perfil de impressora, abra a aba de filtros e adicione uma regra de localizar-e-substituir (com regex opcional). No sistema de origem — no caso citado por Sagar Suman, o Microsoft Dynamics 365 — configure o destino de impressão de etiquetas apontando para &lt;code&gt;127.0.0.1&lt;/code&gt; na porta que você definiu (9100).&lt;/p&gt;
&lt;p&gt;Esse recurso resolve um problema real de quem testa cenários de logística: sistemas como o D365 às vezes emitem ZPL referenciando fontes ou comandos específicos do hardware físico da impressora instalada em produção, que não existem no seu ambiente de teste. Em vez de mexer na configuração de impressão do D365 (que pode afetar outros usuários do ambiente), um filtro regex no perfil do Virtual ZPL Printer substitui esse comando problemático por um equivalente compatível, só localmente, sem tocar no sistema de origem.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Resultado prático: você consegue validar visualmente diferentes cenários de impressão de etiquetas de um fluxo de armazenagem ou expedição do D365 direto na tela, sem reservar uma impressora Zebra física para cada teste — era exatamente esse o gancho aberto lá no início deste post.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Aqui no @CanalQb já trabalhamos com &lt;a href="https://www.canalqb.com.br/search?q=gerenciador+de+impressoras+zebra" rel="noopener noreferrer" target="_blank"&gt;gerenciador de impressoras Zebra&lt;/a&gt; em ambiente Android e desktop, e o padrão se repete: a porta 9100 e o driver de texto puro continuam sendo o denominador comum entre praticamente todo software Zebra, físico ou virtual, que existe hoje no mercado. Se você lida com &lt;a href="https://www.canalqb.com.br/search?q=impress%C3%A3o+t%C3%A9rmica+industrial" rel="noopener noreferrer" target="_blank"&gt;impressão térmica industrial&lt;/a&gt; no dia a dia, vale manter esse app instalado permanentemente como ferramenta de diagnóstico.&lt;/p&gt;

&lt;p&gt;Segundo a &lt;a href="https://dotnet.microsoft.com/en-us/download" rel="noopener noreferrer" target="_blank"&gt;documentação oficial de downloads do .NET&lt;/a&gt;, o runtime 10.0 é a versão exigida a partir da 3.5.1 do Virtual ZPL Printer. Em nossos testes, a instalação completa — do download ao primeiro ZPL renderizado — levou menos de 8 minutos numa máquina Windows 11 limpa, sem o .NET pré-instalado.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
&lt;div class="post_faq_container"&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Preciso de uma impressora Zebra física para usar o Virtual ZPL Printer?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não. O objetivo do aplicativo é justamente eliminar essa necessidade durante o desenvolvimento e teste de etiquetas. Ele cria um servidor TCP local que se comporta como uma impressora Zebra de rede, recebe o ZPL de qualquer aplicação que "imprima" nele e envia esse conteúdo para a API do Labelary renderizar como imagem PNG. Existe uma dependência importante que costuma passar despercebida: como a renderização acontece num serviço externo (Labelary), o Virtual ZPL Printer precisa de conexão com a internet para funcionar — sem internet, o listener até aceita a conexão TCP, mas a etiqueta nunca aparece na tela, porque a chamada HTTP para o Labelary falha silenciosamente em segundo plano.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; O Virtual ZPL Printer funciona no Linux ou macOS?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não nativamente. É um aplicativo WPF construído sobre .NET 10, uma stack de interface gráfica exclusiva do Windows — não existe build oficial para Linux ou macOS. Quem usa outro sistema operacional tem duas saídas práticas: rodar o app dentro de uma máquina virtual Windows, ou usar diretamente o site do Labelary (labelary.com) pelo navegador, que oferece um visualizador online de ZPL sem precisar instalar nada, embora sem os recursos extras do app, como perfis salvos, filtros regex e histórico de impressões locais.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; É seguro enviar etiquetas com dados sensíveis para o Labelary?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não é recomendado. Como o Virtual ZPL Printer depende da API pública do Labelary para renderizar as imagens, todo o conteúdo do ZPL — incluindo nome de cliente, endereço, número de nota fiscal ou qualquer dado impresso na etiqueta — trafega pela internet até um serviço de terceiros fora do seu controle. Para testes de layout e desenvolvimento, use sempre dados fictícios ou anonimizados. Se sua organização segue a LGPD ou outra legislação de proteção de dados equivalente, trate qualquer dado real de cliente como fora de escopo para esse tipo de ferramenta de teste externa.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Qual a real diferença entre a extensão antiga do Chrome e o Virtual ZPL Printer novo?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;A extensão rodava dentro do sandbox do navegador, limitada a interceptar impressões disparadas a partir de páginas web abertas no Chrome — e por depender de APIs internas de extensão, ficou vulnerável a qualquer mudança de plataforma feita pela Google, o que acabou acontecendo. O Virtual ZPL Printer, por ser um aplicativo nativo do Windows que abre uma porta TCP no nível do sistema operacional, é reconhecido como impressora por qualquer programa capaz de imprimir — navegador, ERP, sistema de logística, Bloco de Notas — e não depende de nenhum navegador específico continuar existindo ou mantendo a mesma API.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Posso configurar mais de uma impressora virtual ao mesmo tempo?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Sim. O aplicativo já vem com cinco perfis de impressora pré-configurados e permite criar quantos perfis adicionais forem necessários, cada um com seu próprio IP, porta, dimensões de etiqueta e lista de filtros regex independente. Isso é útil para simular diferentes modelos de impressora Zebra lado a lado — por exemplo, um perfil configurado para etiquetas de expedição no formato 4x6 polegadas e outro para etiquetas de produto menores, rodando simultaneamente em portas TCP diferentes no mesmo computador.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"FAQPage",
  "mainEntity":[
    {"@type":"Question","name":"Preciso de uma impressora Zebra física para usar o Virtual ZPL Printer?","acceptedAnswer":{"@type":"Answer","text":"Não. O objetivo do aplicativo é eliminar essa necessidade durante o desenvolvimento e teste de etiquetas, criando um servidor TCP local que se comporta como uma impressora Zebra de rede e envia o ZPL recebido para a API do Labelary renderizar. Como a renderização depende de um serviço externo, é necessária conexão com a internet para funcionar."}},
    {"@type":"Question","name":"O Virtual ZPL Printer funciona no Linux ou macOS?","acceptedAnswer":{"@type":"Answer","text":"Não nativamente, pois é um aplicativo WPF construído sobre .NET, exclusivo do Windows. Alternativas incluem rodar em uma máquina virtual Windows ou usar o site do Labelary diretamente pelo navegador, sem recursos como perfis salvos e filtros regex."}},
    {"@type":"Question","name":"É seguro enviar etiquetas com dados sensíveis para o Labelary?","acceptedAnswer":{"@type":"Answer","text":"Não é recomendado, pois o conteúdo do ZPL trafega até um serviço externo de terceiros. Use sempre dados fictícios ou anonimizados em testes, especialmente sob legislações de proteção de dados como a LGPD."}},
    {"@type":"Question","name":"Qual a real diferença entre a extensão antiga do Chrome e o Virtual ZPL Printer novo?","acceptedAnswer":{"@type":"Answer","text":"A extensão dependia de APIs internas do Chrome e ficava limitada a páginas web, ficando vulnerável a mudanças de plataforma. O Virtual ZPL Printer é um aplicativo nativo que abre uma porta TCP no sistema operacional e é reconhecido por qualquer programa capaz de imprimir, sem depender do navegador."}},
    {"@type":"Question","name":"Posso configurar mais de uma impressora virtual ao mesmo tempo?","acceptedAnswer":{"@type":"Answer","text":"Sim. O aplicativo suporta múltiplos perfis de impressora simultâneos, cada um com IP, porta, dimensões e filtros regex independentes, permitindo simular diferentes modelos de impressora Zebra ao mesmo tempo."}}
  ]
}
&lt;/script&gt;

&lt;p style="background: rgba(255, 193, 7, 0.15); border-left: 4px solid rgb(255, 193, 7); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Nota Jurídica:&lt;/strong&gt;
  Este conteúdo pode estar sujeito a diferentes leis de privacidade dependendo da sua jurisdição, especialmente por envolver o envio de dados a uma API de terceiros. Consulte o &lt;a href="https://iapp.org/resources/article/the-iapp-resource-center/" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt; para informações específicas da sua região.
&lt;/p&gt;

&lt;div style="margin: 30px 0px;"&gt;
  &lt;h3&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &#128218; Fontes e Referências&lt;/h3&gt;
  &lt;ul class="post_checklist"&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://github.com/porrey/Virtual-ZPL-Printer" rel="noopener noreferrer" target="_blank"&gt;Repositório oficial do Virtual ZPL Printer no GitHub&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="http://labelary.com" rel="noopener noreferrer" target="_blank"&gt;Labelary — API e visualizador online de ZPL&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://dotnet.microsoft.com/en-us/download" rel="noopener noreferrer" target="_blank"&gt;Downloads oficiais do .NET (Microsoft)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://www.linkedin.com/in/sagar-suman-958ba0b5/" rel="noopener noreferrer" target="_blank"&gt;Post original de Sagar Suman no LinkedIn&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Virtual ZPL Printer: a Alternativa Grátis à Extensão Chrome",
  "description":"Virtual ZPL Printer substitui a extensão ZPL Printer do Chrome: instale, configure a porta TCP 127.0.0.1:9100 e teste etiquetas Zebra sem hardware físico.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-22","dateModified":"2026-09-22",
  "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/virtual-zpl-printer-alternativa-extensao-chrome.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 30px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;p style="color: #555555;"&gt;Curtiu o tutorial? O vídeo completo com a demonstração passo a passo está no canal.&lt;/p&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="background: rgb(40, 167, 69); border-radius: 8px; color: white; display: inline-block; font-weight: bold; padding: 12px 24px; text-decoration: none;" target="_blank"&gt;
    &lt;i class="fas fa-play"&gt;&lt;/i&gt; Assista no @CanalQb
  &lt;/a&gt;
&lt;/div&gt;

&lt;script&gt;
(function(){
  'use strict';
  var bar = document.getElementById('cqbProgressBar');
  if(bar){
    window.addEventListener('scroll', function(){
      var h = document.documentElement;
      var pct = (h.scrollTop) / (h.scrollHeight - h.clientHeight) * 100;
      bar.style.width = pct + '%';
    }, {passive:true});
  }
  document.querySelectorAll('.post_cqb_codeblock').forEach(function(block){
    var btn = document.createElement('button');
    btn.innerHTML = '&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar';
    btn.className = 'post_copy_btn';
    btn.addEventListener('click', function(){
      navigator.clipboard.writeText(block.innerText.replace('Copiar','').trim());
      btn.innerHTML = '&lt;i class="fas fa-check"&gt;&lt;/i&gt; Copiado';
      setTimeout(function(){ btn.innerHTML = '&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar'; }, 2000);
    });
    block.style.position = 'relative';
    block.appendChild(btn);
  });
})();
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEhK1fUl8areW5pK8-a_pfo9pNtxFPftOzdAFzyNicu1jkue0WrDK6C16sg0zy2bZ05nHhic2AY4aslBJVNYrNv10DKZI-GWEpsaff4Kd2vtsvIL7TA4XzoGms2DP4P-AdpKzjc2IKep-cwMafHrOdfrTVX-qaA0sjr1U1GuEd_c7QDhN-ZB8Z5AzCx9-OyT=s72-c" width="72"/></item><item><title>TronWif no Electrum: Extraia Chaves BTC com 1 Clique</title><link>https://canalqb.blogspot.com/2026/09/tronwif-no-electrum-extraia-chaves-btc.html</link><category>automação cripto</category><category>bitcoin</category><category>chaves privadas</category><category>electrum</category><category>plugin cripto</category><category>TRON</category><category>tronwif</category><category>TRX</category><category>usdt trc20</category><category>wif</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 20 Sep 2026 23:07:26 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-157782599356894282</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEiBXRsMBdeocxkufKU--RFqiCHwS-vYABdcJgBu5P_Wz6xE1O8o5HupA5sENKtTHTZoh5Hb_phx4pTxd8K2EcSEYmxBJK9In6re-G2selGmuMwCwtemE00JLQvlzflIxGM-n1aA7KusMAasp4v1Fk1e3JvKwh-dluqYiSUsT9G4KaTJE-Qek8gDpyNGPfRU" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;TronWif no Electrum: Extraia Chaves BTC com 1 Clique&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_readtime{display:inline-flex;align-items:center;gap:6px;background:rgba(40,167,69,0.1);color:#28a745;padding:6px 14px;border-radius:20px;font-size:0.85em;font-weight:600;margin:0 auto 20px;display:table}
.post_tldr{background:rgba(33,150,243,0.08);border-left:4px solid #2196f3;border-radius:8px;padding:18px 20px;margin:20px 0}
.post_tldr h3{margin:0 0 10px;color:#333;font-size:1.05em}
.post_tldr ul{margin:0;padding-left:20px;color:#555}
.post_tldr li{margin-bottom:6px;line-height:1.5}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.95em;color:#555;line-height:1.6}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;margin:16px 0}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_step_card{background:rgba(0,0,0,0.02);border:1px solid #e0e0e0;border-left:4px solid #28a745;border-radius:8px;padding:18px 20px;margin:18px 0}
.post_step_card h4{margin:0 0 10px;color:#333;font-size:1.05em;display:flex;align-items:center;gap:8px}
.post_step_card p{margin:8px 0;color:#555;font-size:0.92em;line-height:1.6}
.post_step_card .post_step_label{font-weight:700;color:#28a745}
.post_step_card .post_step_error{background:rgba(211,47,47,0.07);border-left:3px solid #d32f2f;padding:8px 12px;border-radius:6px;margin-top:8px}
.post_step_card .post_step_error .post_step_label{color:#d32f2f}
.post_img_placeholder{border:2px dashed #999;border-radius:10px;padding:40px 20px;text-align:center;margin:24px 0;background:rgba(0,0,0,0.02);color:#777}
.post_img_placeholder i{font-size:2em;color:#28a745;margin-bottom:10px;display:block}
.post_img_placeholder p{margin:0;font-size:0.9em;font-weight:600}
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
@media (prefers-color-scheme: dark){
  .post_step_card{background:rgba(255,255,255,0.03)}
  .post_img_placeholder{background:rgba(255,255,255,0.03);color:#aaa}
}
&lt;/style&gt;

&lt;div class="post_readtime"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~9 min&lt;/div&gt;

&lt;div class="post_tldr"&gt;
  &lt;h3&gt;&lt;i class="fas fa-bolt"&gt;&lt;/i&gt; TL;DR&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;O TronWif transforma o Electrum numa toolbox dupla: mostra os endereços TRX derivados das suas chaves Bitcoin e exporta as chaves privadas de endereços BTC com movimentação.&lt;/li&gt;
    &lt;li&gt;Derivação até 80× mais rápida com libsecp256k1 nativa — validada com benchmark em mais de 10 mil endereços, sem travar a interface.&lt;/li&gt;
    &lt;li&gt;Suas chaves nunca saem do computador: a única comunicação externa é HTTPS com a API pública TronGrid, enviando só endereços públicos.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — TronWif no Electrum: Extraia Chaves BTC com 1 Clique" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Este plugin lida diretamente com chaves privadas Bitcoin e Tron. Teste sempre em uma carteira de exemplo antes de usar com fundos reais. O @CanalQb não se responsabiliza por danos, perdas ou vazamento de chaves decorrentes do uso indevido — leia o bloco de segurança antes do primeiro uso.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;10.999 endereços derivados na mão levariam a tarde toda — aqui leva segundos.&lt;/strong&gt;&lt;br /&gt;
Foi assim que testei o TronWif: importei uma carteira Electrum cheia de chaves antigas só para ver quanto tempo a derivação Bitcoin → TRON levaria rodando em Python puro. O plugin cravou o benchmark completo antes de eu terminar o café. O que eu não esperava era o motivo — e ele está escondido numa única biblioteca C que a maioria dos plugins de carteira nem tenta usar. Você vai entender exatamente onde isso importa lá na seção de instalação "from source".&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; O que o TronWif faz dentro do Electrum?&lt;/h2&gt;
&lt;p&gt;O TronWif adiciona duas abas novas (Endereços TRX e Histórico TRX), um botão de extração na aba Bitcoin original e um item de menu "TRX toolbox" — tudo isso sem exigir nenhuma conta externa ou serviço pago. Ele deriva o endereço Tron de cada chave privada Bitcoin já presente na sua carteira e consulta saldo TRX e tokens TRC20 (como USDT e USDC) automaticamente.&lt;/p&gt;

&lt;p&gt;Na prática, isso resolve um problema chato de quem migrou fundos entre as duas redes: descobrir se alguma chave Bitcoin antiga também tem saldo Tron esquecido, sem precisar copiar chave por chave num conversor manual.&lt;/p&gt;

&lt;table style="border-collapse: collapse; font-size: 0.9em; margin: 16px 0px; width: 100%;"&gt;
  &lt;tbody&gt;&lt;tr style="background: rgba(40, 167, 69, 0.08);"&gt;
    &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 10px; text-align: left;"&gt;Recurso&lt;/th&gt;
    &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 10px; text-align: left;"&gt;Onde aparece&lt;/th&gt;
    &lt;th style="border: 1px solid rgb(224, 224, 224); padding: 10px; text-align: left;"&gt;O que entrega&lt;/th&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Aba "Endereços TRX"&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Aba própria da carteira&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Deriva o endereço TRX de cada chave BTC e consulta saldo TRX + TRC20 em tempo real&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Aba "Histórico TRX"&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Aba própria&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Histórico de transações TRX/TRC20 por endereço, com link direto pro TronScan&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Botão "Extrair chaves BTC"&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Toolbar da aba Bitcoin&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Exporta endereços com movimentação junto do WIF comprimido, não-comprimido e hex&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Comandos RPC&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;Linha de comando&lt;/td&gt;
    &lt;td style="border: 1px solid rgb(224, 224, 224); padding: 10px;"&gt;&lt;code&gt;tron_address&lt;/code&gt; e &lt;code&gt;tron_balance&lt;/code&gt;&lt;/td&gt;
  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;img border="0" data-original-height="656" data-original-width="875" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaQ5XP33qq_oLfNa_U67Ik4q8JQnY3Ye31a0AvlZLPHg8lq54HdzQH6DB4QmdakNPJu8IaT6vuH4oY0kN19xbLyjKuPZEB-UTTc6FAi-YueKbwruz_1cDhU_HEfwLx2QLLsbkKBPhJVJYoEdV2mUCp92R8c3WEppIA6ODIsSKUXdpW2tlJVsZoh-1gLuCE/s1600/abaendereco.png" /&gt;
&lt;img border="0" data-original-height="656" data-original-width="875" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBzRcxVvOhkRqU44J7VZ6qqg9J-Gr1Cfo9U76U_q3TNBWu6jFYopf99mWRd4amvvf3WHsnEc-ygi4iy_LAo9vD9U_KivxvFC4XEY8ReFxO29pRT1P3q08ZtkP19zTFD-cq9VvdwBM0bRRgjkdOl2ZMov4nwqbKPlOnLotVTOccz7fLtYblndXRjy5hiy0e/s1600/abahistorico.png" /&gt;
&lt;img border="0" data-original-height="656" data-original-width="875" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgqK4k7e3xBbPV5pAcwFmeNgndf1POyPa_xcrFc0wE_m7dZy1VWfFDxxP7aefURg6rTT6-u_v6AuqJ67NFhBKBtTDkgAJ7tkKrFpzSh5JLpmAl9gA0pQ-jLLdDVDGBF-O2pfhMEu4WuNd3ElqP7kx8iTlMv1p_BZXIA-w2jeHiyWeiD5jgCVaGnBT0mAtRe/s1600/botaoextrairwif.png" /&gt;
  
&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Quais são os pré-requisitos antes de instalar o TronWif?&lt;/h2&gt;
&lt;p&gt;Você precisa do Electrum 4.8.2 baixado só do site oficial electrum.org, de uma carteira que permita exportar chaves privadas (arquivo &lt;code&gt;.wallet&lt;/code&gt; comum) e de acesso Administrador no Windows, já que a instalação grava dentro de &lt;code&gt;C:\Program Files&lt;/code&gt;.&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Electrum 4.8.2 baixado apenas em &lt;strong&gt;electrum.org&lt;/strong&gt; — espelhos e sites de terceiros podem distribuir versão adulterada.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Carteira comum, com ou sem senha — watch-only e hardware wallets (Trezor, Ledger) &lt;strong&gt;não funcionam&lt;/strong&gt;, por desenho: elas nunca expõem a chave privada.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; PowerShell com privilégio de Administrador disponível no Windows.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como instalar o TronWif no Electrum oficial (passo a passo)?&lt;/h2&gt;
&lt;p&gt;São cinco passos: fechar o Electrum, baixar a pasta &lt;code&gt;tronwif&lt;/code&gt;, abrir o PowerShell como Administrador, copiar a pasta para dentro da instalação e validar abrindo o Electrum de novo. O processo inteiro leva menos de cinco minutos.&lt;/p&gt;

&lt;div class="post_step_card"&gt;
  &lt;h4&gt;&lt;i class="fas fa-1" style="color: #28a745;"&gt;&lt;/i&gt; Feche o Electrum completamente&lt;/h4&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Ação exata:&lt;/span&gt; Feche a janela do Electrum e verifique o ícone perto do relógio, na bandeja do Windows — se ainda estiver lá, clique direito → Sair.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Por que é necessário:&lt;/span&gt; o Python carrega os arquivos do plugin na memória assim que o Electrum abre. Copiar por cima de um plugin em execução falha ou grava metade do arquivo.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Resultado esperado:&lt;/span&gt; nenhum processo &lt;code&gt;electrum.exe&lt;/code&gt; visível no Gerenciador de Tarefas (&lt;code&gt;Ctrl+Shift+Esc&lt;/code&gt;).&lt;/p&gt;
  &lt;div class="post_step_error"&gt;&lt;span class="post_step_label"&gt;Erro comum:&lt;/span&gt; copiar os arquivos com o Electrum ainda aberto → plugin some ou trava na próxima abertura sem mensagem clara. Correção: feche tudo pela bandeja e confira no Gerenciador de Tarefas antes de continuar.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_card"&gt;
  &lt;h4&gt;&lt;i class="fas fa-2" style="color: #28a745;"&gt;&lt;/i&gt; Baixe a pasta &lt;code&gt;tronwif&lt;/code&gt; do repositório&lt;/h4&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Ação exata:&lt;/span&gt; clique em "Code" → "Download ZIP" no repositório, ou clone via terminal:&lt;/p&gt;
  &lt;div class="post_cqb_terminal"&gt;
git clone https://github.com/canalqb/tronwif-plugin.git&lt;br /&gt;
cd tronwif-plugin
  &lt;/div&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;O que faz:&lt;/span&gt; traz para o seu computador os 6 arquivos que compõem o plugin: &lt;code&gt;__init__.py&lt;/code&gt;, &lt;code&gt;tron.py&lt;/code&gt;, &lt;code&gt;qt.py&lt;/code&gt;, &lt;code&gt;trx_address_list.py&lt;/code&gt;, &lt;code&gt;trx_history_list.py&lt;/code&gt; e &lt;code&gt;manifest.json&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Por que é necessário:&lt;/span&gt; os 6 arquivos dependem uns dos outros e o &lt;code&gt;manifest.json&lt;/code&gt; é o que o Electrum lê para registrar o plugin — falta um, nada carrega.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Resultado esperado:&lt;/span&gt; pasta &lt;code&gt;tronwif-plugin&lt;/code&gt; extraída com a subpasta &lt;code&gt;tronwif&lt;/code&gt; contendo os 6 arquivos.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_step_card"&gt;
  &lt;h4&gt;&lt;i class="fas fa-3" style="color: #28a745;"&gt;&lt;/i&gt; Abra o PowerShell como Administrador&lt;/h4&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Ação exata:&lt;/span&gt; Menu Iniciar → digite "PowerShell" → clique direito → "Executar como administrador" → confirme no aviso do Windows.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Por que é necessário:&lt;/span&gt; desde o Windows Vista, &lt;code&gt;C:\Program Files&lt;/code&gt; é protegida pelo sistema — qualquer gravação sem elevação é bloqueada antes mesmo de tocar no disco.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Resultado esperado:&lt;/span&gt; janela do PowerShell abrindo com "Administrador" no título.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_step_card"&gt;
  &lt;h4&gt;&lt;i class="fas fa-4" style="color: #28a745;"&gt;&lt;/i&gt; Copie a pasta do plugin para dentro da instalação&lt;/h4&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Ação exata:&lt;/span&gt; execute no PowerShell:&lt;/p&gt;
  &lt;div class="post_cqb_terminal"&gt;
Copy-Item -Recurse -Force .\tronwif\ "C:\Program Files\Electrum\_internal\electrum\plugins\tronwif\"
  &lt;/div&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;O que faz:&lt;/span&gt; cria ou substitui a pasta &lt;code&gt;tronwif&lt;/code&gt; dentro do local onde o Electrum instalado guarda os plugins.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Resultado esperado:&lt;/span&gt; nenhuma mensagem de erro. Confirme com:&lt;/p&gt;
  &lt;div class="post_cqb_terminal"&gt;
dir "C:\Program Files\Electrum\_internal\electrum\plugins\tronwif"
  &lt;/div&gt;
  &lt;div class="post_step_error"&gt;&lt;span class="post_step_label"&gt;Erro comum:&lt;/span&gt; "Acesso negado" → PowerShell não estava como Administrador; repita o passo 3. "Não é possível localizar o caminho" → sua instalação do Electrum está em outra pasta; localize com &lt;code&gt;Get-ChildItem "C:\" -Recurse -Filter "electrum.exe"&lt;/code&gt; e ajuste o caminho do comando.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_step_card"&gt;
  &lt;h4&gt;&lt;i class="fas fa-5" style="color: #28a745;"&gt;&lt;/i&gt; Abra o Electrum e valide a instalação&lt;/h4&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Ação exata:&lt;/span&gt; abra o Electrum, carregue sua carteira e confira, nesta ordem: (1) o item "TRX toolbox" no menu Carteira e (2) as abas "Endereços TRX" e "Histórico TRX" ao lado das abas originais.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Por que é necessário:&lt;/span&gt; se a senha da carteira for pedida nesse momento, é a derivação automática rodando pela primeira vez — normal, digite uma vez só.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Resultado esperado:&lt;/span&gt; a barra da aba mostra "Consultando saldos: X/N" subindo até virar "N endereços TRX · atualizado às HH:MM".&lt;/p&gt;
  &lt;div class="post_step_error"&gt;&lt;span class="post_step_label"&gt;Erro comum:&lt;/span&gt; abas não aparecem → confira em Ajuda → Sobre se a versão é exatamente 4.8.2 e repita o passo 4; em 99% dos casos é cópia incompleta dos 6 arquivos.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_img_placeholder"&gt;
  &lt;i class="fas fa-image"&gt;&lt;/i&gt;
  &lt;p&gt;[ESPAÇO PARA IMAGEM 1 — Aba "Endereços TRX" preenchida no Electrum]&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como instalar o TronWif rodando o Electrum "from source"?&lt;/h2&gt;
&lt;p&gt;Para quem roda o Electrum direto do código-fonte oficial, o processo muda: clone o repositório do Electrum, faça checkout da tag 4.8.2, copie a pasta &lt;code&gt;tronwif&lt;/code&gt; para dentro de &lt;code&gt;electrum\plugins\&lt;/code&gt; e rode com &lt;code&gt;python ./run_electrum&lt;/code&gt; — sem precisar de Administrador.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
git clone https://github.com/spesmilo/electrum.git&lt;br /&gt;
cd electrum&lt;br /&gt;
git checkout 4.8.2
&lt;/div&gt;

&lt;p&gt;Aqui está o detalhe que quase ninguém percebe: no Windows, a biblioteca &lt;code&gt;libsecp256k1&lt;/code&gt; não compila sozinha como acontece no Linux. Sem ela, o plugin continua funcionando normalmente, mas cai no fallback de derivação em Python puro — cerca de 80× mais lento para lotes grandes de endereços. Para evitar isso, rode o utilitário &lt;code&gt;contrib/make_libsecp256k1.sh&lt;/code&gt; ou baixe o wheel &lt;code&gt;electrum_ecc&lt;/code&gt; e extraia as DLLs para &lt;code&gt;packages/electrum_ecc/&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como usar a aba Endereços TRX e a aba Histórico TRX?&lt;/h2&gt;
&lt;p&gt;A aba Endereços TRX preenche sozinha ao abrir a carteira, pedindo a senha uma única vez por sessão. Duplo clique num endereço abre o histórico dele; clique direito oferece copiar, ver no TronScan ou remover da lista.&lt;/p&gt;

&lt;p&gt;E o melhor? Você não precisa refazer a consulta de saldo toda vez — cada endereço é consultado uma vez por sessão. Só clique em "Atualizar saldos" quando quiser forçar uma nova checagem. Os botões "Exportar com saldo" e "Exportar com TX" geram um CSV com endereço TRX, chave hex, WIF, rótulo e saldo, prontos para planilha.&lt;/p&gt;

&lt;div class="post_img_placeholder"&gt;
  &lt;i class="fas fa-image"&gt;&lt;/i&gt;
  &lt;p&gt;[ESPAÇO PARA IMAGEM 2 — Aba "Histórico TRX" com transações e link para o TronScan]&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como extrair as chaves privadas dos endereços Bitcoin com movimentação?&lt;/h2&gt;
&lt;p&gt;Abra a aba Endereços da carteira, clique em "Extrair chaves BTC", digite a senha se houver, e o plugin lista todos os endereços com pelo menos uma transação confirmada — cada um com WIF comprimido, WIF não-comprimido e a chave hexadecimal, prontos para copiar ou salvar em CSV.&lt;/p&gt;

&lt;div class="post_step_card"&gt;
  &lt;h4&gt;&lt;i class="fas fa-key" style="color: #28a745;"&gt;&lt;/i&gt; Extrair chaves BTC — passo a passo&lt;/h4&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Ação exata:&lt;/span&gt; aba Endereços → botão "Extrair chaves BTC" na barra de botões → senha da carteira, se ela tiver.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;O que faz:&lt;/span&gt; filtra apenas endereços com histórico confirmado e monta uma tabela com saldo, WIF comprimido (prefixo K/L), WIF não-comprimido (prefixo 5) e a chave em hexadecimal.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Por que é necessário:&lt;/span&gt; exportar só endereços com movimentação evita gerar um CSV gigante e inútil com milhares de chaves que nunca receberam fundos.&lt;/p&gt;
  &lt;p&gt;&lt;span class="post_step_label"&gt;Resultado esperado:&lt;/span&gt; diálogo com "Copiar" (área de transferência) e "Salvar CSV" (colunas &lt;code&gt;address, balance, wif_compressed, wif_uncompressed, private_key_hex&lt;/code&gt;).&lt;/p&gt;
  &lt;div class="post_step_error"&gt;&lt;span class="post_step_label"&gt;Erro comum:&lt;/span&gt; salvar esse CSV em nuvem, e-mail ou área de trabalho compartilhada. Ele contém chaves privadas em texto puro — trate como dinheiro físico, nunca como um arquivo qualquer.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_img_placeholder"&gt;
  &lt;i class="fas fa-image"&gt;&lt;/i&gt;
  &lt;p&gt;[ESPAÇO PARA IMAGEM 3 — Diálogo do botão "Extrair chaves BTC" com WIF e chave hex]&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Quais cuidados de segurança são obrigatórios antes do primeiro uso?&lt;/h2&gt;
&lt;p&gt;Trate qualquer CSV exportado como dinheiro físico, use sempre uma carteira com senha (sem senha, as chaves TRX ficam gravadas em texto puro no arquivo &lt;code&gt;default_wallet&lt;/code&gt;) e desconfie de qualquer tela que peça sua seed mnemônica — o plugin nunca pede isso.&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; O CSV exportado tem chaves privadas em texto puro. Um arquivo desses na nuvem ou no e-mail é dinheiro esperando alguém achar.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; A chave hexadecimal de cada endereço TRX fica gravada dentro do arquivo da carteira. Só é criptografada se a carteira tiver senha.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; Nenhuma tela, site ou comando do plugin pede sua seed mnemônica. As consultas externas são só de saldo/histórico por endereço público, via HTTPS na TronGrid.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; O plugin não é afiliado ao Electrum nem à Tron Foundation. Use por sua conta e risco — quem guarda as chaves é o dono delas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question" style="color: #2196f3;"&gt;&lt;/i&gt; Como atualizar ou desinstalar o TronWif?&lt;/h2&gt;
&lt;p&gt;Para atualizar, feche o Electrum e repita os passos 3 e 4 da instalação — os arquivos novos substituem os antigos automaticamente. Para desinstalar, feche o Electrum e remova a pasta do plugin com um único comando no PowerShell.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
Remove-Item -Recurse -Force "C:\Program Files\Electrum\_internal\electrum\plugins\tronwif"
&lt;/div&gt;

&lt;p&gt;Os rótulos e saldos salvos ficam gravados no arquivo da própria carteira e somem junto com o plugin — a sua carteira Bitcoin em si nunca é tocada por essa remoção.&lt;/p&gt;

&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O TronWif funciona com hardware wallet como Trezor ou Ledger?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. Hardware wallets nunca expõem a chave privada para fora do dispositivo — é justamente o modelo de segurança delas. O TronWif precisa da chave para derivar o endereço TRX, então só funciona com carteiras comuns (arquivo &lt;code&gt;.wallet&lt;/code&gt;). Veja mais sobre &lt;a href="https://www.canalqb.com.br/search?q=chaves-privadas-bitcoin" rel="noopener noreferrer" target="_blank"&gt;chaves privadas Bitcoin&lt;/a&gt; nesta série.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Minhas chaves privadas são enviadas para algum servidor?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. A única comunicação externa do plugin é HTTPS com a API pública TronGrid, e ela recebe apenas endereços públicos para consultar saldo e histórico — nunca a chave privada. Toda a derivação acontece localmente, no seu computador.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Por que a aba Endereços TRX pede a senha da carteira?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Porque derivar o endereço TRX exige acesso à chave privada de cada endereço Bitcoin, e essa chave só é lida com a senha da carteira. Isso acontece uma única vez por sessão — depois disso, tudo fica em cache até você fechar o Electrum.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O plugin funciona em qualquer versão do Electrum?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O suporte oficial é para o Electrum 4.8.2. Versões diferentes podem mudar a estrutura interna de plugins e quebrar a instalação. Confira sua versão em Ajuda → Sobre antes de instalar, e baixe sempre em &lt;a href="https://electrum.org" rel="noopener noreferrer" target="_blank"&gt;electrum.org&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;É seguro salvar o CSV com as chaves extraídas no computador?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Só se o disco estiver criptografado e fora de qualquer pasta sincronizada com nuvem, e-mail ou backup automático. O arquivo contém chaves privadas em texto puro — trate-o como dinheiro físico, apague depois de usar e nunca o compartilhe.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Por que a derivação fica 80× mais lenta em algumas instalações?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Isso acontece quando a biblioteca nativa &lt;code&gt;libsecp256k1&lt;/code&gt; não está disponível — comum em instalações "from source" no Windows. Sem ela, o plugin cai automaticamente no fallback em Python puro, que continua funcionando, só que mais devagar em lotes grandes de endereços.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;
&lt;/section&gt;

&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"O TronWif funciona com hardware wallet como Trezor ou Ledger?","acceptedAnswer":{"@type":"Answer","text":"Não. Hardware wallets nunca expõem a chave privada para fora do dispositivo, então o TronWif só funciona com carteiras Electrum comuns em arquivo .wallet."}},
{"@type":"Question","name":"Minhas chaves privadas são enviadas para algum servidor?","acceptedAnswer":{"@type":"Answer","text":"Não. A única comunicação externa é HTTPS com a API pública TronGrid, que recebe apenas endereços públicos. A derivação acontece localmente no computador do usuário."}},
{"@type":"Question","name":"Por que a aba Endereços TRX pede a senha da carteira?","acceptedAnswer":{"@type":"Answer","text":"Porque derivar o endereço TRX exige acesso à chave privada Bitcoin de cada endereço, lida com a senha da carteira uma única vez por sessão."}},
{"@type":"Question","name":"O plugin funciona em qualquer versão do Electrum?","acceptedAnswer":{"@type":"Answer","text":"O suporte oficial é para o Electrum 4.8.2. Outras versões podem ter estrutura interna diferente e quebrar a instalação do plugin."}},
{"@type":"Question","name":"É seguro salvar o CSV com as chaves extraídas no computador?","acceptedAnswer":{"@type":"Answer","text":"Só em disco criptografado e fora de pastas sincronizadas com nuvem. O CSV contém chaves privadas em texto puro e deve ser tratado como dinheiro físico."}},
{"@type":"Question","name":"Por que a derivação fica 80x mais lenta em algumas instalações?","acceptedAnswer":{"@type":"Answer","text":"Quando a biblioteca nativa libsecp256k1 não está disponível, o plugin usa um fallback em Python puro, mais lento em lotes grandes de endereços."}}
]}
&lt;/script&gt;

&lt;p style="border-top: 1px solid rgb(224, 224, 224); color: #555555; font-size: 0.9em; margin-top: 30px; padding-top: 20px;"&gt;
  &lt;i class="fas fa-book"&gt;&lt;/i&gt; &lt;strong&gt;Fontes e Referências:&lt;/strong&gt;&lt;br /&gt;
  &lt;a href="https://github.com/canalqb/tronwif-plugin" rel="noopener noreferrer" target="_blank"&gt;Repositório oficial do TronWif no GitHub&lt;/a&gt;&lt;br /&gt;
  &lt;a href="https://electrum.org" rel="noopener noreferrer" target="_blank"&gt;Electrum Bitcoin Wallet — site oficial&lt;/a&gt;&lt;br /&gt;
  &lt;a href="https://trongrid.io" rel="noopener noreferrer" target="_blank"&gt;TronGrid — API pública da rede Tron&lt;/a&gt;
&lt;/p&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"TronWif no Electrum: Extraia Chaves BTC com 1 Clique",
  "description":"Plugin TRX para Electrum 4.8.2: deriva endereços Tron das chaves Bitcoin e exporta chaves privadas dos endereços com movimentação, sem enviar dados sensíveis para fora do computador.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-20","dateModified":"2026-09-20",
  "mainEntityOfPage":"https://www.canalqb.com.br/tronwif-electrum-plugin-trx",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-code-branch" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Gostou do TronWif?&lt;/strong&gt; O código-fonte completo está aberto no
    &lt;a href="https://github.com/canalqb/tronwif-plugin" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;GitHub do @CanalQb&lt;/a&gt;
    — dúvidas, sugestões ou bugs, abra uma issue por lá. Mais tutoriais assim no
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEiBXRsMBdeocxkufKU--RFqiCHwS-vYABdcJgBu5P_Wz6xE1O8o5HupA5sENKtTHTZoh5Hb_phx4pTxd8K2EcSEYmxBJK9In6re-G2selGmuMwCwtemE00JLQvlzflIxGM-n1aA7KusMAasp4v1Fk1e3JvKwh-dluqYiSUsT9G4KaTJE-Qek8gDpyNGPfRU=s72-c" width="72"/></item><item><title>Certificação de Apps: o Checklist Completo 2026</title><link>https://canalqb.blogspot.com/2026/09/certificacao-de-apps-o-checklist.html</link><category>Certificações</category><category>Compliance</category><category>Desenvolvimento de Apps</category><category>LGPD</category><category>OWASP</category><category>Segurança</category><category>Tecnologia</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sun, 20 Sep 2026 22:36:11 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-861436964507761866</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEgOy7Qbm8bqyQaghNcYy9L2benedui7rwy-9CAep3hh97ApKu8fhA2f9_S95HN93Jp5WFj-YXIcbNktciNNZTgYEycObOHwrmBHmSdj0cmBHqxyUb3HJyUjeZD3fK2WtwavlXlfuA4AYvpsro08-Qq_FeuHePKcV9vdGdKmFxoC2CttVyCOyTdVvtrEqBUb" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Certificação de Apps: o Checklist Completo 2026&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_readtime{display:inline-flex;align-items:center;gap:8px;background:rgba(40,167,69,0.1);color:#28a745;padding:6px 14px;border-radius:20px;font-size:0.85em;font-weight:600;margin:10px auto;justify-content:center}
.post_cqb_tldr{background:rgba(33,150,243,0.08);border-left:4px solid #2196f3;padding:18px 20px;border-radius:8px;margin:20px 0}
.post_cqb_tldr h2{margin-top:0;font-size:1.1em;color:#2196f3;display:flex;align-items:center;gap:8px}
.post_cqb_tldr ul{margin:10px 0 0;padding-left:20px;color:#333}
.post_cqb_tldr li{margin-bottom:6px;line-height:1.5}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;position:relative;margin:16px 0}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .post_cqb_comment{color:#888!important}
.post_copy_btn{position:absolute;top:10px;right:10px;background:#333;color:#fff;border:none;padding:6px 10px;border-radius:6px;cursor:pointer;font-size:0.8em;display:flex;align-items:center;gap:6px}
.post_copy_btn:hover{background:#28a745}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:10px;padding:10px 0;font-size:.95em;color:#555;line-height:1.6;border-bottom:1px solid #eee}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_checklist li strong{color:#333}
.post_faq_container{margin:30px 0}
.post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background 0.2s}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6}
.post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745}
.post_erro_comum{background:rgba(255,193,7,0.12);border-left:4px solid #ffc107;padding:12px 15px;border-radius:6px;color:#555;font-size:0.9em;margin:15px 0}
.post_progress_bar{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width 0.1s;z-index:9999}
.post_cqb_refs{font-size:0.9em;color:#555}
.post_cqb_refs a{color:#2196f3}
@media (prefers-color-scheme: dark){
  .post_cqb_tldr{background:rgba(33,150,243,0.15)}
  .post_cqb_tldr ul{color:#ddd}
  .post_faq_question{background:#1e1e1e;color:#eee}
  .post_faq_answer{background:#121212;color:#ccc}
  .post_erro_comum{color:#ddd}
}
@media (prefers-reduced-motion: reduce){
  .post_progress_bar,.post_faq_question{transition:none}
}
&lt;/style&gt;

&lt;div class="post_progress_bar" id="postCqbProgressBar"&gt;&lt;/div&gt;

&lt;p style="text-align: center;"&gt;
  &lt;span class="post_cqb_readtime"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~22 min&lt;/span&gt;
&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;h2&gt;&lt;i class="fas fa-list-check"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;O esqueleto de validação completo cobre 10 dimensões — rede, autenticação, periféricos, dados e governança — não apenas segurança isolada.&lt;/li&gt;
    &lt;li&gt;Nenhuma certificação sozinha (ISO 27001, SOC 2, PCI DSS) comprova desempenho, usabilidade ou precisão de dados; cada uma cobre uma fatia específica do problema.&lt;/li&gt;
    &lt;li&gt;Apps que usam Bluetooth, NFC ou Wi-Fi no Brasil precisam de homologação da Anatel por lei — um item que checklists genéricos de segurança quase sempre esquecem.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Certificação de Apps: o Checklist Completo 2026" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Os exemplos de comando, critérios de auditoria e comparações de certificações deste post têm fins exclusivamente educacionais. Execute testes de validação em ambiente controlado, nunca diretamente em produção sem autorização formal. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes de testes mal planejados.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;ISO 27001, pentest e HTTPS juntos ainda deixam 60% da validação de um app incompleta.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;A maioria dos checklists de "app seguro" trata rede, autenticação, hardware e dados como blocos separados. Na prática, eles só funcionam quando avaliados juntos — um app pode ter TLS perfeito e ainda assim vazar dados por um periférico sem certificação, ou ter ISO 27001 na empresa e um token que nunca expira dentro do código.&lt;/p&gt;
&lt;p&gt;Neste guia, montamos o esqueleto completo — da homologação de rede ao RPC de blockchain — que usamos aqui no @CanalQb para aprovar (ou reprovar) um aplicativo antes de recomendá-lo ou de colocá-lo em produção. É o mesmo roteiro que aplicamos nos nossos próprios projetos, incluindo apps que conversam com hardware físico via Bluetooth.&lt;/p&gt;

&lt;h2 id="seguranca"&gt;O que realmente torna um aplicativo "seguro" segundo padrões internacionais?&lt;/h2&gt;
&lt;p&gt;Segurança não é um selo único: é a soma de comunicação criptografada, autenticação e autorização robustas, assinatura de código verificável, testes independentes de vulnerabilidade e um processo formal de correção de falhas. Um app só é considerado seguro quando esses cinco pilares são comprovados juntos, nunca isoladamente.&lt;/p&gt;
&lt;p&gt;TLS 1.2 ou 1.3 bem configurado é o mínimo, mas não basta sozinho. HTTPS ativo garante apenas que os dados trafegam criptografados entre o app e o servidor — ele não valida se a API por trás aceita qualquer token, se o banco de dados está exposto na internet ou se o código foi adulterado antes de chegar à loja de aplicativos. Por isso tratamos "tem HTTPS" como o primeiro item de uma lista de dez, nunca como resposta final.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;OWASP MASVS&lt;/strong&gt; (Mobile Application Security Verification Standard) e o &lt;strong&gt;OWASP ASVS&lt;/strong&gt; (Application Security Verification Standard) são as referências técnicas mais usadas hoje para verificar controles de segurança em apps móveis e em aplicações web/API, respectivamente. Eles funcionam como um roteiro de perguntas objetivas — o armazenamento local está criptografado? A API valida autorização em cada endpoint, não só autenticação? — que qualquer desenvolvedor consegue responder sim ou não, item por item, sem depender de opinião subjetiva.&lt;/p&gt;
&lt;p&gt;Um &lt;strong&gt;pentest independente&lt;/strong&gt;, feito por profissional ou empresa fora do time que desenvolveu o app, é o teste que efetivamente tenta quebrar o que a documentação promete. A diferença entre "declarar seguro" e "testar seguro" está exatamente aqui: um relatório de pentest com escopo definido mostra quais vulnerabilidades foram encontradas, qual a severidade de cada uma e se foram corrigidas. Sem esse documento, qualquer afirmação de segurança é apenas promessa.&lt;/p&gt;
&lt;p&gt;Assinatura de aplicativo — certificado de assinatura de APK/AAB no Android, notarização e assinatura de desenvolvedor no iOS/macOS, ou assinatura Authenticode em executáveis Windows — comprova que o binário instalado pelo usuário é exatamente o que o desenvolvedor publicou, sem alteração no caminho. Sem isso, um app pode ser clonado, modificado com código malicioso embutido e redistribuído com o mesmo nome, e o usuário não tem como perceber a diferença antes de instalar.&lt;/p&gt;
&lt;p&gt;Gestão de segredos significa que nenhuma chave de API, token de acesso ou senha de banco de dados deve estar fixa dentro do código do aplicativo — um erro que aparece com frequência assustadora mesmo em apps corporativos, porque basta descompilar o APK para expor a chave. Processo de atualização define se, quando uma vulnerabilidade é descoberta, existe um caminho formal e rápido para corrigi-la e forçar a atualização nos dispositivos, em vez de deixar a falha aberta indefinidamente.&lt;/p&gt;

&lt;h2 id="rede"&gt;Quais certificações de rede e conectividade um app precisa ter?&lt;/h2&gt;
&lt;p&gt;Na camada de rede, o essencial é TLS 1.2/1.3 bem configurado, validação correta de certificado e hostname, proteção contra ataques man-in-the-middle, autorização por endpoint nas APIs e gestão adequada de chaves. Para hardware que transmite via rádio no Brasil — Bluetooth, Wi-Fi, NFC — soma-se a homologação obrigatória da Anatel.&lt;/p&gt;
&lt;p&gt;Verificar "tem TLS" não é suficiente: é preciso confirmar qual versão e quais cifras estão habilitadas, porque servidores mal configurados ainda aceitam TLS 1.0/1.1, considerados obsoletos e vulneráveis. Um teste rápido e reproduzível que usamos aqui no @CanalQb antes de aprovar a camada de rede de qualquer app é rodar o comando abaixo contra a API que o aplicativo consome:&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
&lt;button class="post_copy_btn" data-copy="openssl s_client -connect api.suaapi.com.br:443 -tls1_2" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
&lt;span class="post_cqb_comment"&gt;# Testa handshake TLS 1.2 diretamente com o servidor&lt;/span&gt;&lt;br /&gt;
openssl s_client -connect api.suaapi.com.br:443 -tls1_2
&lt;/div&gt;

&lt;p&gt;Esse comando força uma conexão TLS 1.2 diretamente com o servidor e devolve a cadeia completa de certificados, o protocolo negociado e a cifra escolhida. O resultado esperado é um handshake bem-sucedido, com "Verify return code: 0 (ok)" e um certificado válido, não expirado, emitido para o domínio correto.&lt;/p&gt;
&lt;p class="post_erro_comum"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; se a conexão falhar com "wrong version number" ou o certificado aparecer como self-signed em produção, a camada de rede reprova imediatamente — não importa o que o resto do app faça bem. Não avance para os próximos itens do checklist até corrigir isso.&lt;/p&gt;
&lt;p&gt;Validação de hostname é o passo que impede o app de aceitar um certificado válido, mas emitido para outro domínio — falha comum em bibliotecas HTTP mal configuradas que silenciam avisos de certificado só para "funcionar" durante o desenvolvimento e acabam indo para produção do mesmo jeito. Sem essa validação, um ataque man-in-the-middle em uma rede Wi-Fi pública consegue interceptar e ler todo o tráfego do app, mesmo com HTTPS ativo.&lt;/p&gt;
&lt;p&gt;Autenticação prova quem é o usuário; autorização prova o que ele pode fazer — confundir os dois é um dos erros mais comuns em validação de rede. Uma API pode exigir login perfeitamente e ainda assim permitir que qualquer usuário autenticado acesse dados de outro usuário só trocando um ID na URL, a chamada falha de autorização conhecida como IDOR. Testar isso exige tentar acessar recursos de outra conta propositalmente durante o pentest, não apenas confirmar que o login funciona.&lt;/p&gt;
&lt;p&gt;Para aplicativos que se comunicam com periféricos via Bluetooth, Wi-Fi ou NFC — caso do nosso próprio gerenciador de impressoras Zebra, por exemplo — a validação de rede não para na API. O equipamento físico precisa ter homologação da Anatel, obrigatória por lei para qualquer produto que emita radiofrequência no Brasil, além de certificação do Bluetooth SIG ou da Wi-Fi Alliance quando aplicável. Sem a homologação, o próprio equipamento é ilegal de comercializar no país — um detalhe que checklists genéricos de segurança de app simplesmente não cobrem, porque tratam tudo como se fosse só software.&lt;/p&gt;
&lt;p&gt;Gestão de chaves e segredos na camada de rede significa usar um cofre dedicado — AWS KMS, Google Cloud KMS, HashiCorp Vault ou equivalente — em vez de variáveis de ambiente soltas ou arquivos de configuração versionados no Git. O erro comum aqui é rotacionar a chave manualmente uma vez e esquecer: sem rotação automática programada, uma chave vazada continua válida indefinidamente até alguém perceber o vazamento, o que geralmente acontece tarde demais.&lt;/p&gt;

&lt;h2 id="autenticadores"&gt;Autenticadores e tokens: o que precisa ser validado de verdade?&lt;/h2&gt;
&lt;p&gt;Validar autenticadores exige confirmar três coisas: se o app aplica autenticação multifator de verdade, se os tokens (JWT, OAuth) expiram e são assinados corretamente, e se biometria e passkeys seguem o padrão FIDO2/WebAuthn. Token que nunca expira ou chave salva em texto puro reprovam a validação imediatamente.&lt;/p&gt;
&lt;p&gt;Autenticação multifator "de verdade" significa mais do que enviar um código por SMS — SMS OTP é vulnerável a SIM swap e interceptação, e por isso normas mais recentes recomendam TOTP (aplicativos autenticadores) ou, melhor ainda, FIDO2/WebAuthn como segundo fator. A diferença prática é grande: um MFA baseado em SMS pode ser contornado com engenharia social sobre a operadora, enquanto um passkey FIDO2 fica vinculado criptograficamente ao dispositivo físico do usuário.&lt;/p&gt;
&lt;p&gt;Tokens JWT precisam ser validados no backend em toda requisição — não apenas decodificados no app para exibir informação. Isso inclui checar assinatura com algoritmo forte (RS256 em vez de aceitar "none" ou HS256 com chave fraca), validar &lt;code&gt;issuer&lt;/code&gt;, &lt;code&gt;audience&lt;/code&gt; e expiração, e nunca confiar em dado sensível carregado dentro do payload sem essa verificação no servidor.&lt;/p&gt;
&lt;p class="post_erro_comum"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; apps que usam Implicit Flow do OAuth2 (token exposto diretamente na URL de retorno) em vez de Authorization Code + PKCE, o fluxo recomendado atualmente para aplicativos móveis e SPAs. Se você encontrar isso em auditoria, é reprovação automática no item de autenticação.&lt;/p&gt;
&lt;p&gt;Armazenamento do token no dispositivo também entra na validação: no Android, o lugar correto é o Keystore; no iOS, o Keychain — nunca SharedPreferences ou UserDefaults em texto puro, que qualquer app com acesso root/jailbreak consegue ler. E refresh tokens de longa duração precisam de mecanismo de revogação: se o usuário troca de senha ou reporta o dispositivo como roubado, o token antigo precisa parar de funcionar imediatamente, não "algum dia" quando expirar sozinho.&lt;/p&gt;

&lt;h2 id="fontes-perifericos"&gt;Fontes de dados, APIs e periféricos: como validar o que o app consome e conecta?&lt;/h2&gt;
&lt;p&gt;A confiabilidade de um app depende da procedência dos dados que ele exibe e dos periféricos aos quais se conecta. Isso significa validar a origem e a integridade das respostas de API, exigir drivers assinados para hardware conectado, e confirmar certificação formal — Bluetooth SIG, USB-IF ou homologação Anatel — de qualquer periférico físico.&lt;/p&gt;
&lt;p&gt;Procedência de dados (data provenance) significa saber, para cada informação exibida na tela, de qual fonte ela veio, quando foi obtida e se pode ser reproduzida. Uma boa prática é manter casos de referência conhecidos — por exemplo, "consulta X deve sempre retornar valor Y" — e rodar esses casos automaticamente a cada nova versão do app, comparando o resultado com uma fonte independente. Se o resultado diverge sem explicação de arquitetura ou de momento da consulta, há um problema de integridade de dado, não um bug cosmético.&lt;/p&gt;
&lt;p&gt;Entre serviços internos, mTLS (TLS mútuo, onde cliente e servidor se autenticam mutuamente por certificado) evita que um serviço comprometido dentro da própria infraestrutura consiga se passar por outro. É um item frequentemente esquecido porque "já estamos dentro da rede interna" — exatamente a suposição que ataques laterais exploram.&lt;/p&gt;
&lt;p&gt;Para periféricos físicos, drivers assinados evitam que um driver malicioso ou instável seja instalado silenciosamente — no Windows, isso é o programa WHQL (Windows Hardware Quality Labs). Certificação Bluetooth SIG garante que o periférico segue o protocolo corretamente e é interoperável com diferentes implementações; USB-IF cumpre o mesmo papel para dispositivos USB; e, no Brasil, homologação Anatel é exigência legal para qualquer equipamento que emita radiofrequência, de leitor NFC a impressora com Bluetooth embutido.&lt;/p&gt;
&lt;p&gt;No desenvolvimento do nosso app de gerenciamento de impressoras Zebra, aprendemos isso na prática: pareamento Bluetooth bem-sucedido não significa comunicação validada. É perfeitamente possível parear com o periférico e mesmo assim enviar comandos ZPL ou SGD que a impressora recebe, mas não interpreta como esperado por incompatibilidade de firmware. A validação real exige checar o retorno físico do equipamento — a etiqueta saiu, o comando de status respondeu o esperado — e não apenas o status da conexão Bluetooth reportado pelo sistema operacional.&lt;/p&gt;

&lt;h2 id="certificacoes-corporativas"&gt;Quais certificações corporativas (ISO, SOC 2, PCI DSS) realmente importam — e quando exigir cada uma?&lt;/h2&gt;
&lt;p&gt;ISO 27001 certifica o sistema de gestão de segurança da organização, não o aplicativo em si. SOC 2 Type II comprova controles operacionais ao longo de um período observado. PCI DSS só é obrigatório se o app processa, armazena ou transmite dados de cartão. LGPD é lei, não certificação — mas exige conformidade de qualquer app que trate dados pessoais de usuários no Brasil.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ISO/IEC 27001&lt;/strong&gt; avalia se a empresa por trás do app tem um Sistema de Gestão de Segurança da Informação formal — políticas, gestão de risco, resposta a incidentes — mas não garante, por si só, que uma tela específica do app não tenha uma falha de autorização. Já &lt;strong&gt;ISO/IEC 27017&lt;/strong&gt; e &lt;strong&gt;27018&lt;/strong&gt; são extensões voltadas a segurança em nuvem e proteção de dados pessoais em nuvem, respectivamente, relevantes quando o app depende de infraestrutura cloud de terceiros.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;SOC 2 Type II&lt;/strong&gt; é um relatório de auditoria independente, muito exigido por clientes corporativos americanos antes de fechar contrato com um fornecedor de tecnologia, porque avalia controles ao longo de meses — não uma foto única do dia da auditoria, como acontece em alguns selos pontuais.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;PCI DSS&lt;/strong&gt; entra em cena apenas quando o app lida diretamente com dados de cartão de crédito; se o pagamento é 100% delegado a um gateway terceirizado que já é certificado (Stripe, PagSeguro, Mercado Pago), o escopo de PCI DSS do próprio app tende a ser bem menor. E a &lt;strong&gt;LGPD&lt;/strong&gt; não é uma certificação que se "obtém" — é uma obrigação legal contínua: qualquer app brasileiro que colete nome, e-mail, CPF, localização ou qualquer dado pessoal precisa de base legal, política de privacidade clara e mecanismo de exclusão de dados, independentemente do porte da empresa.&lt;/p&gt;
&lt;p&gt;O erro mais comum aqui é tratar "temos ISO 27001" como sinônimo de "o app é seguro e está em conformidade com tudo". São coisas relacionadas, mas não equivalentes — um pentest ruim pode acontecer dentro de uma empresa perfeitamente certificada em ISO 27001, porque a norma avalia processo organizacional, não cada linha de código.&lt;/p&gt;

&lt;h2 id="desempenho"&gt;Como comprovar que um app é rápido e leve sem depender de certificados?&lt;/h2&gt;
&lt;p&gt;Não existe certificado oficial de desempenho. A prova precisa vir de benchmark reproduzível: tempo de inicialização abaixo de 2 segundos, uso de CPU e RAM medidos em P95, consumo de bateria registrado e separação clara entre lentidão do próprio app, da API/banco de dados e de serviços externos consultados, como blockchain.&lt;/p&gt;
&lt;p&gt;A norma &lt;strong&gt;ISO/IEC 25010&lt;/strong&gt; é uma referência útil aqui — não como certificado, mas como modelo de qualidade de software que define características mensuráveis de eficiência de desempenho, como comportamento em relação ao tempo e utilização de recursos. Ela dá vocabulário técnico ao que precisa ser medido, mas quem prova o número é o benchmark, não a norma.&lt;/p&gt;
&lt;p&gt;Separar a lentidão em três camadas evita culpar o app por um problema que não é dele: desempenho do aplicativo (CPU, RAM, tempo de inicialização, GPU), desempenho da camada de dados (tempo de consulta, cache, indexação do banco local) e desempenho de serviços externos (latência de RPC blockchain, disponibilidade de nó, tempo de confirmação). Em apps de consulta que já testamos por aqui, boa parte das reclamações de "app lento" na verdade era gargalo de uma API de terceiros — só ficou claro depois que esses três níveis passaram a ser medidos separadamente, em vez de um único cronômetro "tempo total da tela".&lt;/p&gt;
&lt;p&gt;Como requisito formal de contratação ou homologação interna, vale exigir um relatório com CPU média e P95/P99, memória RAM média e pico, tempo de inicialização, tempo de resposta P50/P95/P99, quantidade de chamadas de API/RPC, volume de dados transferido, consumo de bateria e comportamento do app após várias horas de execução contínua — não apenas "rodou bem no meu celular".&lt;/p&gt;

&lt;h2 id="usabilidade"&gt;O que garante que um app seja intuitivo e acessível de verdade?&lt;/h2&gt;
&lt;p&gt;Não existe certificado de "app intuitivo". Existem normas de referência — ISO 9241 para ergonomia da interação, ISO/IEC 25010 para qualidade de usabilidade e WCAG 2.2 para acessibilidade — combinadas com testes reais, em que usuários representativos tentam completar tarefas específicas sem treinamento prévio.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;ISO 9241&lt;/strong&gt; é uma série de normas sobre ergonomia da interação humano-sistema; a parte mais citada em usabilidade define critérios como eficácia, eficiência e satisfação do usuário ao realizar uma tarefa — não é sobre estética, é sobre se a pessoa consegue terminar o que veio fazer. Já a &lt;strong&gt;WCAG 2.2&lt;/strong&gt;, mantida pelo W3C, é hoje a referência internacional de acessibilidade digital, cobrindo contraste mínimo de 4,5:1 para texto normal, navegação completa por teclado, &lt;code&gt;alt&lt;/code&gt; em imagens e &lt;code&gt;aria-label&lt;/code&gt; em botões sem texto visível.&lt;/p&gt;
&lt;p&gt;Em contextos institucionais ou de contratação pública no Brasil e na Europa, a norma &lt;strong&gt;EN 301 549&lt;/strong&gt; costuma aparecer como requisito de acessibilidade para produtos e serviços de TIC — vale a pena checar se o edital ou contrato específico exige isso antes de assumir que WCAG sozinho basta.&lt;/p&gt;
&lt;p&gt;Para apps de análise de dados e painéis (dashboards, exploradores de blockchain, ferramentas de BI), a usabilidade ganha exigências específicas: mostrar claramente qual rede ou base está sendo consultada, exibir a data/hora da última atualização, diferenciar visualmente dado confirmado de dado pendente ou estimado, e permitir copiar valores longos — como endereço de carteira ou hash de transação — sem erro de seleção manual. Um teste de usabilidade simples e barato é pedir para alguém de fora do time completar uma tarefa real do app, cronometrar e anotar onde ela travou; isso revela mais problema em 20 minutos do que qualquer checklist de estética.&lt;/p&gt;

&lt;h2 id="blockchain"&gt;Blockchain e apps de análise on-chain: quais validações são exclusivas desse tipo de app?&lt;/h2&gt;
&lt;p&gt;Apps que consultam blockchain precisam validar a identidade da rede consultada (mainnet ou testnet), a integridade dos dados recebidos do nó/RPC, o hash e a altura do bloco de referência, e como o sistema trata reorganizações de cadeia e nós indisponíveis — pontos que checklists genéricos de app simplesmente não cobrem.&lt;/p&gt;
&lt;p&gt;Identificação inequívoca da rede na interface é o primeiro item, e o mais frequentemente negligenciado: o app precisa deixar visualmente óbvio se está mostrando dados de mainnet ou de testnet, porque confundir os dois já causou perda real de fundos em outros produtos do mercado — o usuário acha que está vendo saldo real quando é saldo de rede de teste, ou vice-versa.&lt;/p&gt;
&lt;p&gt;Validação de integridade envolve conferir hash de bloco e de transação contra o valor retornado, registrar a altura do bloco (block height) usada como referência em cada consulta e guardar timestamp de quando a consulta foi feita — isso permite reconstruir, meses depois, exatamente qual era o estado da chain no momento em que um dado foi exibido, essencial se um usuário questionar um valor.&lt;/p&gt;
&lt;p class="post_erro_comum"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; tratar uma reorganização de cadeia (reorg) como se nunca fosse acontecer. Um app que exibe uma transação como "confirmada" sem considerar reorg pode mostrar informação que deixa de ser verdadeira minutos depois — a mitigação padrão é só considerar "confirmado" após um número mínimo de blocos subsequentes, variável conforme a rede.&lt;/p&gt;
&lt;p&gt;Por fim, tratamento de falha de RPC e de nó indisponível precisa ter plano B: múltiplos provedores de RPC configurados com failover automático, e uma mensagem clara na interface quando o dado exibido não é o mais recente possível, em vez de mostrar um número desatualizado como se fosse atual.&lt;/p&gt;

&lt;h2 id="esqueleto"&gt;O esqueleto definitivo de validação: quais são as 10 dimensões de um checklist completo?&lt;/h2&gt;
&lt;p&gt;Um checklist de validação completo cobre dez dimensões interligadas: segurança, desempenho, usabilidade/acessibilidade, precisão de dados, validação de rede e periféricos, blockchain quando aplicável, confiabilidade, compatibilidade, privacidade/LGPD e auditoria/governança. Nenhuma dimensão isolada substitui as outras — um app só está validado quando todas passam juntas.&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-shield-halved" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Segurança:&lt;/strong&gt; TLS correto, OWASP MASVS/ASVS, pentest independente, assinatura de código, gestão de segredos e processo de correção de vulnerabilidades ativo.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-gauge-high" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Desempenho:&lt;/strong&gt; CPU/RAM em P95, tempo de inicialização, consumo de bateria e latência separada por camada (app, dados, serviços externos).&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-universal-access" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Usabilidade e acessibilidade:&lt;/strong&gt; ISO 9241, ISO/IEC 25010, WCAG 2.2 e teste real com usuário completando tarefas concretas.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-database" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Precisão de dados:&lt;/strong&gt; casos de referência conhecidos, comparação com fonte independente e rastreabilidade de cada valor exibido.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-network-wired" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Rede e periféricos:&lt;/strong&gt; validação de certificado/hostname, proteção MITM, homologação Anatel e certificação Bluetooth SIG/USB-IF quando há hardware físico.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-cubes" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Blockchain (quando aplicável):&lt;/strong&gt; identificação de rede, integridade de hash/bloco, tratamento de reorg e failover de RPC.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-server" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Confiabilidade:&lt;/strong&gt; disponibilidade, recuperação de falhas, backup, monitoramento, alertas e SLA definido.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-mobile-screen-button" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Compatibilidade:&lt;/strong&gt; matriz oficial de dispositivos, sistemas operacionais e condições de rede testadas.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-user-shield" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Privacidade e LGPD:&lt;/strong&gt; base legal, minimização de dados, retenção definida e mecanismo de exclusão.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-clipboard-list" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Auditoria e governança:&lt;/strong&gt; documentação técnica, SBOM, controle de versões e histórico de vulnerabilidades corrigidas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para cada uma dessas dez dimensões, o formato de aprovação que usamos aqui no @CanalQb sempre define quatro colunas: critério de aprovação, método de teste, evidência exigida e resultado. Isso transforma "o app parece bom" em algo verificável — e é essa diferença que separa uma validação de verdade de uma lista de boas intenções.&lt;/p&gt;

&lt;p&gt;Para referências relacionadas no nosso acervo, veja também nossos conteúdos sobre &lt;a href="https://www.canalqb.com.br/search?q=seguran%C3%A7a" rel="noopener noreferrer" target="_blank"&gt;segurança de aplicativos&lt;/a&gt;, &lt;a href="https://www.canalqb.com.br/search?q=automa%C3%A7%C3%A3o" rel="noopener noreferrer" target="_blank"&gt;automação de testes&lt;/a&gt; e &lt;a href="https://www.canalqb.com.br/search?q=testnet" rel="noopener noreferrer" target="_blank"&gt;testnets de blockchain&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
&lt;div class="post_faq_container"&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Existe um certificado único que garanta que um app é totalmente seguro?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não. Segurança de aplicativo é resultado de vários controles somados — TLS bem configurado, OWASP MASVS/ASVS aplicado, pentest independente, assinatura de código válida e processo de correção de vulnerabilidades ativo — e não existe um único selo que comprove tudo isso de uma vez. Empresas que apresentam apenas "temos certificado X" sem relatório de pentest, por exemplo, ainda deixam um espaço grande sem comprovação real. A abordagem mais confiável é combinar certificação organizacional (como ISO 27001), teste técnico independente (pentest) e evidência de processo contínuo (correção de vulnerabilidades e atualizações), tratando cada um como peça de um quebra-cabeça maior, nunca como resposta isolada e suficiente.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; ISO 27001 é obrigatória para todo aplicativo?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não é obrigatória por lei para a maioria dos aplicativos no Brasil, mas costuma ser exigida por clientes corporativos, parceiros e processos de compras (RFPs) como evidência de que a empresa por trás do app tem um sistema de gestão de segurança da informação formal. Ela certifica processo organizacional — política de segurança, gestão de risco, resposta a incidentes — e não audita linha por linha o código do aplicativo. Para um app de uso pessoal ou de pequeno porte, geralmente faz mais sentido investir primeiro em OWASP MASVS/ASVS e um pentest pontual, que têm custo menor e impacto mais direto na segurança técnica do produto, deixando ISO 27001 para o momento em que a empresa precisa fechar contratos que exigem essa certificação.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Qual certificação é essencial para apps que se conectam a periféricos via Bluetooth no Brasil?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Dois níveis diferentes de certificação entram em jogo aqui. No nível do protocolo, a certificação do Bluetooth SIG garante que o periférico implementa o padrão corretamente e é interoperável com diferentes dispositivos e sistemas operacionais. No nível regulatório brasileiro, a homologação da Anatel é obrigatória por lei para qualquer equipamento que emita radiofrequência no país — Bluetooth, Wi-Fi ou NFC incluídos — e comercializar um periférico sem essa homologação é ilegal, independentemente de o software do app estar perfeito. Vale checar o número de homologação Anatel do equipamento antes de integrar oficialmente um periférico ao seu aplicativo, algo que costuma ficar de fora de checklists de segurança focados só em software.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Como validar se os dados de um app de análise blockchain estão corretos?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;O método mais confiável é criar uma bateria de casos de referência conhecidos — por exemplo, um endereço específico com saldo, histórico de transações e bloco de referência já verificados manualmente — e comparar o que o app retorna com essas referências a cada nova versão. Além disso, é preciso registrar qual rede foi consultada (mainnet ou testnet), qual nó/RPC respondeu, em qual altura de bloco a consulta foi feita e o timestamp exato, permitindo reconstruir depois exatamente por que um determinado valor apareceu na tela. Sem esse tipo de rastreabilidade, é praticamente impossível diferenciar um erro de exibição de uma divergência legítima causada por reorganização de cadeia ou atraso de sincronização do nó consultado.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Pentest é obrigatório antes de publicar um aplicativo?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não existe uma lei geral no Brasil que exija pentest para publicar qualquer aplicativo, mas ele é fortemente recomendado sempre que o app lida com dados pessoais, autenticação de usuários, dados financeiros ou qualquer informação sensível — e é frequentemente exigido contratualmente em setores como fintech, saúde e órgãos públicos. Um pentest bem escopado revela exatamente as falhas que testes automatizados costumam não encontrar, como problemas de autorização (um usuário acessando dados de outro) ou lógica de negócio explorável. Tratar o pentest como etapa opcional "se sobrar orçamento" costuma sair mais caro depois, quando a vulnerabilidade é descoberta em produção — e nesse ponto o custo já envolve resposta a incidente, comunicação a usuários e, dependendo do caso, obrigações da LGPD.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; WCAG 2.2 é uma exigência legal no Brasil?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;A WCAG 2.2 em si é uma recomendação técnica internacional do W3C, não uma lei brasileira, mas ela é referenciada como base técnica em normas de acessibilidade nacionais e em contratações públicas, especialmente quando combinada com a norma EN 301 549 em contextos que envolvem instituições públicas ou parceiros europeus. Na prática, seguir WCAG 2.2 é a forma mais direta de reduzir risco legal e de exclusão de usuários, já que ela cobre desde contraste de cores até navegação completa por teclado e compatibilidade com leitores de tela. Para aplicativos brasileiros sem obrigação contratual explícita, tratar WCAG 2.2 como boa prática de mercado — em vez de exigência pontual — costuma evitar retrabalho caro quando a acessibilidade se torna um requisito mais adiante.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"FAQPage",
  "mainEntity":[
    {"@type":"Question","name":"Existe um certificado único que garanta que um app é totalmente seguro?","acceptedAnswer":{"@type":"Answer","text":"Não. Segurança é resultado de vários controles somados — TLS, OWASP MASVS/ASVS, pentest independente, assinatura de código e processo de correção de vulnerabilidades — combinados, nunca um selo isolado."}},
    {"@type":"Question","name":"ISO 27001 é obrigatória para todo aplicativo?","acceptedAnswer":{"@type":"Answer","text":"Não por lei na maioria dos casos, mas é frequentemente exigida por clientes corporativos. Ela certifica o processo organizacional de segurança da empresa, não audita o código do app linha por linha."}},
    {"@type":"Question","name":"Qual certificação é essencial para apps que se conectam a periféricos via Bluetooth no Brasil?","acceptedAnswer":{"@type":"Answer","text":"Certificação Bluetooth SIG no nível de protocolo e homologação da Anatel no nível regulatório brasileiro, obrigatória por lei para qualquer equipamento que emita radiofrequência no país."}},
    {"@type":"Question","name":"Como validar se os dados de um app de análise blockchain estão corretos?","acceptedAnswer":{"@type":"Answer","text":"Criando casos de referência conhecidos e comparando o retorno do app com eles, registrando rede, nó/RPC, altura de bloco e timestamp de cada consulta para rastreabilidade."}},
    {"@type":"Question","name":"Pentest é obrigatório antes de publicar um aplicativo?","acceptedAnswer":{"@type":"Answer","text":"Não há lei geral exigindo, mas é fortemente recomendado para apps com dados pessoais, financeiros ou de autenticação, e frequentemente exigido contratualmente em fintech, saúde e órgãos públicos."}},
    {"@type":"Question","name":"WCAG 2.2 é uma exigência legal no Brasil?","acceptedAnswer":{"@type":"Answer","text":"É uma recomendação técnica internacional do W3C, não uma lei brasileira, mas é referenciada em normas de acessibilidade nacionais e em contratações públicas, especialmente com a EN 301 549."}}
  ]
}
&lt;/script&gt;

&lt;div style="margin: 30px 0px;"&gt;
  &lt;h3&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &#128218; Fontes e Referências&lt;/h3&gt;
  &lt;ul class="post_cqb_refs"&gt;
    &lt;li&gt;&lt;a href="https://owasp.org/www-project-mobile-app-security/" rel="noopener noreferrer" target="_blank"&gt;OWASP MASVS — Mobile Application Security Verification Standard&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://owasp.org/www-project-application-security-verification-standard/" rel="noopener noreferrer" target="_blank"&gt;OWASP ASVS — Application Security Verification Standard&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.w3.org/WAI/WCAG22/quickref/" rel="noopener noreferrer" target="_blank"&gt;W3C WCAG 2.2 — Web Content Accessibility Guidelines&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.pcisecuritystandards.org/" rel="noopener noreferrer" target="_blank"&gt;PCI Security Standards Council — PCI DSS&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.gov.br/anatel/pt-br" rel="noopener noreferrer" target="_blank"&gt;Anatel — Homologação de produtos de telecomunicações&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://fidoalliance.org/" rel="noopener noreferrer" target="_blank"&gt;FIDO Alliance — FIDO2/WebAuthn&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.gov.br/lgpd" rel="noopener noreferrer" target="_blank"&gt;LGPD — Lei Geral de Proteção de Dados&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p style="color: #777777; font-size: 0.85em; margin: 20px 0px;"&gt;
    &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Nota Jurídica:&lt;/strong&gt;
    Este conteúdo pode estar sujeito a diferentes leis de privacidade e regulação dependendo da sua jurisdição.
    Consulte o &lt;a href="https://iapp.org/resources/article/the-iapp-resource-center/" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt;
    para informações específicas da sua região.
  &lt;/p&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Certificação de Apps: o Checklist Completo 2026",
  "description":"O esqueleto completo de validação de aplicativos: certificações de rede, segurança, autenticação, periféricos e compliance que realmente importam em 2026.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-20","dateModified":"2026-09-20",
  "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/certificacao-de-apps-checklist-completo.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 20px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;i class="fas fa-youtube" style="color: #d32f2f;"&gt;&lt;/i&gt;
  Gostou do checklist? Veja a versão em vídeo e mais conteúdos técnicos no
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-weight: bold;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
&lt;/p&gt;
&lt;p style="color: #999999; font-size: 0.8em; text-align: center;"&gt;Feito com Master Rules Claude v9.0&lt;/p&gt;

&lt;script&gt;
(function(){
  'use strict';
  var bar = document.getElementById('postCqbProgressBar');
  function updateBar(){
    if(!bar) return;
    var h = document.documentElement;
    var scrolled = (h.scrollTop) / ((h.scrollHeight) - h.clientHeight) * 100;
    bar.style.width = (isFinite(scrolled) ? scrolled : 0) + '%';
  }
  window.addEventListener('scroll', function(){
    if('requestIdleCallback' in window){ requestIdleCallback(updateBar); } else { updateBar(); }
  }, {passive:true});

  document.querySelectorAll('.post_copy_btn').forEach(function(btn){
    btn.addEventListener('click', function(){
      var text = btn.getAttribute('data-copy') || '';
      if(navigator.clipboard){
        navigator.clipboard.writeText(text).then(function(){
          var original = btn.innerHTML;
          btn.innerHTML = '&lt;i class="fas fa-check"&gt;&lt;/i&gt; Copiado';
          setTimeout(function(){ btn.innerHTML = original; }, 1800);
        });
      }
    });
  });
})();
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEgOy7Qbm8bqyQaghNcYy9L2benedui7rwy-9CAep3hh97ApKu8fhA2f9_S95HN93Jp5WFj-YXIcbNktciNNZTgYEycObOHwrmBHmSdj0cmBHqxyUb3HJyUjeZD3fK2WtwavlXlfuA4AYvpsro08-Qq_FeuHePKcV9vdGdKmFxoC2CttVyCOyTdVvtrEqBUb=s72-c" width="72"/></item><item><title>Kimi Code + NVIDIA GLM-5.3: o Shim que Resolve o Erro 400</title><link>https://canalqb.blogspot.com/2026/09/kimi-code-nvidia-glm-53-o-shim-que.html</link><category>Automação</category><category>glm-5.3</category><category>IA Local</category><category>Kimi Code</category><category>moonshot ai</category><category>nvidia</category><category>PowerShell</category><category>Python</category><category>shim</category><category>tutorial windows</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sat, 19 Sep 2026 23:22:22 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-5252952127098005517</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEizuazzKLG0ne0pvA2WpOezs97hRWimRPJr5xpIzQg-4eitPLXQDkCA8u1WAcFZdxnbVGllCtLJMkQh9lgxW27DrobeDUrZ3UxB3mKxiq4TzHGxJrJejLVf2MN24YrdOzBsELv5P62w9xtLkI-HDMloXxu0sPiG8LeZ8JGmIMA1NiVSs4SxuN0f-StZk7vk" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Instale a NVIDIA no Kimi Code e Acabe com o Erro 400&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_readtime{display:inline-block;background:rgba(33,150,243,0.1);color:#2196f3;padding:6px 14px;border-radius:20px;font-size:.85em;font-weight:600;margin:10px auto;text-align:center}
.post_cqb_readtime_wrap{text-align:center;margin:10px 0}
.post_cqb_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;border-radius:8px;padding:18px 20px;margin:20px 0}
.post_cqb_tldr h2{margin:0 0 10px;font-size:1.1em;color:#333}
.post_cqb_tldr ul{margin:0;padding-left:20px;color:#555}
.post_cqb_tldr li{margin-bottom:6px;line-height:1.5}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;font-size:.85em;overflow-x:auto;position:relative;margin:16px 0}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;position:relative;margin:16px 0;font-size:.85em}
.post_copy_btn{position:absolute;top:10px;right:10px;background:#28a745;color:#fff;border:none;border-radius:6px;padding:6px 10px;font-size:.75em;cursor:pointer;min-height:32px}
.post_copy_btn:hover{background:#1e7e34}
.post_copy_btn:focus-visible{outline:2px solid #ffc107;outline-offset:2px}
.post_cqb_table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9em;overflow-x:auto;display:block}
.post_cqb_table th,.post_cqb_table td{border:1px solid #e0e0e0;padding:10px;text-align:left;color:#555}
.post_cqb_table th{background:rgba(40,167,69,0.08);color:#333}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_cqb_h2{color:#333;border-left:4px solid #2196f3;padding-left:12px;margin-top:32px}
@media (prefers-color-scheme: dark){
  .post_cqb_tldr{background:rgba(40,167,69,0.15)}
  .post_cqb_table th,.post_cqb_table td{border-color:#444}
}
@media (prefers-reduced-motion: reduce){
  .post_copy_btn{transition:none}
}
&lt;/style&gt;

&lt;div class="post_cqb_readtime_wrap"&gt;
  &lt;span class="post_cqb_readtime"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~9 min&lt;/span&gt;
&lt;/div&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;h2&gt;&lt;i class="fas fa-bolt" style="color: #28a745;"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;Testamos o shim do @CanalQb e o erro 400 do &lt;code&gt;prompt_cache_key&lt;/code&gt; desapareceu em menos de 5 minutos de instalação.&lt;/li&gt;
    &lt;li&gt;O kit roda 100% local na porta 8878, sem expor nada na rede e sem guardar sua chave da NVIDIA em nenhum momento.&lt;/li&gt;
    &lt;li&gt;Resultado prático: o modelo GLM-5.3 da NVIDIA passa a funcionar no Kimi Code com streaming, ferramentas e thinking completos.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Instale a NVIDIA no Kimi Code e Acabe com o Erro 400" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Um campo JSON invisível trava toda chamada do Kimi Code para a NVIDIA.&lt;/strong&gt;&lt;br /&gt;
O erro aparece como &lt;code&gt;400 status code (no body)&lt;/code&gt; mesmo com a chave certa, o modelo certo e o &lt;code&gt;config.toml&lt;/code&gt; validado pelo &lt;code&gt;kimi doctor&lt;/code&gt;. A causa é um parâmetro que o Kimi manda sempre — e que a NVIDIA rejeita sempre.&lt;br /&gt;
Testamos, isolamos a causa exata e criamos um shim local que resolve isso sem tocar no binário do Kimi. Aqui no @CanalQb, validamos que o processo inteiro — da instalação ao primeiro "OK" respondido pelo modelo — leva menos tempo do que ler este parágrafo duas vezes.&lt;/p&gt;&lt;p&gt;[providers.nvidia]&lt;br /&gt;# local shim strips prompt_cache_key (Kimi always sends it; NVIDIA NIM rejects it -&amp;gt; HTTP 400)&lt;/p&gt;&lt;p&gt;type = "openai"&lt;br /&gt;base_url = "http://127.0.0.1:8878/v1"&lt;br /&gt;api_key = "nvapi-37M3ADdBCi4gXaZKk_2PNNw0XqIpCJq4egqyjtfWldYZChYO..."&lt;/p&gt;&lt;p&gt;[models."nvidia/glm53"]&lt;br /&gt;provider = "nvidia"&lt;br /&gt;model = "z-ai/glm-5.3"&lt;br /&gt;max_context_size = 262144&lt;br /&gt;display_name = "GLM-5.3 NVIDIA"&lt;br /&gt;capabilities = ["thinking"]&lt;br /&gt;support_efforts = ["low", "high", "max"]&lt;br /&gt;default_effort = "low"&lt;br /&gt;off_effort = "none"&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;O que é o shim do Kimi Code para NVIDIA?&lt;/h2&gt;
&lt;p&gt;O shim é um mini-proxy local, escrito em Python, que fica entre o Kimi Code e o endpoint da NVIDIA. Ele intercepta cada requisição, remove o campo &lt;code&gt;prompt_cache_key&lt;/code&gt; do JSON e repassa tudo o resto — autenticação, ferramentas, streaming — sem alterar nenhum outro comportamento do CLI.&lt;/p&gt;
&lt;p&gt;E o melhor? Ele não modifica o binário do Kimi Code, não instala dependências além do Python padrão e não expõe nada na rede — escuta apenas em &lt;code&gt;127.0.0.1&lt;/code&gt;. Isso significa que você continua usando o Kimi normalmente, do jeito que já conhece, só que agora com o modelo &lt;code&gt;z-ai/glm-5.3&lt;/code&gt; hospedado na infraestrutura da NVIDIA funcionando de ponta a ponta.&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;Por que o Kimi Code retorna erro 400 com a NVIDIA?&lt;/h2&gt;
&lt;p&gt;O Kimi Code envia sempre o parâmetro &lt;code&gt;prompt_cache_key&lt;/code&gt; — com o ID da sessão — em qualquer requisição para providers do tipo &lt;code&gt;openai&lt;/code&gt;. Esse comportamento foi introduzido na versão 0.29.0 do CLI, e a NVIDIA (via NIM) simplesmente não reconhece esse campo e rejeita a chamada inteira.&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;
&lt;button aria-label="Copiar código" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;HTTP 400
{"message":"Validation: Unsupported parameter(s): `prompt_cache_key`", ...}&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Mas tem um porém: não existe opção de configuração, variável de ambiente ou plugin oficial para desativar esse envio — o código-fonte do Kimi (&lt;code&gt;profileService.ts&lt;/code&gt;) fixa o &lt;code&gt;cacheKey&lt;/code&gt; como o ID da sessão e injeta o campo em toda chamada, sem exceção. Ou seja: não é sua chave, não é o modelo, não é o &lt;code&gt;max_tokens&lt;/code&gt;. É um campo que o Kimi manda e a NVIDIA recusa, ponto final.&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;Como o shim funciona por dentro?&lt;/h2&gt;
&lt;p&gt;Veja agora como o fluxo real de dados acontece entre os três lados envolvidos:&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;
&lt;button aria-label="Copiar diagrama" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;kimi.exe ──&amp;gt; http://127.0.0.1:8878/v1 (shim local)
               │ remove apenas "prompt_cache_key" do JSON
               │ repassa Authorization, tools, reasoning_effort, streaming SSE...
               └──&amp;gt; https://integrate.api.nvidia.com/v1/chat/completions&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Repare no detalhe: o shim só escuta em &lt;code&gt;127.0.0.1&lt;/code&gt;, nunca guarda sua chave da NVIDIA — apenas repassa o cabeçalho &lt;code&gt;Authorization&lt;/code&gt; como recebeu — e não altera mais nada na requisição ou na resposta. Streaming e uso de ferramentas continuam funcionando exatamente como antes. Se já houver outra instância dele rodando na porta 8878, ele simplesmente fecha em silêncio, sem gerar conflito.&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;O que você precisa antes de instalar?&lt;/h2&gt;
&lt;p&gt;Antes de rodar qualquer comando, confira se o seu ambiente atende estes quatro pontos:&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Windows com Kimi Code na versão 2.0.x — confirme com &lt;code&gt;kimi --version&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Python 3.10 ou superior instalado, incluindo o &lt;code&gt;pythonw.exe&lt;/code&gt; — confirme com &lt;code&gt;python --version&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; Uma chave da NVIDIA no formato &lt;code&gt;nvapi-...&lt;/code&gt;, gerada gratuitamente em &lt;a href="https://build.nvidia.com" rel="noopener noreferrer" target="_blank"&gt;build.nvidia.com&lt;/a&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; PowerShell — já vem instalado por padrão em qualquer Windows atual.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A chave da NVIDIA não acompanha o kit: cada pessoa gera a sua própria conta gratuita no portal oficial. O modelo usado neste guia é o &lt;code&gt;z-ai/glm-5.3&lt;/code&gt;.&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;Como instalar o shim automaticamente no Windows?&lt;/h2&gt;
&lt;p&gt;Este é o caminho mais rápido e o que recomendamos para a maioria dos casos. São só dois passos até o shim estar rodando.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 1&lt;/strong&gt; — Abra o PowerShell dentro da pasta do kit. Segure Shift, clique com o botão direito na pasta e escolha "Abrir janela do PowerShell aqui". Isso é necessário porque o script usa o caminho da pasta atual (&lt;code&gt;$PSScriptRoot&lt;/code&gt;) para localizar os arquivos.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo 2&lt;/strong&gt; — Execute o instalador:&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;
&lt;button aria-label="Copiar comando" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;O parâmetro &lt;code&gt;-ExecutionPolicy Bypass&lt;/code&gt; permite rodar o script sem alterar a política global do Windows, que por padrão bloqueia scripts baixados da internet. Nos bastidores, o instalador faz, nesta ordem: recria o arquivo &lt;code&gt;workspaces.json&lt;/code&gt; (liberando handles presos por antivírus que causam erro &lt;code&gt;EPERM&lt;/code&gt;), copia o &lt;code&gt;nvidia_shim.py&lt;/code&gt; para a pasta do Kimi, coloca o atalho de auto-início na pasta Startup, ajusta o &lt;code&gt;config.toml&lt;/code&gt; com o bloco do provider NVIDIA e, por fim, inicia o shim fazendo um health-check.&lt;/p&gt;
&lt;p&gt;Se tudo correr bem, a saída mostra estas linhas, nesta ordem:&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;
&lt;button aria-label="Copiar saída" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;[ok] workspaces.json recriado (libera handles presos que causam EPERM no fs.watch)
[ok] shim copiado: C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\proxy\nvidia_shim.py
[ok] auto-inicio:   ...\Startup\kimi-nvidia-shim.cmd
[ok] config.toml criado com o bloco nvidia
[ok] shim respondendo em http://127.0.0.1:8878&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Erro comum: se aparecer &lt;code&gt;[erro] pythonw.exe nao encontrado&lt;/code&gt;, o Python não está no caminho padrão nem no PATH — instale em &lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer" target="_blank"&gt;python.org&lt;/a&gt; marcando a opção "Add Python to PATH" e rode o instalador de novo.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Passo final&lt;/strong&gt; — Abra &lt;code&gt;C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\config.toml&lt;/code&gt; no Bloco de Notas e troque o placeholder pela sua chave real:&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;
&lt;button aria-label="Copiar snippet" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;[providers.nvidia]
api_key = "COLOQUE_SUA_CHAVE_NVIDIA_AQUI"&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2 class="post_cqb_h2"&gt;Como fazer a instalação manual, passo a passo?&lt;/h2&gt;
&lt;p&gt;Prefere entender e controlar cada arquivo manualmente? Siga esta sequência:&lt;/p&gt;
&lt;ol&gt;
  &lt;li&gt;Copie &lt;code&gt;nvidia_shim.py&lt;/code&gt; para &lt;code&gt;C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\proxy\&lt;/code&gt; — crie a pasta se ela ainda não existir. Sem esse arquivo nesse local, o atalho de auto-início não encontra o que executar.&lt;/li&gt;
  &lt;li&gt;Copie &lt;code&gt;kimi-nvidia-shim.cmd&lt;/code&gt; para a pasta de Startup do Windows. Digite &lt;code&gt;shell:startup&lt;/code&gt; na barra de endereços do Explorer para chegar direto lá.&lt;/li&gt;
  &lt;li&gt;Adicione ao final do &lt;code&gt;config.toml&lt;/code&gt; o conteúdo de &lt;code&gt;config-snippet.toml&lt;/code&gt;, preenchendo o &lt;code&gt;api_key&lt;/code&gt; com sua chave real. Opcionalmente, defina &lt;code&gt;default_model = "nvidia/glm53"&lt;/code&gt; no topo do arquivo.&lt;/li&gt;
  &lt;li&gt;Dê dois cliques em &lt;code&gt;kimi-nvidia-shim.cmd&lt;/code&gt; (ou reinicie o Windows) para o shim subir.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2 class="post_cqb_h2"&gt;Como testar se a instalação funcionou?&lt;/h2&gt;
&lt;p&gt;Rode estes três comandos, sempre nesta ordem, para validar cada camada do processo:&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;
&lt;button aria-label="Copiar testes" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;kimi doctor                                          # config valido, sem erros
kimi provider list                                   # deve listar: nvidia  type=openai  models=1
kimi --model nvidia/glm53 -p "Responda somente OK"   # deve responder "OK"&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Se o terceiro comando responder &lt;code&gt;OK&lt;/code&gt;, o kit está funcionando de ponta a ponta. No TUI do Kimi, o modelo aparece como &lt;strong&gt;GLM-5.3 NVIDIA&lt;/strong&gt;, com o thinking ajustável entre &lt;code&gt;low&lt;/code&gt;, &lt;code&gt;high&lt;/code&gt; e &lt;code&gt;max&lt;/code&gt; — e até desativável com &lt;code&gt;off_effort = "none"&lt;/code&gt;, já que a NVIDIA aceita os níveis &lt;code&gt;none/minimal/low/medium/high/xhigh/max&lt;/code&gt;. Para uma checagem extra, rápida e opcional:&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;
&lt;button aria-label="Copiar health-check" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;Invoke-WebRequest http://127.0.0.1:8878/health -UseBasicParsing   # StatusCode 200&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;

&lt;h2 class="post_cqb_h2"&gt;Como trocar a chave da NVIDIA depois de instalado?&lt;/h2&gt;
&lt;p&gt;Gere ou revogue chaves diretamente em &lt;a href="https://build.nvidia.com" rel="noopener noreferrer" target="_blank"&gt;build.nvidia.com&lt;/a&gt;. Depois, edite apenas o campo &lt;code&gt;api_key&lt;/code&gt; dentro de &lt;code&gt;~\.kimi-code\config.toml&lt;/code&gt; — o shim não guarda nenhuma credencial, então nada mais precisa ser reiniciado ou reconfigurado. É literalmente trocar uma linha e continuar usando.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEjNDeU4haE7c5GmSTlzebuKOxsa5DmRFksrvBZC_NAljsJZMLSLaq_22H_NtQIP3C2uDVtkEu7mopGR5cWW8sG3Wy6vyacJy-qBwO4rrVr-DkPJ5WjkGxoeA9EA6nlJZ_xVjRFHXL87fVhOGt_xCJqdg-N19xa5FcrfCtM3oEy3AEfdG9wiHgkjTZOHUlHy" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="970" data-original-width="1115" src="https://blogger.googleusercontent.com/img/a/AVvXsEjNDeU4haE7c5GmSTlzebuKOxsa5DmRFksrvBZC_NAljsJZMLSLaq_22H_NtQIP3C2uDVtkEu7mopGR5cWW8sG3Wy6vyacJy-qBwO4rrVr-DkPJ5WjkGxoeA9EA6nlJZ_xVjRFHXL87fVhOGt_xCJqdg-N19xa5FcrfCtM3oEy3AEfdG9wiHgkjTZOHUlHy=s1600" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;Quais são os erros mais comuns e como resolver?&lt;/h2&gt;
&lt;table class="post_cqb_table"&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Sintoma&lt;/th&gt;&lt;th&gt;Causa provável&lt;/th&gt;&lt;th&gt;Solução&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;connection refused / fetch failed&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Shim não está rodando&lt;/td&gt;&lt;td&gt;Execute &lt;code&gt;kimi-nvidia-shim.cmd&lt;/code&gt; e teste &lt;code&gt;http://127.0.0.1:8878/health&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Volta o erro &lt;code&gt;400 status code (no body)&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;base_url&lt;/code&gt; apontando direto para a NVIDIA&lt;/td&gt;&lt;td&gt;Use &lt;code&gt;base_url = "http://127.0.0.1:8878/v1"&lt;/code&gt; no provider nvidia&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;401 / Unauthorized&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Chave inválida ou revogada&lt;/td&gt;&lt;td&gt;Troque o &lt;code&gt;api_key&lt;/code&gt; no &lt;code&gt;config.toml&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Shim não sobe (porta 8878 ocupada)&lt;/td&gt;&lt;td&gt;Outro programa usando a porta&lt;/td&gt;&lt;td&gt;Edite &lt;code&gt;LISTEN_PORT&lt;/code&gt; em &lt;code&gt;nvidia_shim.py&lt;/code&gt; e o &lt;code&gt;base_url&lt;/code&gt; no config&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Modelo não aparece na lista&lt;/td&gt;&lt;td&gt;Bloco &lt;code&gt;[models."nvidia/glm53"]&lt;/code&gt; ausente&lt;/td&gt;&lt;td&gt;Confira o &lt;code&gt;config-snippet.toml&lt;/code&gt; e rode &lt;code&gt;kimi doctor&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;&lt;code&gt;EPERM&lt;/code&gt; ao abrir o Kimi&lt;/td&gt;&lt;td&gt;Antivírus travando o &lt;code&gt;workspaces.json&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Recrie o arquivo (o instalador já faz isso) ou libere exceção para a pasta &lt;code&gt;.kimi-code&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;

&lt;h2 class="post_cqb_h2"&gt;Como remover o shim por completo?&lt;/h2&gt;
&lt;div class="post_cqb_terminal"&gt;
&lt;button aria-label="Copiar desinstalação" class="post_copy_btn" type="button"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt;&lt;/button&gt;
&lt;pre&gt;&lt;code&gt;powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Isso remove o auto-início, encerra o processo do shim e apaga o arquivo &lt;code&gt;nvidia_shim.py&lt;/code&gt; da pasta do Kimi. O desinstalador não mexe no seu &lt;code&gt;config.toml&lt;/code&gt; — se quiser voltar a apontar direto para a NVIDIA (e aceitar de volta o erro 400 até a Moonshot corrigir o envio do &lt;code&gt;prompt_cache_key&lt;/code&gt;), basta remover a linha do &lt;code&gt;base_url&lt;/code&gt; local.&lt;/p&gt;

&lt;h2 class="post_cqb_h2"&gt;Quais cuidados de segurança preciso ter ao usar o shim?&lt;/h2&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-shield-halved" style="color: #2196f3;"&gt;&lt;/i&gt; Nenhuma chave acompanha o kit — cada pessoa usa a sua própria, salva apenas no &lt;code&gt;config.toml&lt;/code&gt; local.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Se sua chave já apareceu em algum print, chat ou repositório público, considere-a vazada e gere outra imediatamente no portal da NVIDIA.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-lock" style="color: #28a745;"&gt;&lt;/i&gt; O shim escuta apenas em &lt;code&gt;127.0.0.1&lt;/code&gt;, não grava requisições em disco e todo o tráfego real vai criptografado (TLS) direto para &lt;code&gt;integrate.api.nvidia.com&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p style="background: rgba(33, 150, 243, 0.08); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.85em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Conformidade Global:&lt;/strong&gt;
  As informações regulatórias e de segurança neste conteúdo refletem o cenário vigente no momento da publicação. Práticas de proteção de dados variam por jurisdição e estão em constante evolução. Consulte sempre as políticas oficiais da NVIDIA e da Moonshot AI e verifique atualizações no
  &lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt;. Este conteúdo não constitui aconselhamento jurídico.
&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.6 =====--&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container" style="margin: 40px 0px;"&gt;
  &lt;style&gt;
  .post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
  .post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
  .post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
  .post_faq_question:hover{color:#28a745}
  .post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
  .post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
  @media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
  .post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
  .post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
  .post_faq_answer.post_faq_show{display:block}
  .post_faq_answer a{color:#28a745;text-decoration:underline}
  &lt;/style&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O shim funciona no Linux ou no Mac?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O kit foi construído para Windows, usando scripts PowerShell e a pasta Startup nativa do sistema. Em Linux ou Mac o arquivo &lt;code&gt;nvidia_shim.py&lt;/code&gt; ainda roda com Python, mas a instalação automática e o auto-início precisam ser adaptados manualmente — confira mais scripts de automação em &lt;a href="https://www.canalqb.com.br/search?q=automacao+python" rel="noopener noreferrer" target="_blank"&gt;automação com Python no @CanalQb&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Preciso pagar pela chave da API da NVIDIA?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;A conta no portal &lt;a href="https://build.nvidia.com" rel="noopener noreferrer" target="_blank"&gt;build.nvidia.com&lt;/a&gt; é gratuita e permite gerar sua chave &lt;code&gt;nvapi-...&lt;/code&gt; sem custo inicial. Limites de uso e cobrança variam conforme o plano e o volume de chamadas, então vale conferir os termos atualizados diretamente no portal antes de usar em produção.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O shim guarda ou envia minha chave da NVIDIA para algum servidor?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. O shim apenas repassa o cabeçalho &lt;code&gt;Authorization&lt;/code&gt; recebido do Kimi Code diretamente para a NVIDIA, sem gravar nada em disco. A chave fica salva apenas no seu &lt;code&gt;config.toml&lt;/code&gt; local, sob seu controle total.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que acontece se a Moonshot corrigir o envio do prompt_cache_key?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Nesse caso o shim deixa de ser necessário. Basta rodar o desinstalador e apontar o &lt;code&gt;base_url&lt;/code&gt; de volta para &lt;code&gt;https://integrate.api.nvidia.com/v1&lt;/code&gt;. Vale acompanhar as issues do repositório oficial do Kimi Code para saber quando isso acontecer.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Posso usar esse mesmo shim com outros modelos além do GLM-5.3?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O princípio funciona para qualquer modelo hospedado no mesmo endpoint da NVIDIA que rejeite o campo &lt;code&gt;prompt_cache_key&lt;/code&gt;, bastando ajustar o bloco de modelo no &lt;code&gt;config.toml&lt;/code&gt;. Veja outras integrações testadas em &lt;a href="https://www.canalqb.com.br/search?q=nvidia+api" rel="noopener noreferrer" target="_blank"&gt;NVIDIA API no @CanalQb&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;É seguro deixar esse shim rodando em segundo plano no meu PC?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim, dentro do escopo do que ele faz: ele escuta somente em &lt;code&gt;127.0.0.1&lt;/code&gt;, não abre portas para a internet e não registra logs em disco. Ainda assim, como qualquer software local, mantenha o Python atualizado e revise periodicamente se o processo continua sendo o esperado.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;script&gt;
  (function(){ 'use strict';
    function showToast(msg){
      var t=document.createElement('div');
      t.textContent=msg;
      t.style.cssText='position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:10px 18px;border-radius:6px;font-size:.85em;z-index:9999;opacity:0.95';
      document.body.appendChild(t);
      setTimeout(function(){t.remove();},2000);
    }
    var run = function(){
      var btns=document.querySelectorAll('.post_faq_question');
      btns.forEach(function(btn){
        function toggle(){
          var ans=btn.nextElementSibling;
          var aberto=ans.classList.contains('post_faq_show');
          document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
          document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
          if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
        }
        btn.addEventListener('click',toggle);
        btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
      });
      document.querySelectorAll('.post_copy_btn').forEach(function(btn){
        btn.addEventListener('click', function(){
          var block = btn.parentElement.querySelector('code');
          var text = block ? block.innerText : '';
          if(navigator.clipboard &amp;&amp; text){
            navigator.clipboard.writeText(text).then(function(){ showToast('Código copiado!'); });
          }
        });
      });
    };
    if('requestIdleCallback' in window){ requestIdleCallback(run); } else { setTimeout(run, 200); }
  })();
  &lt;/script&gt;
  &lt;script type="application/ld+json"&gt;
  {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
    {"@type":"Question","name":"O shim funciona no Linux ou no Mac?","acceptedAnswer":{"@type":"Answer","text":"O kit foi construído para Windows, usando scripts PowerShell e a pasta Startup nativa do sistema. Em Linux ou Mac o arquivo nvidia_shim.py ainda roda com Python, mas a instalação automática e o auto-início precisam ser adaptados manualmente."}},
    {"@type":"Question","name":"Preciso pagar pela chave da API da NVIDIA?","acceptedAnswer":{"@type":"Answer","text":"A conta no portal build.nvidia.com é gratuita e permite gerar sua chave nvapi-... sem custo inicial. Limites de uso e cobrança variam conforme o plano e o volume de chamadas."}},
    {"@type":"Question","name":"O shim guarda ou envia minha chave da NVIDIA para algum servidor?","acceptedAnswer":{"@type":"Answer","text":"Não. O shim apenas repassa o cabeçalho Authorization recebido do Kimi Code diretamente para a NVIDIA, sem gravar nada em disco."}},
    {"@type":"Question","name":"O que acontece se a Moonshot corrigir o envio do prompt_cache_key?","acceptedAnswer":{"@type":"Answer","text":"O shim deixa de ser necessário. Basta rodar o desinstalador e apontar o base_url de volta para o endpoint oficial da NVIDIA."}},
    {"@type":"Question","name":"Posso usar esse mesmo shim com outros modelos além do GLM-5.3?","acceptedAnswer":{"@type":"Answer","text":"O princípio funciona para qualquer modelo hospedado no mesmo endpoint da NVIDIA que rejeite o campo prompt_cache_key, bastando ajustar o bloco de modelo no config.toml."}},
    {"@type":"Question","name":"É seguro deixar esse shim rodando em segundo plano no meu PC?","acceptedAnswer":{"@type":"Answer","text":"Sim: ele escuta somente em 127.0.0.1, não abre portas para a internet e não registra logs em disco."}}
  ]}
  &lt;/script&gt;
&lt;/section&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div style="margin: 30px 0px;"&gt;
  &lt;h3&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &#128218; Fontes e Referências&lt;/h3&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="https://github.com/MoonshotAI/kimi-code" rel="noopener noreferrer" target="_blank"&gt;Repositório oficial do Kimi Code (MoonshotAI)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://build.nvidia.com" rel="noopener noreferrer" target="_blank"&gt;Portal de chaves e modelos da NVIDIA (build.nvidia.com)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://moonshotai.github.io/kimi-code/en/configuration/config-files/" rel="noopener noreferrer" target="_blank"&gt;Documentação oficial de configuração do Kimi Code&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.python.org/downloads/" rel="noopener noreferrer" target="_blank"&gt;Python — download oficial&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://github.com/canalqb/kimi-nvidia/" rel="noopener noreferrer" target="_blank"&gt;Baixar Script para instalação&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Instale a NVIDIA no Kimi Code e Acabe com o Erro 400",
  "description":"Veja como instalar o shim do @CanalQb que resolve o erro 400 do prompt_cache_key e faz o modelo GLM-5.3 da NVIDIA funcionar no Kimi Code.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-19","dateModified":"2026-09-19",
  "mainEntityOfPage":"{SUBSTITUA_PELA_URL_FINAL_APOS_PUBLICAR}",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-code-branch" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Gostou do kit?&lt;/strong&gt; O código completo está aberto no
    &lt;a href="https://github.com/canalqb/kimi-nvidia" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;repositório kimi-nvidia no GitHub&lt;/a&gt;.
    Acompanhe mais automações no
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEizuazzKLG0ne0pvA2WpOezs97hRWimRPJr5xpIzQg-4eitPLXQDkCA8u1WAcFZdxnbVGllCtLJMkQh9lgxW27DrobeDUrZ3UxB3mKxiq4TzHGxJrJejLVf2MN24YrdOzBsELv5P62w9xtLkI-HDMloXxu0sPiG8LeZ8JGmIMA1NiVSs4SxuN0f-StZk7vk=s72-c" width="72"/><enclosure length="111602" type="image/png" url="https://blogger.googleusercontent.com/img/a/AVvXsEjNDeU4haE7c5GmSTlzebuKOxsa5DmRFksrvBZC_NAljsJZMLSLaq_22H_NtQIP3C2uDVtkEu7mopGR5cWW8sG3Wy6vyacJy-qBwO4rrVr-DkPJ5WjkGxoeA9EA6nlJZ_xVjRFHXL87fVhOGt_xCJqdg-N19xa5FcrfCtM3oEy3AEfdG9wiHgkjTZOHUlHy"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>@CanalQb no YouTube Instale a NVIDIA no Kimi Code e Acabe com o Erro 400 /* @CanalQb - Exclusive Design License 2026 */ .post_cqb_readtime{display:inline-block;background:rgba(33,150,243,0.1);color:#2196f3;padding:6px 14px;border-radius:20px;font-size:.85em;font-weight:600;margin:10px auto;text-align:center} .post_cqb_readtime_wrap{text-align:center;margin:10px 0} .post_cqb_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;border-radius:8px;padding:18px 20px;margin:20px 0} .post_cqb_tldr h2{margin:0 0 10px;font-size:1.1em;color:#333} .post_cqb_tldr ul{margin:0;padding-left:20px;color:#555} .post_cqb_tldr li{margin-bottom:6px;line-height:1.5} .post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;font-size:.85em;overflow-x:auto;position:relative;margin:16px 0} .post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important} .post_cqb_terminal .comment{color:#888!important} .post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important} .post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;position:relative;margin:16px 0;font-size:.85em} .post_copy_btn{position:absolute;top:10px;right:10px;background:#28a745;color:#fff;border:none;border-radius:6px;padding:6px 10px;font-size:.75em;cursor:pointer;min-height:32px} .post_copy_btn:hover{background:#1e7e34} .post_copy_btn:focus-visible{outline:2px solid #ffc107;outline-offset:2px} .post_cqb_table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9em;overflow-x:auto;display:block} .post_cqb_table th,.post_cqb_table td{border:1px solid #e0e0e0;padding:10px;text-align:left;color:#555} .post_cqb_table th{background:rgba(40,167,69,0.08);color:#333} .post_checklist{list-style:none;padding:0;margin:10px 0} .post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5} .post_checklist li i{flex-shrink:0;margin-top:3px} .post_cqb_h2{color:#333;border-left:4px solid #2196f3;padding-left:12px;margin-top:32px} @media (prefers-color-scheme: dark){ .post_cqb_tldr{background:rgba(40,167,69,0.15)} .post_cqb_table th,.post_cqb_table td{border-color:#444} } @media (prefers-reduced-motion: reduce){ .post_copy_btn{transition:none} } Leitura: ~9 min TL;DR Testamos o shim do @CanalQb e o erro 400 do prompt_cache_key desapareceu em menos de 5 minutos de instalação. O kit roda 100% local na porta 8878, sem expor nada na rede e sem guardar sua chave da NVIDIA em nenhum momento. Resultado prático: o modelo GLM-5.3 da NVIDIA passa a funcionar no Kimi Code com streaming, ferramentas e thinking completos. Nota Técnica: Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido. Um campo JSON invisível trava toda chamada do Kimi Code para a NVIDIA. O erro aparece como 400 status code (no body) mesmo com a chave certa, o modelo certo e o config.toml validado pelo kimi doctor. A causa é um parâmetro que o Kimi manda sempre — e que a NVIDIA rejeita sempre. Testamos, isolamos a causa exata e criamos um shim local que resolve isso sem tocar no binário do Kimi. Aqui no @CanalQb, validamos que o processo inteiro — da instalação ao primeiro "OK" respondido pelo modelo — leva menos tempo do que ler este parágrafo duas vezes. [providers.nvidia] # local shim strips prompt_cache_key (Kimi always sends it; NVIDIA NIM rejects it -&amp;gt; HTTP 400) type = "openai" base_url = "http://127.0.0.1:8878/v1" api_key = "nvapi-37M3ADdBCi4gXaZKk_2PNNw0XqIpCJq4egqyjtfWldYZChYO..." [models."nvidia/glm53"] provider = "nvidia" model = "z-ai/glm-5.3" max_context_size = 262144 display_name = "GLM-5.3 NVIDIA" capabilities = ["thinking"] support_efforts = ["low", "high", "max"] default_effort = "low" off_effort = "none" O que é o shim do Kimi Code para NVIDIA? O shim é um mini-proxy local, escrito em Python, que fica entre o Kimi Code e o endpoint da NVIDIA. Ele intercepta cada requisição, remove o campo prompt_cache_key do JSON e repassa tudo o resto — autenticação, ferramentas, streaming — sem alterar nenhum outro comportamento do CLI. E o melhor? Ele não modifica o binário do Kimi Code, não instala dependências além do Python padrão e não expõe nada na rede — escuta apenas em 127.0.0.1. Isso significa que você continua usando o Kimi normalmente, do jeito que já conhece, só que agora com o modelo z-ai/glm-5.3 hospedado na infraestrutura da NVIDIA funcionando de ponta a ponta. Por que o Kimi Code retorna erro 400 com a NVIDIA? O Kimi Code envia sempre o parâmetro prompt_cache_key — com o ID da sessão — em qualquer requisição para providers do tipo openai. Esse comportamento foi introduzido na versão 0.29.0 do CLI, e a NVIDIA (via NIM) simplesmente não reconhece esse campo e rejeita a chamada inteira. HTTP 400 {"message":"Validation: Unsupported parameter(s): `prompt_cache_key`", ...} Mas tem um porém: não existe opção de configuração, variável de ambiente ou plugin oficial para desativar esse envio — o código-fonte do Kimi (profileService.ts) fixa o cacheKey como o ID da sessão e injeta o campo em toda chamada, sem exceção. Ou seja: não é sua chave, não é o modelo, não é o max_tokens. É um campo que o Kimi manda e a NVIDIA recusa, ponto final. Como o shim funciona por dentro? Veja agora como o fluxo real de dados acontece entre os três lados envolvidos: kimi.exe ──&amp;gt; http://127.0.0.1:8878/v1 (shim local) │ remove apenas "prompt_cache_key" do JSON │ repassa Authorization, tools, reasoning_effort, streaming SSE... └──&amp;gt; https://integrate.api.nvidia.com/v1/chat/completions Repare no detalhe: o shim só escuta em 127.0.0.1, nunca guarda sua chave da NVIDIA — apenas repassa o cabeçalho Authorization como recebeu — e não altera mais nada na requisição ou na resposta. Streaming e uso de ferramentas continuam funcionando exatamente como antes. Se já houver outra instância dele rodando na porta 8878, ele simplesmente fecha em silêncio, sem gerar conflito. O que você precisa antes de instalar? Antes de rodar qualquer comando, confira se o seu ambiente atende estes quatro pontos: Windows com Kimi Code na versão 2.0.x — confirme com kimi --version. Python 3.10 ou superior instalado, incluindo o pythonw.exe — confirme com python --version. Uma chave da NVIDIA no formato nvapi-..., gerada gratuitamente em build.nvidia.com. PowerShell — já vem instalado por padrão em qualquer Windows atual. A chave da NVIDIA não acompanha o kit: cada pessoa gera a sua própria conta gratuita no portal oficial. O modelo usado neste guia é o z-ai/glm-5.3. Como instalar o shim automaticamente no Windows? Este é o caminho mais rápido e o que recomendamos para a maioria dos casos. São só dois passos até o shim estar rodando. Passo 1 — Abra o PowerShell dentro da pasta do kit. Segure Shift, clique com o botão direito na pasta e escolha "Abrir janela do PowerShell aqui". Isso é necessário porque o script usa o caminho da pasta atual ($PSScriptRoot) para localizar os arquivos. Passo 2 — Execute o instalador: powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 O parâmetro -ExecutionPolicy Bypass permite rodar o script sem alterar a política global do Windows, que por padrão bloqueia scripts baixados da internet. Nos bastidores, o instalador faz, nesta ordem: recria o arquivo workspaces.json (liberando handles presos por antivírus que causam erro EPERM), copia o nvidia_shim.py para a pasta do Kimi, coloca o atalho de auto-início na pasta Startup, ajusta o config.toml com o bloco do provider NVIDIA e, por fim, inicia o shim fazendo um health-check. Se tudo correr bem, a saída mostra estas linhas, nesta ordem: [ok] workspaces.json recriado (libera handles presos que causam EPERM no fs.watch) [ok] shim copiado: C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\proxy\nvidia_shim.py [ok] auto-inicio: ...\Startup\kimi-nvidia-shim.cmd [ok] config.toml criado com o bloco nvidia [ok] shim respondendo em http://127.0.0.1:8878 Erro comum: se aparecer [erro] pythonw.exe nao encontrado, o Python não está no caminho padrão nem no PATH — instale em python.org marcando a opção "Add Python to PATH" e rode o instalador de novo. Passo final — Abra C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\config.toml no Bloco de Notas e troque o placeholder pela sua chave real: [providers.nvidia] api_key = "COLOQUE_SUA_CHAVE_NVIDIA_AQUI" Como fazer a instalação manual, passo a passo? Prefere entender e controlar cada arquivo manualmente? Siga esta sequência: Copie nvidia_shim.py para C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\proxy\ — crie a pasta se ela ainda não existir. Sem esse arquivo nesse local, o atalho de auto-início não encontra o que executar. Copie kimi-nvidia-shim.cmd para a pasta de Startup do Windows. Digite shell:startup na barra de endereços do Explorer para chegar direto lá. Adicione ao final do config.toml o conteúdo de config-snippet.toml, preenchendo o api_key com sua chave real. Opcionalmente, defina default_model = "nvidia/glm53" no topo do arquivo. Dê dois cliques em kimi-nvidia-shim.cmd (ou reinicie o Windows) para o shim subir. Como testar se a instalação funcionou? Rode estes três comandos, sempre nesta ordem, para validar cada camada do processo: kimi doctor # config valido, sem erros kimi provider list # deve listar: nvidia type=openai models=1 kimi --model nvidia/glm53 -p "Responda somente OK" # deve responder "OK" Se o terceiro comando responder OK, o kit está funcionando de ponta a ponta. No TUI do Kimi, o modelo aparece como GLM-5.3 NVIDIA, com o thinking ajustável entre low, high e max — e até desativável com off_effort = "none", já que a NVIDIA aceita os níveis none/minimal/low/medium/high/xhigh/max. Para uma checagem extra, rápida e opcional: Invoke-WebRequest http://127.0.0.1:8878/health -UseBasicParsing # StatusCode 200 Como trocar a chave da NVIDIA depois de instalado? Gere ou revogue chaves diretamente em build.nvidia.com. Depois, edite apenas o campo api_key dentro de ~\.kimi-code\config.toml — o shim não guarda nenhuma credencial, então nada mais precisa ser reiniciado ou reconfigurado. É literalmente trocar uma linha e continuar usando. Quais são os erros mais comuns e como resolver? SintomaCausa provávelSolução connection refused / fetch failedShim não está rodandoExecute kimi-nvidia-shim.cmd e teste http://127.0.0.1:8878/health Volta o erro 400 status code (no body)base_url apontando direto para a NVIDIAUse base_url = "http://127.0.0.1:8878/v1" no provider nvidia 401 / UnauthorizedChave inválida ou revogadaTroque o api_key no config.toml Shim não sobe (porta 8878 ocupada)Outro programa usando a portaEdite LISTEN_PORT em nvidia_shim.py e o base_url no config Modelo não aparece na listaBloco [models."nvidia/glm53"] ausenteConfira o config-snippet.toml e rode kimi doctor EPERM ao abrir o KimiAntivírus travando o workspaces.jsonRecrie o arquivo (o instalador já faz isso) ou libere exceção para a pasta .kimi-code Como remover o shim por completo? powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1 Isso remove o auto-início, encerra o processo do shim e apaga o arquivo nvidia_shim.py da pasta do Kimi. O desinstalador não mexe no seu config.toml — se quiser voltar a apontar direto para a NVIDIA (e aceitar de volta o erro 400 até a Moonshot corrigir o envio do prompt_cache_key), basta remover a linha do base_url local. Quais cuidados de segurança preciso ter ao usar o shim? Nenhuma chave acompanha o kit — cada pessoa usa a sua própria, salva apenas no config.toml local. Se sua chave já apareceu em algum print, chat ou repositório público, considere-a vazada e gere outra imediatamente no portal da NVIDIA. O shim escuta apenas em 127.0.0.1, não grava requisições em disco e todo o tráfego real vai criptografado (TLS) direto para integrate.api.nvidia.com. Conformidade Global: As informações regulatórias e de segurança neste conteúdo refletem o cenário vigente no momento da publicação. Práticas de proteção de dados variam por jurisdição e estão em constante evolução. Consulte sempre as políticas oficiais da NVIDIA e da Moonshot AI e verifique atualizações no IAPP Global Privacy Directory. Este conteúdo não constitui aconselhamento jurídico. .post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px} .post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px} .post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none} .post_faq_question:hover{color:#28a745} .post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px} .post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745} @media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}} .post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)} .post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7} .post_faq_answer.post_faq_show{display:block} .post_faq_answer a{color:#28a745;text-decoration:underline} Perguntas Frequentes O shim funciona no Linux ou no Mac? O kit foi construído para Windows, usando scripts PowerShell e a pasta Startup nativa do sistema. Em Linux ou Mac o arquivo nvidia_shim.py ainda roda com Python, mas a instalação automática e o auto-início precisam ser adaptados manualmente — confira mais scripts de automação em automação com Python no @CanalQb. Preciso pagar pela chave da API da NVIDIA? A conta no portal build.nvidia.com é gratuita e permite gerar sua chave nvapi-... sem custo inicial. Limites de uso e cobrança variam conforme o plano e o volume de chamadas, então vale conferir os termos atualizados diretamente no portal antes de usar em produção. O shim guarda ou envia minha chave da NVIDIA para algum servidor? Não. O shim apenas repassa o cabeçalho Authorization recebido do Kimi Code diretamente para a NVIDIA, sem gravar nada em disco. A chave fica salva apenas no seu config.toml local, sob seu controle total. O que acontece se a Moonshot corrigir o envio do prompt_cache_key? Nesse caso o shim deixa de ser necessário. Basta rodar o desinstalador e apontar o base_url de volta para https://integrate.api.nvidia.com/v1. Vale acompanhar as issues do repositório oficial do Kimi Code para saber quando isso acontecer. Posso usar esse mesmo shim com outros modelos além do GLM-5.3? O princípio funciona para qualquer modelo hospedado no mesmo endpoint da NVIDIA que rejeite o campo prompt_cache_key, bastando ajustar o bloco de modelo no config.toml. Veja outras integrações testadas em NVIDIA API no @CanalQb. É seguro deixar esse shim rodando em segundo plano no meu PC? Sim, dentro do escopo do que ele faz: ele escuta somente em 127.0.0.1, não abre portas para a internet e não registra logs em disco. Ainda assim, como qualquer software local, mantenha o Python atualizado e revise periodicamente se o processo continua sendo o esperado. (function(){ 'use strict'; function showToast(msg){ var t=document.createElement('div'); t.textContent=msg; t.style.cssText='position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:10px 18px;border-radius:6px;font-size:.85em;z-index:9999;opacity:0.95'; document.body.appendChild(t); setTimeout(function(){t.remove();},2000); } var run = function(){ var btns=document.querySelectorAll('.post_faq_question'); btns.forEach(function(btn){ function toggle(){ var ans=btn.nextElementSibling; var aberto=ans.classList.contains('post_faq_show'); document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');}); document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');}); if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');} } btn.addEventListener('click',toggle); btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}}); }); document.querySelectorAll('.post_copy_btn').forEach(function(btn){ btn.addEventListener('click', function(){ var block = btn.parentElement.querySelector('code'); var text = block ? block.innerText : ''; if(navigator.clipboard &amp;&amp; text){ navigator.clipboard.writeText(text).then(function(){ showToast('Código copiado!'); }); } }); }); }; if('requestIdleCallback' in window){ requestIdleCallback(run); } else { setTimeout(run, 200); } })(); {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[ {"@type":"Question","name":"O shim funciona no Linux ou no Mac?","acceptedAnswer":{"@type":"Answer","text":"O kit foi construído para Windows, usando scripts PowerShell e a pasta Startup nativa do sistema. Em Linux ou Mac o arquivo nvidia_shim.py ainda roda com Python, mas a instalação automática e o auto-início precisam ser adaptados manualmente."}}, {"@type":"Question","name":"Preciso pagar pela chave da API da NVIDIA?","acceptedAnswer":{"@type":"Answer","text":"A conta no portal build.nvidia.com é gratuita e permite gerar sua chave nvapi-... sem custo inicial. Limites de uso e cobrança variam conforme o plano e o volume de chamadas."}}, {"@type":"Question","name":"O shim guarda ou envia minha chave da NVIDIA para algum servidor?","acceptedAnswer":{"@type":"Answer","text":"Não. O shim apenas repassa o cabeçalho Authorization recebido do Kimi Code diretamente para a NVIDIA, sem gravar nada em disco."}}, {"@type":"Question","name":"O que acontece se a Moonshot corrigir o envio do prompt_cache_key?","acceptedAnswer":{"@type":"Answer","text":"O shim deixa de ser necessário. Basta rodar o desinstalador e apontar o base_url de volta para o endpoint oficial da NVIDIA."}}, {"@type":"Question","name":"Posso usar esse mesmo shim com outros modelos além do GLM-5.3?","acceptedAnswer":{"@type":"Answer","text":"O princípio funciona para qualquer modelo hospedado no mesmo endpoint da NVIDIA que rejeite o campo prompt_cache_key, bastando ajustar o bloco de modelo no config.toml."}}, {"@type":"Question","name":"É seguro deixar esse shim rodando em segundo plano no meu PC?","acceptedAnswer":{"@type":"Answer","text":"Sim: ele escuta somente em 127.0.0.1, não abre portas para a internet e não registra logs em disco."}} ]} &#128218; Fontes e Referências Repositório oficial do Kimi Code (MoonshotAI) Portal de chaves e modelos da NVIDIA (build.nvidia.com) Documentação oficial de configuração do Kimi Code Python — download oficial Baixar Script para instalação { "@context":"https://schema.org", "@type":"BlogPosting", "headline":"Instale a NVIDIA no Kimi Code e Acabe com o Erro 400", "description":"Veja como instalar o shim do @CanalQb que resolve o erro 400 do prompt_cache_key e faz o modelo GLM-5.3 da NVIDIA funcionar no Kimi Code.", "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"}, "publisher":{ "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br", "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"} }, "datePublished":"2026-09-19","dateModified":"2026-09-19", "mainEntityOfPage":"{SUBSTITUA_PELA_URL_FINAL_APOS_PUBLICAR}", "copyrightHolder":{"@type":"Person","name":"@CanalQb"}, "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/", "inLanguage":"pt-BR" } Gostou do kit? O código completo está aberto no repositório kimi-nvidia no GitHub. Acompanhe mais automações no @CanalQb no YouTube. ▶ @CanalQb no YouTube</itunes:subtitle><itunes:author>noreply@blogger.com (CanalQb)</itunes:author><itunes:summary>@CanalQb no YouTube Instale a NVIDIA no Kimi Code e Acabe com o Erro 400 /* @CanalQb - Exclusive Design License 2026 */ .post_cqb_readtime{display:inline-block;background:rgba(33,150,243,0.1);color:#2196f3;padding:6px 14px;border-radius:20px;font-size:.85em;font-weight:600;margin:10px auto;text-align:center} .post_cqb_readtime_wrap{text-align:center;margin:10px 0} .post_cqb_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;border-radius:8px;padding:18px 20px;margin:20px 0} .post_cqb_tldr h2{margin:0 0 10px;font-size:1.1em;color:#333} .post_cqb_tldr ul{margin:0;padding-left:20px;color:#555} .post_cqb_tldr li{margin-bottom:6px;line-height:1.5} .post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;font-size:.85em;overflow-x:auto;position:relative;margin:16px 0} .post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important} .post_cqb_terminal .comment{color:#888!important} .post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important} .post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;position:relative;margin:16px 0;font-size:.85em} .post_copy_btn{position:absolute;top:10px;right:10px;background:#28a745;color:#fff;border:none;border-radius:6px;padding:6px 10px;font-size:.75em;cursor:pointer;min-height:32px} .post_copy_btn:hover{background:#1e7e34} .post_copy_btn:focus-visible{outline:2px solid #ffc107;outline-offset:2px} .post_cqb_table{width:100%;border-collapse:collapse;margin:16px 0;font-size:.9em;overflow-x:auto;display:block} .post_cqb_table th,.post_cqb_table td{border:1px solid #e0e0e0;padding:10px;text-align:left;color:#555} .post_cqb_table th{background:rgba(40,167,69,0.08);color:#333} .post_checklist{list-style:none;padding:0;margin:10px 0} .post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5} .post_checklist li i{flex-shrink:0;margin-top:3px} .post_cqb_h2{color:#333;border-left:4px solid #2196f3;padding-left:12px;margin-top:32px} @media (prefers-color-scheme: dark){ .post_cqb_tldr{background:rgba(40,167,69,0.15)} .post_cqb_table th,.post_cqb_table td{border-color:#444} } @media (prefers-reduced-motion: reduce){ .post_copy_btn{transition:none} } Leitura: ~9 min TL;DR Testamos o shim do @CanalQb e o erro 400 do prompt_cache_key desapareceu em menos de 5 minutos de instalação. O kit roda 100% local na porta 8878, sem expor nada na rede e sem guardar sua chave da NVIDIA em nenhum momento. Resultado prático: o modelo GLM-5.3 da NVIDIA passa a funcionar no Kimi Code com streaming, ferramentas e thinking completos. Nota Técnica: Scripts e automações fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido. Um campo JSON invisível trava toda chamada do Kimi Code para a NVIDIA. O erro aparece como 400 status code (no body) mesmo com a chave certa, o modelo certo e o config.toml validado pelo kimi doctor. A causa é um parâmetro que o Kimi manda sempre — e que a NVIDIA rejeita sempre. Testamos, isolamos a causa exata e criamos um shim local que resolve isso sem tocar no binário do Kimi. Aqui no @CanalQb, validamos que o processo inteiro — da instalação ao primeiro "OK" respondido pelo modelo — leva menos tempo do que ler este parágrafo duas vezes. [providers.nvidia] # local shim strips prompt_cache_key (Kimi always sends it; NVIDIA NIM rejects it -&amp;gt; HTTP 400) type = "openai" base_url = "http://127.0.0.1:8878/v1" api_key = "nvapi-37M3ADdBCi4gXaZKk_2PNNw0XqIpCJq4egqyjtfWldYZChYO..." [models."nvidia/glm53"] provider = "nvidia" model = "z-ai/glm-5.3" max_context_size = 262144 display_name = "GLM-5.3 NVIDIA" capabilities = ["thinking"] support_efforts = ["low", "high", "max"] default_effort = "low" off_effort = "none" O que é o shim do Kimi Code para NVIDIA? O shim é um mini-proxy local, escrito em Python, que fica entre o Kimi Code e o endpoint da NVIDIA. Ele intercepta cada requisição, remove o campo prompt_cache_key do JSON e repassa tudo o resto — autenticação, ferramentas, streaming — sem alterar nenhum outro comportamento do CLI. E o melhor? Ele não modifica o binário do Kimi Code, não instala dependências além do Python padrão e não expõe nada na rede — escuta apenas em 127.0.0.1. Isso significa que você continua usando o Kimi normalmente, do jeito que já conhece, só que agora com o modelo z-ai/glm-5.3 hospedado na infraestrutura da NVIDIA funcionando de ponta a ponta. Por que o Kimi Code retorna erro 400 com a NVIDIA? O Kimi Code envia sempre o parâmetro prompt_cache_key — com o ID da sessão — em qualquer requisição para providers do tipo openai. Esse comportamento foi introduzido na versão 0.29.0 do CLI, e a NVIDIA (via NIM) simplesmente não reconhece esse campo e rejeita a chamada inteira. HTTP 400 {"message":"Validation: Unsupported parameter(s): `prompt_cache_key`", ...} Mas tem um porém: não existe opção de configuração, variável de ambiente ou plugin oficial para desativar esse envio — o código-fonte do Kimi (profileService.ts) fixa o cacheKey como o ID da sessão e injeta o campo em toda chamada, sem exceção. Ou seja: não é sua chave, não é o modelo, não é o max_tokens. É um campo que o Kimi manda e a NVIDIA recusa, ponto final. Como o shim funciona por dentro? Veja agora como o fluxo real de dados acontece entre os três lados envolvidos: kimi.exe ──&amp;gt; http://127.0.0.1:8878/v1 (shim local) │ remove apenas "prompt_cache_key" do JSON │ repassa Authorization, tools, reasoning_effort, streaming SSE... └──&amp;gt; https://integrate.api.nvidia.com/v1/chat/completions Repare no detalhe: o shim só escuta em 127.0.0.1, nunca guarda sua chave da NVIDIA — apenas repassa o cabeçalho Authorization como recebeu — e não altera mais nada na requisição ou na resposta. Streaming e uso de ferramentas continuam funcionando exatamente como antes. Se já houver outra instância dele rodando na porta 8878, ele simplesmente fecha em silêncio, sem gerar conflito. O que você precisa antes de instalar? Antes de rodar qualquer comando, confira se o seu ambiente atende estes quatro pontos: Windows com Kimi Code na versão 2.0.x — confirme com kimi --version. Python 3.10 ou superior instalado, incluindo o pythonw.exe — confirme com python --version. Uma chave da NVIDIA no formato nvapi-..., gerada gratuitamente em build.nvidia.com. PowerShell — já vem instalado por padrão em qualquer Windows atual. A chave da NVIDIA não acompanha o kit: cada pessoa gera a sua própria conta gratuita no portal oficial. O modelo usado neste guia é o z-ai/glm-5.3. Como instalar o shim automaticamente no Windows? Este é o caminho mais rápido e o que recomendamos para a maioria dos casos. São só dois passos até o shim estar rodando. Passo 1 — Abra o PowerShell dentro da pasta do kit. Segure Shift, clique com o botão direito na pasta e escolha "Abrir janela do PowerShell aqui". Isso é necessário porque o script usa o caminho da pasta atual ($PSScriptRoot) para localizar os arquivos. Passo 2 — Execute o instalador: powershell -NoProfile -ExecutionPolicy Bypass -File .\install.ps1 O parâmetro -ExecutionPolicy Bypass permite rodar o script sem alterar a política global do Windows, que por padrão bloqueia scripts baixados da internet. Nos bastidores, o instalador faz, nesta ordem: recria o arquivo workspaces.json (liberando handles presos por antivírus que causam erro EPERM), copia o nvidia_shim.py para a pasta do Kimi, coloca o atalho de auto-início na pasta Startup, ajusta o config.toml com o bloco do provider NVIDIA e, por fim, inicia o shim fazendo um health-check. Se tudo correr bem, a saída mostra estas linhas, nesta ordem: [ok] workspaces.json recriado (libera handles presos que causam EPERM no fs.watch) [ok] shim copiado: C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\proxy\nvidia_shim.py [ok] auto-inicio: ...\Startup\kimi-nvidia-shim.cmd [ok] config.toml criado com o bloco nvidia [ok] shim respondendo em http://127.0.0.1:8878 Erro comum: se aparecer [erro] pythonw.exe nao encontrado, o Python não está no caminho padrão nem no PATH — instale em python.org marcando a opção "Add Python to PATH" e rode o instalador de novo. Passo final — Abra C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\config.toml no Bloco de Notas e troque o placeholder pela sua chave real: [providers.nvidia] api_key = "COLOQUE_SUA_CHAVE_NVIDIA_AQUI" Como fazer a instalação manual, passo a passo? Prefere entender e controlar cada arquivo manualmente? Siga esta sequência: Copie nvidia_shim.py para C:\Users\&amp;lt;voce&amp;gt;\.kimi-code\proxy\ — crie a pasta se ela ainda não existir. Sem esse arquivo nesse local, o atalho de auto-início não encontra o que executar. Copie kimi-nvidia-shim.cmd para a pasta de Startup do Windows. Digite shell:startup na barra de endereços do Explorer para chegar direto lá. Adicione ao final do config.toml o conteúdo de config-snippet.toml, preenchendo o api_key com sua chave real. Opcionalmente, defina default_model = "nvidia/glm53" no topo do arquivo. Dê dois cliques em kimi-nvidia-shim.cmd (ou reinicie o Windows) para o shim subir. Como testar se a instalação funcionou? Rode estes três comandos, sempre nesta ordem, para validar cada camada do processo: kimi doctor # config valido, sem erros kimi provider list # deve listar: nvidia type=openai models=1 kimi --model nvidia/glm53 -p "Responda somente OK" # deve responder "OK" Se o terceiro comando responder OK, o kit está funcionando de ponta a ponta. No TUI do Kimi, o modelo aparece como GLM-5.3 NVIDIA, com o thinking ajustável entre low, high e max — e até desativável com off_effort = "none", já que a NVIDIA aceita os níveis none/minimal/low/medium/high/xhigh/max. Para uma checagem extra, rápida e opcional: Invoke-WebRequest http://127.0.0.1:8878/health -UseBasicParsing # StatusCode 200 Como trocar a chave da NVIDIA depois de instalado? Gere ou revogue chaves diretamente em build.nvidia.com. Depois, edite apenas o campo api_key dentro de ~\.kimi-code\config.toml — o shim não guarda nenhuma credencial, então nada mais precisa ser reiniciado ou reconfigurado. É literalmente trocar uma linha e continuar usando. Quais são os erros mais comuns e como resolver? SintomaCausa provávelSolução connection refused / fetch failedShim não está rodandoExecute kimi-nvidia-shim.cmd e teste http://127.0.0.1:8878/health Volta o erro 400 status code (no body)base_url apontando direto para a NVIDIAUse base_url = "http://127.0.0.1:8878/v1" no provider nvidia 401 / UnauthorizedChave inválida ou revogadaTroque o api_key no config.toml Shim não sobe (porta 8878 ocupada)Outro programa usando a portaEdite LISTEN_PORT em nvidia_shim.py e o base_url no config Modelo não aparece na listaBloco [models."nvidia/glm53"] ausenteConfira o config-snippet.toml e rode kimi doctor EPERM ao abrir o KimiAntivírus travando o workspaces.jsonRecrie o arquivo (o instalador já faz isso) ou libere exceção para a pasta .kimi-code Como remover o shim por completo? powershell -NoProfile -ExecutionPolicy Bypass -File .\uninstall.ps1 Isso remove o auto-início, encerra o processo do shim e apaga o arquivo nvidia_shim.py da pasta do Kimi. O desinstalador não mexe no seu config.toml — se quiser voltar a apontar direto para a NVIDIA (e aceitar de volta o erro 400 até a Moonshot corrigir o envio do prompt_cache_key), basta remover a linha do base_url local. Quais cuidados de segurança preciso ter ao usar o shim? Nenhuma chave acompanha o kit — cada pessoa usa a sua própria, salva apenas no config.toml local. Se sua chave já apareceu em algum print, chat ou repositório público, considere-a vazada e gere outra imediatamente no portal da NVIDIA. O shim escuta apenas em 127.0.0.1, não grava requisições em disco e todo o tráfego real vai criptografado (TLS) direto para integrate.api.nvidia.com. Conformidade Global: As informações regulatórias e de segurança neste conteúdo refletem o cenário vigente no momento da publicação. Práticas de proteção de dados variam por jurisdição e estão em constante evolução. Consulte sempre as políticas oficiais da NVIDIA e da Moonshot AI e verifique atualizações no IAPP Global Privacy Directory. Este conteúdo não constitui aconselhamento jurídico. .post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px} .post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px} .post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none} .post_faq_question:hover{color:#28a745} .post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px} .post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745} @media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}} .post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)} .post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7} .post_faq_answer.post_faq_show{display:block} .post_faq_answer a{color:#28a745;text-decoration:underline} Perguntas Frequentes O shim funciona no Linux ou no Mac? O kit foi construído para Windows, usando scripts PowerShell e a pasta Startup nativa do sistema. Em Linux ou Mac o arquivo nvidia_shim.py ainda roda com Python, mas a instalação automática e o auto-início precisam ser adaptados manualmente — confira mais scripts de automação em automação com Python no @CanalQb. Preciso pagar pela chave da API da NVIDIA? A conta no portal build.nvidia.com é gratuita e permite gerar sua chave nvapi-... sem custo inicial. Limites de uso e cobrança variam conforme o plano e o volume de chamadas, então vale conferir os termos atualizados diretamente no portal antes de usar em produção. O shim guarda ou envia minha chave da NVIDIA para algum servidor? Não. O shim apenas repassa o cabeçalho Authorization recebido do Kimi Code diretamente para a NVIDIA, sem gravar nada em disco. A chave fica salva apenas no seu config.toml local, sob seu controle total. O que acontece se a Moonshot corrigir o envio do prompt_cache_key? Nesse caso o shim deixa de ser necessário. Basta rodar o desinstalador e apontar o base_url de volta para https://integrate.api.nvidia.com/v1. Vale acompanhar as issues do repositório oficial do Kimi Code para saber quando isso acontecer. Posso usar esse mesmo shim com outros modelos além do GLM-5.3? O princípio funciona para qualquer modelo hospedado no mesmo endpoint da NVIDIA que rejeite o campo prompt_cache_key, bastando ajustar o bloco de modelo no config.toml. Veja outras integrações testadas em NVIDIA API no @CanalQb. É seguro deixar esse shim rodando em segundo plano no meu PC? Sim, dentro do escopo do que ele faz: ele escuta somente em 127.0.0.1, não abre portas para a internet e não registra logs em disco. Ainda assim, como qualquer software local, mantenha o Python atualizado e revise periodicamente se o processo continua sendo o esperado. (function(){ 'use strict'; function showToast(msg){ var t=document.createElement('div'); t.textContent=msg; t.style.cssText='position:fixed;bottom:20px;left:50%;transform:translateX(-50%);background:#333;color:#fff;padding:10px 18px;border-radius:6px;font-size:.85em;z-index:9999;opacity:0.95'; document.body.appendChild(t); setTimeout(function(){t.remove();},2000); } var run = function(){ var btns=document.querySelectorAll('.post_faq_question'); btns.forEach(function(btn){ function toggle(){ var ans=btn.nextElementSibling; var aberto=ans.classList.contains('post_faq_show'); document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');}); document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');}); if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');} } btn.addEventListener('click',toggle); btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}}); }); document.querySelectorAll('.post_copy_btn').forEach(function(btn){ btn.addEventListener('click', function(){ var block = btn.parentElement.querySelector('code'); var text = block ? block.innerText : ''; if(navigator.clipboard &amp;&amp; text){ navigator.clipboard.writeText(text).then(function(){ showToast('Código copiado!'); }); } }); }); }; if('requestIdleCallback' in window){ requestIdleCallback(run); } else { setTimeout(run, 200); } })(); {"@context":"https://schema.org","@type":"FAQPage","mainEntity":[ {"@type":"Question","name":"O shim funciona no Linux ou no Mac?","acceptedAnswer":{"@type":"Answer","text":"O kit foi construído para Windows, usando scripts PowerShell e a pasta Startup nativa do sistema. Em Linux ou Mac o arquivo nvidia_shim.py ainda roda com Python, mas a instalação automática e o auto-início precisam ser adaptados manualmente."}}, {"@type":"Question","name":"Preciso pagar pela chave da API da NVIDIA?","acceptedAnswer":{"@type":"Answer","text":"A conta no portal build.nvidia.com é gratuita e permite gerar sua chave nvapi-... sem custo inicial. Limites de uso e cobrança variam conforme o plano e o volume de chamadas."}}, {"@type":"Question","name":"O shim guarda ou envia minha chave da NVIDIA para algum servidor?","acceptedAnswer":{"@type":"Answer","text":"Não. O shim apenas repassa o cabeçalho Authorization recebido do Kimi Code diretamente para a NVIDIA, sem gravar nada em disco."}}, {"@type":"Question","name":"O que acontece se a Moonshot corrigir o envio do prompt_cache_key?","acceptedAnswer":{"@type":"Answer","text":"O shim deixa de ser necessário. Basta rodar o desinstalador e apontar o base_url de volta para o endpoint oficial da NVIDIA."}}, {"@type":"Question","name":"Posso usar esse mesmo shim com outros modelos além do GLM-5.3?","acceptedAnswer":{"@type":"Answer","text":"O princípio funciona para qualquer modelo hospedado no mesmo endpoint da NVIDIA que rejeite o campo prompt_cache_key, bastando ajustar o bloco de modelo no config.toml."}}, {"@type":"Question","name":"É seguro deixar esse shim rodando em segundo plano no meu PC?","acceptedAnswer":{"@type":"Answer","text":"Sim: ele escuta somente em 127.0.0.1, não abre portas para a internet e não registra logs em disco."}} ]} &#128218; Fontes e Referências Repositório oficial do Kimi Code (MoonshotAI) Portal de chaves e modelos da NVIDIA (build.nvidia.com) Documentação oficial de configuração do Kimi Code Python — download oficial Baixar Script para instalação { "@context":"https://schema.org", "@type":"BlogPosting", "headline":"Instale a NVIDIA no Kimi Code e Acabe com o Erro 400", "description":"Veja como instalar o shim do @CanalQb que resolve o erro 400 do prompt_cache_key e faz o modelo GLM-5.3 da NVIDIA funcionar no Kimi Code.", "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"}, "publisher":{ "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br", "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"} }, "datePublished":"2026-09-19","dateModified":"2026-09-19", "mainEntityOfPage":"{SUBSTITUA_PELA_URL_FINAL_APOS_PUBLICAR}", "copyrightHolder":{"@type":"Person","name":"@CanalQb"}, "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/", "inLanguage":"pt-BR" } Gostou do kit? O código completo está aberto no repositório kimi-nvidia no GitHub. Acompanhe mais automações no @CanalQb no YouTube. ▶ @CanalQb no YouTube</itunes:summary><itunes:keywords>Automação, glm-5.3, IA Local, Kimi Code, moonshot ai, nvidia, PowerShell, Python, shim, tutorial windows</itunes:keywords></item><item><title>Termux Trava na Play Store? Instale Completo do GitHub</title><link>https://canalqb.blogspot.com/2026/09/termux-trava-na-play-store-instale.html</link><category>Android</category><category>Ferramentas</category><category>GitHub</category><category>Linux</category><category>Open Source</category><category>terminal</category><category>termux</category><category>Tutorial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sat, 19 Sep 2026 20:03:29 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-4798127736399628459</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb - Termux completo via GitHub" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEjMCSdfdEeiiZxN3F_-zZDT7AwQNy5oO6n8YJmMp1BvLYlyCSv0UZwPAAyNaJPTHPqEDhHa-2-O8tlm1OlxlunDsY2KysWGT2S9RUtEln7wQ08VjCXK3g4oQhE_GMIjQFr7zaEBRT9ViAA9UZkCMQv__tsZa0z0MB27IYhEFK3Y5kQEf1FETnCgfOlR2M1V" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Termux Trava na Play Store? Instale Completo do GitHub&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;link as="style" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="preload"&gt;&lt;/link&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_wrapper{background:transparent;color:#333;line-height:1.7}
.post_cqb_wrapper a{color:#2196f3}
.post_cqb_progress_bar{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width .1s;z-index:9999}
.post_cqb_readtime{display:inline-flex;align-items:center;gap:6px;background:rgba(40,167,69,.12);color:#28a745;padding:6px 14px;border-radius:20px;font-size:.85em;font-weight:600;margin:6px}
.post_cqb_theme_toggle{display:inline-flex;align-items:center;gap:6px;background:#f0f0f0;border:1px solid #ddd;border-radius:20px;padding:6px 14px;cursor:pointer;font-size:.85em;min-height:44px;margin:6px}
.post_cqb_tldr{background:rgba(33,150,243,.08);border-left:4px solid #2196f3;border-radius:8px;padding:18px 20px;margin:20px 0}
.post_cqb_tldr h2{margin-top:0;font-size:1.1em;color:#2196f3}
.post_cqb_tldr ul{margin:0;padding-left:20px}
.post_cqb_tldr li{margin:6px 0}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;position:relative;margin:16px 0}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;position:relative;margin:16px 0}
.post_cqb_codeblock pre{margin:0;white-space:pre-wrap;word-break:break-word}
.post_copy_btn{position:absolute;top:10px;right:10px;background:#333;color:#fff;border:none;border-radius:6px;padding:6px 12px;font-size:.8em;cursor:pointer;min-height:32px}
.post_copy_btn:hover{background:#555}
.post_cqb_step{border:1px solid #e0e0e0;border-radius:10px;padding:18px 20px;margin:18px 0;background:rgba(0,0,0,.015)}
.post_cqb_step h3{margin-top:0;color:#28a745;display:flex;align-items:center;gap:8px}
.post_cqb_step .post_step_erro{background:rgba(255,193,7,.15);border-left:4px solid #ffc107;padding:10px 14px;border-radius:6px;margin-top:12px;font-size:.92em}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_faq_container{margin:30px 0}
.post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background .2s;min-height:44px}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6}
.post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745}
.post_cqb_skip_link{position:absolute;left:-999px;top:0;background:#28a745;color:#fff;padding:10px 16px;border-radius:0 0 8px 0;z-index:10000}
.post_cqb_skip_link:focus{left:0}
.post_cqb_wrapper a:focus-visible,.post_cqb_theme_toggle:focus-visible,.post_copy_btn:focus-visible{outline:3px solid #2196f3;outline-offset:2px}
@media(prefers-color-scheme:dark){
  .post_cqb_wrapper:not([data-theme="light"]){color:#e0e0e0}
  .post_cqb_wrapper:not([data-theme="light"]) .post_cqb_step{background:rgba(255,255,255,.04);border-color:#444}
  .post_cqb_wrapper:not([data-theme="light"]) .post_faq_answer{background:#1e1e1e;color:#ccc}
  .post_cqb_wrapper:not([data-theme="light"]) .post_faq_question{background:#242424;color:#eee}
}
.post_cqb_wrapper[data-theme="dark"]{color:#e0e0e0}
.post_cqb_wrapper[data-theme="dark"] .post_cqb_step{background:rgba(255,255,255,.04);border-color:#444}
.post_cqb_wrapper[data-theme="dark"] .post_faq_answer{background:#1e1e1e;color:#ccc}
.post_cqb_wrapper[data-theme="dark"] .post_faq_question{background:#242424;color:#eee}
@media(prefers-reduced-motion:reduce){.post_cqb_wrapper *{transition:none!important;animation:none!important}}
@media(max-width:768px){.post_cqb_wrapper{font-size:16px}.post_cqb_step{padding:14px}}
&lt;/style&gt;

&lt;div class="post_cqb_wrapper" id="postCqbWrapper"&gt;
&lt;a class="post_cqb_skip_link" href="#post_main_content"&gt;Pular para o conteúdo&lt;/a&gt;
&lt;div class="post_cqb_progress_bar" id="cqbProgressBar"&gt;&lt;/div&gt;

&lt;p style="text-align: center;"&gt;
  &lt;span class="post_cqb_readtime"&gt;&lt;i aria-hidden="true" class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~16 min&lt;/span&gt;
  &lt;button aria-label="Alternar tema claro/escuro" class="post_cqb_theme_toggle" id="cqbThemeToggle" type="button"&gt;&lt;i aria-hidden="true" class="fas fa-circle-half-stroke"&gt;&lt;/i&gt; Tema&lt;/button&gt;
&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;h2&gt;&lt;i aria-hidden="true" class="fas fa-bolt"&gt;&lt;/i&gt; TL;DR — Resumo Executivo&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;A Play Store roda uma build separada do Termux, mantida à parte, sem os 6 plugins oficiais funcionando de verdade por causa da assinatura digital diferente.&lt;/li&gt;
    &lt;li&gt;A versão completa — com todos os pacotes, comandos e plugins liberados — só existe hoje nas builds do F-Droid e do GitHub oficial do projeto.&lt;/li&gt;
    &lt;li&gt;Migrar da Play Store para o GitHub oficial (github.com/termux/termux-app) leva menos de 10 minutos seguindo os 7 passos deste post, sem precisar de root.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Termux Trava na Play Store? Instale Completo do GitHub" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i aria-hidden="true" class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  As instruções deste post têm fins exclusivamente educacionais. Teste sempre em ambiente controlado e, se possível, com backup recente do aparelho. O @CanalQb não se responsabiliza por danos, perdas de dados ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;div id="post_main_content"&gt;

&lt;p style="font-size: 1.15em; font-weight: 600;"&gt;O Termux da Play Store esconde metade dos comandos que você vai precisar.&lt;/p&gt;
&lt;p&gt;Desde 2021 o Google mudou as regras de segurança para apps que rodam terminal, e o Termux precisou sair da loja oficial para continuar funcionando de verdade. O que voltou depois, anos mais tarde, é uma build separada — mais enxuta, sem parte dos plugins, mantida por um pipeline de compilação diferente do app principal.&lt;/p&gt;
&lt;p&gt;Mais à frente você vai ver exatamente qual comando trava primeiro em quem instala pela Play Store sem saber disso — e como resolver de vez, migrando para a fonte oficial certa no GitHub.&lt;/p&gt;

&lt;h2&gt;Por que o Termux da Play Store é mais limitado que o do GitHub?&lt;/h2&gt;
&lt;p&gt;A Play Store roda uma build separada do Termux porque, desde o Android 10, o Google passou a bloquear a execução de binários baixados fora do APK — exatamente o mecanismo que o Termux usa para instalar pacotes via &lt;code&gt;apt&lt;/code&gt;. Isso forçou o projeto a se afastar da loja em 2021 e a recomendar F-Droid ou GitHub como fontes completas.&lt;/p&gt;
&lt;p&gt;Hoje existe de novo uma versão na Play Store, mas ela é mantida em um repositório próprio, separado do app principal, e passou por ajustes específicos só para caber dentro das regras atuais da loja — o que, na prática, significa cortar caminho em vários pontos. Por exemplo: em vez de depender do plugin Termux:API separado (como a versão completa faz), essa build embute diretamente no app funções isoladas como câmera, notificações, microfone e texto-para-voz. Funciona, mas não é o mesmo ecossistema — e a própria documentação oficial do projeto descreve essa versão como tendo "funcionalidade e bugs" a menos se comparada à build estável.&lt;/p&gt;
&lt;p&gt;Aqui no @CanalQb, testamos as duas builds lado a lado: scripts que dependem de &lt;code&gt;termux-boot&lt;/code&gt; para rodar automações ao ligar o celular simplesmente não têm equivalente na versão da Play Store, porque o plugin Termux:Boot não consegue se conectar ao app instalado por ali.&lt;/p&gt;

&lt;h2&gt;Qual a real diferença entre a versão da Play Store e a do GitHub oficial?&lt;/h2&gt;
&lt;p&gt;A diferença técnica central é a assinatura digital do pacote: o Termux e seus 6 plugins oficiais (API, Boot, Float, Styling, Tasker e Widget) compartilham o mesmo identificador de usuário do sistema Android, o que só funciona quando todos os APKs são assinados com a mesma chave. A build da Play Store usa uma chave de assinatura própria, controlada separadamente pelo mantenedor do projeto só para atender às exigências da loja — o que a torna incompatível, na prática, com os plugins baixados do GitHub ou do F-Droid.&lt;/p&gt;
&lt;p&gt;Isso gera um efeito colateral conhecido: se você tem o Termux instalado via F-Droid ou GitHub e a Play Store tenta "atualizar" o app, o Android recusa a instalação com mensagens como &lt;code&gt;INSTALL_FAILED_UPDATE_INCOMPATIBLE&lt;/code&gt; ou "as assinaturas não coincidem com a versão instalada anteriormente" — porque, para o sistema, são dois apps diferentes mesmo usando nomes parecidos. Em 2026, uma atualização inesperada da versão da Play Store chegou a gerar discussão pública entre usuários que acharam que fosse uma cópia falsa ou um sequestro do projeto; a equipe confirmou publicamente que era legítima, mas o episódio mostra como a coexistência das duas fontes confunde até quem já usa Termux há anos.&lt;/p&gt;
&lt;p&gt;Na prática, para quem programa, automatiza rotinas ou usa SSH no dia a dia, a build do GitHub é a única que entrega o ecossistema completo de plugins funcionando junto com o app principal.&lt;/p&gt;

&lt;h2&gt;Como desinstalar completamente o Termux da Play Store antes de trocar de fonte?&lt;/h2&gt;
&lt;p&gt;Antes de instalar a versão do GitHub, é preciso remover qualquer instalação anterior — inclusive plugins que você nem lembra de ter instalado — porque o Android não permite dois apps com o mesmo identificador coexistindo com assinaturas diferentes.&lt;/p&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-floppy-disk"&gt;&lt;/i&gt; Passo 1 — Faça backup dos seus arquivos antes de desinstalar&lt;/h3&gt;
&lt;p&gt;Dentro do Termux atual, rode &lt;code&gt;termux-setup-storage&lt;/code&gt; para liberar acesso ao armazenamento do celular e aceite a permissão que aparecer. Em seguida, copie o que for importante para fora da pasta interna do app:&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;pre&gt;cp -r ~/meus-scripts ~/storage/shared/backup-termux/&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Esse comando copia a pasta &lt;code&gt;meus-scripts&lt;/code&gt; (ajuste para os seus arquivos reais) do ambiente interno do Termux para a memória compartilhada do celular, fora da área que será apagada na desinstalação. Ele é necessário porque a pasta de dados do app — onde ficam &lt;code&gt;$HOME&lt;/code&gt; e &lt;code&gt;$PREFIX&lt;/code&gt; — é removida junto com o APK assim que você desinstala, sem aviso de recuperação.&lt;/p&gt;
&lt;p&gt;Resultado esperado: os arquivos aparecem em Downloads &amp;gt; backup-termux (ou no gerenciador de arquivos do Android, dentro de armazenamento interno).&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: pular esse passo achando que "é só reinstalar depois" — sem backup, scripts, chaves SSH e configurações personalizadas são perdidos de forma definitiva.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-trash"&gt;&lt;/i&gt; Passo 2 — Desinstale o app principal&lt;/h3&gt;
&lt;p&gt;Vá em Configurações do Android &amp;gt; Aplicativos, procure "Termux" e toque em Desinstalar.&lt;/p&gt;
&lt;p&gt;Esse passo remove o app e seus dados internos do dispositivo. É necessário porque o Android bloqueia a instalação de um app com o mesmo identificador (&lt;code&gt;com.termux&lt;/code&gt;) assinado por uma chave diferente enquanto a versão antiga ainda estiver presente.&lt;/p&gt;
&lt;p&gt;Resultado esperado: o Termux some da lista de apps instalados e do menu de aplicativos.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: tentar instalar o APK do GitHub por cima da versão antiga sem desinstalar — o Android recusa com erro de assinatura incompatível.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-puzzle-piece"&gt;&lt;/i&gt; Passo 3 — Desinstale todos os plugins, mesmo os que você não lembra&lt;/h3&gt;
&lt;p&gt;Ainda em Configurações &amp;gt; Aplicativos, procure por "Termux:" e remova qualquer resultado — API, Boot, Float, Styling, Tasker ou Widget.&lt;/p&gt;
&lt;p&gt;Isso importa porque um plugin antigo, assinado com a chave da Play Store, vai continuar recusando conexão com o app principal novo, mesmo depois que o Termux principal já estiver na versão certa.&lt;/p&gt;
&lt;p&gt;Resultado esperado: nenhum aplicativo começando com "Termux" aparece mais na busca de apps.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: reinstalar só o app principal do GitHub e deixar o Termux:API antigo da Play Store — os comandos de API continuam falhando silenciosamente.&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;Como instalar o Termux completo direto do GitHub oficial (passo a passo)&lt;/h2&gt;
&lt;p&gt;Com o celular limpo, o caminho até o terminal completo passa por sete etapas simples. Nenhuma delas exige root.&lt;/p&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-mobile-screen"&gt;&lt;/i&gt; Passo 1 — Verifique a versão do Android e a arquitetura do processador&lt;/h3&gt;
&lt;p&gt;Acesse Configurações &amp;gt; Sobre o telefone &amp;gt; Versão do Android. A maioria dos aparelhos vendidos a partir de 2021 usa arquitetura &lt;code&gt;arm64-v8a&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Isso define qual arquivo baixar na próxima etapa. Aparelhos com Android 7 ou superior usam a variante "apt-android-7"; Android 5 e 6 usam "apt-android-5", que não recebe atualização de pacotes.&lt;/p&gt;
&lt;p&gt;Resultado esperado: você confirma que seu Android é 7+ (praticamente certo em 2026) e, se souber a arquitetura, escolhe o arquivo mais leve; se não souber, o pacote "universal" resolve para qualquer aparelho.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: baixar a variante "apt-android-5" em um celular novo — o app abre, mas o comando &lt;code&gt;pkg&lt;/code&gt; falha com erro de repositório incompatível.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-code-branch"&gt;&lt;/i&gt; Passo 2 — Acesse a página oficial de releases no GitHub&lt;/h3&gt;
&lt;p&gt;Abra &lt;strong&gt;github.com/termux/termux-app&lt;/strong&gt;, vá até a aba "Releases" e localize a versão mais recente marcada como estável — atualmente a &lt;strong&gt;v0.118.3&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Isso leva você direto à fonte mantida pelos próprios desenvolvedores do projeto. É necessário porque, como o próprio README do Termux avisa, os APKs publicados no GitHub são assinados com uma chave de teste compartilhada publicamente — qualquer pessoa pode compilar um arquivo parecido e assinar com essa mesma chave. A única garantia real de que você está pegando o pacote certo é baixar exatamente desse repositório, e não de um link recebido em grupo de WhatsApp, Telegram ou site espelho.&lt;/p&gt;
&lt;p&gt;Resultado esperado: a página de releases mostra a lista de arquivos .apk logo abaixo do changelog daquela versão.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: confundir a aba "Releases" com "Actions" — esta última guarda builds de teste de cada commit, menos estáveis e voltadas para quem contribui com código.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-download"&gt;&lt;/i&gt; Passo 3 — Baixe o arquivo .apk correto&lt;/h3&gt;
&lt;p&gt;Dentro dos arquivos da release v0.118.3, baixe &lt;code&gt;termux-app_v0.118.3+apt-android-7-github-debug_universal.apk&lt;/code&gt; (ou a variante da sua arquitetura específica, se você souber qual é).&lt;/p&gt;
&lt;p&gt;Esse arquivo já vem com o "bootstrap" — os pacotes mínimos que o Termux precisa para abrir o shell pela primeira vez. A variante "apt-android-7" garante acesso ao repositório de pacotes atualizado.&lt;/p&gt;
&lt;p&gt;Resultado esperado: o .apk aparece na pasta Downloads, com tamanho entre 120MB (arquitetura específica) e 180MB (universal).&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: baixar um arquivo sem o sufixo "-github-debug" — é sinal de que não veio da publicação oficial da release.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-shield-halved"&gt;&lt;/i&gt; Passo 4 — Permita instalação de fontes desconhecidas&lt;/h3&gt;
&lt;p&gt;Ao abrir o .apk baixado, o Android normalmente bloqueia com um aviso. Toque em "Configurações" nesse aviso e ative "Permitir desta fonte" para o app usado para abrir o arquivo (geralmente o gerenciador de downloads ou de arquivos).&lt;/p&gt;
&lt;p&gt;Desde o Android 8, essa permissão é concedida por aplicativo, não de forma global — sem isso, a instalação é bloqueada mesmo com o arquivo correto em mãos.&lt;/p&gt;
&lt;p&gt;Resultado esperado: ao voltar e tocar em instalar, aparece a tela padrão do Android mostrando o nome "Termux" e as permissões solicitadas.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: liberar a permissão no app errado (por exemplo, no navegador, quando o arquivo foi baixado pelo gerenciador de arquivos do sistema) — o bloqueio reaparece.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-terminal"&gt;&lt;/i&gt; Passo 5 — Instale e abra o Termux pela primeira vez&lt;/h3&gt;
&lt;p&gt;Toque em "Instalar", aguarde a confirmação e abra o app.&lt;/p&gt;
&lt;p&gt;É nesse primeiro boot que o Termux cria a estrutura de pastas &lt;code&gt;$HOME&lt;/code&gt; e &lt;code&gt;$PREFIX&lt;/code&gt; que todo o resto do tutorial vai usar.&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;~ $ &lt;span class="comment"&gt;# prompt pronto indica que o shell foi iniciado&lt;/span&gt;&lt;/div&gt;
&lt;p&gt;Resultado esperado: aparece um terminal preto com o prompt &lt;code&gt;~ $&lt;/code&gt;.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: em Android 12+, o app pode fechar sozinho na primeira abertura por causa do limite de processos em segundo plano do sistema — feche outros apps e abra de novo, geralmente resolve na segunda tentativa.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-rotate"&gt;&lt;/i&gt; Passo 6 — Libere o armazenamento e atualize os pacotes&lt;/h3&gt;
&lt;p&gt;Dentro do terminal, rode:&lt;/p&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;pre&gt;termux-setup-storage
pkg update &amp;amp;&amp;amp; pkg upgrade -y&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;O primeiro comando cria atalhos em &lt;code&gt;~/storage&lt;/code&gt; para as pastas do celular. O segundo sincroniza a lista de pacotes disponíveis e atualiza tudo que veio no bootstrap para a versão mais recente — necessário porque o bootstrap embutido no APK costuma ter meses de defasagem em relação ao repositório real, o que evita erro de dependência quebrada ao instalar algo como &lt;code&gt;python&lt;/code&gt; ou &lt;code&gt;git&lt;/code&gt; depois.&lt;/p&gt;
&lt;p&gt;Resultado esperado: uma lista de pacotes passa na tela terminando em algo como "X upgraded, Y newly installed" sem mensagens em vermelho.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: mensagem "repository is under maintenance or down" — normalmente é um espelho de pacotes fora do ar; rode &lt;code&gt;termux-change-repo&lt;/code&gt; e escolha outro mirror da lista.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-plug"&gt;&lt;/i&gt; Passo 7 — Instale os plugins compatíveis (opcional, mas recomendado)&lt;/h3&gt;
&lt;p&gt;Baixe Termux:API, Termux:Boot, Termux:Styling e outros plugins desejados da mesma organização oficial no GitHub — nunca misturando com APK de outra origem.&lt;/p&gt;
&lt;p&gt;Os plugins adicionam comandos que não vêm no app principal, como leitura de sensores, execução de scripts na inicialização do celular ou troca de fonte e cores do terminal. Como todo o ecossistema Termux compartilha o mesmo identificador de sistema, instalar um plugin de fonte diferente do app principal falha por assinatura incompatível.&lt;/p&gt;
&lt;p&gt;Resultado esperado: depois de instalar o Termux:API, o comando &lt;code&gt;pkg install termux-api&lt;/code&gt; passa a habilitar comandos como &lt;code&gt;termux-battery-status&lt;/code&gt; e &lt;code&gt;termux-vibrate&lt;/code&gt;.&lt;/p&gt;
&lt;p class="post_step_erro"&gt;&lt;i aria-hidden="true" class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: instalar o Termux:API pela Play Store enquanto o app principal veio do GitHub — mesmo aparecendo instalado, os comandos retornam erro porque as assinaturas não coincidem.&lt;/p&gt;
&lt;/div&gt;

&lt;h2&gt;A versão beta do GitHub (0.119) vale a pena ou é melhor ficar na estável?&lt;/h2&gt;
&lt;p&gt;Hoje o GitHub oferece duas trilhas: a estável v0.118.3 e a beta v0.119.0-beta.3. Para uso diário, scripts e automações, a estável é a escolha certa — a própria equipe do projeto já declarou publicamente que o 0.118 está próximo de "feature complete" e que o lançamento da série 0.119 está sendo feito sem pressa, justamente para não quebrar quem depende do app no dia a dia.&lt;/p&gt;
&lt;p&gt;A trilha beta existe para quem quer testar novidades antes do lançamento oficial e não se incomoda em reportar bugs ocasionais — não é recomendada para quem usa o Termux como ferramenta de trabalho. Aqui no @CanalQb, recomendamos a v0.118.3 para praticamente todos os leitores, reservando a beta só para quem contribui ativamente com o projeto.&lt;/p&gt;

&lt;h2&gt;O APK do GitHub é seguro? Como confirmar que não é uma cópia falsa?&lt;/h2&gt;
&lt;p&gt;É seguro desde que venha exatamente do endereço oficial &lt;strong&gt;github.com/termux/termux-app&lt;/strong&gt; — mas exige atenção, porque os APKs publicados ali usam uma chave de assinatura de teste conhecida publicamente, não uma chave exclusiva e sigilosa do mantenedor.&lt;/p&gt;
&lt;p&gt;Na prática, isso significa que qualquer pessoa pode compilar um arquivo parecido, assinar com a mesma chave e distribuir como se fosse "a atualização mais nova" em grupos de WhatsApp, Telegram ou sites de terceiros. O próprio episódio de 2026, quando uma atualização inesperada apareceu na Play Store, mostrou que até usuários experientes chegam a duvidar da autenticidade de uma versão — reforçando que conferir a URL exata do repositório, e não confiar em links avulsos, é o hábito de segurança mais importante nessa migração. Baixe sempre a partir da aba "Releases" do repositório oficial, confira se a versão listada bate com o changelog publicado ali mesmo, e evite qualquer APK recebido fora desse canal.&lt;/p&gt;

&lt;h2&gt;&lt;i aria-hidden="true" class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;
&lt;div class="post_faq_container"&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i aria-hidden="true" class="fas fa-question-circle"&gt;&lt;/i&gt; Posso usar o Termux da Play Store e do GitHub ao mesmo tempo no mesmo celular?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não é possível instalar as duas versões lado a lado com o mesmo identificador de app, porque elas disputam o mesmo espaço no sistema (&lt;code&gt;com.termux&lt;/code&gt;). Mesmo quando o Android chega a permitir instalações com nomes parecidos, os dados de &lt;code&gt;$HOME&lt;/code&gt; e &lt;code&gt;$PREFIX&lt;/code&gt; de uma versão não são enxergados pela outra — você teria dois ambientes Linux totalmente separados, sem sincronia. Na prática, ou você fica exclusivamente na build da Play Store, ou desinstala e migra tudo para a build do GitHub; não dá para compartilhar scripts, pacotes e configurações entre as duas ao mesmo tempo.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i aria-hidden="true" class="fas fa-question-circle"&gt;&lt;/i&gt; Perco meus arquivos e scripts ao trocar da Play Store para o GitHub?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Sim, se você simplesmente desinstalar sem fazer backup antes. O Android trata a troca de fonte de instalação como se fosse um app novo, e a pasta de dados interna do Termux — onde ficam &lt;code&gt;$HOME&lt;/code&gt; e &lt;code&gt;$PREFIX&lt;/code&gt; — é apagada junto com a desinstalação, sem possibilidade de recuperação depois. Antes de remover a versão antiga, copie manualmente tudo que for importante — scripts, chaves SSH, arquivos de configuração — para o armazenamento compartilhado do celular usando &lt;code&gt;termux-setup-storage&lt;/code&gt; seguido de um &lt;code&gt;cp -r&lt;/code&gt;, exatamente como mostrado no passo a passo deste post. Depois de instalar a versão nova, é só copiar de volta.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i aria-hidden="true" class="fas fa-question-circle"&gt;&lt;/i&gt; O Termux do GitHub funciona sem internet depois de instalado?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;O terminal em si e os comandos já instalados funcionam totalmente offline — editar arquivos com nano ou vim, rodar scripts em Python, usar Git localmente, nada disso depende de conexão. Internet só é necessária em dois momentos: para baixar o APK de instalação na primeira vez, e sempre que você rodar &lt;code&gt;pkg install&lt;/code&gt;, &lt;code&gt;pkg update&lt;/code&gt; ou &lt;code&gt;pkg upgrade&lt;/code&gt; para buscar pacotes novos ou atualizados nos repositórios remotos. Se o pacote que você precisa já estiver instalado, dá para desligar o Wi-Fi e continuar trabalhando normalmente no terminal.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i aria-hidden="true" class="fas fa-question-circle"&gt;&lt;/i&gt; Por que o comando pkg trava com erro de repositório mesmo depois de instalar certo?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Na grande maioria dos casos isso não é erro de instalação, e sim um espelho (mirror) de pacotes fora do ar ou sobrecarregado no momento — uma situação recorrente já sinalizada pelos próprios mantenedores do projeto, e não um problema exclusivo do seu aparelho. A solução rápida é rodar o comando &lt;code&gt;termux-change-repo&lt;/code&gt; dentro do terminal, que abre uma lista de mirrors alternativos para você escolher outro; depois disso, repita o &lt;code&gt;pkg update&lt;/code&gt;. Se o erro persistir em todos os mirrors testados, o mais provável é uma instabilidade temporária da rede de distribuição de pacotes, e vale tentar de novo em algumas horas.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i aria-hidden="true" class="fas fa-question-circle"&gt;&lt;/i&gt; Vale a pena usar root com o Termux instalado pelo GitHub?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Não é necessário para o uso normal — todo o passo a passo deste post funciona em aparelho sem root, incluindo instalação de pacotes, scripts e a maioria dos plugins. Root só entra em cena para tarefas bem específicas, como acessar diretamente pastas de outros apps protegidas pelo sistema ou rodar comandos que dependem de permissões de administrador do Android. Para automação, programação, scripts e a maior parte dos usos que o @CanalQb costuma mostrar em tutoriais, o Termux sem root já cobre praticamente tudo que um iniciante ou intermediário vai precisar.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"FAQPage",
  "mainEntity":[
    {"@type":"Question","name":"Posso usar o Termux da Play Store e do GitHub ao mesmo tempo no mesmo celular?","acceptedAnswer":{"@type":"Answer","text":"Não é possível instalar as duas versões lado a lado com o mesmo identificador de app, pois disputam o mesmo espaço no sistema. Os dados de uma versão não são compartilhados com a outra, criando dois ambientes Linux separados."}},
    {"@type":"Question","name":"Perco meus arquivos e scripts ao trocar da Play Store para o GitHub?","acceptedAnswer":{"@type":"Answer","text":"Sim, se desinstalar sem backup. A pasta de dados interna é apagada na desinstalação. Copie arquivos importantes para o armazenamento compartilhado usando termux-setup-storage antes de trocar de fonte."}},
    {"@type":"Question","name":"O Termux do GitHub funciona sem internet depois de instalado?","acceptedAnswer":{"@type":"Answer","text":"Sim, comandos e pacotes já instalados funcionam offline. Internet só é necessária para baixar o APK e para comandos pkg install, update ou upgrade."}},
    {"@type":"Question","name":"Por que o comando pkg trava com erro de repositório mesmo depois de instalar certo?","acceptedAnswer":{"@type":"Answer","text":"Geralmente é um espelho de pacotes fora do ar. Rode termux-change-repo para escolher outro mirror e repita o pkg update."}},
    {"@type":"Question","name":"Vale a pena usar root com o Termux instalado pelo GitHub?","acceptedAnswer":{"@type":"Answer","text":"Não é necessário para uso normal, scripts, automações e a maioria dos plugins. Root só é útil para tarefas específicas do sistema Android."}}
  ]
}
&lt;/script&gt;

&lt;p style="color: #777777; font-size: 0.85em; margin: 20px 0px;"&gt;
  &lt;i aria-hidden="true" class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Nota Jurídica:&lt;/strong&gt;
  Este conteúdo pode estar sujeito a diferentes leis de privacidade dependendo da sua jurisdição.
  Consulte o &lt;a href="https://iapp.org/resources/article/the-iapp-resource-center/" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt;
  para informações específicas da sua região.
&lt;/p&gt;

&lt;h3&gt;&lt;i aria-hidden="true" class="fas fa-book"&gt;&lt;/i&gt; Fontes e Referências&lt;/h3&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i aria-hidden="true" class="fas fa-link" style="color: #2196f3;"&gt;&lt;/i&gt; Repositório oficial do Termux no GitHub: &lt;a href="https://github.com/termux/termux-app" rel="noopener noreferrer" target="_blank"&gt;github.com/termux/termux-app&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;i aria-hidden="true" class="fas fa-link" style="color: #2196f3;"&gt;&lt;/i&gt; Release oficial v0.118.3 usada como referência de instalação: &lt;a href="https://github.com/termux/termux-app/releases/tag/v0.118.3" rel="noopener noreferrer" target="_blank"&gt;github.com/termux/termux-app/releases/tag/v0.118.3&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Termux Trava na Play Store? Instale Completo do GitHub",
  "description":"O Termux da Play Store roda limitado por política do Google. A versão oficial do GitHub entrega o terminal Linux completo, com todos os plugins ativos.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-19","dateModified":"2026-09-19",
  "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/termux-play-store-limitado-instale-github-oficial.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"HowTo",
  "name":"Como instalar o Termux completo direto do GitHub oficial",
  "totalTime":"PT10M",
  "step":[
    {"@type":"HowToStep","name":"Verifique a versão do Android e a arquitetura","text":"Confira a versão do Android e a arquitetura do processador em Configurações &gt; Sobre o telefone."},
    {"@type":"HowToStep","name":"Acesse a página oficial de releases","text":"Abra github.com/termux/termux-app e vá até a aba Releases para localizar a versão estável mais recente."},
    {"@type":"HowToStep","name":"Baixe o arquivo .apk correto","text":"Baixe a variante apt-android-7 universal ou específica da sua arquitetura."},
    {"@type":"HowToStep","name":"Permita instalação de fontes desconhecidas","text":"Ative a permissão de instalação de fontes desconhecidas para o app usado para abrir o arquivo baixado."},
    {"@type":"HowToStep","name":"Instale e abra o Termux","text":"Toque em instalar, aguarde a confirmação e abra o aplicativo para iniciar o ambiente shell."},
    {"@type":"HowToStep","name":"Libere o armazenamento e atualize os pacotes","text":"Rode termux-setup-storage e depois pkg update &amp;&amp; pkg upgrade -y dentro do terminal."},
    {"@type":"HowToStep","name":"Instale os plugins compatíveis","text":"Baixe Termux:API, Termux:Boot e outros plugins da mesma organização oficial no GitHub."}
  ]
}
&lt;/script&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 30px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;i aria-hidden="true" class="fas fa-magnifying-glass"&gt;&lt;/i&gt; Veja também no @CanalQb:
  &lt;a href="https://www.canalqb.com.br/search?q=termux" rel="noopener noreferrer" target="_blank"&gt;tutoriais de Termux&lt;/a&gt; ·
  &lt;a href="https://www.canalqb.com.br/search?q=linux+android" rel="noopener noreferrer" target="_blank"&gt;Linux no Android&lt;/a&gt; ·
  &lt;a href="https://www.canalqb.com.br/search?q=scripts+automacao" rel="noopener noreferrer" target="_blank"&gt;scripts e automação&lt;/a&gt;
&lt;/p&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-weight: bold; text-decoration: none;" target="_blank"&gt;
    &lt;i aria-hidden="true" class="fas fa-play"&gt;&lt;/i&gt; Inscreva-se no @CanalQb no YouTube
  &lt;/a&gt;
&lt;/p&gt;
&lt;p style="color: #999999; font-size: 0.8em; text-align: center;"&gt;Feito com Master Rules Claude v9.0&lt;/p&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;script&gt;
(function(){
  'use strict';
  var wrapper = document.getElementById('postCqbWrapper');
  var bar = document.getElementById('cqbProgressBar');
  window.addEventListener('scroll', function(){
    if(!wrapper || !bar) return;
    var h = wrapper.scrollHeight - window.innerHeight;
    var pct = h &gt; 0 ? (window.scrollY / h) * 100 : 0;
    bar.style.width = Math.min(100, Math.max(0, pct)) + '%';
  }, {passive:true});

  var toggle = document.getElementById('cqbThemeToggle');
  if(toggle &amp;&amp; wrapper){
    var saved = null;
    try{ saved = localStorage.getItem('cqb_theme'); }catch(e){}
    if(saved){ wrapper.setAttribute('data-theme', saved); }
    toggle.addEventListener('click', function(){
      var current = wrapper.getAttribute('data-theme');
      var next = current === 'dark' ? 'light' : 'dark';
      wrapper.setAttribute('data-theme', next);
      try{ localStorage.setItem('cqb_theme', next); }catch(e){}
    });
  }

  document.querySelectorAll('.post_cqb_codeblock').forEach(function(block){
    var btn = document.createElement('button');
    btn.type = 'button';
    btn.innerHTML = '&lt;i class="fas fa-copy" aria-hidden="true"&gt;&lt;/i&gt; Copiar';
    btn.className = 'post_copy_btn';
    btn.setAttribute('aria-label', 'Copiar código');
    btn.addEventListener('click', function(){
      var text = block.innerText.replace('Copiar', '').trim();
      if(navigator.clipboard){
        navigator.clipboard.writeText(text).then(function(){
          btn.innerHTML = '&lt;i class="fas fa-check" aria-hidden="true"&gt;&lt;/i&gt; Copiado!';
          setTimeout(function(){ btn.innerHTML = '&lt;i class="fas fa-copy" aria-hidden="true"&gt;&lt;/i&gt; Copiar'; }, 2000);
        });
      }
    });
    block.style.position = 'relative';
    block.appendChild(btn);
  });
})();
&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjMCSdfdEeiiZxN3F_-zZDT7AwQNy5oO6n8YJmMp1BvLYlyCSv0UZwPAAyNaJPTHPqEDhHa-2-O8tlm1OlxlunDsY2KysWGT2S9RUtEln7wQ08VjCXK3g4oQhE_GMIjQFr7zaEBRT9ViAA9UZkCMQv__tsZa0z0MB27IYhEFK3Y5kQEf1FETnCgfOlR2M1V=s72-c" width="72"/></item><item><title>Google Skills: Ative Superpoderes em Qualquer Agente IA</title><link>https://canalqb.blogspot.com/2026/09/google-skills-ative-superpoderes-em.html</link><category>agent skills</category><category>automação ia</category><category>Claude Code</category><category>google cloud</category><category>google skills</category><category>hermes agent</category><category>mcp</category><category>skills cli</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sat, 19 Sep 2026 19:42:27 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-889658638576645395</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEjGCncm5SLwDFWGkjo_dcDM3lICWz20kgMXALq7rX6J07lzrr8SFavWFtPjHQjQxBYDxLvkNta3kyX1YgEPecs8sQDZSg4pLVrL6zUvCQ78Psp0Bp9CLezhmYuUIGP1gWe9WBCPLyd8ZKeSU565TFqWLUmxYXR53e3Urz7kVgARz78u10vrIHYptiITPqVT" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Google Skills: Ative Superpoderes em Qualquer Agente IA&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;
&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_badge_leitura{display:inline-block;background:rgba(33,150,243,0.1);color:#2196f3;padding:6px 14px;border-radius:20px;font-size:0.85em;font-weight:600;margin:10px 0}
.post_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;border-radius:8px;padding:18px 20px;margin:20px 0}
.post_tldr h2{margin:0 0 10px;font-size:1.05em;color:#28a745}
.post_tldr ul{margin:0;padding-left:20px;color:#333}
.post_tldr li{margin-bottom:6px;line-height:1.5}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;position:relative;overflow-x:auto;margin:16px 0}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;position:relative;overflow-x:auto;margin:16px 0}
.post_copy_btn{position:absolute;top:10px;right:10px;background:rgba(255,255,255,0.1);color:#fff!important;border:1px solid rgba(255,255,255,0.25);border-radius:6px;padding:5px 10px;font-size:0.8em;cursor:pointer;min-height:32px}
.post_copy_btn:hover{background:rgba(255,255,255,0.2)}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.95em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_cqb_table{width:100%;border-collapse:collapse;margin:16px 0;font-size:0.9em;overflow-x:auto;display:block}
.post_cqb_table th{background:#28a745;color:#fff;padding:10px;text-align:left}
.post_cqb_table td{padding:10px;border-bottom:1px solid #e0e0e0;color:#555}
@media(prefers-color-scheme:dark){
  .post_tldr{background:rgba(40,167,69,0.15)}
  .post_cqb_table td{color:#ccc;border-color:#333}
}
&lt;/style&gt;

&lt;div style="text-align: center;"&gt;
  &lt;span class="post_badge_leitura"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~9 min&lt;/span&gt;
&lt;/div&gt;

&lt;div class="post_tldr"&gt;
  &lt;h2&gt;&lt;i class="fas fa-bolt"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;O &lt;code&gt;google/skills&lt;/code&gt; reúne mais de 140 Agent Skills oficiais da Google, instaláveis com um único comando &lt;code&gt;npx skills add google/skills&lt;/code&gt;.&lt;/li&gt;
    &lt;li&gt;Funciona em mais de 40 agentes — Claude Code, Gemini CLI, Codex, Cursor, Hermes Agent e outros — sem precisar copiar arquivo manualmente.&lt;/li&gt;
    &lt;li&gt;Depois de instalado, o agente lê o &lt;code&gt;SKILL.md&lt;/code&gt; sozinho e aplica o conhecimento sempre que o assunto aparecer na conversa.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Google Skills: Ative Superpoderes em Qualquer Agente IA" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Os comandos e scripts deste post têm fins exclusivamente educacionais. Teste sempre em um diretório de projeto isolado antes de instalar em ambiente de produção. O @CanalQb não se responsabiliza por danos, perdas ou conflitos de configuração decorrentes do uso indevido.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;140 skills oficiais da Google, um comando só — e a maioria dos devs nem sabe que isso existe.&lt;/strong&gt;&lt;br /&gt;
Enquanto todo mundo copia e cola prompt gigante toda vez que muda de assistente, a Google publicou um repositório inteiro de conhecimento pronto pra qualquer agente ler sozinho. Isso muda a forma como você configura Claude Code, Gemini CLI ou qualquer outro assistente de terminal — e o print que você mandou é exatamente o primeiro passo desse processo. Vamos destrinchar cada comando, cada opção de agente e mostrar como invocar isso de dentro do Claude e do Hermes Agent.&lt;/p&gt;

&lt;h2&gt;O que é o repositório google/skills?&lt;/h2&gt;
&lt;p&gt;O &lt;code&gt;google/skills&lt;/code&gt; é o repositório oficial da Google no GitHub reunindo &lt;strong&gt;Agent Skills&lt;/strong&gt; — pacotes de instruções em Markdown que ensinam agentes de IA a operar produtos e tecnologias Google, como Google Cloud, BigQuery, GKE, Firebase, Genkit e a API do Gemini. Aqui no @CanalQb, validamos que ele já passa de 140 skills catalogadas cobrindo desde autenticação até troubleshooting de cluster.&lt;/p&gt;

&lt;p&gt;Cada skill segue o padrão aberto &lt;a href="https://agentskills.io/home" rel="noopener noreferrer" target="_blank"&gt;Agent Skills&lt;/a&gt;: um arquivo &lt;code&gt;SKILL.md&lt;/code&gt; com metadados (nome, descrição, quando usar) mais instruções passo a passo que o agente injeta no próprio contexto quando o tema surge na conversa. Não é um plugin binário — é conhecimento estruturado, leve, versionável em Git e fácil de auditar.&lt;/p&gt;

&lt;h2&gt;Para que serve o Google Skills na prática?&lt;/h2&gt;
&lt;p&gt;Ele resolve o problema de "o agente não conhece meu produto direito". Em vez de reescrever prompts longos toda semana, você instala a skill certa e o agente passa a saber, por exemplo, os passos corretos de autenticação no Google Cloud, a sintaxe do &lt;code&gt;gcloud&lt;/code&gt; ou como estruturar um pipeline no BigQuery — sem alucinar comando.&lt;/p&gt;

&lt;p&gt;Isso é diferente de um MCP server. O MCP conecta o agente a uma ferramenta externa em tempo real (Gmail, Slack, um banco de dados). A skill ensina &lt;em&gt;como usar&lt;/em&gt; essa ferramenta ou tecnologia — muitas vezes as duas coisas trabalham juntas, como você vai ver no bloco de plugins mais adiante.&lt;/p&gt;

&lt;h2&gt;Como funciona o CLI "skills" (skills.sh)?&lt;/h2&gt;
&lt;p&gt;O comando &lt;code&gt;npx skills&lt;/code&gt; não é da Google — é o CLI open-source mantido pela Vercel (&lt;a href="https://skills.sh" rel="noopener noreferrer" target="_blank"&gt;skills.sh&lt;/a&gt;), que virou o padrão de fato do ecossistema. Ele lê qualquer repositório público no formato Agent Skills, mostra um menu interativo e copia (ou cria symlink) dos arquivos certos para a pasta que cada agente reconhece.&lt;/p&gt;

&lt;p&gt;O CLI é agnóstico de fornecedor: funciona com &lt;code&gt;google/skills&lt;/code&gt;, com repositórios de terceiros e com pastas locais. Por isso o mesmo comando serve tanto para instalar skills da Google quanto skills que você mesmo criar. Se você já pesquisou sobre &lt;a href="https://www.canalqb.com.br/search?q=automação" rel="noopener noreferrer" target="_blank"&gt;automação de terminal&lt;/a&gt; aqui no canal, esse CLI encaixa direto no seu fluxo de trabalho.&lt;/p&gt;

&lt;h2&gt;Quais comandos são necessários para instalar?&lt;/h2&gt;
&lt;p&gt;O ponto de entrada é um único comando. Ele baixa o pacote &lt;code&gt;skills&lt;/code&gt; via npm (usando &lt;code&gt;npx&lt;/code&gt;, sem instalação global obrigatória) e inicia o assistente interativo direto no terminal.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Instala o CLI sob demanda e lista os skills do repositório da Google&lt;/span&gt;
npx skills add google/skills&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Depois de rodar isso, o CLI mostra 3 telas em sequência — exatamente como no seu print: (1) seleção de skills, (2) seleção de agentes de destino e (3) escopo de instalação (projeto ou global). Veja as variações mais usadas:&lt;/p&gt;

&lt;div class="post_cqb_codeblock"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Listar todas as skills sem instalar nada&lt;/span&gt;
npx skills add google/skills --list

&lt;span class="comment"&gt;# Instalar uma skill específica direto, sem menu interativo&lt;/span&gt;
npx skills add google/skills --skill gcloud

&lt;span class="comment"&gt;# Instalar para um agente específico (ex: Claude Code)&lt;/span&gt;
npx skills add google/skills -a claude-code

&lt;span class="comment"&gt;# Instalar em vários agentes de uma vez&lt;/span&gt;
npx skills add google/skills -a claude-code -a gemini-cli -a cursor

&lt;span class="comment"&gt;# Instalar todas as skills, para todos os agentes, sem perguntas (CI/CD)&lt;/span&gt;
npx skills add google/skills --skill '*' -a '*' --yes

&lt;span class="comment"&gt;# Instalação global (disponível em todos os projetos, não só no atual)&lt;/span&gt;
npx skills add google/skills -g

&lt;span class="comment"&gt;# Gerar apenas o prompt de uma skill e já abrir um agente com ele&lt;/span&gt;
npx skills use google/skills --skill gcloud --agent claude-code&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Toda instalação é registrada em um arquivo &lt;code&gt;skills-lock.json&lt;/code&gt; na raiz do projeto. Comite esse arquivo no Git e qualquer colega reproduz exatamente o mesmo conjunto de skills rodando &lt;code&gt;npx skills add&lt;/code&gt; novamente — funciona como um &lt;code&gt;package-lock.json&lt;/code&gt; para conhecimento de agente.&lt;/p&gt;

&lt;h2&gt;Quais agentes de IA são compatíveis com o Google Skills?&lt;/h2&gt;
&lt;p&gt;O CLI já reconhece mais de 40 agentes — no seu print aparecem Amp, Cline, Codex, Cursor, Droid, Gemini CLI, GitHub Copilot, Kilo Code, Kimi Code CLI, OpenCode, Warp, Zed e Hermes Agent. A tabela abaixo resume os mais usados e onde cada um guarda a skill instalada:&lt;/p&gt;

&lt;table class="post_cqb_table"&gt;
  &lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Agente&lt;/th&gt;&lt;th&gt;Flag (-a)&lt;/th&gt;&lt;th&gt;Pasta do projeto&lt;/th&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Claude Code&lt;/td&gt;&lt;td&gt;&lt;code&gt;claude-code&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;.claude/skills/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Gemini CLI&lt;/td&gt;&lt;td&gt;&lt;code&gt;gemini-cli&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;.gemini/skills/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Cursor&lt;/td&gt;&lt;td&gt;&lt;code&gt;cursor&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;.cursor/skills/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;OpenAI Codex&lt;/td&gt;&lt;td&gt;&lt;code&gt;codex&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;.codex/skills/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;GitHub Copilot&lt;/td&gt;&lt;td&gt;&lt;code&gt;github-copilot&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;.github/skills/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Google Antigravity&lt;/td&gt;&lt;td&gt;&lt;code&gt;antigravity&lt;/code&gt;&lt;/td&gt;&lt;td&gt;&lt;code&gt;.agent/skills/&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Hermes Agent&lt;/td&gt;&lt;td&gt;configuração manual&lt;/td&gt;&lt;td&gt;&lt;code&gt;~/.agents/skills/&lt;/code&gt; (via &lt;code&gt;external_dirs&lt;/code&gt;)&lt;/td&gt;&lt;/tr&gt;
  &lt;tr&gt;&lt;td&gt;Todos ao mesmo tempo&lt;/td&gt;&lt;td&gt;&lt;code&gt;'*'&lt;/code&gt;&lt;/td&gt;&lt;td&gt;auto-detectado&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;h2&gt;Como instalar e usar o Google Skills no Claude Code?&lt;/h2&gt;
&lt;p&gt;Instale direto pela flag de agente e o Claude Code passa a monitorar a pasta &lt;code&gt;.claude/skills/&lt;/code&gt; automaticamente — mudanças valem na sessão atual, sem reiniciar.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Instala a skill do gcloud especificamente para o Claude Code&lt;/span&gt;
npx skills add google/skills --skill gcloud -a claude-code --yes&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;A partir daí, &lt;strong&gt;você não "chama" a skill com um comando&lt;/strong&gt; — ela é ativada por contexto. Basta pedir algo relacionado dentro do chat do Claude Code, por exemplo:&lt;/p&gt;

&lt;div class="post_cqb_codeblock"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;Autentique este projeto no Google Cloud e configure a service account&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;O Claude Code detecta que a descrição da skill &lt;code&gt;gcloud&lt;/code&gt; combina com o pedido, lê o &lt;code&gt;SKILL.md&lt;/code&gt; correspondente e segue exatamente o procedimento documentado — em vez de tentar adivinhar a sintaxe. O repositório também empacota plugins prontos: você pode registrar o marketplace inteiro e instalar por nome.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Registra o repositório da Google como fonte de plugins no Claude Code&lt;/span&gt;
claude plugin marketplace add google/skills

&lt;span class="comment"&gt;# Instala um plugin específico do marketplace&lt;/span&gt;
claude plugin install &amp;lt;nome-do-plugin&amp;gt;@google-plugins&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;Como usar o Google Skills no Hermes Agent?&lt;/h2&gt;
&lt;p&gt;O Hermes Agent, da NousResearch, é o item que aparece no fim da lista do seu print. Diferente do Claude Code, ele não tem uma flag &lt;code&gt;-a hermes&lt;/code&gt; dedicada no CLI hoje — a forma documentada é apontar o Hermes para a pasta universal de skills via arquivo de configuração.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# 1. Instala as skills na pasta universal (.agents/skills), lida por vários agentes&lt;/span&gt;
npx skills add google/skills -a '*' --yes

&lt;span class="comment"&gt;# 2. Edite o config do Hermes para enxergar essa pasta&lt;/span&gt;
nano ~/.hermes/config.yaml&lt;/pre&gt;
&lt;/div&gt;

&lt;div class="post_cqb_codeblock"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# trecho a adicionar em ~/.hermes/config.yaml&lt;/span&gt;
external_dirs:
  - ~/.agents/skills&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Com isso salvo, reinicie a sessão do Hermes (&lt;code&gt;hermes&lt;/code&gt; no terminal) e peça algo cujo tema bata com uma das skills instaladas — o próprio motor de auto-evolução do Hermes indexa a nova pasta e passa a considerar essas skills nas respostas seguintes, junto das que ele já vinha aprendendo sozinho.&lt;/p&gt;

&lt;h2&gt;Como instalar em outros agentes de terminal (Gemini CLI, Codex, Cursor)?&lt;/h2&gt;
&lt;p&gt;O padrão de comando muda só na flag &lt;code&gt;-a&lt;/code&gt;. Veja os três mais pedidos por quem já usa &lt;a href="https://www.canalqb.com.br/search?q=claude+code" rel="noopener noreferrer" target="_blank"&gt;Claude Code&lt;/a&gt; em paralelo com outras ferramentas:&lt;/p&gt;

&lt;div class="post_cqb_codeblock"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Gemini CLI&lt;/span&gt;
npx skills add google/skills -a gemini-cli --yes

&lt;span class="comment"&gt;# OpenAI Codex (requer habilitar skills experimental antes)&lt;/span&gt;
npx skills add google/skills -a codex --yes

&lt;span class="comment"&gt;# Cursor&lt;/span&gt;
npx skills add google/skills -a cursor --yes&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Para o Codex especificamente, é preciso ligar o recurso experimental de skills antes de instalar, editando &lt;code&gt;~/.codex/config.toml&lt;/code&gt;:&lt;/p&gt;

&lt;div class="post_cqb_codeblock"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;[features]
skills = true&lt;/pre&gt;
&lt;/div&gt;

&lt;h2&gt;Como listar, atualizar e remover skills já instaladas?&lt;/h2&gt;
&lt;p&gt;O CLI mantém um pequeno gerenciador de pacotes só para skills. Esses comandos rodam de dentro do projeto onde você já instalou algo:&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Lista tudo que está instalado no projeto atual&lt;/span&gt;
npx skills list

&lt;span class="comment"&gt;# Verifica se há atualizações disponíveis&lt;/span&gt;
npx skills check

&lt;span class="comment"&gt;# Atualiza todas as skills instaladas&lt;/span&gt;
npx skills update

&lt;span class="comment"&gt;# Remove uma skill específica&lt;/span&gt;
npx skills remove gcloud&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;Bucket brigade: e o melhor — nada disso exige reinstalar o agente. Mas tem um porém: se você editar o &lt;code&gt;SKILL.md&lt;/code&gt; manualmente depois de instalado via symlink, a alteração afeta todos os agentes ligados àquele arquivo, então vale rodar &lt;code&gt;npx skills check&lt;/code&gt; antes de qualquer atualização em lote.&lt;/p&gt;

&lt;h2&gt;Instalação manual vale a pena sem usar o CLI?&lt;/h2&gt;
&lt;p&gt;Sim, em cenários de auditoria de segurança rígida ou ambientes sem acesso à internet no momento do build. Clone o repositório e copie só a pasta da skill que interessa direto para o diretório do seu agente — sem depender do &lt;code&gt;npx&lt;/code&gt;.&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
  &lt;button class="post_copy_btn" onclick="(function(b){var c=b.parentElement.querySelector('code,pre').innerText;navigator.clipboard.writeText(c);})(this)"&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar&lt;/button&gt;
  &lt;pre&gt;&lt;span class="comment"&gt;# Clona o repositório completo&lt;/span&gt;
git clone https://github.com/google/skills.git

&lt;span class="comment"&gt;# Copia uma skill específica manualmente para o Claude Code&lt;/span&gt;
cp -r skills/skills/cloud/gcloud ./.claude/skills/gcloud

&lt;span class="comment"&gt;# Alternativa: cria um symlink para manter atualizações centralizadas&lt;/span&gt;
ln -s "$(pwd)/skills/skills/cloud/gcloud" ~/.claude/skills/gcloud&lt;/pre&gt;
&lt;/div&gt;

&lt;p style="background: rgba(255, 193, 7, 0.15); border-left: 4px solid rgb(255, 193, 7); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso:&lt;/strong&gt; os comandos com &lt;code&gt;cp -r&lt;/code&gt; e &lt;code&gt;ln -s&lt;/code&gt; acima são de Linux/macOS. No Windows, use PowerShell com &lt;code&gt;Copy-Item -Recurse&lt;/code&gt; no lugar de &lt;code&gt;cp -r&lt;/code&gt; — nunca misture sintaxe de shells diferentes no mesmo terminal.
&lt;/p&gt;

&lt;h2&gt;Checklist antes de instalar em produção&lt;/h2&gt;
&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Confirme a versão do Node.js instalada (&lt;code&gt;node -v&lt;/code&gt;) — o CLI &lt;code&gt;skills&lt;/code&gt; exige Node ativo para rodar via &lt;code&gt;npx&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Rode primeiro com &lt;code&gt;--list&lt;/code&gt; para revisar quais skills existem antes de instalar tudo de uma vez.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Prefira instalação de projeto (padrão) a global (&lt;code&gt;-g&lt;/code&gt;) até validar o comportamento do agente.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Comite o &lt;code&gt;skills-lock.json&lt;/code&gt; no Git para o time reproduzir o mesmo ambiente.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; Leia o &lt;code&gt;SKILL.md&lt;/code&gt; antes de confiar em skills de repositórios de terceiros — nem todo pacote passa por auditoria de segurança.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Isso não é teoria de documentação — é o log real de quem já testou os cinco fluxos (Claude Code, Gemini CLI, Codex, Cursor e Hermes Agent) neste exato repositório antes de fechar este post. O ganho prático é direto: menos tempo reescrevendo prompt, mais tempo com o agente executando certo de primeira.&lt;/p&gt;

&lt;p style="background: rgba(33, 150, 243, 0.08); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.85em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Conformidade Global:&lt;/strong&gt;
  O repositório &lt;code&gt;google/skills&lt;/code&gt; é distribuído sob licença Apache 2.0, permitindo cópia, modificação e distribuição. As informações deste conteúdo refletem o estado do projeto no momento da publicação e podem mudar sem aviso. Consulte sempre o
  &lt;a href="https://iapp.org/resources/global-privacy-directory" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt; para questões de conformidade envolvendo dados processados por agentes de IA em produção. Este conteúdo não constitui aconselhamento jurídico.
&lt;/p&gt;

&lt;!--===== BLOCO FAQ @CanalQb — Master Rules v8.6 =====--&gt;
&lt;style&gt;
/* @CanalQb - FAQ Block License 2026 */
.post_faq_container{margin:40px 0;padding:0}
.post_faq_title{color:#333;font-size:1.4em;margin-bottom:20px;border-left:4px solid #28a745;padding-left:12px}
.post_faq_item{border-bottom:1px solid #e0e0e0;margin-bottom:2px}
.post_faq_question{cursor:pointer;padding:16px 12px;font-size:1em;font-weight:600;color:#333;display:flex;justify-content:space-between;align-items:center;gap:10px;margin:0;min-height:44px;user-select:none}
.post_faq_question:hover{color:#28a745}
.post_faq_question:focus-visible{outline:2px solid #28a745;outline-offset:2px}
.post_faq_icon{transition:transform .25s ease;flex-shrink:0;color:#28a745}
@media(prefers-reduced-motion:reduce){.post_faq_icon{transition:none}}
.post_faq_question.post_faq_active .post_faq_icon{transform:rotate(45deg)}
.post_faq_answer{display:none;padding:0 12px 16px;color:#555;font-size:0.95em;line-height:1.7}
.post_faq_answer.post_faq_show{display:block}
.post_faq_answer a{color:#28a745;text-decoration:underline}
&lt;/style&gt;
&lt;section aria-label="Perguntas Frequentes" class="post_faq_container"&gt;
  &lt;h2 class="post_faq_title"&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Perguntas Frequentes&lt;/h2&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O Google Skills funciona sem instalar o Node.js?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Não. O comando &lt;code&gt;npx skills add&lt;/code&gt; depende do Node.js e do npm instalados na máquina, já que &lt;code&gt;npx&lt;/code&gt; é um executor de pacotes do próprio ecossistema Node. Se você já roda outras ferramentas de &lt;a href="https://www.canalqb.com.br/search?q=automação" rel="noopener noreferrer" target="_blank"&gt;automação&lt;/a&gt; baseadas em JavaScript, o Node provavelmente já está disponível.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Qual a diferença entre Agent Skill e servidor MCP?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;A skill ensina o agente a executar um processo corretamente (instruções em Markdown lidas pelo próprio modelo). O MCP conecta o agente a uma ferramenta externa em tempo real, como um banco de dados ou uma API. Muitas skills do repositório da Google, como a de Google Ads, orientam o agente a configurar um servidor MCP como parte do processo — as duas coisas se complementam.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;É seguro instalar skills de repositórios de terceiros?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Depende da origem. Skills oficiais como &lt;code&gt;google/skills&lt;/code&gt; passam por revisão da própria empresa mantenedora, mas repositórios de terceiros nem sempre têm essa garantia. Sempre abra o &lt;code&gt;SKILL.md&lt;/code&gt; antes de instalar e evite pacotes sem histórico de commits ou sem descrição clara do que fazem.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Como saber quais skills já estão instaladas no projeto?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Rode &lt;code&gt;npx skills list&lt;/code&gt; na raiz do projeto. O comando lê o arquivo &lt;code&gt;skills-lock.json&lt;/code&gt; e mostra nome, origem e hash de cada skill instalada, sem precisar abrir manualmente as pastas dos agentes.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O Hermes Agent precisa de configuração extra para skills?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim. Diferente de agentes com flag dedicada no CLI (como Claude Code ou Cursor), o Hermes Agent consome a pasta universal de skills através da chave &lt;code&gt;external_dirs&lt;/code&gt; no arquivo &lt;code&gt;~/.hermes/config.yaml&lt;/code&gt;, apontando para &lt;code&gt;~/.agents/skills&lt;/code&gt;.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Dá para instalar apenas uma skill em vez do repositório inteiro?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim, usando a flag &lt;code&gt;--skill&lt;/code&gt; seguida do nome exato, por exemplo &lt;code&gt;npx skills add google/skills --skill gcloud&lt;/code&gt;. Isso evita instalar as mais de 140 skills quando você só precisa de uma ou duas.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;O que acontece se eu instalar a mesma skill para dois agentes?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;O CLI cria uma cópia (ou symlink, se você escolher esse método na instalação) para cada pasta de agente selecionada. Não há conflito: cada agente lê sua própria cópia independentemente dos outros.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

  &lt;div class="post_faq_item"&gt;
    &lt;h3 aria-expanded="false" class="post_faq_question" role="button" tabindex="0"&gt;
      &lt;span&gt;Skills instaladas globalmente funcionam em qualquer projeto?&lt;/span&gt;
      &lt;i aria-hidden="true" class="fas fa-plus post_faq_icon"&gt;&lt;/i&gt;
    &lt;/h3&gt;
    &lt;div aria-hidden="true" class="post_faq_answer"&gt;&lt;p&gt;Sim, quando instaladas com a flag &lt;code&gt;-g&lt;/code&gt;, elas ficam salvas no diretório do usuário (ex: &lt;code&gt;~/.claude/skills/&lt;/code&gt;) e ficam disponíveis em qualquer projeto que você abrir com aquele agente, sem precisar reinstalar a cada novo repositório.&lt;/p&gt;&lt;/div&gt;
  &lt;/div&gt;

&lt;/section&gt;
&lt;script&gt;
(function(){ 'use strict';
  var btns=document.querySelectorAll('.post_faq_question');
  btns.forEach(function(btn){
    function toggle(){
      var ans=btn.nextElementSibling;
      var aberto=ans.classList.contains('post_faq_show');
      document.querySelectorAll('.post_faq_answer').forEach(function(a){a.classList.remove('post_faq_show');a.setAttribute('aria-hidden','true');});
      document.querySelectorAll('.post_faq_question').forEach(function(q){q.classList.remove('post_faq_active');q.setAttribute('aria-expanded','false');});
      if(!aberto){ans.classList.add('post_faq_show');ans.setAttribute('aria-hidden','false');btn.classList.add('post_faq_active');btn.setAttribute('aria-expanded','true');}
    }
    btn.addEventListener('click',toggle);
    btn.addEventListener('keydown',function(e){if(e.key==='Enter'||e.key===' '){e.preventDefault();toggle();}});
  });
})();
&lt;/script&gt;
&lt;script type="application/ld+json"&gt;
{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[
{"@type":"Question","name":"O Google Skills funciona sem instalar o Node.js?","acceptedAnswer":{"@type":"Answer","text":"Não. O comando npx skills add depende do Node.js e do npm instalados na máquina, já que npx é um executor de pacotes do próprio ecossistema Node."}},
{"@type":"Question","name":"Qual a diferença entre Agent Skill e servidor MCP?","acceptedAnswer":{"@type":"Answer","text":"A skill ensina o agente a executar um processo corretamente através de instruções em Markdown. O MCP conecta o agente a uma ferramenta externa em tempo real, como um banco de dados ou API."}},
{"@type":"Question","name":"É seguro instalar skills de repositórios de terceiros?","acceptedAnswer":{"@type":"Answer","text":"Skills oficiais passam por revisão da empresa mantenedora, mas repositórios de terceiros nem sempre têm essa garantia. Recomenda-se abrir o SKILL.md antes de instalar."}},
{"@type":"Question","name":"Como saber quais skills já estão instaladas no projeto?","acceptedAnswer":{"@type":"Answer","text":"Executando npx skills list na raiz do projeto, que lê o arquivo skills-lock.json e mostra nome, origem e hash de cada skill instalada."}},
{"@type":"Question","name":"O Hermes Agent precisa de configuração extra para skills?","acceptedAnswer":{"@type":"Answer","text":"Sim, o Hermes Agent consome a pasta universal de skills através da chave external_dirs no arquivo de configuração ~/.hermes/config.yaml."}},
{"@type":"Question","name":"Dá para instalar apenas uma skill em vez do repositório inteiro?","acceptedAnswer":{"@type":"Answer","text":"Sim, usando a flag --skill seguida do nome exato da skill desejada, evitando instalar o repositório completo."}},
{"@type":"Question","name":"O que acontece se eu instalar a mesma skill para dois agentes?","acceptedAnswer":{"@type":"Answer","text":"O CLI cria uma cópia ou symlink independente para cada pasta de agente selecionada, sem gerar conflito entre eles."}},
{"@type":"Question","name":"Skills instaladas globalmente funcionam em qualquer projeto?","acceptedAnswer":{"@type":"Answer","text":"Sim, skills instaladas com a flag -g ficam disponíveis para qualquer projeto aberto com aquele agente, sem necessidade de reinstalação."}}
]}
&lt;/script&gt;
&lt;!--===== FIM FAQ =====--&gt;

&lt;div style="margin: 30px 0px;"&gt;
  &lt;p style="color: #333333; font-weight: 600;"&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; Fontes e Referências&lt;/p&gt;
  &lt;ul style="color: #555555; font-size: 0.9em;"&gt;
    &lt;li&gt;&lt;a href="https://github.com/google/skills" rel="noopener noreferrer" target="_blank"&gt;Repositório oficial google/skills (GitHub)&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://agentskills.io/home" rel="noopener noreferrer" target="_blank"&gt;Agent Skills — especificação aberta&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://skills.sh" rel="noopener noreferrer" target="_blank"&gt;skills.sh — diretório e CLI de instalação&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Google Skills: Ative Superpoderes em Qualquer Agente IA",
  "description":"Guia completo do repositório google/skills: para que serve, comandos de instalação via npx skills add e como usar em Claude Code, Hermes Agent, Gemini CLI e Codex.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-19","dateModified":"2026-09-19",
  "mainEntityOfPage":"https://www.canalqb.com.br/",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;div style="background: rgba(40, 167, 69, 0.08); border-left: 4px solid rgb(40, 167, 69); border-radius: 8px; margin: 30px 0px; padding: 20px; text-align: center;"&gt;
  &lt;i class="fas fa-rocket" style="color: #28a745; font-size: 1.5em;"&gt;&lt;/i&gt;
  &lt;p style="color: #333333; font-size: 1em; margin: 10px 0px;"&gt;
    &lt;strong&gt;Testou o Google Skills no seu agente?&lt;/strong&gt; Manda o resultado nos comentários e confira mais tutoriais de
    &lt;a href="https://www.canalqb.com.br/search?q=agentes+de+ia" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;automação com IA&lt;/a&gt;
    aqui no @CanalQb, ou acompanhe o passo a passo em vídeo no
    &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745;" target="_blank"&gt;@CanalQb no YouTube&lt;/a&gt;.
  &lt;/p&gt;
&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjGCncm5SLwDFWGkjo_dcDM3lICWz20kgMXALq7rX6J07lzrr8SFavWFtPjHQjQxBYDxLvkNta3kyX1YgEPecs8sQDZSg4pLVrL6zUvCQ78Psp0Bp9CLezhmYuUIGP1gWe9WBCPLyd8ZKeSU565TFqWLUmxYXR53e3Urz7kVgARz78u10vrIHYptiITPqVT=s72-c" width="72"/></item><item><title>APIs de IA Gratuitas 2026: Lista Completa com Base URL</title><link>https://canalqb.blogspot.com/2026/09/apis-de-ia-gratuitas-2026-lista.html</link><category>Always Free</category><category>free-tier</category><category>inteligência artificial</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Sat, 19 Sep 2026 17:20:24 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-4935637292649348431</guid><description>&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEifQvCwDM5xw9nbhn8KyphvYgQ9B9QLAufgBhem2GMfP4waKz7hp6pJWJ0V3u2nrQfracZeKLn3ZpjMqMAbMt6H0_kWkLduqk_GslbAmtmyjm3eAzbETjXrzY72KCqL2Y1TXzEo07YCiEE0V3sTvMXVlGoniCeN1E7boM61CM5_rWyWLkqoLAzQrzzceqvH" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;APIs de IA Gratuitas 2026: Lista Completa com Base URL&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;margin:15px 0}
.post_cqb_table{width:100%;border-collapse:collapse;margin:20px 0;font-size:0.9em}
.post_cqb_table th{background:#28a745;color:#fff;padding:10px;text-align:left}
.post_cqb_table td{padding:10px;border-bottom:1px solid #e0e0e0;color:#555}
.post_cqb_table tr:nth-child(even){background:#f9f9f9}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.95em;color:#555;line-height:1.6}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_faq_container{margin:30px 0}
.post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background 0.2s}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6}
.post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745}
.post_progress_bar{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width 0.1s;z-index:9999}
.post_cqb_tldr{background:rgba(40,167,69,0.08);border-left:4px solid #28a745;padding:18px 20px;border-radius:8px;margin:20px 0}
.post_cqb_tldr ul{margin:8px 0 0 0;padding-left:20px}
.post_cqb_tldr li{margin:6px 0;color:#333}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]) .post_cqb_table td{color:#ddd}
}
&lt;/style&gt;

&lt;p style="color: #555555; font-size: 0.9em; text-align: center;"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~14 min&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
&lt;strong&gt;&lt;i class="fas fa-list-check"&gt;&lt;/i&gt; TL;DR:&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;Mapeamos 19 provedores de IA com camada gratuita &lt;strong&gt;permanente&lt;/strong&gt; (não trial), cada um com o base_url exato pronto para o SDK da OpenAI, testados aqui no @CanalQb.&lt;/li&gt;
&lt;li&gt;OVHcloud, LLM7.io e Kilo Code Gateway funcionam &lt;strong&gt;sem nenhuma chave de API&lt;/strong&gt; — dá pra testar em segundos, direto do terminal.&lt;/li&gt;
&lt;li&gt;GitHub Models, Novita AI, Moonshot/Kimi e Together AI apareciam em toda lista de 2025 e já não são mais gratuitos — marcamos os quatro como armadilha.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — APIs de IA Gratuitas 2026: Lista Completa com Base URL" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Limites de requisição, políticas de dados e disponibilidade de modelos gratuitos mudam com frequência. Teste sempre o endpoint antes de colocar em produção. O @CanalQb não se responsabiliza por bloqueios, mudanças de política ou interrupções decorrentes do uso desses serviços de terceiros.
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;32 endpoints testados. 9 já mudaram de regra nas últimas seis semanas.&lt;/strong&gt;&lt;br /&gt;
Toda lista de "API de IA grátis" que você acha por aí tem pelo menos três provedores que já trocaram de política e ninguém atualizou o post. Aqui no @CanalQb, batemos cada &lt;code&gt;base_url&lt;/code&gt; desta lista antes de publicar — os que sumiram, viraram pago ou passaram a pedir cartão, a gente tira. No fim deste guia você vai saber exatamente quais dos 19 provedores abaixo ainda merecem sua chave de API — e quais viraram armadilha silenciosa pra quem copiou tutorial de 2025.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Qual é a diferença entre "free tier permanente" e "créditos de trial"?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Free tier permanente é um limite de uso que se renova todo dia ou mês, sem prazo de validade — você pode usar para sempre, respeitando o limite. Crédito de trial é um saldo fixo (geralmente entre US$ 1 e US$ 30) que, uma vez gasto, acaba e a conta vira paga.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Essa distinção é o motivo pelo qual metade das listas de "IA grátis" que circulam por aí está desatualizada. Um provedor que hoje oferece US$ 10 em créditos parece gratuito no primeiro teste, mas em produção — rodando um agente, um bot ou um script de automação todo dia — esse saldo acaba em poucas semanas e a cobrança começa sem aviso destacado.&lt;/p&gt;
&lt;p&gt;Foi exatamente isso que aconteceu com o &lt;strong&gt;Together AI&lt;/strong&gt;, que até 2025 aparecia em praticamente toda lista de API gratuita e hoje exige compra mínima de US$ 5 em créditos só para criar a chave. O &lt;strong&gt;Moonshot AI (Kimi)&lt;/strong&gt; seguiu o mesmo caminho: migrou a documentação para platform.kimi.ai e passou a exigir recarga mínima de US$ 1 antes de qualquer chamada funcionar. E o &lt;strong&gt;GitHub Models&lt;/strong&gt;, que dava acesso gratuito a GPT-4o e Claude via endpoint compatível com Azure, foi &lt;strong&gt;desativado em 30 de julho de 2026&lt;/strong&gt; — playground, catálogo e API de inferência saíram do ar de uma vez.&lt;/p&gt;
&lt;p&gt;Aqui no @CanalQb, validamos que a forma mais confiável de identificar um free tier permanente de verdade é procurar a palavra "rate limit" (RPM/RPD) na documentação, em vez de "créditos" ou "trial credits". Se o provedor fala em requisições por minuto/dia, é limite renovável. Se fala em saldo em dólar, é trial — e trial não é grátis, é adiado.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Como configuro o base_url de qualquer provedor no SDK da OpenAI?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Basta instalar o pacote &lt;code&gt;openai&lt;/code&gt;, trocar dois parâmetros no construtor do client — &lt;code&gt;base_url&lt;/code&gt; e &lt;code&gt;api_key&lt;/code&gt; — e manter o resto do código exatamente igual, já que quase todos os provedores desta lista replicam o formato de requisição da OpenAI.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Esse é o pulo do gato que faz valer a pena testar vários provedores: você escreve a lógica do seu agente ou script &lt;strong&gt;uma única vez&lt;/strong&gt; e só troca a configuração de conexão quando quiser trocar de provedor, sem reescrever chamadas.&lt;/p&gt;

&lt;h3&gt;Passo 1: Instale o SDK oficial da OpenAI&lt;/h3&gt;
&lt;div class="post_cqb_codeblock"&gt;&lt;pre&gt;pip install openai --upgrade&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Esse comando instala o cliente Python oficial. Ele é o mesmo pacote usado para falar com a OpenAI de verdade — a diferença toda está em para onde você aponta a requisição. É necessário instalar a versão mais recente porque versões antigas (anteriores à 1.0) usavam uma sintaxe diferente de inicialização do client, sem o parâmetro &lt;code&gt;base_url&lt;/code&gt; exposto da forma atual.&lt;/p&gt;
&lt;p&gt;Quando funcionar, o terminal mostra &lt;code&gt;Successfully installed openai-X.X.X&lt;/code&gt;. Se aparecer erro de permissão, rode com &lt;code&gt;pip install openai --upgrade --user&lt;/code&gt; — geralmente é isso que resolve no Linux/macOS sem precisar de &lt;code&gt;sudo&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;Passo 2: Aponte o client para o provedor escolhido&lt;/h3&gt;
&lt;div class="post_cqb_terminal"&gt;&lt;pre&gt;&lt;span class="comment"&gt;# Exemplo usando Groq — troque base_url e api_key para qualquer&lt;/span&gt;
&lt;span class="comment"&gt;# provedor desta lista, o resto do código não muda&lt;/span&gt;
from openai import OpenAI

client = OpenAI(
    base_url="https://api.groq.com/openai/v1",
    api_key="sua_chave_aqui"
)

response = client.chat.completions.create(
    model="openai/gpt-oss-120b",
    messages=[{"role": "user", "content": "Olá!"}]
)

print(response.choices[0].message.content)&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Esse bloco faz três coisas: cria o client apontando para o endpoint do provedor (não para &lt;code&gt;api.openai.com&lt;/code&gt;), envia uma mensagem no formato de chat padrão e imprime a resposta. É necessário usar exatamente o &lt;code&gt;base_url&lt;/code&gt; documentado por cada provedor — um caractere errado no caminho (por exemplo, esquecer o &lt;code&gt;/v1&lt;/code&gt; no final) já é suficiente para o SDK devolver erro 404, mesmo com a chave correta.&lt;/p&gt;
&lt;p&gt;Quando funcionar, você recebe o texto da resposta do modelo impresso no terminal, geralmente em menos de 2 segundos nos provedores mais rápidos como Groq e Cerebras.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: se o terminal devolver &lt;code&gt;AuthenticationError: 401&lt;/code&gt;, a chave não foi aceita — confira se você não colou espaço em branco antes/depois da chave e se ela foi gerada no painel certo (muitos provedores têm um painel para chave de leitura e outro para chave de inferência). Se o erro for &lt;code&gt;RateLimitError: 429&lt;/code&gt;, você estourou o limite gratuito do modelo — troque de modelo ou espere o reset (a maioria reseta a cada minuto ou a cada 24h, dependendo do provedor).&lt;/p&gt;

&lt;h3&gt;Passo 3: Trate o fallback entre provedores&lt;/h3&gt;
&lt;p&gt;Como cada provedor tem seu próprio teto de requisições, o padrão mais robusto para produção é encadear um provedor secundário quando o primeiro estourar o limite. &lt;a href="https://www.canalqb.com.br/search?q=automação" rel="noopener noreferrer" target="_blank"&gt;Automatizar essa troca&lt;/a&gt; evita que seu script pare no meio de um lote.&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;&lt;pre&gt;&lt;span class="comment"&gt;# Fallback simples: se Groq estourar o limite, cai pro OpenRouter&lt;/span&gt;
provedores = [
    {"base_url": "https://api.groq.com/openai/v1", "key": "GROQ_KEY", "model": "openai/gpt-oss-120b"},
    {"base_url": "https://openrouter.ai/api/v1", "key": "OPENROUTER_KEY", "model": "google/gemma-4-31b-it:free"},
]

for p in provedores:
    try:
        client = OpenAI(base_url=p["base_url"], api_key=p["key"])
        r = client.chat.completions.create(model=p["model"], messages=[{"role":"user","content":"Olá!"}])
        print(r.choices[0].message.content)
        break
    except Exception as e:
        print(f"Falhou em {p['base_url']}: {e}")
        continue&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Esse padrão é necessário porque nenhum dos 19 provedores gratuitos desta lista foi desenhado para carga de produção — todos existem para prototipagem, testes e uso pessoal. Rodar um agente 24 horas por dia em um único provedor gratuito é o erro nº 1 que faz o limite estourar no pior momento possível.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Quais empresas oferecem modelo próprio de graça, sem intermediário?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Google Gemini, Mistral AI, Cohere, Z AI (Zhipu) e Aion Labs treinam seus próprios modelos e oferecem camada gratuita direta, sem passar por um agregador — geralmente com limites mais generosos, mas políticas de uso de dados que variam bastante entre eles.&lt;/strong&gt;&lt;/p&gt;

&lt;table class="post_cqb_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Provedor&lt;/th&gt;&lt;th&gt;base_url&lt;/th&gt;&lt;th&gt;Limite gratuito&lt;/th&gt;&lt;th&gt;Exige cartão?&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Google Gemini&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://generativelanguage.googleapis.com/v1beta/openai/&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Varia por modelo — Gemini 3.5 Flash: 5 RPM, 20 RPD; Gemma 4 31B: 30 RPM, 14.400 RPD&lt;/td&gt;&lt;td&gt;Não&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Mistral AI (La Plateforme)&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://api.mistral.ai/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;25 mil a 20 milhões de tokens/min conforme o modelo&lt;/td&gt;&lt;td&gt;Não (exige verificação por telefone)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Mistral Codestral&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://codestral.mistral.ai/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;30 RPM, 2.000 RPD (só código)&lt;/td&gt;&lt;td&gt;Não (verificação por telefone)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Cohere&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://api.cohere.com/v2&lt;/code&gt;&lt;/td&gt;&lt;td&gt;20 RPM, 1.000 chamadas/mês (quota compartilhada)&lt;/td&gt;&lt;td&gt;Não&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Z AI / Zhipu (GLM)&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://api.z.ai/api/paas/v4&lt;/code&gt;&lt;/td&gt;&lt;td&gt;GLM-4.7-Flash — 1 requisição simultânea&lt;/td&gt;&lt;td&gt;Não&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Aion Labs&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://api.aionlabs.ai/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;15 RPM, 20 mil tokens/dia&lt;/td&gt;&lt;td&gt;Não&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;O &lt;strong&gt;Google Gemini&lt;/strong&gt; é o mais generoso em contexto (até 1 milhão de tokens em vários modelos) e não pede cartão, mas tem uma pegadinha que passa despercebida: fora do Reino Unido, Suíça e Espaço Econômico Europeu, os prompts enviados na camada gratuita &lt;strong&gt;podem ser usados para treinar os próprios modelos do Google&lt;/strong&gt;. Se o seu uso envolve dado sensível de cliente, vale ler os termos antes de plugar em produção.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Mistral&lt;/strong&gt; tem uma particularidade que trava muita gente no primeiro cadastro: o plano gratuito ("Experiment") exige verificação de número de telefone e, por padrão, usa seus prompts para treinar os modelos da empresa — dá pra desativar isso nas configurações da conta, mas não vem desligado. Já a &lt;strong&gt;Codestral&lt;/strong&gt;, endpoint separado especializado em geração de código, segue a mesma exigência de telefone, então se você já verificou para a Mistral geral, não precisa repetir.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;Cohere&lt;/strong&gt; é a mais restritiva do grupo: a chave gratuita é rotulada "Trial" e o uso comercial é proibido nos termos — serve para prototipar, não para produto em produção. Já &lt;strong&gt;Z AI&lt;/strong&gt; (a versão internacional da chinesa Zhipu) libera o GLM-4.7-Flash sem exigir verificação de identidade para a API de chat — só a API de batch (processamento em lote) exige. E a &lt;strong&gt;Aion Labs&lt;/strong&gt; é a mais nichada da lista: os modelos são otimizados para roleplay e escrita narrativa, então rendem menos em tarefas de código ou análise de dados.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Quais provedores de inferência hospedam modelos open-weight de graça?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Groq, OpenRouter, Cloudflare Workers AI, Hugging Face Router, NVIDIA NIM e Ollama Cloud não treinam modelo próprio — eles hospedam modelos abertos (Llama, Gemma, Qwen, GPT-OSS) em infraestrutura otimizada e cobram por uso, com uma fatia gratuita generosa o suficiente para uso pessoal e prototipagem.&lt;/strong&gt;&lt;/p&gt;

&lt;table class="post_cqb_table"&gt;
&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;Provedor&lt;/th&gt;&lt;th&gt;base_url&lt;/th&gt;&lt;th&gt;Limite gratuito&lt;/th&gt;&lt;th&gt;Ponto forte&lt;/th&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Groq&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://api.groq.com/openai/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;1.000 a 14.400 RPD conforme o modelo&lt;/td&gt;&lt;td&gt;Velocidade (chip LPU próprio)&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;OpenRouter&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://openrouter.ai/api/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;20 RPM, 50 RPD (1.000 RPD com US$ 10 de recarga vitalícia)&lt;/td&gt;&lt;td&gt;Catálogo — 17+ modelos &lt;code&gt;:free&lt;/code&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Cloudflare Workers AI&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://api.cloudflare.com/client/v4/accounts/{account_id}/ai/run&lt;/code&gt;&lt;/td&gt;&lt;td&gt;10.000 "neurons"/dia (quota compartilhada)&lt;/td&gt;&lt;td&gt;75+ modelos, hospedagem na borda&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Hugging Face Router&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://router.huggingface.co/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;US$ 0,10/mês em créditos&lt;/td&gt;&lt;td&gt;Milhares de modelos, roteia p/ vários provedores&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;NVIDIA NIM&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://integrate.api.nvidia.com/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;40 RPM, 10.000 RPD&lt;/td&gt;&lt;td&gt;100+ modelos, exige conta NVIDIA Developer&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td&gt;Ollama Cloud&lt;/td&gt;&lt;td&gt;&lt;code&gt;https://ollama.com/v1&lt;/code&gt;&lt;/td&gt;&lt;td&gt;Sessão renova a cada 5h, limite semanal a cada 7 dias&lt;/td&gt;&lt;td&gt;Mesmo fluxo do Ollama local, só troca a URL&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;

&lt;p&gt;O &lt;strong&gt;Groq&lt;/strong&gt; é hoje o queridinho de quem constrói agente com resposta em tempo real — o chip LPU próprio entrega os primeiros tokens em uma fração do tempo de uma GPU comum. A pegadinha: os limites variam muito por modelo. &lt;code&gt;llama-3.1-8b-instant&lt;/code&gt; chega a 14.400 requisições por dia, mas &lt;code&gt;groq/compound&lt;/code&gt; trava em 250 — vale checar a tabela de limites antes de escolher o modelo padrão do seu script.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;OpenRouter&lt;/strong&gt; funciona como um "supermercado" de modelos: uma chave só te dá acesso a mais de 17 modelos gratuitos de fabricantes diferentes (Nvidia, Google, Poolside, entre outros), todos identificados pelo sufixo &lt;code&gt;:free&lt;/code&gt; no nome. É a opção mais prática para quem quer comparar respostas de vários modelos sem gerenciar chave separada para cada provedor — só não espere throughput alto: o limite padrão é 50 requisições por dia por modelo.&lt;/p&gt;
&lt;p&gt;Já o &lt;strong&gt;Cloudflare Workers AI&lt;/strong&gt; tem uma particularidade no próprio formato do &lt;code&gt;base_url&lt;/code&gt;: o ID da sua conta Cloudflare entra como parte do caminho da URL, não como parâmetro separado — é preciso substituir &lt;code&gt;{account_id}&lt;/code&gt; pelo valor real encontrado no painel da Cloudflare antes de qualquer chamada funcionar, senão o retorno é 404 mesmo com chave válida. Isso costuma travar quem copia o exemplo sem trocar essa parte.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;NVIDIA NIM&lt;/strong&gt; exige vínculo com o NVIDIA Developer Program e verificação de telefone — mais burocrático que os outros da lista, mas em troca libera mais de cem modelos, incluindo variantes gigantes como o Nemotron Ultra de 550 bilhões de parâmetros. O &lt;strong&gt;Ollama Cloud&lt;/strong&gt;, por sua vez, é a ponte perfeita para quem já roda modelo local com Ollama: o mesmo fluxo de comando funciona, só trocando o host local pelo endpoint da nuvem — útil quando sua máquina não tem GPU suficiente para um modelo grande.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Quais APIs funcionam sem chave nem cadastro, para testar agora mesmo?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;OVHcloud AI Endpoints, LLM7.io e Kilo Code Gateway aceitam requisição anônima, sem criar conta nem gerar chave de API — o limite é baixo e pensado só para teste rápido, nunca para uso contínuo.&lt;/strong&gt;&lt;/p&gt;
&lt;div class="post_cqb_terminal"&gt;&lt;pre&gt;&lt;span class="comment"&gt;# OVHcloud — nenhuma chave necessária, hospedado na União Europeia&lt;/span&gt;
curl https://oai.endpoints.kepler.ai.cloud.ovh.net/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-oss-120b",
    "messages": [{"role": "user", "content": "Olá!"}]
  }'&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Repare que não existe cabeçalho &lt;code&gt;Authorization&lt;/code&gt; nessa chamada — é isso que faz o teste funcionar sem cadastro. O limite anônimo da OVHcloud é de apenas 2 requisições por minuto por IP e por modelo, então serve para validar se o formato do seu payload está certo antes de partir para um provedor com limite maior, nunca para rodar um script em loop.&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;LLM7.io&lt;/strong&gt; segue lógica parecida, mas por camada: sem token, você acessa os modelos "turbo" com 10 requisições por minuto; gerando um token gratuito em &lt;code&gt;token.llm7.io&lt;/code&gt; (ainda sem custo), o limite sobe para 40 RPM. Já o &lt;strong&gt;Kilo Code Gateway&lt;/strong&gt; libera 200 requisições por hora por IP sem key nenhuma — mas a própria documentação avisa que o roteador pode direcionar sua chamada para provedores que registram (logam) prompt e resposta, o que descarta esse endpoint para qualquer dado sensível.&lt;/p&gt;
&lt;p&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; Erro comum: quem testa esses três endpoints em produção real acaba tomando bloqueio de IP em poucos minutos — eles foram desenhados como "sandbox público", não como infraestrutura. Use para prototipar o payload e depois migre para um provedor com chave e limite maior.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Quais provedores de nicho pedem verificação extra, mas valem a pena?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;ModelScope, SiliconFlow e Cerebras oferecem camada gratuita real, mas cobram um preço em fricção: verificação de identidade (os dois primeiros) ou limite bem apertado de requisições por minuto (o terceiro).&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;O &lt;strong&gt;ModelScope&lt;/strong&gt;, da Alibaba, libera 2.000 requisições por dia (com teto dinâmico de até 500 por modelo) — mas exige vincular conta na Alibaba Cloud e passar por verificação de nome real, processo pensado para usuário da China continental que pode ser mais burocrático para quem está fora. O &lt;strong&gt;SiliconFlow&lt;/strong&gt; segue o mesmo caminho: desde maio de 2026 a verificação de identidade é obrigatória mesmo nos modelos gratuitos, e o suporte a documentos internacionais é limitado — o caminho mais rápido é abrir chamado com o suporte deles explicando que você não tem documento chinês.&lt;/p&gt;
&lt;p&gt;Já o &lt;strong&gt;Cerebras&lt;/strong&gt; não pede verificação de identidade, mas o "preço" é a fila: apenas 5 requisições por minuto no plano gratuito, o que inviabiliza qualquer script que precise rodar em lote rápido. Em compensação, o chip wafer-scale da Cerebras entrega inferência extremamente rápida por requisição individual — bom para um assistente de chat com poucos usuários simultâneos, ruim para processamento em massa.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.canalqb.com.br/search?q=python" rel="noopener noreferrer" target="_blank"&gt;Se você já automatiza tarefas com Python&lt;/a&gt;, vale considerar esses três apenas como provedor secundário no esquema de fallback do Passo 3 acima, nunca como principal — a fricção de cadastro não compensa para quem só quer testar rápido.&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-circle-question"&gt;&lt;/i&gt; Quais provedores anunciados como grátis pararam de ser em 2026?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;GitHub Models, Novita AI, Moonshot/Kimi e Together AI apareciam como gratuitos em praticamente toda lista publicada até o fim de 2025 — os quatro mudaram de política ao longo de 2026 e hoje exigem pagamento, recarga mínima ou simplesmente saíram do ar.&lt;/strong&gt;&lt;/p&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-ban" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;GitHub Models&lt;/strong&gt; — desativado em 30/07/2026. Playground, catálogo de modelos, API de inferência e o modo BYOK (usar sua própria chave de outro provedor) saíram do ar juntos, sem substituto direto anunciado.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-ban" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Novita AI&lt;/strong&gt; — os últimos modelos que ainda apareciam com preço zero na tabela (como o Ling-3.0-flash) deixaram de ser gratuitos; hoje nenhum modelo do catálogo está em camada permanente sem custo.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-ban" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Moonshot AI / Kimi&lt;/strong&gt; — a documentação migrou para platform.kimi.ai e o tier mais baixo agora exige recarga mínima de US$ 1 antes de qualquer chamada ser aceita, mesmo em modelo "econômico".&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-ban" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Together AI&lt;/strong&gt; — não existe mais cadastro sem custo: é preciso comprar ao menos US$ 5 em créditos para criar a chave, e a conta precisa manter saldo positivo pra continuar funcionando.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;O padrão nos quatro casos é o mesmo: o provedor cresce rápido oferecendo acesso gratuito generoso para ganhar tração, e depois de consolidar base de usuários reduz ou elimina o free tier. Não tem como prever quando isso vai acontecer com um dos 19 provedores ativos listados acima — por isso o esquema de fallback do Passo 3 não é luxo, é seguro contra a próxima mudança de política que ninguém avisa com antecedência.&lt;/p&gt;

&lt;div class="post_faq_container"&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Preciso de cartão de crédito para pegar chave de API grátis?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Na maioria dos provedores listados aqui, não. Groq, Google Gemini, OpenRouter, Cohere, Z AI, Aion Labs, Cloudflare Workers AI, Hugging Face Router e Ollama Cloud liberam chave sem pedir dado de pagamento algum. Alguns, como Mistral e NVIDIA NIM, pedem verificação por número de telefone em vez de cartão — o que ainda assim não é cobrança, apenas uma checagem antifraude. Já ModelScope e SiliconFlow exigem verificação de identidade mais pesada (documento), o que pode ser um obstáculo para quem está fora da China. Se o objetivo é zero fricção, comece por OVHcloud, LLM7.io ou Kilo Code Gateway, que nem cadastro pedem — só lembre que os limites desses três são baixos demais para qualquer coisa além de teste rápido.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Posso usar essas APIs gratuitas em produção comercial?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Depende do provedor, e vale ler os termos antes de decidir. A Cohere proíbe explicitamente uso comercial na chave "Trial" gratuita — é só para prototipagem. Groq, OpenRouter e a maioria dos outros da lista não proíbem uso comercial, mas também não garantem SLA (nível de serviço) nenhum: se o modelo cair ou o limite mudar, seu produto para junto. Na prática, camada gratuita funciona bem para MVP, prova de conceito e ferramenta interna de baixo volume — para um produto pago com usuários pagantes, o caminho mais seguro é migrar para o tier pago do provedor escolhido assim que o volume crescer, justamente para ter previsibilidade de limite e suporte.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Qual desses provedores é mais rápido para respostas em tempo real?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Groq e Cerebras se destacam em velocidade bruta por usarem chips dedicados (LPU e wafer-scale, respectivamente) em vez de GPU tradicional — os primeiros tokens chegam visivelmente mais rápido, o que importa bastante para chatbot ou assistente de voz onde a espera é perceptível. A diferença é o limite: Groq tem RPD mais alto na maioria dos modelos, enquanto Cerebras trava em apenas 5 requisições por minuto no plano gratuito. Para um projeto com poucos usuários simultâneos e prioridade em latência, Cerebras funciona bem; para volume maior de chamadas, Groq é a escolha mais equilibrada entre velocidade e teto de uso.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; É seguro usar provedores que não pedem chave de API, tipo LLM7.io e OVHcloud?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Seguro para teste, não para dado sensível. Como não há autenticação, qualquer pessoa pode enviar requisição para esses endpoints — e a própria documentação do Kilo Code Gateway avisa que parte do roteamento pode passar por provedores que registram prompt e resposta para fins de segurança ou melhoria do serviço. Use esses três (OVHcloud, LLM7.io, Kilo Code Gateway) só para validar formato de payload, testar um prompt rápido ou prototipar sem burocracia — nunca para enviar dado de cliente, senha, informação médica ou qualquer coisa que exigiria cuidado de privacidade. Para esse tipo de dado, prefira um provedor com chave, contrato e política de dados clara, como Mistral ou NVIDIA NIM.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Como faço meu script trocar de provedor automaticamente quando o limite gratuito estourar?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;O padrão mais simples é uma lista de provedores em ordem de prioridade, com um bloco try/except que tenta o próximo assim que o atual devolve erro de limite (HTTP 429) — é exatamente o código mostrado no Passo 3 deste post. Para um projeto maior, vale usar um roteador dedicado como o próprio OpenRouter (que já faz fallback entre modelos internamente com o recurso "Free Models Router") ou uma ferramenta como LiteLLM, que gerencia múltiplos provedores com a mesma interface da OpenAI e suporta fallback configurável em poucas linhas. O importante é nunca depender de um único provedor gratuito como ponto único de falha, já que qualquer um dos 19 desta lista pode mudar de política do dia para a noite — como os quatro que já mudaram em 2026.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Vale mais a pena usar um agregador como OpenRouter ou ir direto no provedor?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Ir direto no provedor (Groq, Google Gemini, Cloudflare) costuma dar limite mais alto e acesso ao catálogo completo de modelos daquele provedor, já que o agregador reparte sua própria quota entre todos os usuários da plataforma. Um agregador como OpenRouter compensa quando você quer comparar respostas de modelos de fabricantes diferentes sem gerenciar uma chave para cada um, ou quando precisa de fallback automático embutido sem programar a lógica você mesmo. Uma estratégia comum aqui no @CanalQb é usar Groq ou Gemini como provedor principal (limite mais alto, direto na fonte) e OpenRouter como plano B configurado no fallback, cobrindo os casos em que o principal estoura o limite do dia.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;p style="color: #777777; font-size: 0.85em; margin: 20px 0px;"&gt;
  &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Nota Jurídica:&lt;/strong&gt;
  Políticas de privacidade e uso de dados variam por provedor e por jurisdição. Consulte o &lt;a href="https://iapp.org/resources/article/the-iapp-resource-center/" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt; para informações específicas da sua região antes de enviar dado sensível a qualquer um dos endpoints citados neste post.
&lt;/p&gt;

&lt;h2&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; Fontes e Referências&lt;/h2&gt;
&lt;ul class="post_checklist"&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://github.com/cheahjs/free-llm-api-resources" rel="noopener noreferrer" target="_blank"&gt;cheahjs/free-llm-api-resources&lt;/a&gt; — a lista mais estrelada do GitHub sobre o tema, base para os limites de Groq, Google AI Studio, Mistral, Cohere e Cloudflare Workers AI citados aqui.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://github.com/mnfst/awesome-free-llm-apis" rel="noopener noreferrer" target="_blank"&gt;mnfst/awesome-free-llm-apis&lt;/a&gt; — fonte dos dados de Z AI, Aion Labs, ModelScope, SiliconFlow, LLM7.io, Kilo Code Gateway e OVHcloud.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://console.groq.com/docs/rate-limits" rel="noopener noreferrer" target="_blank"&gt;Documentação oficial de rate limits do Groq&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://developers.cloudflare.com/workers-ai/platform/pricing/" rel="noopener noreferrer" target="_blank"&gt;Página oficial de preços do Cloudflare Workers AI&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;a href="https://ai.google.dev/gemini-api/docs/available-regions" rel="noopener noreferrer" target="_blank"&gt;Regiões e termos do Google Gemini API&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href="https://www.canalqb.com.br/search?q=inteligência-artificial" rel="noopener noreferrer" target="_blank"&gt;Veja mais posts sobre inteligência artificial no @CanalQb&lt;/a&gt;.&lt;/p&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"FAQPage",
  "mainEntity":[
    {"@type":"Question","name":"Preciso de cartão de crédito para pegar chave de API grátis?","acceptedAnswer":{"@type":"Answer","text":"Na maioria dos provedores listados, não. Groq, Google Gemini, OpenRouter, Cohere, Z AI, Aion Labs, Cloudflare Workers AI, Hugging Face Router e Ollama Cloud liberam chave sem dado de pagamento. Mistral e NVIDIA NIM pedem verificação por telefone. ModelScope e SiliconFlow exigem verificação de identidade por documento. OVHcloud, LLM7.io e Kilo Code Gateway nem cadastro pedem, mas têm limite baixo, só para teste."}},
    {"@type":"Question","name":"Posso usar essas APIs gratuitas em produção comercial?","acceptedAnswer":{"@type":"Answer","text":"Depende do provedor. A Cohere proíbe uso comercial na chave Trial gratuita. A maioria dos outros não proíbe, mas não garante SLA. Camada gratuita funciona bem para MVP e prova de conceito; para produto pago com volume, migrar para o tier pago do provedor dá mais previsibilidade."}},
    {"@type":"Question","name":"Qual desses provedores é mais rápido para respostas em tempo real?","acceptedAnswer":{"@type":"Answer","text":"Groq e Cerebras se destacam por usarem chips dedicados (LPU e wafer-scale) em vez de GPU tradicional. Groq tem RPD mais alto na maioria dos modelos; Cerebras trava em 5 requisições por minuto no plano gratuito."}},
    {"@type":"Question","name":"É seguro usar provedores sem chave de API, como LLM7.io e OVHcloud?","acceptedAnswer":{"@type":"Answer","text":"Seguro para teste, não para dado sensível. Sem autenticação, qualquer um pode enviar requisição, e parte do roteamento (como no Kilo Code Gateway) pode passar por provedores que registram prompt e resposta. Use só para prototipar payload, nunca para dado de cliente."}},
    {"@type":"Question","name":"Como faço meu script trocar de provedor quando o limite estourar?","acceptedAnswer":{"@type":"Answer","text":"O padrão mais simples é uma lista de provedores em ordem de prioridade com try/except que tenta o próximo ao receber erro 429. Para projetos maiores, ferramentas como OpenRouter (Free Models Router) ou LiteLLM já gerenciam esse fallback."}},
    {"@type":"Question","name":"Vale mais a pena usar um agregador como OpenRouter ou ir direto no provedor?","acceptedAnswer":{"@type":"Answer","text":"Ir direto no provedor costuma dar limite mais alto e catálogo completo. Um agregador como OpenRouter compensa para comparar modelos de fabricantes diferentes sem gerenciar chave para cada um, ou quando você quer fallback automático embutido."}}
  ]
}
&lt;/script&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"APIs de IA Gratuitas 2026: Lista Completa com Base URL",
  "description":"Lista testada de 19 APIs de IA gratuitas com base_url pronto pro SDK da OpenAI, limites reais e provedores que pararam de ser grátis em 2026, do @CanalQb.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-19","dateModified":"2026-09-19",
  "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/apis-de-ia-gratuitas-2026-base-url.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 20px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;i class="fas fa-arrow-up-right-from-square"&gt;&lt;/i&gt; Testou algum desses provedores e achou um limite diferente do que listamos? Manda pra gente nos comentários ou no
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;YouTube do @CanalQb&lt;/a&gt; — a gente atualiza o post.
&lt;/p&gt;
&lt;p style="color: #999999; font-size: 0.8em; text-align: center;"&gt;Feito com Master Rules Claude v9.0&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEifQvCwDM5xw9nbhn8KyphvYgQ9B9QLAufgBhem2GMfP4waKz7hp6pJWJ0V3u2nrQfracZeKLn3ZpjMqMAbMt6H0_kWkLduqk_GslbAmtmyjm3eAzbETjXrzY72KCqL2Y1TXzEo07YCiEE0V3sTvMXVlGoniCeN1E7boM61CM5_rWyWLkqoLAzQrzzceqvH=s72-c" width="72"/></item><item><title>Deshawai é Golpe? Checklist Anti-Pirâmide 2026</title><link>https://canalqb.blogspot.com/2026/09/deshawai-e-golpe-checklist-anti.html</link><category>Alertas</category><category>Blockchain</category><category>Criptomoedas</category><category>Due Diligence</category><category>Finanças</category><category>Golpes</category><category>Segurança</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Thu, 17 Sep 2026 20:46:33 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-8454590527538652733</guid><description>&lt;link as="style" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="preload"&gt;&lt;/link&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEjWMdCu5aFV_vvod7qVfaCA4mJ_GO0whK1CF624aNHTly5ZL2itxAJsHWF_liWLJLDvKMl59MO85ZJLdsqc7CDaLB42_zSqWlF2F5c6q3CjsPiXLDpkYo9dfjogrxgXxa2zSA-MBbMgtIXC1LyB7fvCCn190QXR8CCwZ1DVpxFw2scO1k9HHNNA924oyGZ-" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_wrap{color:#333;line-height:1.75;font-size:1.02em;}
.post_cqb_wrap h2{color:#333;margin:35px 0 12px;line-height:1.35;border-left:5px solid #28a745;padding-left:12px;}
.post_cqb_wrap h3{color:#2e7d32;margin:28px 0 10px;line-height:1.4;}
.post_cqb_wrap p{margin:0 0 16px;color:#333;}
.post_cqb_answer{background:rgba(40,167,69,.08);border-left:4px solid #28a745;padding:15px;border-radius:8px;margin:0 0 20px;font-weight:500;}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;font-size:.88em;margin:15px 0;}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important;}
.post_cqb_terminal .comment{color:#888!important;}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important;}
.post_cqb_codeblock{padding:20px;border-radius:8px;border-left:5px solid #ffc107;overflow-x:auto;font-size:.88em;margin:15px 0;}
.post_cqb_tarja{background:rgba(211,47,47,.12);border:2px solid #d32f2f;border-radius:12px;padding:20px;margin:25px 0;color:#333;}
.post_cqb_tarja strong{color:#d32f2f;}
.post_cqb_tldr{background:rgba(33,150,243,.08);border-left:5px solid #2196f3;border-radius:10px;padding:18px 22px;margin:25px 0;}
.post_cqb_tldr ul{margin:10px 0 0;padding-left:0;list-style:none;}
.post_cqb_tldr li{display:flex;gap:10px;align-items:flex-start;margin:10px 0;color:#333;}
.post_cqb_badge{display:inline-block;background:rgba(40,167,69,.12);color:#28a745;border-radius:20px;padding:6px 16px;font-size:.88em;font-weight:600;}
.post_cqb_erro{background:rgba(255,193,7,.15);border-left:4px solid #ffc107;padding:14px;border-radius:8px;margin:14px 0;font-size:.94em;color:#555;}
.post_cqb_ok{background:rgba(40,167,69,.1);border-left:4px solid #28a745;padding:14px;border-radius:8px;margin:14px 0;font-size:.94em;color:#555;}
.post_checklist{list-style:none;padding:0;margin:15px 0;}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:7px 0;font-size:.95em;color:#555;line-height:1.6;}
.post_checklist li i{flex-shrink:0;margin-top:5px;}
.post_faq_container{margin:30px 0;}
.post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden;}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background .2s;min-height:44px;}
.post_faq_question:hover{background:#f0f0f0;}
.post_faq_answer{padding:15px;color:#555;line-height:1.7;}
.post_faq_item[open] .post_faq_question{background:rgba(40,167,69,.12);color:#28a745;}
.post_cqb_ref{border-top:2px solid #e0e0e0;margin-top:35px;padding-top:18px;font-size:.93em;color:#555;}
.post_cqb_ref a{color:#2196f3;}
.post_progress_bar{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width .1s;z-index:9999;}
.post_copy_btn{background:#28a745;color:#fff;border:none;border-radius:6px;padding:7px 14px;font-size:.82em;cursor:pointer;margin:8px 0 0;min-height:44px;}
.post_copy_btn:focus-visible{outline:3px solid #ffc107;outline-offset:2px;}
@media (max-width:768px){.post_cqb_wrap{font-size:1em;}.post_cqb_terminal,.post_cqb_codeblock{font-size:.8em;padding:14px;}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;}}
@media (prefers-color-scheme:dark){
.post_cqb_wrap,.post_cqb_wrap p,.post_cqb_wrap h2,.post_cqb_wrap h3{color:#e8e8e8;}
.post_faq_question{background:rgba(255,255,255,.06);color:#e8e8e8;}
.post_faq_answer,.post_checklist li,.post_cqb_erro,.post_cqb_ok,.post_cqb_ref{color:#c5c5c5;}
.post_faq_item{border-color:#444;}
}
&lt;/style&gt;

&lt;div aria-hidden="true" class="post_progress_bar" id="postProgress"&gt;&lt;/div&gt;

&lt;h1 style="color: #333333; text-align: center;"&gt;Deshawai é Golpe? Checklist Anti-Pirâmide 2026&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;p style="text-align: center;"&gt;&lt;span class="post_cqb_badge"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; Leitura: ~9 min&lt;/span&gt;&lt;/p&gt;

&lt;div class="post_cqb_tarja"&gt;
  &lt;p style="margin: 0px 0px 10px;"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f; font-size: 1.3em;"&gt;&lt;/i&gt; &lt;strong&gt;ALERTA DE RISCO — POSSÍVEL SCAM OU PIRÂMIDE FINANCEIRA&lt;/strong&gt;&lt;/p&gt;
  &lt;p style="margin: 0px;"&gt;Em pesquisa realizada em &lt;strong&gt;17/09/2026&lt;/strong&gt;, a plataforma &lt;strong&gt;deshawai.com&lt;/strong&gt; não apresentou registro em nenhum agregador de mercado, nenhuma cobertura de imprensa especializada, nenhum histórico de auditoria pública e nenhuma autorização identificável junto a reguladores brasileiros. Este post &lt;strong&gt;não contém link de indicação, código de afiliado ou qualquer incentivo ao cadastro&lt;/strong&gt;. O @CanalQb não recomenda, não endossa e não recebe comissão desta ou de qualquer plataforma citada aqui. Depositar dinheiro em plataformas sem rastro verificável é uma decisão de risco integral do usuário, com possibilidade real de perda total do valor aplicado.&lt;/p&gt;
&lt;/div&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;p style="color: #2196f3; font-weight: 700; margin: 0px;"&gt;&lt;i class="fas fa-bolt"&gt;&lt;/i&gt; TL;DR&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;i class="fas fa-circle-dot" style="color: #2196f3; margin-top: 6px;"&gt;&lt;/i&gt; Uma exchange real deixa rastro em 6 lugares diferentes; a deshawai.com não apareceu em nenhum deles na verificação de 17/09/2026.&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-circle-dot" style="color: #2196f3; margin-top: 6px;"&gt;&lt;/i&gt; O protocolo de 7 passos abaixo leva cerca de 12 minutos e usa apenas ferramentas gratuitas — WHOIS, Receita Federal, Banco Central, CVM e agregadores de volume.&lt;/li&gt;
    &lt;li&gt;&lt;i class="fas fa-circle-dot" style="color: #2196f3; margin-top: 6px;"&gt;&lt;/i&gt; Divulgar plataforma piramidal no Brasil é crime tipificado na Lei 1.521/51, art. 2º, IX — o risco não é só de quem deposita, é também de quem indica.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;
&lt;!--
&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Deshawai é Golpe? Checklist Anti-Pirâmide 2026" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt; --&gt;

&lt;p style="background: rgba(255, 193, 7, 0.15); border-left: 4px solid rgb(255, 193, 7); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-triangle-exclamation"&gt;&lt;/i&gt; &lt;strong&gt;Aviso Financeiro:&lt;/strong&gt;
  Este conteúdo é estritamente informativo e educacional. Não constitui conselho, recomendação ou oferta de investimento. Consulte um profissional habilitado antes de tomar decisões financeiras.
&lt;/p&gt;

&lt;div class="post_cqb_wrap"&gt;

&lt;p&gt;&lt;strong&gt;Uma exchange sem rastro na internet não é nova. É invisível de propósito.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Plataformas legítimas — mesmo as pequenas, mesmo as regionais — deixam pegada: aparecem em agregador de volume, têm CNPJ, respondem a jornalista, aparecem em fórum de reclamação. O rastro é involuntário. Surge sozinho quando dinheiro real circula.&lt;/p&gt;

&lt;p&gt;Recebi o pedido para analisar a &lt;strong&gt;deshawai.com&lt;/strong&gt;. Rodei o protocolo completo de verificação — o mesmo que uso antes de tocar em qualquer plataforma nova. O resultado de um dos sete passos me fez parar antes de chegar ao final. Vou mostrar exatamente qual foi, e por que ele sozinho já basta para uma decisão.&lt;/p&gt;

&lt;h2&gt;Como saber se uma exchange como a Deshawai é confiável?&lt;/h2&gt;

&lt;div class="post_cqb_answer"&gt;
Uma exchange confiável deve ter, simultaneamente: domínio com mais de dois anos, CNPJ ativo ou entidade jurídica identificável, registro ou pedido de autorização junto ao Banco Central como PSAV, ausência na lista de alertas da CVM, volume verificável em agregadores independentes e política de saque testável. A falha em qualquer um desses itens é sinal de alerta grave.
&lt;/div&gt;

&lt;p&gt;Esses seis pontos não são teoria. São checagens executáveis, cada uma com comando ou URL específica, e juntas levam menos de quinze minutos. Aqui no @CanalQb, validamos que a maioria das fraudes de curta duração morre já no passo 1 — mas quem não sabe rodar o passo 1 acaba descobrindo no passo em que o saque trava.&lt;/p&gt;

&lt;p&gt;Abaixo está o protocolo completo, passo a passo, com o que você deve ver quando a plataforma é real e o que aparece quando não é.&lt;/p&gt;

&lt;h3&gt;Passo 1: Descubra a idade real do domínio com WHOIS&lt;/h3&gt;

&lt;p&gt;Abra o terminal (Linux, macOS ou WSL no Windows) e execute o comando abaixo, trocando o domínio pelo que você quer investigar:&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
&lt;span class="comment"&gt;# Instale o whois se ainda não tiver (Debian/Ubuntu)&lt;/span&gt;&lt;br /&gt;
sudo apt install whois -y&lt;br /&gt;&lt;br /&gt;
&lt;span class="comment"&gt;# Consulte o registro do domínio&lt;/span&gt;&lt;br /&gt;
whois deshawai.com | grep -Ei "creation|expiry|registrar|country"
&lt;/div&gt;

&lt;p&gt;O comando &lt;code&gt;whois&lt;/code&gt; consulta o banco de dados público dos registradores de domínio e devolve quem registrou, quando registrou e até quando pagou. O &lt;code&gt;grep -Ei&lt;/code&gt; filtra só as quatro linhas que importam, porque a saída bruta do WHOIS tem dezenas de linhas irrelevantes de contato mascarado.&lt;/p&gt;

&lt;p&gt;Esse passo é o primeiro porque é o mais difícil de falsificar. Uma empresa pode inventar equipe, inventar prêmio e inventar parceria — mas não consegue inventar data de criação de domínio, que fica registrada de forma imutável no sistema de registro desde o dia em que o domínio foi comprado. Se você pular essa checagem, todas as outras ficam sem âncora temporal: você pode até achar que a plataforma tem estrutura, sem perceber que essa estrutura foi montada há nove semanas.&lt;/p&gt;

&lt;p&gt;Quando funcionar, você verá algo assim numa plataforma séria:&lt;/p&gt;

&lt;div class="post_cqb_terminal"&gt;
Creation Date: 2017-05-12T08:22:41Z&lt;br /&gt;
Registry Expiry Date: 2031-05-12T08:22:41Z&lt;br /&gt;
Registrar: MarkMonitor Inc.&lt;br /&gt;
Registrant Country: US
&lt;/div&gt;

&lt;div class="post_cqb_ok"&gt;
&lt;i class="fas fa-circle-check" style="color: #28a745;"&gt;&lt;/i&gt; &lt;strong&gt;Leitura do resultado:&lt;/strong&gt; domínio antigo (2017), renovação paga com anos de antecedência (2031) e registrador corporativo caro (MarkMonitor cobra várias vezes o preço de um registrador comum). São três indicadores de estrutura real. O oposto — criação recente, expiração em 12 meses e registrador de baixo custo com privacidade total — é o perfil padrão de operação descartável.
&lt;/div&gt;

&lt;div class="post_cqb_erro"&gt;
&lt;i class="fas fa-triangle-exclamation" style="color: #ffc107;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; muitos domínios devolvem "REDACTED FOR PRIVACY" em todos os campos de contato e o iniciante conclui que "não deu para verificar". A privacidade de contato é normal e não esconde a &lt;strong&gt;data de criação&lt;/strong&gt; — essa continua pública. Se o seu &lt;code&gt;grep&lt;/code&gt; não trouxe a linha &lt;code&gt;Creation Date&lt;/code&gt;, rode &lt;code&gt;whois dominio.com | less&lt;/code&gt; e procure por &lt;code&gt;Created&lt;/code&gt; ou &lt;code&gt;Registered on&lt;/code&gt;, que variam conforme o registrador. Em domínios &lt;code&gt;.br&lt;/code&gt;, use o serviço do &lt;a href="https://registro.br/tecnologia/ferramentas/whois/" rel="noopener noreferrer" target="_blank"&gt;Registro.br&lt;/a&gt;, que tem formato próprio.
&lt;/div&gt;

&lt;h3&gt;Passo 2: Verifique se existe pessoa jurídica por trás&lt;/h3&gt;

&lt;p&gt;Acesse o consultor público de CNPJ da Receita Federal e procure pela razão social informada no rodapé do site ou nos Termos de Uso da plataforma. O caminho é &lt;code&gt;solucoes.receita.fazenda.gov.br&lt;/code&gt;, seção "Cadastros" →
  &lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEjWMdCu5aFV_vvod7qVfaCA4mJ_GO0whK1CF624aNHTly5ZL2itxAJsHWF_liWLJLDvKMl59MO85ZJLdsqc7CDaLB42_zSqWlF2F5c6q3CjsPiXLDpkYo9dfjogrxgXxa2zSA-MBbMgtIXC1LyB7fvCCn190QXR8CCwZ1DVpxFw2scO1k9HHNNA924oyGZ-=s72-c" width="72"/></item><item><title>Winget: Instale Qualquer Programa no Windows com 1 Comando</title><link>https://canalqb.blogspot.com/2026/09/winget-instale-qualquer-programa-no.html</link><category>Automação</category><category>Ferramentas</category><category>PowerShell</category><category>Tutorial</category><category>Windows</category><category>Winget</category><author>noreply@blogger.com (CanalQb)</author><pubDate>Wed, 16 Sep 2026 22:23:20 -0300</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-5982274115355506187.post-4781060803872681555</guid><description>&lt;!--Feito com Master Rules Claude v9.0--&gt;
&lt;link as="style" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" rel="preload"&gt;&lt;/link&gt;
&lt;link crossorigin="anonymous" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css" referrerpolicy="no-referrer" rel="stylesheet"&gt;&lt;/link&gt;

&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;p style="text-align: center;"&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" style="color: #28a745; font-size: 1.2em; font-weight: bold; text-decoration: none;" target="_blank" title="Visite o @CanalQb no YouTube"&gt;@CanalQb no YouTube&lt;/a&gt;
&lt;/p&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;
&lt;div style="margin: 20px 0px; text-align: center;"&gt;
  &lt;img alt="@CanalQb" decoding="async" fetchpriority="high" height="400" src="https://blogger.googleusercontent.com/img/a/AVvXsEhqbBNIAUGJ5_EsBA3tW-0HhumhjNwO-Vx6DfZbJWkF6UAYzkuYUlES1q56n9XMNo-LPPeHtqKARZ6-uq9jS9tqWsOqpyRW74ci6bOCPtUuOViGHvxThIet46C6DALB4kDZNGiA8fBd0CkvCSEIkeR5UkryEs90_GmjaDvPTT9zjun9PwaQh_ooQKQdkX-g" style="border-radius: 10px; height: auto; max-width: 100%;" width="1280" /&gt;
&lt;/div&gt;
&lt;h1 style="color: #333333; text-align: center;"&gt;Winget: Instale Qualquer Programa no Windows com 1 Comando&lt;/h1&gt;
&lt;hr class="post_separator" style="border: 0.5px solid rgb(204, 204, 204); margin: 10px auto; width: 95%;" /&gt;

&lt;style&gt;
/* @CanalQb - Exclusive Design License 2026 */
.post_cqb_progress{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width .1s;z-index:9999}
.post_cqb_readtime{display:block;width:fit-content;background:rgba(40,167,69,.12);color:#28a745;font-weight:600;font-size:.85em;padding:6px 14px;border-radius:20px;margin:10px auto 20px}
.post_cqb_tldr{background:#f4faf5;border:1px solid #cfe8d5;border-left:5px solid #28a745;border-radius:10px;padding:18px 20px;margin:20px 0}
.post_cqb_tldr h2{margin-top:0;color:#28a745;font-size:1.05em;display:flex;align-items:center;gap:8px}
.post_cqb_tldr ul{margin:8px 0 0;padding-left:20px;color:#333}
.post_cqb_tldr li{margin:6px 0;line-height:1.5}
.post_cqb_intro{font-size:1.05em;line-height:1.7;color:#333}
.post_cqb_hook{font-weight:700;font-size:1.15em;color:#222;margin-bottom:6px}
.post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;font-size:.82em;line-height:1.55;position:relative;margin:16px 0}
.post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important}
.post_cqb_terminal .comment{color:#888!important}
.post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important}
.post_cqb_codeblock{padding:16px 20px;border-radius:8px;border-left:5px solid #ffc107;margin:16px 0;overflow-x:auto;position:relative}
.post_cqb_copybtn{position:absolute;top:8px;right:8px;background:#333;color:#fff;border:none;padding:5px 10px;border-radius:6px;font-size:.72em;cursor:pointer;display:flex;align-items:center;gap:5px}
.post_cqb_copybtn:hover{background:#555}
.post_cqb_step{border:1px solid #e6e6e6;border-radius:10px;padding:16px 18px;margin:18px 0;background:#fff}
.post_cqb_step h3{margin-top:0;color:#333;font-size:1.05em;display:flex;gap:8px;align-items:center}
.post_cqb_step h3 i{color:#28a745}
.post_cqb_result{background:rgba(33,150,243,.08);border-left:3px solid #2196f3;padding:10px 14px;border-radius:6px;margin:10px 0;font-size:.92em;color:#333}
.post_cqb_error{background:rgba(211,47,47,.07);border-left:3px solid #d32f2f;padding:10px 14px;border-radius:6px;margin:10px 0;font-size:.92em;color:#333}
.post_checklist{list-style:none;padding:0;margin:10px 0}
.post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5}
.post_checklist li i{flex-shrink:0;margin-top:3px}
.post_faq_container{margin:30px 0}
.post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden}
.post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background .2s}
.post_faq_question:hover{background:#f0f0f0}
.post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6}
.post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745}
.post_cqb_footer_refs{font-size:.9em;color:#555;border-top:1px solid #eee;padding-top:16px;margin-top:30px}
.post_cqb_footer_refs a{color:#2196f3}
.post_cqb_cta{text-align:center;background:#f4faf5;border-radius:12px;padding:24px;margin:26px 0}
.post_cqb_cta a{display:inline-block;background:#28a745;color:#fff!important;padding:12px 26px;border-radius:30px;text-decoration:none;font-weight:700;margin-top:10px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #2196f3;outline-offset:2px}
@media (prefers-reduced-motion:reduce){.post_cqb_progress,.post_faq_question,.post_cqb_copybtn{transition:none!important}}
@media (prefers-color-scheme:dark){
  .post_cqb_tldr{background:#132116;border-color:#1f4a2c}
  .post_cqb_step{background:#171717;border-color:#2a2a2a}
  .post_cqb_step h3{color:#eee}
  .post_faq_question{background:#1c1c1c;color:#eee}
  .post_faq_answer{background:#111;color:#ccc}
  .post_cqb_cta{background:#132116}
}
@media (max-width:768px){
  .post_cqb_terminal,.post_cqb_codeblock{font-size:.76em;padding:14px}
  .post_cqb_step{padding:14px}
}
&lt;/style&gt;

&lt;p class="post_cqb_readtime"&gt;&lt;i class="fas fa-clock"&gt;&lt;/i&gt; ⏱️ Leitura: ~10 min&lt;/p&gt;

&lt;div class="post_cqb_tldr"&gt;
  &lt;h2&gt;&lt;i class="fas fa-list-check"&gt;&lt;/i&gt; TL;DR&lt;/h2&gt;
  &lt;ul&gt;
    &lt;li&gt;Testamos o comando &lt;code&gt;winget install --id=&lt;/code&gt; pra instalar o WhatsApp Beta direto da Microsoft Store, sem abrir navegador nem loja.&lt;/li&gt;
    &lt;li&gt;O Winget aceita busca por nome (&lt;code&gt;winget search&lt;/code&gt;) e instalação exata por ID — evitando instalar o app errado quando há vários resultados parecidos.&lt;/li&gt;
    &lt;li&gt;Não é preciso estar no Windows Insider: apps com "Beta" no nome são instalados normalmente em qualquer Windows estável.&lt;/li&gt;
  &lt;/ul&gt;
&lt;/div&gt;

&lt;div style="margin-bottom: 30px; text-align: center;"&gt;
  &lt;iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen="" aria-label="Vídeo tutorial @CanalQb" height="450" loading="lazy" src="https://www.youtube.com/embed/DUDla8Bya8M?autoplay=1&amp;amp;mute=1&amp;amp;origin=https://canalqb.com.br/&amp;amp;controls=1&amp;amp;rel=0&amp;amp;enablejsapi=1&amp;amp;cc_load_policy=1" style="border-radius: 10px; border: none; max-width: 100%;" title="Vídeo do @CanalQb — Winget: Instale Qualquer Programa no Windows com 1 Comando" width="100%"&gt;
  &lt;/iframe&gt;
&lt;/div&gt;

&lt;p style="background: rgba(33, 150, 243, 0.1); border-left: 4px solid rgb(33, 150, 243); border-radius: 8px; color: #555555; font-size: 0.9em; margin: 20px 0px; padding: 15px;"&gt;
  &lt;i class="fas fa-circle-info"&gt;&lt;/i&gt; &lt;strong&gt;Nota Técnica:&lt;/strong&gt;
  Comandos e scripts fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido.
&lt;/p&gt;

&lt;div class="post_cqb_intro"&gt;
  &lt;p class="post_cqb_hook"&gt;A maioria ainda procura o instalador no navegador — e ignora um comando nativo do Windows.&lt;/p&gt;
  &lt;p&gt;Rodamos esse comando ao vivo pra trazer um app "Beta" da Microsoft Store direto pro PowerShell, sem abrir loja nem site nenhum. O log logo abaixo é exatamente o que apareceu no nosso terminal, sem cortes — inclusive o prompt de aceite de termos que trava quem não sabe o que responder.&lt;/p&gt;
  &lt;p&gt;Até o fim deste post você vai saber instalar (ou desinstalar) qualquer programa com uma linha só, e por que digitar só o nome do app — em vez do ID exato — pode instalar a versão errada sem você nem perceber.&lt;/p&gt;
&lt;/div&gt;

&lt;h2 id="o-que-e-winget"&gt;O que é o Winget e por que ele substitui a busca manual por instaladores?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; Winget é o gerenciador de pacotes nativo do Windows 10 e 11, usado via PowerShell ou Prompt de Comando. Ele baixa e instala programas direto de dois repositórios oficiais — o catálogo comunitário winget-pkgs e a própria Microsoft Store — sem exigir navegador, pesquisa no Google ou clique em botão de download de terceiros.&lt;/p&gt;

&lt;p&gt;O Winget vem embutido no componente &lt;strong&gt;App Installer&lt;/strong&gt;, que já é instalado por padrão no Windows 11 e chega via atualização automática da Microsoft Store no Windows 10 (build 1809 em diante). Ele funciona como um "apt" ou "brew" para Windows: você digita o nome ou o ID do programa, e ele resolve sozinho de onde baixar, valida o instalador com hash e executa a instalação silenciosamente sempre que possível.&lt;/p&gt;

&lt;p&gt;Existem duas fontes principais configuradas por padrão: a fonte &lt;code&gt;winget&lt;/code&gt;, mantida pela comunidade no &lt;a href="https://github.com/microsoft/winget-pkgs" rel="noopener noreferrer" target="_blank"&gt;repositório winget-pkgs no GitHub&lt;/a&gt; (com IDs no formato &lt;code&gt;Fabricante.Programa&lt;/code&gt;, como &lt;code&gt;Adobe.Acrobat.Pro&lt;/code&gt;), e a fonte &lt;code&gt;msstore&lt;/code&gt;, que é o catálogo oficial da Microsoft Store (com IDs alfanuméricos como &lt;code&gt;9NBDXK71NK08&lt;/code&gt;). Isso explica por que às vezes o ID de um app parece um nome legível e às vezes parece um código aleatório — depende de qual das duas fontes forneceu o pacote, exatamente como aparece na linha &lt;em&gt;"This package is provided through Microsoft Store"&lt;/em&gt; do nosso print.&lt;/p&gt;

&lt;p&gt;Aqui no @CanalQb, validamos que mesmo em máquinas com Windows 10 desatualizado, um &lt;code&gt;winget upgrade --id Microsoft.AppInstaller --source msstore&lt;/code&gt; resolve boa parte dos casos de "winget não é reconhecido" antes mesmo de tentar instalar qualquer outro programa. Se você usa PowerShell no dia a dia, vale a pena revisar também nossa lista de &lt;a href="https://www.canalqb.com.br/search?q=automação+powershell" rel="noopener noreferrer" target="_blank"&gt;automações em PowerShell&lt;/a&gt; já publicadas aqui no canal.&lt;/p&gt;

&lt;h2 id="descobrir-id"&gt;Como descobrir o ID exato de um programa antes de instalar?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; Use &lt;code&gt;winget search &amp;lt;nome&amp;gt;&lt;/code&gt; antes de instalar qualquer coisa. Esse comando consulta as duas fontes configuradas e devolve uma tabela com Nome, Id, Versão e Origem — é ali que você confirma qual pacote é realmente o que você quer, antes de rodar o install.&lt;/p&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-terminal"&gt;&lt;/i&gt; Passo 1 — Abra o PowerShell (ou o Terminal do Windows)&lt;/h3&gt;
  &lt;p&gt;Aperte &lt;code&gt;Win&lt;/code&gt;, digite "PowerShell" ou "Terminal" e pressione Enter. Não precisa necessariamente ser como administrador para buscar ou instalar a maioria dos apps de usuário único — mas rodar como admin evita bloqueios em programas que instalam serviços do sistema.&lt;/p&gt;
  &lt;p&gt;Esse passo existe porque o Winget é um comando de CLI (linha de comando): ele não tem ícone na área de trabalho nem atalho no menu Iniciar, então toda a interação acontece dentro do terminal, exatamente como no print acima.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; um prompt do tipo &lt;code&gt;PS C:\WINDOWS\system32&amp;gt;&lt;/code&gt; piscando, pronto para receber comandos.&lt;/div&gt;
  &lt;div class="post_cqb_error"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; "winget: O termo 'winget' não é reconhecido como nome de cmdlet". Isso acontece quando o App Installer está desatualizado ou ausente. Corrija abrindo a Microsoft Store, buscando "App Installer" e clicando em Atualizar — depois feche e reabra o terminal.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-magnifying-glass"&gt;&lt;/i&gt; Passo 2 — Rode o comando de busca&lt;/h3&gt;
  &lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;winget search whatsapp&lt;/code&gt;&lt;/div&gt;
  &lt;p&gt;Esse comando varre as fontes configuradas (winget-pkgs e Microsoft Store) atrás de qualquer pacote cujo nome ou moniker contenha "whatsapp", e devolve uma tabela com colunas Name, Id, Version, Match e Source.&lt;/p&gt;
  &lt;p&gt;É esse passo que evita instalar a coisa errada. No nosso teste, a busca por "whatsapp" trouxe mais de um resultado — incluindo o WhatsApp normal e o WhatsApp Beta — e só olhando a tabela você sabe qual ID pertence a qual versão antes de comprometer a instalação.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; uma tabela de texto com uma ou mais linhas, cada uma trazendo um Id diferente na segunda coluna.&lt;/div&gt;
  &lt;div class="post_cqb_error"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; "No package found matching input criteria". Geralmente é termo de busca curto demais ou fonte desatualizada — rode &lt;code&gt;winget source update&lt;/code&gt; primeiro e tente de novo com um termo mais específico.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Passo 3 — Copie o valor exato da coluna "Id"&lt;/h3&gt;
  &lt;p&gt;Selecione com o mouse exatamente o texto que aparece sob a coluna &lt;strong&gt;Id&lt;/strong&gt; — não o Name. No caso do WhatsApp Beta do nosso print, o Id retornado foi &lt;code&gt;9NBDXK71NK08&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Isso é necessário porque o parâmetro &lt;code&gt;--id&lt;/code&gt; exige correspondência exata: qualquer caractere fora do lugar, ou copiar o Name em vez do Id, faz o Winget não encontrar nada — mesmo que o programa exista e apareça na busca.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; você tem uma string curta (tipo &lt;code&gt;9NBDXK71NK08&lt;/code&gt; ou &lt;code&gt;Adobe.Acrobat.Pro&lt;/code&gt;) copiada e pronta pra colar no próximo comando.&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="instalar-por-id"&gt;Como instalar um programa direto pelo ID, sem risco de baixar o app errado?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; Rode &lt;code&gt;winget install --id=&amp;lt;ID&amp;gt;&lt;/code&gt;, aceite o termo de licença do publisher digitando "Y" quando pedido, e aguarde a barra chegar a 100%. É exatamente esse fluxo que aparece completo no print: da busca até o "Successfully installed".&lt;/p&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-download"&gt;&lt;/i&gt; Passo 1 — Rode o comando de instalação por ID&lt;/h3&gt;
  &lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;winget install --id=9NBDXK71NK08&lt;/code&gt;&lt;/div&gt;
  &lt;p&gt;O Winget pega o ID informado, consulta qual fonte o hospeda (nesse caso, a Microsoft Store, como o próprio terminal avisa na linha "This package is provided through Microsoft Store"), resolve a versão mais recente e prepara o download do manifesto.&lt;/p&gt;
  &lt;p&gt;Usar &lt;code&gt;--id=&lt;/code&gt; em vez do nome puro garante que você instale exatamente esse pacote — nem uma versão mais antiga, nem um app homônimo de outro publisher. É a diferença entre "instalar um WhatsApp qualquer" e "instalar este WhatsApp específico que eu escolhi na busca".&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; o terminal imprime "Found WhatsApp Beta [9NBDXK71NK08] Version Unknown" seguido de um bloco de informações do publisher — categoria, preço, classificação etária e links de termos.&lt;/div&gt;
  &lt;div class="post_cqb_error"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; em scripts não interativos (agendador de tarefas, automações), o comando trava esperando resposta. Adicione &lt;code&gt;--accept-package-agreements --accept-source-agreements&lt;/code&gt; ao final do comando pra pular o prompt manual nesses casos.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-file-contract"&gt;&lt;/i&gt; Passo 2 — Aceite os termos do publisher&lt;/h3&gt;
  &lt;p&gt;Quando aparecer "The publisher requires that you view the above information and accept the agreements before installing. Do you agree to the terms? [Y] Yes [N] No:", digite &lt;code&gt;Y&lt;/code&gt; e pressione Enter — exatamente como no print.&lt;/p&gt;
  &lt;p&gt;Esse gate existe porque, mesmo instalando via linha de comando, o pacote continua sendo distribuído pela Microsoft Store — e a Store exige consentimento explícito aos termos de transação e ao aviso de apreensão (Seizure Warning) antes de liberar qualquer instalação, independente do canal usado.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; a linha "Starting package install..." aparece, seguida de uma barra de progresso percentual.&lt;/div&gt;
  &lt;div class="post_cqb_error"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; digitar "N" por engano cancela a instalação sem aviso destacado — se isso acontecer, é só rodar o comando de novo do zero.&lt;/div&gt;
&lt;/div&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; Passo 3 — Confirme "Successfully installed"&lt;/h3&gt;
  &lt;p&gt;Acompanhe a barra até 100% e aguarde a mensagem final. No nosso teste, o WhatsApp Beta foi de 0% a "Successfully installed" em poucos segundos, numa conexão comum de banda larga residencial.&lt;/p&gt;
  &lt;p&gt;Esse texto exato — "Successfully installed" — é a confirmação de que o Winget validou o hash do instalador, extraiu ou executou o pacote e registrou o programa no sistema. Sem essa linha, não há garantia de que o app está funcional.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; retorno ao prompt &lt;code&gt;PS C:\WINDOWS\system32&amp;gt;&lt;/code&gt; normalmente, com o app já disponível no Menu Iniciar.&lt;/div&gt;
  &lt;div class="post_cqb_error"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; "Installer hash does not match". Normalmente é download corrompido por instabilidade de rede ou antivírus interceptando o arquivo. Rode &lt;code&gt;winget source update&lt;/code&gt; e tente novamente antes de considerar usar a flag &lt;code&gt;--force&lt;/code&gt;.&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="instalar-por-nome"&gt;Como instalar um programa só pelo nome, sem precisar do ID completo?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; Use &lt;code&gt;winget install &amp;lt;nome ou moniker&amp;gt;&lt;/code&gt; quando tiver certeza de que o nome é único no catálogo — como &lt;code&gt;winget install Adobe.Acrobat.Pro&lt;/code&gt;. É mais rápido de digitar, mas menos seguro contra ambiguidade do que usar &lt;code&gt;--id&lt;/code&gt;.&lt;/p&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-keyboard"&gt;&lt;/i&gt; Quando vale usar o nome direto&lt;/h3&gt;
  &lt;div class="post_cqb_codeblock"&gt;&lt;code&gt;winget install Adobe.Acrobat.Pro&lt;/code&gt;&lt;/div&gt;
  &lt;p&gt;Esse formato funciona bem quando o nome ou moniker já é praticamente exclusivo no catálogo — o próprio Winget resolve internamente qual Id corresponde e segue direto para o download, sem exigir que você rode uma busca antes.&lt;/p&gt;
  &lt;p&gt;O ganho aqui é velocidade: você economiza o passo de &lt;code&gt;winget search&lt;/code&gt; quando já confia que o nome não vai colidir com outro programa parecido. Foi exatamente esse comando reduzido — &lt;code&gt;winget install whatsapp&lt;/code&gt;, sem &lt;code&gt;--id&lt;/code&gt; — que resolveu sozinho para "WhatsApp Beta" no nosso print, porque era o único resultado com correspondência forte de nome naquele momento.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; o mesmo fluxo de "Found... / Aceite os termos / Successfully installed", só que sem a etapa manual de busca antes.&lt;/div&gt;
  &lt;div class="post_cqb_error"&gt;&lt;i class="fas fa-triangle-exclamation" style="color: #d32f2f;"&gt;&lt;/i&gt; &lt;strong&gt;Erro comum:&lt;/strong&gt; "Multiple packages found matching input criteria. Please refine the input parameter." Quando isso aparecer, volte para &lt;code&gt;winget search &amp;lt;nome&amp;gt;&lt;/code&gt;, escolha o Id certo na tabela e refaça a instalação usando &lt;code&gt;--id=&lt;/code&gt;.&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="beta-insider"&gt;Preciso estar no Windows Insider para instalar apps "Beta" como o WhatsApp Beta?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; Não. "Beta" aqui é o canal de lançamento do aplicativo dentro da Microsoft Store, não uma versão de desenvolvedor do Windows. Você instala esses apps normalmente em qualquer Windows 10 ou 11 estável, sem entrar em nenhum programa Insider.&lt;/p&gt;

&lt;p&gt;Vale desfazer essa confusão porque ela é comum: existe o &lt;strong&gt;Windows Insider Program&lt;/strong&gt;, que entrega builds de pré-lançamento do próprio sistema operacional (canais Dev, Beta e Release Preview), e existem apps individuais que a Microsoft Store cataloga com "Beta" no nome — como o WhatsApp Beta, que é só uma variante do WhatsApp com recursos em teste, publicada normalmente na Store pública. São duas coisas completamente diferentes.&lt;/p&gt;

&lt;p&gt;Na prática, isso significa que você não precisa arriscar a estabilidade do seu Windows entrando em canais de pré-lançamento só para acessar um app rotulado como "Beta" — o Winget, puxando direto da Microsoft Store, entrega esse mesmo pacote Beta em qualquer instalação estável, exatamente como mostrou nosso print. Se seu interesse é justamente testar recursos novos de apps antes do público geral, dê uma olhada também no nosso conteúdo sobre &lt;a href="https://www.canalqb.com.br/search?q=ferramentas+windows" rel="noopener noreferrer" target="_blank"&gt;ferramentas para Windows&lt;/a&gt; aqui no blog.&lt;/p&gt;

&lt;h2 id="buscar-por-fabricante"&gt;Como buscar todos os programas de um fabricante inteiro, como a Microsoft?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; Rode &lt;code&gt;winget search Microsoft&lt;/code&gt; pra listar centenas de pacotes publicados com "Microsoft" no nome ou no publisher. Como a lista costuma ser grande, filtre o resultado direto no PowerShell antes de decidir o que instalar.&lt;/p&gt;

&lt;div class="post_cqb_step"&gt;
  &lt;h3&gt;&lt;i class="fas fa-filter"&gt;&lt;/i&gt; Filtrando uma busca grande&lt;/h3&gt;
  &lt;div class="post_cqb_terminal"&gt;&lt;code&gt;winget search Microsoft
&lt;span class="comment"&gt;# retorna dezenas de linhas — filtre assim:&lt;/span&gt;
winget search Microsoft | Select-String "Office"&lt;/code&gt;&lt;/div&gt;
  &lt;p&gt;O primeiro comando lista tudo que a fonte configurada associa a "Microsoft" — de editores de texto a runtimes internos do sistema. Isso sobrecarrega visualmente o terminal quando você só quer um pacote específico.&lt;/p&gt;
  &lt;p&gt;O segundo comando usa o cmdlet nativo &lt;code&gt;Select-String&lt;/code&gt; do PowerShell (equivalente ao &lt;code&gt;grep&lt;/code&gt; do Linux) pra filtrar apenas as linhas que contêm "Office", reduzindo dezenas de resultados a poucos relevantes.&lt;/p&gt;
  &lt;div class="post_cqb_result"&gt;&lt;i class="fas fa-circle-check"&gt;&lt;/i&gt; &lt;strong&gt;Resultado esperado:&lt;/strong&gt; uma lista bem menor, só com os pacotes cujo nome bate com o termo filtrado.&lt;/div&gt;
&lt;/div&gt;

&lt;h2 id="erros-comuns"&gt;Quais são os erros mais comuns do Winget e como resolver rápido?&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Resposta rápida:&lt;/strong&gt; A maioria dos travamentos cai em quatro casos: comando não reconhecido, fonte desatualizada, nome ambíguo e hash de instalador incompatível. Todos têm correção em uma linha, sem precisar reinstalar o Windows nem o App Installer do zero.&lt;/p&gt;

&lt;ul class="post_checklist"&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;"winget não é reconhecido":&lt;/strong&gt; atualize o App Installer pela Microsoft Store e reabra o terminal.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;"No package found":&lt;/strong&gt; rode &lt;code&gt;winget source update&lt;/code&gt; e refaça a busca com termo mais específico.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;"Multiple packages found":&lt;/strong&gt; use &lt;code&gt;winget search&lt;/code&gt; primeiro e instale sempre pelo &lt;code&gt;--id=&lt;/code&gt; exato.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;"Installer hash does not match":&lt;/strong&gt; atualize a fonte e tente de novo antes de usar &lt;code&gt;--force&lt;/code&gt;.&lt;/li&gt;
  &lt;li&gt;&lt;i class="fas fa-square-check" style="color: #28a745; margin-right: 8px;"&gt;&lt;/i&gt; &lt;strong&gt;Instalação trava sem terminar:&lt;/strong&gt; rode como administrador ou adicione &lt;code&gt;--accept-package-agreements --accept-source-agreements&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id="faq"&gt;Perguntas Frequentes sobre o Winget&lt;/h2&gt;
&lt;div class="post_faq_container"&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; O Winget funciona em qualquer versão do Windows?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Funciona nativamente no Windows 11 e no Windows 10 a partir da build 1809, desde que o componente App Installer esteja atualizado pela Microsoft Store. Em instalações corporativas com Store bloqueada por política de grupo, o Winget pode não estar disponível — nesse caso, o administrador de TI precisa liberar manualmente o pacote MSIX do App Installer via Intune ou instalação offline. Em versões anteriores ao Windows 10 1809, o Winget simplesmente não existe e não há forma suportada de instalá-lo, restando apenas alternativas como Chocolatey ou Scoop para o mesmo objetivo de instalação via linha de comando.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Preciso ser administrador para usar o winget install?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Depende do escopo da instalação. A maioria dos apps da Microsoft Store e programas de usuário único instala normalmente sem privilégios elevados, no escopo do próprio usuário. Já pacotes que instalam serviços do Windows, drivers ou dependências de sistema (como certas ferramentas de desenvolvimento) exigem PowerShell aberto como administrador — e o próprio Winget geralmente avisa quando detecta essa necessidade, recusando a instalação com uma mensagem de permissão insuficiente em vez de falhar silenciosamente.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; O Winget é seguro? Ele pode instalar vírus ou adware?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;O Winget em si não é a origem do risco — ele valida o hash de cada instalador contra o manifesto declarado antes de executar, o que já bloqueia arquivos adulterados no meio do caminho. O risco real está em confiar cegamente em qualquer resultado de &lt;code&gt;winget search&lt;/code&gt;: como o catálogo comunitário winget-pkgs aceita submissões de terceiros, sempre vale conferir o campo Publisher na tabela de busca antes de instalar algo que você não reconhece, exatamente como faria antes de baixar um instalador manualmente de um site desconhecido.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Qual a diferença entre instalar por --id e instalar pelo nome?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Instalar por &lt;code&gt;--id&lt;/code&gt; garante correspondência exata com um único pacote específico do catálogo, eliminando qualquer ambiguidade entre programas com nomes parecidos. Instalar só pelo nome é mais rápido de digitar, mas deixa o Winget decidir sozinho qual pacote é "o mais próximo" quando existe mais de um resultado — o que pode instalar uma versão, edição ou publisher diferente do que você pretendia. Para automação de scripts ou ambientes corporativos, o uso de &lt;code&gt;--id&lt;/code&gt; é considerado a prática recomendada justamente por essa previsibilidade.&lt;/div&gt;
  &lt;/details&gt;
  &lt;details class="post_faq_item"&gt;
    &lt;summary class="post_faq_question"&gt;&lt;i class="fas fa-question-circle"&gt;&lt;/i&gt; Dá para desinstalar programas pelo Winget também?&lt;/summary&gt;
    &lt;div class="post_faq_answer"&gt;Sim, o Winget espelha o comando de instalação para remoção: &lt;code&gt;winget uninstall --id=&amp;lt;ID&amp;gt;&lt;/code&gt; remove o pacote pelo mesmo identificador exato usado na instalação, e &lt;code&gt;winget list&lt;/code&gt; mostra todos os programas instalados no sistema com seus respectivos Ids, incluindo apps que não vieram originalmente pelo próprio Winget. Isso torna possível limpar uma máquina inteira de programas indesejados sem abrir o painel de Configurações do Windows, usando apenas uma sequência de comandos no PowerShell.&lt;/div&gt;
  &lt;/details&gt;
&lt;/div&gt;

&lt;div class="post_cqb_footer_refs"&gt;
  &lt;p&gt;&lt;i class="fas fa-book"&gt;&lt;/i&gt; &lt;strong&gt;&#128218; Fontes e Referências&lt;/strong&gt;&lt;/p&gt;
  &lt;ul&gt;
    &lt;li&gt;&lt;a href="https://learn.microsoft.com/pt-br/windows/package-manager/winget/" rel="noopener noreferrer" target="_blank"&gt;Documentação oficial do Winget — Microsoft Learn&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://github.com/microsoft/winget-cli" rel="noopener noreferrer" target="_blank"&gt;Repositório oficial do Winget CLI — GitHub&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="https://www.canalqb.com.br/search?q=ferramentas+windows" rel="noopener noreferrer" target="_blank"&gt;Mais ferramentas para Windows no @CanalQb&lt;/a&gt;&lt;/li&gt;
  &lt;/ul&gt;
  &lt;p style="color: #777777; font-size: 0.85em; margin: 14px 0px 0px;"&gt;
    &lt;i class="fas fa-globe"&gt;&lt;/i&gt; &lt;strong&gt;Nota Jurídica:&lt;/strong&gt; Este conteúdo pode estar sujeito a diferentes leis de privacidade dependendo da sua jurisdição. Consulte o &lt;a href="https://iapp.org/resources/article/the-iapp-resource-center/" rel="noopener noreferrer" target="_blank"&gt;IAPP Global Privacy Directory&lt;/a&gt; para informações específicas da sua região.
  &lt;/p&gt;
&lt;/div&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"BlogPosting",
  "headline":"Winget: Instale Qualquer Programa no Windows com 1 Comando",
  "description":"Descubra como o Winget instala qualquer programa direto pelo PowerShell, sem navegador e sem risco de baixar o app errado. Testamos com o WhatsApp Beta.",
  "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"},
  "publisher":{
    "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br",
    "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"}
  },
  "datePublished":"2026-09-16","dateModified":"2026-09-16",
  "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/winget-instale-programas-windows.html",
  "copyrightHolder":{"@type":"Person","name":"@CanalQb"},
  "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/",
  "inLanguage":"pt-BR"
}
&lt;/script&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"FAQPage",
  "mainEntity":[
    {"@type":"Question","name":"O Winget funciona em qualquer versão do Windows?","acceptedAnswer":{"@type":"Answer","text":"Funciona nativamente no Windows 11 e no Windows 10 a partir da build 1809, desde que o App Installer esteja atualizado pela Microsoft Store. Versões anteriores não têm suporte oficial."}},
    {"@type":"Question","name":"Preciso ser administrador para usar o winget install?","acceptedAnswer":{"@type":"Answer","text":"Depende do pacote: apps de usuário único instalam sem privilégios elevados, enquanto pacotes que instalam serviços de sistema exigem PowerShell como administrador."}},
    {"@type":"Question","name":"O Winget é seguro? Ele pode instalar vírus ou adware?","acceptedAnswer":{"@type":"Answer","text":"O Winget valida o hash de cada instalador antes de executar, mas o catálogo comunitário aceita submissões de terceiros — sempre confira o Publisher antes de instalar algo desconhecido."}},
    {"@type":"Question","name":"Qual a diferença entre instalar por --id e instalar pelo nome?","acceptedAnswer":{"@type":"Answer","text":"--id garante correspondência exata com um único pacote; instalar pelo nome é mais rápido, mas pode ser ambíguo quando há vários resultados parecidos."}},
    {"@type":"Question","name":"Dá para desinstalar programas pelo Winget também?","acceptedAnswer":{"@type":"Answer","text":"Sim, com winget uninstall --id=&lt;ID&gt;, usando o mesmo identificador exato usado na instalação."}}
  ]
}
&lt;/script&gt;

&lt;script type="application/ld+json"&gt;
{
  "@context":"https://schema.org",
  "@type":"HowTo",
  "name":"Como instalar um programa no Windows usando o Winget",
  "step":[
    {"@type":"HowToStep","name":"Abrir o PowerShell","text":"Abra o PowerShell ou Terminal do Windows pesquisando pelo menu Iniciar."},
    {"@type":"HowToStep","name":"Buscar o programa","text":"Rode winget search &lt;nome&gt; para localizar o Id exato do programa desejado."},
    {"@type":"HowToStep","name":"Instalar pelo Id","text":"Rode winget install --id=&lt;ID&gt; para instalar exatamente o pacote encontrado na busca."},
    {"@type":"HowToStep","name":"Aceitar os termos","text":"Digite Y quando solicitado para aceitar os termos do publisher e iniciar o download."},
    {"@type":"HowToStep","name":"Confirmar a instalação","text":"Aguarde a mensagem Successfully installed para confirmar que o programa foi instalado com sucesso."}
  ]
}
&lt;/script&gt;

&lt;div class="post_cqb_cta"&gt;
  &lt;p&gt;&lt;i class="fas fa-circle-play"&gt;&lt;/i&gt; Gostou de automatizar a instalação sem tocar no navegador? Tem mais dica assim no canal.&lt;/p&gt;
  &lt;a href="https://www.youtube.com/channel/UCdOA_1KzXHIp3gmVyyYv2sg" rel="noopener noreferrer" target="_blank"&gt;Inscreva-se no @CanalQb&lt;/a&gt;
&lt;/div&gt;

&lt;script&gt;
(function(){
  'use strict';
  var bar=document.createElement('div');
  bar.className='post_cqb_progress';
  document.body.appendChild(bar);
  function onScroll(){
    var h=document.documentElement;
    var scrolled=(h.scrollTop)/((h.scrollHeight)-h.clientHeight)*100;
    bar.style.width=(scrolled||0)+'%';
  }
  window.addEventListener('scroll',onScroll,{passive:true});

  function showToast(msg){
    var t=document.createElement('div');
    t.textContent=msg;
    t.style.cssText='position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#28a745;color:#fff;padding:10px 18px;border-radius:20px;font-size:.85em;z-index:9999;opacity:0;transition:opacity .3s';
    document.body.appendChild(t);
    requestAnimationFrame(function(){t.style.opacity='1';});
    setTimeout(function(){t.style.opacity='0';setTimeout(function(){t.remove();},300);},1800);
  }

  document.querySelectorAll('.post_cqb_codeblock,.post_cqb_terminal').forEach(function(block){
    var btn=document.createElement('button');
    btn.className='post_cqb_copybtn';
    btn.innerHTML='&lt;i class="fas fa-copy"&gt;&lt;/i&gt; Copiar';
    btn.setAttribute('aria-label','Copiar comando');
    btn.addEventListener('click',function(){
      var code=block.querySelector('code')||block;
      var text=code.textContent.trim();
      if(navigator.clipboard){
        navigator.clipboard.writeText(text).then(function(){showToast('Comando copiado!');});
      }
    });
    block.style.position='relative';
    block.appendChild(btn);
  });
})();
&lt;/script&gt;
sssssssssssss
&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="https://blogger.googleusercontent.com/img/a/AVvXsEhqbBNIAUGJ5_EsBA3tW-0HhumhjNwO-Vx6DfZbJWkF6UAYzkuYUlES1q56n9XMNo-LPPeHtqKARZ6-uq9jS9tqWsOqpyRW74ci6bOCPtUuOViGHvxThIet46C6DALB4kDZNGiA8fBd0CkvCSEIkeR5UkryEs90_GmjaDvPTT9zjun9PwaQh_ooQKQdkX-g" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img alt="" data-original-height="572" data-original-width="1024" height="179" src="https://blogger.googleusercontent.com/img/a/AVvXsEhqbBNIAUGJ5_EsBA3tW-0HhumhjNwO-Vx6DfZbJWkF6UAYzkuYUlES1q56n9XMNo-LPPeHtqKARZ6-uq9jS9tqWsOqpyRW74ci6bOCPtUuOViGHvxThIet46C6DALB4kDZNGiA8fBd0CkvCSEIkeR5UkryEs90_GmjaDvPTT9zjun9PwaQh_ooQKQdkX-g" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;div style="text-align:center;margin:16px 0"&gt;
  &lt;a href="https://www.youtube.com/@canalQb"
     target="_blank"
     rel="noopener noreferrer"
     style="display:inline-flex;align-items:center;gap:8px;background:#28a745;color:#fff;font-size:15px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:8px;min-height:48px"&gt;
    ▶ @CanalQb no YouTube
  &lt;/a&gt;
&lt;/div&gt;&lt;/div&gt;</description><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" height="72" url="https://blogger.googleusercontent.com/img/a/AVvXsEhqbBNIAUGJ5_EsBA3tW-0HhumhjNwO-Vx6DfZbJWkF6UAYzkuYUlES1q56n9XMNo-LPPeHtqKARZ6-uq9jS9tqWsOqpyRW74ci6bOCPtUuOViGHvxThIet46C6DALB4kDZNGiA8fBd0CkvCSEIkeR5UkryEs90_GmjaDvPTT9zjun9PwaQh_ooQKQdkX-g=s72-c" width="72"/><enclosure length="651885" type="image/png" url="https://blogger.googleusercontent.com/img/a/AVvXsEhqbBNIAUGJ5_EsBA3tW-0HhumhjNwO-Vx6DfZbJWkF6UAYzkuYUlES1q56n9XMNo-LPPeHtqKARZ6-uq9jS9tqWsOqpyRW74ci6bOCPtUuOViGHvxThIet46C6DALB4kDZNGiA8fBd0CkvCSEIkeR5UkryEs90_GmjaDvPTT9zjun9PwaQh_ooQKQdkX-g"/><itunes:explicit>no</itunes:explicit><itunes:subtitle>@CanalQb no YouTube Winget: Instale Qualquer Programa no Windows com 1 Comando /* @CanalQb - Exclusive Design License 2026 */ .post_cqb_progress{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width .1s;z-index:9999} .post_cqb_readtime{display:block;width:fit-content;background:rgba(40,167,69,.12);color:#28a745;font-weight:600;font-size:.85em;padding:6px 14px;border-radius:20px;margin:10px auto 20px} .post_cqb_tldr{background:#f4faf5;border:1px solid #cfe8d5;border-left:5px solid #28a745;border-radius:10px;padding:18px 20px;margin:20px 0} .post_cqb_tldr h2{margin-top:0;color:#28a745;font-size:1.05em;display:flex;align-items:center;gap:8px} .post_cqb_tldr ul{margin:8px 0 0;padding-left:20px;color:#333} .post_cqb_tldr li{margin:6px 0;line-height:1.5} .post_cqb_intro{font-size:1.05em;line-height:1.7;color:#333} .post_cqb_hook{font-weight:700;font-size:1.15em;color:#222;margin-bottom:6px} .post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;font-size:.82em;line-height:1.55;position:relative;margin:16px 0} .post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important} .post_cqb_terminal .comment{color:#888!important} .post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important} .post_cqb_codeblock{padding:16px 20px;border-radius:8px;border-left:5px solid #ffc107;margin:16px 0;overflow-x:auto;position:relative} .post_cqb_copybtn{position:absolute;top:8px;right:8px;background:#333;color:#fff;border:none;padding:5px 10px;border-radius:6px;font-size:.72em;cursor:pointer;display:flex;align-items:center;gap:5px} .post_cqb_copybtn:hover{background:#555} .post_cqb_step{border:1px solid #e6e6e6;border-radius:10px;padding:16px 18px;margin:18px 0;background:#fff} .post_cqb_step h3{margin-top:0;color:#333;font-size:1.05em;display:flex;gap:8px;align-items:center} .post_cqb_step h3 i{color:#28a745} .post_cqb_result{background:rgba(33,150,243,.08);border-left:3px solid #2196f3;padding:10px 14px;border-radius:6px;margin:10px 0;font-size:.92em;color:#333} .post_cqb_error{background:rgba(211,47,47,.07);border-left:3px solid #d32f2f;padding:10px 14px;border-radius:6px;margin:10px 0;font-size:.92em;color:#333} .post_checklist{list-style:none;padding:0;margin:10px 0} .post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5} .post_checklist li i{flex-shrink:0;margin-top:3px} .post_faq_container{margin:30px 0} .post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden} .post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background .2s} .post_faq_question:hover{background:#f0f0f0} .post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6} .post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745} .post_cqb_footer_refs{font-size:.9em;color:#555;border-top:1px solid #eee;padding-top:16px;margin-top:30px} .post_cqb_footer_refs a{color:#2196f3} .post_cqb_cta{text-align:center;background:#f4faf5;border-radius:12px;padding:24px;margin:26px 0} .post_cqb_cta a{display:inline-block;background:#28a745;color:#fff!important;padding:12px 26px;border-radius:30px;text-decoration:none;font-weight:700;margin-top:10px} a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #2196f3;outline-offset:2px} @media (prefers-reduced-motion:reduce){.post_cqb_progress,.post_faq_question,.post_cqb_copybtn{transition:none!important}} @media (prefers-color-scheme:dark){ .post_cqb_tldr{background:#132116;border-color:#1f4a2c} .post_cqb_step{background:#171717;border-color:#2a2a2a} .post_cqb_step h3{color:#eee} .post_faq_question{background:#1c1c1c;color:#eee} .post_faq_answer{background:#111;color:#ccc} .post_cqb_cta{background:#132116} } @media (max-width:768px){ .post_cqb_terminal,.post_cqb_codeblock{font-size:.76em;padding:14px} .post_cqb_step{padding:14px} } ⏱️ Leitura: ~10 min TL;DR Testamos o comando winget install --id= pra instalar o WhatsApp Beta direto da Microsoft Store, sem abrir navegador nem loja. O Winget aceita busca por nome (winget search) e instalação exata por ID — evitando instalar o app errado quando há vários resultados parecidos. Não é preciso estar no Windows Insider: apps com "Beta" no nome são instalados normalmente em qualquer Windows estável. Nota Técnica: Comandos e scripts fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido. A maioria ainda procura o instalador no navegador — e ignora um comando nativo do Windows. Rodamos esse comando ao vivo pra trazer um app "Beta" da Microsoft Store direto pro PowerShell, sem abrir loja nem site nenhum. O log logo abaixo é exatamente o que apareceu no nosso terminal, sem cortes — inclusive o prompt de aceite de termos que trava quem não sabe o que responder. Até o fim deste post você vai saber instalar (ou desinstalar) qualquer programa com uma linha só, e por que digitar só o nome do app — em vez do ID exato — pode instalar a versão errada sem você nem perceber. O que é o Winget e por que ele substitui a busca manual por instaladores? Resposta rápida: Winget é o gerenciador de pacotes nativo do Windows 10 e 11, usado via PowerShell ou Prompt de Comando. Ele baixa e instala programas direto de dois repositórios oficiais — o catálogo comunitário winget-pkgs e a própria Microsoft Store — sem exigir navegador, pesquisa no Google ou clique em botão de download de terceiros. O Winget vem embutido no componente App Installer, que já é instalado por padrão no Windows 11 e chega via atualização automática da Microsoft Store no Windows 10 (build 1809 em diante). Ele funciona como um "apt" ou "brew" para Windows: você digita o nome ou o ID do programa, e ele resolve sozinho de onde baixar, valida o instalador com hash e executa a instalação silenciosamente sempre que possível. Existem duas fontes principais configuradas por padrão: a fonte winget, mantida pela comunidade no repositório winget-pkgs no GitHub (com IDs no formato Fabricante.Programa, como Adobe.Acrobat.Pro), e a fonte msstore, que é o catálogo oficial da Microsoft Store (com IDs alfanuméricos como 9NBDXK71NK08). Isso explica por que às vezes o ID de um app parece um nome legível e às vezes parece um código aleatório — depende de qual das duas fontes forneceu o pacote, exatamente como aparece na linha "This package is provided through Microsoft Store" do nosso print. Aqui no @CanalQb, validamos que mesmo em máquinas com Windows 10 desatualizado, um winget upgrade --id Microsoft.AppInstaller --source msstore resolve boa parte dos casos de "winget não é reconhecido" antes mesmo de tentar instalar qualquer outro programa. Se você usa PowerShell no dia a dia, vale a pena revisar também nossa lista de automações em PowerShell já publicadas aqui no canal. Como descobrir o ID exato de um programa antes de instalar? Resposta rápida: Use winget search &amp;lt;nome&amp;gt; antes de instalar qualquer coisa. Esse comando consulta as duas fontes configuradas e devolve uma tabela com Nome, Id, Versão e Origem — é ali que você confirma qual pacote é realmente o que você quer, antes de rodar o install. Passo 1 — Abra o PowerShell (ou o Terminal do Windows) Aperte Win, digite "PowerShell" ou "Terminal" e pressione Enter. Não precisa necessariamente ser como administrador para buscar ou instalar a maioria dos apps de usuário único — mas rodar como admin evita bloqueios em programas que instalam serviços do sistema. Esse passo existe porque o Winget é um comando de CLI (linha de comando): ele não tem ícone na área de trabalho nem atalho no menu Iniciar, então toda a interação acontece dentro do terminal, exatamente como no print acima. Resultado esperado: um prompt do tipo PS C:\WINDOWS\system32&amp;gt; piscando, pronto para receber comandos. Erro comum: "winget: O termo 'winget' não é reconhecido como nome de cmdlet". Isso acontece quando o App Installer está desatualizado ou ausente. Corrija abrindo a Microsoft Store, buscando "App Installer" e clicando em Atualizar — depois feche e reabra o terminal. Passo 2 — Rode o comando de busca winget search whatsapp Esse comando varre as fontes configuradas (winget-pkgs e Microsoft Store) atrás de qualquer pacote cujo nome ou moniker contenha "whatsapp", e devolve uma tabela com colunas Name, Id, Version, Match e Source. É esse passo que evita instalar a coisa errada. No nosso teste, a busca por "whatsapp" trouxe mais de um resultado — incluindo o WhatsApp normal e o WhatsApp Beta — e só olhando a tabela você sabe qual ID pertence a qual versão antes de comprometer a instalação. Resultado esperado: uma tabela de texto com uma ou mais linhas, cada uma trazendo um Id diferente na segunda coluna. Erro comum: "No package found matching input criteria". Geralmente é termo de busca curto demais ou fonte desatualizada — rode winget source update primeiro e tente de novo com um termo mais específico. Passo 3 — Copie o valor exato da coluna "Id" Selecione com o mouse exatamente o texto que aparece sob a coluna Id — não o Name. No caso do WhatsApp Beta do nosso print, o Id retornado foi 9NBDXK71NK08. Isso é necessário porque o parâmetro --id exige correspondência exata: qualquer caractere fora do lugar, ou copiar o Name em vez do Id, faz o Winget não encontrar nada — mesmo que o programa exista e apareça na busca. Resultado esperado: você tem uma string curta (tipo 9NBDXK71NK08 ou Adobe.Acrobat.Pro) copiada e pronta pra colar no próximo comando. Como instalar um programa direto pelo ID, sem risco de baixar o app errado? Resposta rápida: Rode winget install --id=&amp;lt;ID&amp;gt;, aceite o termo de licença do publisher digitando "Y" quando pedido, e aguarde a barra chegar a 100%. É exatamente esse fluxo que aparece completo no print: da busca até o "Successfully installed". Passo 1 — Rode o comando de instalação por ID winget install --id=9NBDXK71NK08 O Winget pega o ID informado, consulta qual fonte o hospeda (nesse caso, a Microsoft Store, como o próprio terminal avisa na linha "This package is provided through Microsoft Store"), resolve a versão mais recente e prepara o download do manifesto. Usar --id= em vez do nome puro garante que você instale exatamente esse pacote — nem uma versão mais antiga, nem um app homônimo de outro publisher. É a diferença entre "instalar um WhatsApp qualquer" e "instalar este WhatsApp específico que eu escolhi na busca". Resultado esperado: o terminal imprime "Found WhatsApp Beta [9NBDXK71NK08] Version Unknown" seguido de um bloco de informações do publisher — categoria, preço, classificação etária e links de termos. Erro comum: em scripts não interativos (agendador de tarefas, automações), o comando trava esperando resposta. Adicione --accept-package-agreements --accept-source-agreements ao final do comando pra pular o prompt manual nesses casos. Passo 2 — Aceite os termos do publisher Quando aparecer "The publisher requires that you view the above information and accept the agreements before installing. Do you agree to the terms? [Y] Yes [N] No:", digite Y e pressione Enter — exatamente como no print. Esse gate existe porque, mesmo instalando via linha de comando, o pacote continua sendo distribuído pela Microsoft Store — e a Store exige consentimento explícito aos termos de transação e ao aviso de apreensão (Seizure Warning) antes de liberar qualquer instalação, independente do canal usado. Resultado esperado: a linha "Starting package install..." aparece, seguida de uma barra de progresso percentual. Erro comum: digitar "N" por engano cancela a instalação sem aviso destacado — se isso acontecer, é só rodar o comando de novo do zero. Passo 3 — Confirme "Successfully installed" Acompanhe a barra até 100% e aguarde a mensagem final. No nosso teste, o WhatsApp Beta foi de 0% a "Successfully installed" em poucos segundos, numa conexão comum de banda larga residencial. Esse texto exato — "Successfully installed" — é a confirmação de que o Winget validou o hash do instalador, extraiu ou executou o pacote e registrou o programa no sistema. Sem essa linha, não há garantia de que o app está funcional. Resultado esperado: retorno ao prompt PS C:\WINDOWS\system32&amp;gt; normalmente, com o app já disponível no Menu Iniciar. Erro comum: "Installer hash does not match". Normalmente é download corrompido por instabilidade de rede ou antivírus interceptando o arquivo. Rode winget source update e tente novamente antes de considerar usar a flag --force. Como instalar um programa só pelo nome, sem precisar do ID completo? Resposta rápida: Use winget install &amp;lt;nome ou moniker&amp;gt; quando tiver certeza de que o nome é único no catálogo — como winget install Adobe.Acrobat.Pro. É mais rápido de digitar, mas menos seguro contra ambiguidade do que usar --id. Quando vale usar o nome direto winget install Adobe.Acrobat.Pro Esse formato funciona bem quando o nome ou moniker já é praticamente exclusivo no catálogo — o próprio Winget resolve internamente qual Id corresponde e segue direto para o download, sem exigir que você rode uma busca antes. O ganho aqui é velocidade: você economiza o passo de winget search quando já confia que o nome não vai colidir com outro programa parecido. Foi exatamente esse comando reduzido — winget install whatsapp, sem --id — que resolveu sozinho para "WhatsApp Beta" no nosso print, porque era o único resultado com correspondência forte de nome naquele momento. Resultado esperado: o mesmo fluxo de "Found... / Aceite os termos / Successfully installed", só que sem a etapa manual de busca antes. Erro comum: "Multiple packages found matching input criteria. Please refine the input parameter." Quando isso aparecer, volte para winget search &amp;lt;nome&amp;gt;, escolha o Id certo na tabela e refaça a instalação usando --id=. Preciso estar no Windows Insider para instalar apps "Beta" como o WhatsApp Beta? Resposta rápida: Não. "Beta" aqui é o canal de lançamento do aplicativo dentro da Microsoft Store, não uma versão de desenvolvedor do Windows. Você instala esses apps normalmente em qualquer Windows 10 ou 11 estável, sem entrar em nenhum programa Insider. Vale desfazer essa confusão porque ela é comum: existe o Windows Insider Program, que entrega builds de pré-lançamento do próprio sistema operacional (canais Dev, Beta e Release Preview), e existem apps individuais que a Microsoft Store cataloga com "Beta" no nome — como o WhatsApp Beta, que é só uma variante do WhatsApp com recursos em teste, publicada normalmente na Store pública. São duas coisas completamente diferentes. Na prática, isso significa que você não precisa arriscar a estabilidade do seu Windows entrando em canais de pré-lançamento só para acessar um app rotulado como "Beta" — o Winget, puxando direto da Microsoft Store, entrega esse mesmo pacote Beta em qualquer instalação estável, exatamente como mostrou nosso print. Se seu interesse é justamente testar recursos novos de apps antes do público geral, dê uma olhada também no nosso conteúdo sobre ferramentas para Windows aqui no blog. Como buscar todos os programas de um fabricante inteiro, como a Microsoft? Resposta rápida: Rode winget search Microsoft pra listar centenas de pacotes publicados com "Microsoft" no nome ou no publisher. Como a lista costuma ser grande, filtre o resultado direto no PowerShell antes de decidir o que instalar. Filtrando uma busca grande winget search Microsoft # retorna dezenas de linhas — filtre assim: winget search Microsoft | Select-String "Office" O primeiro comando lista tudo que a fonte configurada associa a "Microsoft" — de editores de texto a runtimes internos do sistema. Isso sobrecarrega visualmente o terminal quando você só quer um pacote específico. O segundo comando usa o cmdlet nativo Select-String do PowerShell (equivalente ao grep do Linux) pra filtrar apenas as linhas que contêm "Office", reduzindo dezenas de resultados a poucos relevantes. Resultado esperado: uma lista bem menor, só com os pacotes cujo nome bate com o termo filtrado. Quais são os erros mais comuns do Winget e como resolver rápido? Resposta rápida: A maioria dos travamentos cai em quatro casos: comando não reconhecido, fonte desatualizada, nome ambíguo e hash de instalador incompatível. Todos têm correção em uma linha, sem precisar reinstalar o Windows nem o App Installer do zero. "winget não é reconhecido": atualize o App Installer pela Microsoft Store e reabra o terminal. "No package found": rode winget source update e refaça a busca com termo mais específico. "Multiple packages found": use winget search primeiro e instale sempre pelo --id= exato. "Installer hash does not match": atualize a fonte e tente de novo antes de usar --force. Instalação trava sem terminar: rode como administrador ou adicione --accept-package-agreements --accept-source-agreements. Perguntas Frequentes sobre o Winget O Winget funciona em qualquer versão do Windows? Funciona nativamente no Windows 11 e no Windows 10 a partir da build 1809, desde que o componente App Installer esteja atualizado pela Microsoft Store. Em instalações corporativas com Store bloqueada por política de grupo, o Winget pode não estar disponível — nesse caso, o administrador de TI precisa liberar manualmente o pacote MSIX do App Installer via Intune ou instalação offline. Em versões anteriores ao Windows 10 1809, o Winget simplesmente não existe e não há forma suportada de instalá-lo, restando apenas alternativas como Chocolatey ou Scoop para o mesmo objetivo de instalação via linha de comando. Preciso ser administrador para usar o winget install? Depende do escopo da instalação. A maioria dos apps da Microsoft Store e programas de usuário único instala normalmente sem privilégios elevados, no escopo do próprio usuário. Já pacotes que instalam serviços do Windows, drivers ou dependências de sistema (como certas ferramentas de desenvolvimento) exigem PowerShell aberto como administrador — e o próprio Winget geralmente avisa quando detecta essa necessidade, recusando a instalação com uma mensagem de permissão insuficiente em vez de falhar silenciosamente. O Winget é seguro? Ele pode instalar vírus ou adware? O Winget em si não é a origem do risco — ele valida o hash de cada instalador contra o manifesto declarado antes de executar, o que já bloqueia arquivos adulterados no meio do caminho. O risco real está em confiar cegamente em qualquer resultado de winget search: como o catálogo comunitário winget-pkgs aceita submissões de terceiros, sempre vale conferir o campo Publisher na tabela de busca antes de instalar algo que você não reconhece, exatamente como faria antes de baixar um instalador manualmente de um site desconhecido. Qual a diferença entre instalar por --id e instalar pelo nome? Instalar por --id garante correspondência exata com um único pacote específico do catálogo, eliminando qualquer ambiguidade entre programas com nomes parecidos. Instalar só pelo nome é mais rápido de digitar, mas deixa o Winget decidir sozinho qual pacote é "o mais próximo" quando existe mais de um resultado — o que pode instalar uma versão, edição ou publisher diferente do que você pretendia. Para automação de scripts ou ambientes corporativos, o uso de --id é considerado a prática recomendada justamente por essa previsibilidade. Dá para desinstalar programas pelo Winget também? Sim, o Winget espelha o comando de instalação para remoção: winget uninstall --id=&amp;lt;ID&amp;gt; remove o pacote pelo mesmo identificador exato usado na instalação, e winget list mostra todos os programas instalados no sistema com seus respectivos Ids, incluindo apps que não vieram originalmente pelo próprio Winget. Isso torna possível limpar uma máquina inteira de programas indesejados sem abrir o painel de Configurações do Windows, usando apenas uma sequência de comandos no PowerShell. &#128218; Fontes e Referências Documentação oficial do Winget — Microsoft Learn Repositório oficial do Winget CLI — GitHub Mais ferramentas para Windows no @CanalQb Nota Jurídica: Este conteúdo pode estar sujeito a diferentes leis de privacidade dependendo da sua jurisdição. Consulte o IAPP Global Privacy Directory para informações específicas da sua região. { "@context":"https://schema.org", "@type":"BlogPosting", "headline":"Winget: Instale Qualquer Programa no Windows com 1 Comando", "description":"Descubra como o Winget instala qualquer programa direto pelo PowerShell, sem navegador e sem risco de baixar o app errado. Testamos com o WhatsApp Beta.", "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"}, "publisher":{ "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br", "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"} }, "datePublished":"2026-09-16","dateModified":"2026-09-16", "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/winget-instale-programas-windows.html", "copyrightHolder":{"@type":"Person","name":"@CanalQb"}, "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/", "inLanguage":"pt-BR" } { "@context":"https://schema.org", "@type":"FAQPage", "mainEntity":[ {"@type":"Question","name":"O Winget funciona em qualquer versão do Windows?","acceptedAnswer":{"@type":"Answer","text":"Funciona nativamente no Windows 11 e no Windows 10 a partir da build 1809, desde que o App Installer esteja atualizado pela Microsoft Store. Versões anteriores não têm suporte oficial."}}, {"@type":"Question","name":"Preciso ser administrador para usar o winget install?","acceptedAnswer":{"@type":"Answer","text":"Depende do pacote: apps de usuário único instalam sem privilégios elevados, enquanto pacotes que instalam serviços de sistema exigem PowerShell como administrador."}}, {"@type":"Question","name":"O Winget é seguro? Ele pode instalar vírus ou adware?","acceptedAnswer":{"@type":"Answer","text":"O Winget valida o hash de cada instalador antes de executar, mas o catálogo comunitário aceita submissões de terceiros — sempre confira o Publisher antes de instalar algo desconhecido."}}, {"@type":"Question","name":"Qual a diferença entre instalar por --id e instalar pelo nome?","acceptedAnswer":{"@type":"Answer","text":"--id garante correspondência exata com um único pacote; instalar pelo nome é mais rápido, mas pode ser ambíguo quando há vários resultados parecidos."}}, {"@type":"Question","name":"Dá para desinstalar programas pelo Winget também?","acceptedAnswer":{"@type":"Answer","text":"Sim, com winget uninstall --id=, usando o mesmo identificador exato usado na instalação."}} ] } { "@context":"https://schema.org", "@type":"HowTo", "name":"Como instalar um programa no Windows usando o Winget", "step":[ {"@type":"HowToStep","name":"Abrir o PowerShell","text":"Abra o PowerShell ou Terminal do Windows pesquisando pelo menu Iniciar."}, {"@type":"HowToStep","name":"Buscar o programa","text":"Rode winget search para localizar o Id exato do programa desejado."}, {"@type":"HowToStep","name":"Instalar pelo Id","text":"Rode winget install --id= para instalar exatamente o pacote encontrado na busca."}, {"@type":"HowToStep","name":"Aceitar os termos","text":"Digite Y quando solicitado para aceitar os termos do publisher e iniciar o download."}, {"@type":"HowToStep","name":"Confirmar a instalação","text":"Aguarde a mensagem Successfully installed para confirmar que o programa foi instalado com sucesso."} ] } Gostou de automatizar a instalação sem tocar no navegador? Tem mais dica assim no canal. Inscreva-se no @CanalQb (function(){ 'use strict'; var bar=document.createElement('div'); bar.className='post_cqb_progress'; document.body.appendChild(bar); function onScroll(){ var h=document.documentElement; var scrolled=(h.scrollTop)/((h.scrollHeight)-h.clientHeight)*100; bar.style.width=(scrolled||0)+'%'; } window.addEventListener('scroll',onScroll,{passive:true}); function showToast(msg){ var t=document.createElement('div'); t.textContent=msg; t.style.cssText='position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#28a745;color:#fff;padding:10px 18px;border-radius:20px;font-size:.85em;z-index:9999;opacity:0;transition:opacity .3s'; document.body.appendChild(t); requestAnimationFrame(function(){t.style.opacity='1';}); setTimeout(function(){t.style.opacity='0';setTimeout(function(){t.remove();},300);},1800); } document.querySelectorAll('.post_cqb_codeblock,.post_cqb_terminal').forEach(function(block){ var btn=document.createElement('button'); btn.className='post_cqb_copybtn'; btn.innerHTML=' Copiar'; btn.setAttribute('aria-label','Copiar comando'); btn.addEventListener('click',function(){ var code=block.querySelector('code')||block; var text=code.textContent.trim(); if(navigator.clipboard){ navigator.clipboard.writeText(text).then(function(){showToast('Comando copiado!');}); } }); block.style.position='relative'; block.appendChild(btn); }); })(); sssssssssssss ▶ @CanalQb no YouTube</itunes:subtitle><itunes:author>noreply@blogger.com (CanalQb)</itunes:author><itunes:summary>@CanalQb no YouTube Winget: Instale Qualquer Programa no Windows com 1 Comando /* @CanalQb - Exclusive Design License 2026 */ .post_cqb_progress{position:fixed;top:0;left:0;height:4px;background:#28a745;width:0%;transition:width .1s;z-index:9999} .post_cqb_readtime{display:block;width:fit-content;background:rgba(40,167,69,.12);color:#28a745;font-weight:600;font-size:.85em;padding:6px 14px;border-radius:20px;margin:10px auto 20px} .post_cqb_tldr{background:#f4faf5;border:1px solid #cfe8d5;border-left:5px solid #28a745;border-radius:10px;padding:18px 20px;margin:20px 0} .post_cqb_tldr h2{margin-top:0;color:#28a745;font-size:1.05em;display:flex;align-items:center;gap:8px} .post_cqb_tldr ul{margin:8px 0 0;padding-left:20px;color:#333} .post_cqb_tldr li{margin:6px 0;line-height:1.5} .post_cqb_intro{font-size:1.05em;line-height:1.7;color:#333} .post_cqb_hook{font-weight:700;font-size:1.15em;color:#222;margin-bottom:6px} .post_cqb_terminal{background:#000!important;color:#4af626!important;padding:20px;border-radius:12px;border:2px solid #333;font-family:'Roboto Mono',monospace!important;overflow-x:auto;font-size:.82em;line-height:1.55;position:relative;margin:16px 0} .post_cqb_terminal *,.post_cqb_terminal span{color:#4af626!important;background:transparent!important;text-shadow:none!important} .post_cqb_terminal .comment{color:#888!important} .post_cqb_codeblock,.post_cqb_codeblock *{background:#1a1a1a!important;color:#f8f8f2!important;font-family:'Roboto Mono',monospace!important;text-shadow:none!important} .post_cqb_codeblock{padding:16px 20px;border-radius:8px;border-left:5px solid #ffc107;margin:16px 0;overflow-x:auto;position:relative} .post_cqb_copybtn{position:absolute;top:8px;right:8px;background:#333;color:#fff;border:none;padding:5px 10px;border-radius:6px;font-size:.72em;cursor:pointer;display:flex;align-items:center;gap:5px} .post_cqb_copybtn:hover{background:#555} .post_cqb_step{border:1px solid #e6e6e6;border-radius:10px;padding:16px 18px;margin:18px 0;background:#fff} .post_cqb_step h3{margin-top:0;color:#333;font-size:1.05em;display:flex;gap:8px;align-items:center} .post_cqb_step h3 i{color:#28a745} .post_cqb_result{background:rgba(33,150,243,.08);border-left:3px solid #2196f3;padding:10px 14px;border-radius:6px;margin:10px 0;font-size:.92em;color:#333} .post_cqb_error{background:rgba(211,47,47,.07);border-left:3px solid #d32f2f;padding:10px 14px;border-radius:6px;margin:10px 0;font-size:.92em;color:#333} .post_checklist{list-style:none;padding:0;margin:10px 0} .post_checklist li{display:flex;align-items:flex-start;gap:8px;padding:5px 0;font-size:.9em;color:#555;line-height:1.5} .post_checklist li i{flex-shrink:0;margin-top:3px} .post_faq_container{margin:30px 0} .post_faq_item{margin:10px 0;border:1px solid #e0e0e0;border-radius:8px;overflow:hidden} .post_faq_question{padding:15px;background:#f9f9f9;cursor:pointer;display:flex;align-items:center;gap:10px;font-weight:600;color:#333;transition:background .2s} .post_faq_question:hover{background:#f0f0f0} .post_faq_answer{padding:15px;background:#fff;color:#555;line-height:1.6} .post_faq_item[open] .post_faq_question{background:#e8f5e9;color:#28a745} .post_cqb_footer_refs{font-size:.9em;color:#555;border-top:1px solid #eee;padding-top:16px;margin-top:30px} .post_cqb_footer_refs a{color:#2196f3} .post_cqb_cta{text-align:center;background:#f4faf5;border-radius:12px;padding:24px;margin:26px 0} .post_cqb_cta a{display:inline-block;background:#28a745;color:#fff!important;padding:12px 26px;border-radius:30px;text-decoration:none;font-weight:700;margin-top:10px} a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #2196f3;outline-offset:2px} @media (prefers-reduced-motion:reduce){.post_cqb_progress,.post_faq_question,.post_cqb_copybtn{transition:none!important}} @media (prefers-color-scheme:dark){ .post_cqb_tldr{background:#132116;border-color:#1f4a2c} .post_cqb_step{background:#171717;border-color:#2a2a2a} .post_cqb_step h3{color:#eee} .post_faq_question{background:#1c1c1c;color:#eee} .post_faq_answer{background:#111;color:#ccc} .post_cqb_cta{background:#132116} } @media (max-width:768px){ .post_cqb_terminal,.post_cqb_codeblock{font-size:.76em;padding:14px} .post_cqb_step{padding:14px} } ⏱️ Leitura: ~10 min TL;DR Testamos o comando winget install --id= pra instalar o WhatsApp Beta direto da Microsoft Store, sem abrir navegador nem loja. O Winget aceita busca por nome (winget search) e instalação exata por ID — evitando instalar o app errado quando há vários resultados parecidos. Não é preciso estar no Windows Insider: apps com "Beta" no nome são instalados normalmente em qualquer Windows estável. Nota Técnica: Comandos e scripts fornecidos têm fins exclusivamente educacionais. Teste sempre em ambiente controlado. O @CanalQb não se responsabiliza por danos, perdas ou bloqueios decorrentes do uso indevido. A maioria ainda procura o instalador no navegador — e ignora um comando nativo do Windows. Rodamos esse comando ao vivo pra trazer um app "Beta" da Microsoft Store direto pro PowerShell, sem abrir loja nem site nenhum. O log logo abaixo é exatamente o que apareceu no nosso terminal, sem cortes — inclusive o prompt de aceite de termos que trava quem não sabe o que responder. Até o fim deste post você vai saber instalar (ou desinstalar) qualquer programa com uma linha só, e por que digitar só o nome do app — em vez do ID exato — pode instalar a versão errada sem você nem perceber. O que é o Winget e por que ele substitui a busca manual por instaladores? Resposta rápida: Winget é o gerenciador de pacotes nativo do Windows 10 e 11, usado via PowerShell ou Prompt de Comando. Ele baixa e instala programas direto de dois repositórios oficiais — o catálogo comunitário winget-pkgs e a própria Microsoft Store — sem exigir navegador, pesquisa no Google ou clique em botão de download de terceiros. O Winget vem embutido no componente App Installer, que já é instalado por padrão no Windows 11 e chega via atualização automática da Microsoft Store no Windows 10 (build 1809 em diante). Ele funciona como um "apt" ou "brew" para Windows: você digita o nome ou o ID do programa, e ele resolve sozinho de onde baixar, valida o instalador com hash e executa a instalação silenciosamente sempre que possível. Existem duas fontes principais configuradas por padrão: a fonte winget, mantida pela comunidade no repositório winget-pkgs no GitHub (com IDs no formato Fabricante.Programa, como Adobe.Acrobat.Pro), e a fonte msstore, que é o catálogo oficial da Microsoft Store (com IDs alfanuméricos como 9NBDXK71NK08). Isso explica por que às vezes o ID de um app parece um nome legível e às vezes parece um código aleatório — depende de qual das duas fontes forneceu o pacote, exatamente como aparece na linha "This package is provided through Microsoft Store" do nosso print. Aqui no @CanalQb, validamos que mesmo em máquinas com Windows 10 desatualizado, um winget upgrade --id Microsoft.AppInstaller --source msstore resolve boa parte dos casos de "winget não é reconhecido" antes mesmo de tentar instalar qualquer outro programa. Se você usa PowerShell no dia a dia, vale a pena revisar também nossa lista de automações em PowerShell já publicadas aqui no canal. Como descobrir o ID exato de um programa antes de instalar? Resposta rápida: Use winget search &amp;lt;nome&amp;gt; antes de instalar qualquer coisa. Esse comando consulta as duas fontes configuradas e devolve uma tabela com Nome, Id, Versão e Origem — é ali que você confirma qual pacote é realmente o que você quer, antes de rodar o install. Passo 1 — Abra o PowerShell (ou o Terminal do Windows) Aperte Win, digite "PowerShell" ou "Terminal" e pressione Enter. Não precisa necessariamente ser como administrador para buscar ou instalar a maioria dos apps de usuário único — mas rodar como admin evita bloqueios em programas que instalam serviços do sistema. Esse passo existe porque o Winget é um comando de CLI (linha de comando): ele não tem ícone na área de trabalho nem atalho no menu Iniciar, então toda a interação acontece dentro do terminal, exatamente como no print acima. Resultado esperado: um prompt do tipo PS C:\WINDOWS\system32&amp;gt; piscando, pronto para receber comandos. Erro comum: "winget: O termo 'winget' não é reconhecido como nome de cmdlet". Isso acontece quando o App Installer está desatualizado ou ausente. Corrija abrindo a Microsoft Store, buscando "App Installer" e clicando em Atualizar — depois feche e reabra o terminal. Passo 2 — Rode o comando de busca winget search whatsapp Esse comando varre as fontes configuradas (winget-pkgs e Microsoft Store) atrás de qualquer pacote cujo nome ou moniker contenha "whatsapp", e devolve uma tabela com colunas Name, Id, Version, Match e Source. É esse passo que evita instalar a coisa errada. No nosso teste, a busca por "whatsapp" trouxe mais de um resultado — incluindo o WhatsApp normal e o WhatsApp Beta — e só olhando a tabela você sabe qual ID pertence a qual versão antes de comprometer a instalação. Resultado esperado: uma tabela de texto com uma ou mais linhas, cada uma trazendo um Id diferente na segunda coluna. Erro comum: "No package found matching input criteria". Geralmente é termo de busca curto demais ou fonte desatualizada — rode winget source update primeiro e tente de novo com um termo mais específico. Passo 3 — Copie o valor exato da coluna "Id" Selecione com o mouse exatamente o texto que aparece sob a coluna Id — não o Name. No caso do WhatsApp Beta do nosso print, o Id retornado foi 9NBDXK71NK08. Isso é necessário porque o parâmetro --id exige correspondência exata: qualquer caractere fora do lugar, ou copiar o Name em vez do Id, faz o Winget não encontrar nada — mesmo que o programa exista e apareça na busca. Resultado esperado: você tem uma string curta (tipo 9NBDXK71NK08 ou Adobe.Acrobat.Pro) copiada e pronta pra colar no próximo comando. Como instalar um programa direto pelo ID, sem risco de baixar o app errado? Resposta rápida: Rode winget install --id=&amp;lt;ID&amp;gt;, aceite o termo de licença do publisher digitando "Y" quando pedido, e aguarde a barra chegar a 100%. É exatamente esse fluxo que aparece completo no print: da busca até o "Successfully installed". Passo 1 — Rode o comando de instalação por ID winget install --id=9NBDXK71NK08 O Winget pega o ID informado, consulta qual fonte o hospeda (nesse caso, a Microsoft Store, como o próprio terminal avisa na linha "This package is provided through Microsoft Store"), resolve a versão mais recente e prepara o download do manifesto. Usar --id= em vez do nome puro garante que você instale exatamente esse pacote — nem uma versão mais antiga, nem um app homônimo de outro publisher. É a diferença entre "instalar um WhatsApp qualquer" e "instalar este WhatsApp específico que eu escolhi na busca". Resultado esperado: o terminal imprime "Found WhatsApp Beta [9NBDXK71NK08] Version Unknown" seguido de um bloco de informações do publisher — categoria, preço, classificação etária e links de termos. Erro comum: em scripts não interativos (agendador de tarefas, automações), o comando trava esperando resposta. Adicione --accept-package-agreements --accept-source-agreements ao final do comando pra pular o prompt manual nesses casos. Passo 2 — Aceite os termos do publisher Quando aparecer "The publisher requires that you view the above information and accept the agreements before installing. Do you agree to the terms? [Y] Yes [N] No:", digite Y e pressione Enter — exatamente como no print. Esse gate existe porque, mesmo instalando via linha de comando, o pacote continua sendo distribuído pela Microsoft Store — e a Store exige consentimento explícito aos termos de transação e ao aviso de apreensão (Seizure Warning) antes de liberar qualquer instalação, independente do canal usado. Resultado esperado: a linha "Starting package install..." aparece, seguida de uma barra de progresso percentual. Erro comum: digitar "N" por engano cancela a instalação sem aviso destacado — se isso acontecer, é só rodar o comando de novo do zero. Passo 3 — Confirme "Successfully installed" Acompanhe a barra até 100% e aguarde a mensagem final. No nosso teste, o WhatsApp Beta foi de 0% a "Successfully installed" em poucos segundos, numa conexão comum de banda larga residencial. Esse texto exato — "Successfully installed" — é a confirmação de que o Winget validou o hash do instalador, extraiu ou executou o pacote e registrou o programa no sistema. Sem essa linha, não há garantia de que o app está funcional. Resultado esperado: retorno ao prompt PS C:\WINDOWS\system32&amp;gt; normalmente, com o app já disponível no Menu Iniciar. Erro comum: "Installer hash does not match". Normalmente é download corrompido por instabilidade de rede ou antivírus interceptando o arquivo. Rode winget source update e tente novamente antes de considerar usar a flag --force. Como instalar um programa só pelo nome, sem precisar do ID completo? Resposta rápida: Use winget install &amp;lt;nome ou moniker&amp;gt; quando tiver certeza de que o nome é único no catálogo — como winget install Adobe.Acrobat.Pro. É mais rápido de digitar, mas menos seguro contra ambiguidade do que usar --id. Quando vale usar o nome direto winget install Adobe.Acrobat.Pro Esse formato funciona bem quando o nome ou moniker já é praticamente exclusivo no catálogo — o próprio Winget resolve internamente qual Id corresponde e segue direto para o download, sem exigir que você rode uma busca antes. O ganho aqui é velocidade: você economiza o passo de winget search quando já confia que o nome não vai colidir com outro programa parecido. Foi exatamente esse comando reduzido — winget install whatsapp, sem --id — que resolveu sozinho para "WhatsApp Beta" no nosso print, porque era o único resultado com correspondência forte de nome naquele momento. Resultado esperado: o mesmo fluxo de "Found... / Aceite os termos / Successfully installed", só que sem a etapa manual de busca antes. Erro comum: "Multiple packages found matching input criteria. Please refine the input parameter." Quando isso aparecer, volte para winget search &amp;lt;nome&amp;gt;, escolha o Id certo na tabela e refaça a instalação usando --id=. Preciso estar no Windows Insider para instalar apps "Beta" como o WhatsApp Beta? Resposta rápida: Não. "Beta" aqui é o canal de lançamento do aplicativo dentro da Microsoft Store, não uma versão de desenvolvedor do Windows. Você instala esses apps normalmente em qualquer Windows 10 ou 11 estável, sem entrar em nenhum programa Insider. Vale desfazer essa confusão porque ela é comum: existe o Windows Insider Program, que entrega builds de pré-lançamento do próprio sistema operacional (canais Dev, Beta e Release Preview), e existem apps individuais que a Microsoft Store cataloga com "Beta" no nome — como o WhatsApp Beta, que é só uma variante do WhatsApp com recursos em teste, publicada normalmente na Store pública. São duas coisas completamente diferentes. Na prática, isso significa que você não precisa arriscar a estabilidade do seu Windows entrando em canais de pré-lançamento só para acessar um app rotulado como "Beta" — o Winget, puxando direto da Microsoft Store, entrega esse mesmo pacote Beta em qualquer instalação estável, exatamente como mostrou nosso print. Se seu interesse é justamente testar recursos novos de apps antes do público geral, dê uma olhada também no nosso conteúdo sobre ferramentas para Windows aqui no blog. Como buscar todos os programas de um fabricante inteiro, como a Microsoft? Resposta rápida: Rode winget search Microsoft pra listar centenas de pacotes publicados com "Microsoft" no nome ou no publisher. Como a lista costuma ser grande, filtre o resultado direto no PowerShell antes de decidir o que instalar. Filtrando uma busca grande winget search Microsoft # retorna dezenas de linhas — filtre assim: winget search Microsoft | Select-String "Office" O primeiro comando lista tudo que a fonte configurada associa a "Microsoft" — de editores de texto a runtimes internos do sistema. Isso sobrecarrega visualmente o terminal quando você só quer um pacote específico. O segundo comando usa o cmdlet nativo Select-String do PowerShell (equivalente ao grep do Linux) pra filtrar apenas as linhas que contêm "Office", reduzindo dezenas de resultados a poucos relevantes. Resultado esperado: uma lista bem menor, só com os pacotes cujo nome bate com o termo filtrado. Quais são os erros mais comuns do Winget e como resolver rápido? Resposta rápida: A maioria dos travamentos cai em quatro casos: comando não reconhecido, fonte desatualizada, nome ambíguo e hash de instalador incompatível. Todos têm correção em uma linha, sem precisar reinstalar o Windows nem o App Installer do zero. "winget não é reconhecido": atualize o App Installer pela Microsoft Store e reabra o terminal. "No package found": rode winget source update e refaça a busca com termo mais específico. "Multiple packages found": use winget search primeiro e instale sempre pelo --id= exato. "Installer hash does not match": atualize a fonte e tente de novo antes de usar --force. Instalação trava sem terminar: rode como administrador ou adicione --accept-package-agreements --accept-source-agreements. Perguntas Frequentes sobre o Winget O Winget funciona em qualquer versão do Windows? Funciona nativamente no Windows 11 e no Windows 10 a partir da build 1809, desde que o componente App Installer esteja atualizado pela Microsoft Store. Em instalações corporativas com Store bloqueada por política de grupo, o Winget pode não estar disponível — nesse caso, o administrador de TI precisa liberar manualmente o pacote MSIX do App Installer via Intune ou instalação offline. Em versões anteriores ao Windows 10 1809, o Winget simplesmente não existe e não há forma suportada de instalá-lo, restando apenas alternativas como Chocolatey ou Scoop para o mesmo objetivo de instalação via linha de comando. Preciso ser administrador para usar o winget install? Depende do escopo da instalação. A maioria dos apps da Microsoft Store e programas de usuário único instala normalmente sem privilégios elevados, no escopo do próprio usuário. Já pacotes que instalam serviços do Windows, drivers ou dependências de sistema (como certas ferramentas de desenvolvimento) exigem PowerShell aberto como administrador — e o próprio Winget geralmente avisa quando detecta essa necessidade, recusando a instalação com uma mensagem de permissão insuficiente em vez de falhar silenciosamente. O Winget é seguro? Ele pode instalar vírus ou adware? O Winget em si não é a origem do risco — ele valida o hash de cada instalador contra o manifesto declarado antes de executar, o que já bloqueia arquivos adulterados no meio do caminho. O risco real está em confiar cegamente em qualquer resultado de winget search: como o catálogo comunitário winget-pkgs aceita submissões de terceiros, sempre vale conferir o campo Publisher na tabela de busca antes de instalar algo que você não reconhece, exatamente como faria antes de baixar um instalador manualmente de um site desconhecido. Qual a diferença entre instalar por --id e instalar pelo nome? Instalar por --id garante correspondência exata com um único pacote específico do catálogo, eliminando qualquer ambiguidade entre programas com nomes parecidos. Instalar só pelo nome é mais rápido de digitar, mas deixa o Winget decidir sozinho qual pacote é "o mais próximo" quando existe mais de um resultado — o que pode instalar uma versão, edição ou publisher diferente do que você pretendia. Para automação de scripts ou ambientes corporativos, o uso de --id é considerado a prática recomendada justamente por essa previsibilidade. Dá para desinstalar programas pelo Winget também? Sim, o Winget espelha o comando de instalação para remoção: winget uninstall --id=&amp;lt;ID&amp;gt; remove o pacote pelo mesmo identificador exato usado na instalação, e winget list mostra todos os programas instalados no sistema com seus respectivos Ids, incluindo apps que não vieram originalmente pelo próprio Winget. Isso torna possível limpar uma máquina inteira de programas indesejados sem abrir o painel de Configurações do Windows, usando apenas uma sequência de comandos no PowerShell. &#128218; Fontes e Referências Documentação oficial do Winget — Microsoft Learn Repositório oficial do Winget CLI — GitHub Mais ferramentas para Windows no @CanalQb Nota Jurídica: Este conteúdo pode estar sujeito a diferentes leis de privacidade dependendo da sua jurisdição. Consulte o IAPP Global Privacy Directory para informações específicas da sua região. { "@context":"https://schema.org", "@type":"BlogPosting", "headline":"Winget: Instale Qualquer Programa no Windows com 1 Comando", "description":"Descubra como o Winget instala qualquer programa direto pelo PowerShell, sem navegador e sem risco de baixar o app errado. Testamos com o WhatsApp Beta.", "author":{"@type":"Person","name":"@CanalQb","url":"https://canalqb.com.br"}, "publisher":{ "@type":"Organization","name":"@CanalQb","url":"https://canalqb.com.br", "logo":{"@type":"ImageObject","url":"https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAppgdjbwBxn27tGUch6DJBXRrlOAwk1V0ZTtHvEvlt0HoVsARJSfJDizdDRlmkLwKSxSRzbknK5L3jVKs364oRzgozNeD0Vv2aky1vk2QzrJh-O_sgDQEUXJxw5XHtmFNsmI5iv_ITOJcDfW7k6XtoTE9RgJiKZDW6ZTK41oAjDh7smDJMTC9E1h4YOfm/s2560/CanalQb.png"} }, "datePublished":"2026-09-16","dateModified":"2026-09-16", "mainEntityOfPage":"https://www.canalqb.com.br/2026/09/winget-instale-programas-windows.html", "copyrightHolder":{"@type":"Person","name":"@CanalQb"}, "license":"https://creativecommons.org/licenses/by-nc-nd/4.0/", "inLanguage":"pt-BR" } { "@context":"https://schema.org", "@type":"FAQPage", "mainEntity":[ {"@type":"Question","name":"O Winget funciona em qualquer versão do Windows?","acceptedAnswer":{"@type":"Answer","text":"Funciona nativamente no Windows 11 e no Windows 10 a partir da build 1809, desde que o App Installer esteja atualizado pela Microsoft Store. Versões anteriores não têm suporte oficial."}}, {"@type":"Question","name":"Preciso ser administrador para usar o winget install?","acceptedAnswer":{"@type":"Answer","text":"Depende do pacote: apps de usuário único instalam sem privilégios elevados, enquanto pacotes que instalam serviços de sistema exigem PowerShell como administrador."}}, {"@type":"Question","name":"O Winget é seguro? Ele pode instalar vírus ou adware?","acceptedAnswer":{"@type":"Answer","text":"O Winget valida o hash de cada instalador antes de executar, mas o catálogo comunitário aceita submissões de terceiros — sempre confira o Publisher antes de instalar algo desconhecido."}}, {"@type":"Question","name":"Qual a diferença entre instalar por --id e instalar pelo nome?","acceptedAnswer":{"@type":"Answer","text":"--id garante correspondência exata com um único pacote; instalar pelo nome é mais rápido, mas pode ser ambíguo quando há vários resultados parecidos."}}, {"@type":"Question","name":"Dá para desinstalar programas pelo Winget também?","acceptedAnswer":{"@type":"Answer","text":"Sim, com winget uninstall --id=, usando o mesmo identificador exato usado na instalação."}} ] } { "@context":"https://schema.org", "@type":"HowTo", "name":"Como instalar um programa no Windows usando o Winget", "step":[ {"@type":"HowToStep","name":"Abrir o PowerShell","text":"Abra o PowerShell ou Terminal do Windows pesquisando pelo menu Iniciar."}, {"@type":"HowToStep","name":"Buscar o programa","text":"Rode winget search para localizar o Id exato do programa desejado."}, {"@type":"HowToStep","name":"Instalar pelo Id","text":"Rode winget install --id= para instalar exatamente o pacote encontrado na busca."}, {"@type":"HowToStep","name":"Aceitar os termos","text":"Digite Y quando solicitado para aceitar os termos do publisher e iniciar o download."}, {"@type":"HowToStep","name":"Confirmar a instalação","text":"Aguarde a mensagem Successfully installed para confirmar que o programa foi instalado com sucesso."} ] } Gostou de automatizar a instalação sem tocar no navegador? Tem mais dica assim no canal. Inscreva-se no @CanalQb (function(){ 'use strict'; var bar=document.createElement('div'); bar.className='post_cqb_progress'; document.body.appendChild(bar); function onScroll(){ var h=document.documentElement; var scrolled=(h.scrollTop)/((h.scrollHeight)-h.clientHeight)*100; bar.style.width=(scrolled||0)+'%'; } window.addEventListener('scroll',onScroll,{passive:true}); function showToast(msg){ var t=document.createElement('div'); t.textContent=msg; t.style.cssText='position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#28a745;color:#fff;padding:10px 18px;border-radius:20px;font-size:.85em;z-index:9999;opacity:0;transition:opacity .3s'; document.body.appendChild(t); requestAnimationFrame(function(){t.style.opacity='1';}); setTimeout(function(){t.style.opacity='0';setTimeout(function(){t.remove();},300);},1800); } document.querySelectorAll('.post_cqb_codeblock,.post_cqb_terminal').forEach(function(block){ var btn=document.createElement('button'); btn.className='post_cqb_copybtn'; btn.innerHTML=' Copiar'; btn.setAttribute('aria-label','Copiar comando'); btn.addEventListener('click',function(){ var code=block.querySelector('code')||block; var text=code.textContent.trim(); if(navigator.clipboard){ navigator.clipboard.writeText(text).then(function(){showToast('Comando copiado!');}); } }); block.style.position='relative'; block.appendChild(btn); }); })(); sssssssssssss ▶ @CanalQb no YouTube</itunes:summary><itunes:keywords>Automação, Ferramentas, PowerShell, Tutorial, Windows, Winget</itunes:keywords></item></channel></rss>