<?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: Net Tab</title>
    <description>The latest articles on DEV Community by Net Tab (@net_tab_ddf9dfbe0c308827e).</description>
    <link>https://dev.to/net_tab_ddf9dfbe0c308827e</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%2F4079504%2Ffaadb0e0-2c84-4807-94fa-f61b2ad4a09d.png</url>
      <title>DEV Community: Net Tab</title>
      <link>https://dev.to/net_tab_ddf9dfbe0c308827e</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/net_tab_ddf9dfbe0c308827e"/>
    <language>en</language>
    <item>
      <title>Don't Hand Your Inbox to an Agent</title>
      <dc:creator>Net Tab</dc:creator>
      <pubDate>Sun, 16 Aug 2026 00:01:34 +0000</pubDate>
      <link>https://dev.to/net_tab_ddf9dfbe0c308827e/dont-hand-your-inbox-to-an-agent-5dl8</link>
      <guid>https://dev.to/net_tab_ddf9dfbe0c308827e/dont-hand-your-inbox-to-an-agent-5dl8</guid>
      <description>&lt;p&gt;A Reddit thread on connecting Claude Code to a Yahoo Mail account turned into a solid field guide for scoping down what an AI agent is allowed to touch. Here's the distilled version.&lt;/p&gt;

&lt;p&gt;Don't give Claude Code your Yahoo password or unrestricted mailbox access. The risk isn't only the password leaking, it's that an agent with full access can read private messages, attachments, recovery details, and information about other people, all in the course of doing something mundane.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why "just connect it" is the wrong instinct
&lt;/h2&gt;

&lt;p&gt;The thread's most-quoted line frames the problem well: people are casually handing agents the keys to everything at once.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;People are talking about just giving ai agents access to their entire devices LOL. Emails, passwords, bank accounts like what.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The concern isn't that the agent will maliciously steal your data, it's that broad access creates exposure you didn't intend, every time the agent reads something to complete an unrelated task.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The issue isnt really theft its exposure.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;And exposure scales with trust you've already granted, not with anything going wrong:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;It's all based on trust.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Safer ways to connect it
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. OAuth over password&lt;/strong&gt;&lt;br&gt;
Use a connection method where Yahoo shows you exactly what's being requested and lets you revoke it later. Never type your Yahoo login directly into the agent.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Least access, read-only&lt;/strong&gt;&lt;br&gt;
Point it at a separate, low-value mailbox if you can. Avoid granting send, delete, forward, or account-settings permissions; the agent shouldn't be able to act as you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Keep credentials out of the agent&lt;/strong&gt;&lt;br&gt;
The safer pattern is a credential vault the agent calls out to, so it can request an authenticated action without ever seeing the raw secret.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before you connect anything
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;✅ &lt;strong&gt;Strip sensitive mail first.&lt;/strong&gt; One commenter's habit: swap real details for placeholders and dummy data, then substitute the real values back in once the model's output comes back.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Use a throwaway or secondary account.&lt;/strong&gt; Never connect the address tied to banking, password resets, health records, or work- a compromise there has consequences well beyond email.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Audit and revoke after testing.&lt;/strong&gt; Check Yahoo's connected-apps list once you're done experimenting, and remove the integration if you're not actively using it.&lt;/li&gt;
&lt;li&gt;✅ &lt;strong&gt;Turn on MFA everywhere it matters.&lt;/strong&gt; Add multiple MFA devices and backup codes to any account you actually care about.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Rule of thumb:&lt;/strong&gt; if you wouldn't paste a password, app password, or recovery code into a public chat window, don't paste it into an agent's prompt either. Same secret, same blast radius.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Bottom line
&lt;/h2&gt;

&lt;p&gt;For a primary Yahoo account, &lt;strong&gt;the safest choice is no access at all.&lt;/strong&gt; If you do need to automate email, do it through a separate account, narrowly scoped OAuth permissions, read-only where possible, and a sandboxed environment. Your Yahoo password, app passwords, and recovery codes never belong in a prompt.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Source: r/ClaudeAI discussion on email access &amp;amp; credential hygiene.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>security</category>
      <category>claudecode</category>
      <category>oauth</category>
    </item>
    <item>
      <title>Credit Balance Too Low</title>
      <dc:creator>Net Tab</dc:creator>
      <pubDate>Sat, 15 Aug 2026 21:54:10 +0000</pubDate>
      <link>https://dev.to/net_tab_ddf9dfbe0c308827e/credit-balance-too-low-ggf</link>
      <guid>https://dev.to/net_tab_ddf9dfbe0c308827e/credit-balance-too-low-ggf</guid>
      <description>&lt;h1&gt;
  
  
  How a Wrong Login Broke Claude Code in VS Code (and How I Fixed It)
&lt;/h1&gt;

&lt;p&gt;If you've installed the Claude Code extension in VS Code and hit a wall that says &lt;strong&gt;"Credit balance is too low"&lt;/strong&gt; — even though you're &lt;em&gt;sure&lt;/em&gt; you have an active Claude Pro subscription — this post is for you. It took me a while to track down what was actually going on, so here's the full trail in case it saves you the time.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Symptom
&lt;/h2&gt;

