<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Thiago Perea</title>
    <description>The latest articles on DEV Community by Thiago Perea (@thiagoperea).</description>
    <link>https://dev.to/thiagoperea</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1421110%2F6236125a-23a0-4a4b-929f-b9c6090a2149.png</url>
      <title>DEV Community: Thiago Perea</title>
      <link>https://dev.to/thiagoperea</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/thiagoperea"/>
    <language>en</language>
    <item>
      <title>QuotaDeck: monitorando limites do Claude, Codex, Antigravity e OpenCode</title>
      <dc:creator>Thiago Perea</dc:creator>
      <pubDate>Wed, 11 Nov 2026 13:30:16 +0000</pubDate>
      <link>https://dev.to/thiagoperea/quotadeck-monitorando-limites-do-claude-codex-antigravity-e-opencode-4md2</link>
      <guid>https://dev.to/thiagoperea/quotadeck-monitorando-limites-do-claude-codex-antigravity-e-opencode-4md2</guid>
      <description>&lt;p&gt;Alternando todo dia entre &lt;strong&gt;OpenCode&lt;/strong&gt;, &lt;strong&gt;Antigravity&lt;/strong&gt;, &lt;strong&gt;Codex&lt;/strong&gt; e &lt;strong&gt;Claude&lt;/strong&gt;, eu vivia batendo no limite da janela de 5 horas no meio de alguma tarefa sem saber quanto faltava ou que horas ia resetar.&lt;/p&gt;

&lt;p&gt;Cada ferramenta mostra isso num canto diferente (isso quando mostra), e ficar caçando essa informação em cada uma das ferramentas e gerenciando isso era um trabalho a parte!!&lt;/p&gt;

&lt;p&gt;Pra resolver isso, fiz o &lt;a href="https://github.com/thiagoperea/quota_deck" rel="noopener noreferrer"&gt;QuotaDeck&lt;/a&gt; um app multiplataforma + CLI que escaneia todos os harnesses instalados na máquina, lê a sessão local de cada ferramenta e junta tudo numa tela só.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk617ati13u32g628k02n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fk617ati13u32g628k02n.png" alt="Dashboard" width="800" height="2195"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  A ideia: local-first e somente leitura
&lt;/h2&gt;

&lt;p&gt;O app segue duas regras simples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sem login, sem proxy, sem telemetria:&lt;/strong&gt; você não cadastra chave nenhuma no app. Ele detecta se você usa a versão Desktop ou CLI de cada provedor.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Somente leitura:&lt;/strong&gt; ele não escreve nas suas credenciais, não renova OAuth por conta própria e não faz chamadas que consomem tokens.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvatuf8bwu137kcjxoyt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fvatuf8bwu137kcjxoyt4.png" alt="Mini dashboard" width="760" height="1620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Como ele lê cada ferramenta
&lt;/h2&gt;

&lt;p&gt;Como não existe um padrão entre os provedores, cada integração lê direto da fonte local:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Claude:&lt;/strong&gt; lê a sessão direto do app &lt;strong&gt;Claude Desktop&lt;/strong&gt; ou do &lt;strong&gt;Claude Code CLI&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity:&lt;/strong&gt; descobre o daemon local e consulta o &lt;code&gt;language_server&lt;/code&gt; via RPC, separando os limites por grupo de modelos (&lt;em&gt;Gemini&lt;/em&gt;, &lt;em&gt;Claude/GPT&lt;/em&gt;, &lt;em&gt;Argon&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode:&lt;/strong&gt; lê o banco SQLite no caminho XDG (&lt;code&gt;~/.local/share/opencode/opencode.db&lt;/code&gt;) ou em &lt;code&gt;%LOCALAPPDATA%&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codex:&lt;/strong&gt; lê o &lt;code&gt;~/.codex/auth.json&lt;/code&gt; e consulta o uso via &lt;code&gt;app-server&lt;/code&gt; ou &lt;code&gt;wham/usage&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Uso no dia a dia (v0.7.0)
&lt;/h2&gt;

&lt;p&gt;No dia a dia ele fica escondido na bandeja do sistema:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O ícone muda de cor conforme o uso (verde, amarelo ou vermelho) e um clique abre uma versão mini do dashboard.&lt;/li&gt;
&lt;li&gt;Salva amostras de uso num SQLite local pra calcular um &lt;strong&gt;burn rate&lt;/strong&gt; e estimar em quanto tempo a quota vai zerar.&lt;/li&gt;
&lt;li&gt;Manda &lt;strong&gt;notificação nativa&lt;/strong&gt; ao cruzar 80% e 95% de uso (configurável).&lt;/li&gt;
&lt;li&gt;Dá pra reordenar os provedores e escolher quais informações ficam sempre visíveis.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftwsnnwtit5r41x5yys2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ftwsnnwtit5r41x5yys2p.png" alt="Personalização dos provedores" width="800" height="1216"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Linha de comando (&lt;code&gt;qdeck&lt;/code&gt;)
&lt;/h2&gt;

&lt;p&gt;Pra quem prefere terminal, o mesmo core roda via CLI:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;qdeck show
qdeck statusline   &lt;span class="c"&gt;# ex: OC 21% · AG 50.5% · CX 2% · CL 35%&lt;/span&gt;
qdeck doctor
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Código e download
&lt;/h2&gt;

&lt;p&gt;O projeto é open-source (MIT) e tem builds pra &lt;strong&gt;Windows&lt;/strong&gt;, &lt;strong&gt;macOS&lt;/strong&gt; e &lt;strong&gt;Linux&lt;/strong&gt;: &lt;a href="https://github.com/thiagoperea/quota_deck" rel="noopener noreferrer"&gt;github.com/thiagoperea/quota_deck&lt;/a&gt;&lt;/p&gt;

</description>
      <category>dart</category>
      <category>flutter</category>
      <category>opensource</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