&lt;p&gt;Everything looked fine on the surface. I had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An active &lt;strong&gt;Claude Pro subscription&lt;/strong&gt; on my main account&lt;/li&gt;
&lt;li&gt;No memory of ever setting up API billing&lt;/li&gt;
&lt;li&gt;VS Code's Claude Code extension installed and seemingly logged in&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Yet every time I tried to run a prompt, I got:&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%2Fqrpcm1k750l9izjzbek5.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%2Fqrpcm1k750l9izjzbek5.png" alt=" " width="640" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My first assumption was the obvious one: &lt;em&gt;I must be out of API credits.&lt;/em&gt; So I checked the Anthropic Console billing page — sure enough, &lt;strong&gt;$0 balance&lt;/strong&gt;. Case closed, right? Add some credits and move on.&lt;/p&gt;

&lt;p&gt;Except I didn't want to pay per-token. I already had a Pro subscription. Why wasn't Claude Code using &lt;em&gt;that&lt;/em&gt;?&lt;/p&gt;

&lt;h2&gt;
  
  
  Down the Wrong Path: Stale API Keys
&lt;/h2&gt;

&lt;p&gt;My next theory was that some old, forgotten API key was quietly overriding my subscription login. A quick audit turned up a leftover key — auto-generated at some point, named something like &lt;code&gt;claude_code__key_&lt;/code&gt;, sitting unused with zero credits attached.&lt;/p&gt;

&lt;p&gt;I deleted it. Then I dug into my local config (&lt;code&gt;~/.claude.json&lt;/code&gt;) and found the CLI was storing &lt;strong&gt;both&lt;/strong&gt; an API key reference &lt;em&gt;and&lt;/em&gt; valid OAuth subscription details (&lt;code&gt;billingType: stripe_subscription&lt;/code&gt;, &lt;code&gt;organizationType: claude_pro&lt;/code&gt;) side by side — with the API key apparently taking priority. So I cleared the stale key from the config, expecting the subscription credentials to take over automatically.&lt;/p&gt;

&lt;p&gt;Progress — but not the fix. Running &lt;code&gt;/login&lt;/code&gt; again just got interrupted by the same credit error before authentication could even complete.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Actual Root Cause
&lt;/h2&gt;

&lt;p&gt;Here's the part that mattered: when the CLI opened the browser for OAuth login, I wasn't paying close enough attention to &lt;em&gt;which account&lt;/em&gt; the browser actually authenticated. I have more than one Google/email account, and it turns out the login flow completed against a &lt;strong&gt;different email — one sitting on the Free plan&lt;/strong&gt;, not the account with my paid Pro subscription.&lt;/p&gt;

&lt;p&gt;That distinction matters more than it sounds like it should, because of how Anthropic's plans are scoped:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Plan&lt;/th&gt;
&lt;th&gt;Claude Code included?&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Free (£0)&lt;/td&gt;
&lt;td&gt;❌ No&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pro (£15/mo)&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Max (from £90/mo)&lt;/td&gt;
&lt;td&gt;✅ Yes&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;The Free plan simply doesn't include Claude Code capability at all.&lt;/strong&gt; So when VS Code authenticated against that free account, it wasn't a billing glitch or a stale config — the account itself had no entitlement to run Claude Code. The OAuth consent screen still shows up looking completely normal ("Claude Code would like to connect to your Claude chat account, Authorize / Decline"), which makes it easy to click through without noticing &lt;em&gt;which&lt;/em&gt; account you just authorized.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Fix
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Ran &lt;code&gt;/logout&lt;/code&gt; inside the Claude Code CLI to clear the session completely.&lt;/li&gt;
&lt;li&gt;Ran &lt;code&gt;/login&lt;/code&gt; again — and this time, explicitly signed out of the wrong account in the browser first, so it couldn't silently reuse a cached session.&lt;/li&gt;
&lt;li&gt;Logged in deliberately as the correct email — the one actually holding the Pro subscription.&lt;/li&gt;
&lt;li&gt;Authorized the connection.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;That was it. No more credit balance error, and usage started drawing from the Pro subscription as expected.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Lesson
&lt;/h2&gt;

&lt;p&gt;If you hit "Credit balance too low" in Claude Code and you &lt;em&gt;know&lt;/em&gt; you have a paid plan, don't assume it's a billing bug or a stale API key straight away (though it's worth ruling those out too). Check the boring possibility first: &lt;strong&gt;which account did the browser actually log into?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A few things worth doing before you go down a rabbit hole of config files:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Check &lt;code&gt;console&lt;/code&gt;/&lt;code&gt;platform.claude.com&lt;/code&gt; billing under the email you &lt;em&gt;think&lt;/em&gt; you're using — confirm the plan and balance match what you expect.&lt;/li&gt;
&lt;li&gt;If multiple accounts are logged into your browser, sign out of all of them before running &lt;code&gt;/login&lt;/code&gt;, so there's no ambiguity about which one gets authorized.&lt;/li&gt;
&lt;li&gt;Remember that &lt;strong&gt;Claude Code requires Pro or Max&lt;/strong&gt; — Free accounts can authorize the connection just fine, they just won't have the capability behind it, and the error message you get back doesn't make that obvious.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hopefully this saves someone else the twenty minutes I spent auditing API keys for a problem that was really just "wrong tab, wrong account."&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
