<?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: xiaodong Zhang</title>
    <description>The latest articles on DEV Community by xiaodong Zhang (@xiaodong_zhang_bd8dc835b3).</description>
    <link>https://dev.to/xiaodong_zhang_bd8dc835b3</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%2F4066951%2F1b53d76c-ae38-4208-ae6d-fff1cecaf85e.png</url>
      <title>DEV Community: xiaodong Zhang</title>
      <link>https://dev.to/xiaodong_zhang_bd8dc835b3</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xiaodong_zhang_bd8dc835b3"/>
    <language>en</language>
    <item>
      <title>My CLAUDE.md went from 200 lines to 30, and the agent got better at following it</title>
      <dc:creator>xiaodong Zhang</dc:creator>
      <pubDate>Wed, 12 Aug 2026 06:42:51 +0000</pubDate>
      <link>https://dev.to/xiaodong_zhang_bd8dc835b3/my-claudemd-went-from-200-lines-to-30-and-the-agent-got-better-at-following-it-4b45</link>
      <guid>https://dev.to/xiaodong_zhang_bd8dc835b3/my-claudemd-went-from-200-lines-to-30-and-the-agent-got-better-at-following-it-4b45</guid>
      <description>&lt;p&gt;I wrote a detailed rules file when I started. Two hundred-odd lines, every convention I could think of. The theory was: the more it knows, the better it behaves.&lt;/p&gt;

&lt;p&gt;It behaved worse.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why length backfires
&lt;/h2&gt;

&lt;p&gt;That file gets loaded in full at the start of every session. Two consequences:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Important rules get buried in noise, and it starts ignoring them&lt;/li&gt;
&lt;li&gt;It eats a chunk of your context before you've typed anything&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;There's a test I now use on every line: &lt;strong&gt;"if I delete this, will it make a mistake?"&lt;/strong&gt; If no, delete it.&lt;/p&gt;

&lt;p&gt;First pass took me from 200 to 80. All the "write clean code" / "consider performance" style lines went — it already does that, writing it down just occupied space.&lt;/p&gt;

&lt;h2&gt;
  
  
  Second pass, 80 to 30
&lt;/h2&gt;

&lt;p&gt;The 80 still had a lot of "stuff I assumed it needed to know" — which libraries we use, roughly how the directories are organized.&lt;/p&gt;

&lt;p&gt;It can figure that out by reading the code. Writing it in the rules file is pure duplication.&lt;/p&gt;

&lt;p&gt;I also found several rules I'd added after early mistakes, where the underlying issue had since been fixed in code. The constraint outlived its reason. Easy to forget those are in there.&lt;/p&gt;

&lt;h2&gt;
  
  
  What's left
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;The actual build and test commands (it can't guess these)&lt;/li&gt;
&lt;li&gt;A handful of style choices that differ from community defaults&lt;/li&gt;
&lt;li&gt;Non-obvious behaviour in two specific modules&lt;/li&gt;
&lt;li&gt;Required env vars&lt;/li&gt;
&lt;li&gt;Branch and PR naming&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's it. Thirty lines.&lt;/p&gt;

&lt;p&gt;Anything that only matters in specific situations — release process, migration checklist — I moved into skill files that load on demand. Once a month, no reason to read it every session.&lt;/p&gt;

&lt;h2&gt;
  
  
  Side effect I didn't expect
&lt;/h2&gt;

&lt;p&gt;Baseline consumption per session dropped noticeably. Between that and clearing context between tasks, I dropped a subscription tier and stayed comfortable most months.&lt;/p&gt;

&lt;p&gt;Which brings up the thing I actually want to mention, because it's what made dropping a tier feel safe rather than reckless.&lt;/p&gt;

&lt;p&gt;My usage isn't flat — busy months are roughly three times the quiet ones. Subscription pricing forces you to pick a tier for the peak and eat the waste, or pick for the average and get stuck mid-sprint. There's no "just right" option on offer.&lt;/p&gt;

&lt;p&gt;I've been covering the peaks through Asale instead. Unused subscription capacity gets listed by people who aren't going to burn it; people who need it draw from it. Three things made it genuinely useful rather than just a cheaper option:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Pricing is legible. Per million input/output tokens, with the percentage of list price shown per model, so you can decide in ten seconds whether it's worth it for the task in front of you.&lt;/li&gt;
&lt;li&gt;It's vendor-agnostic. When I want a second opinion from a different model on an architectural call, I don't need a second subscription sitting there for the other 27 days of the month.&lt;/li&gt;
&lt;li&gt;It's genuinely two-way. Quiet months, the capacity I'm not using can go the other direction instead of expiring. That's the part that made the tier drop a net win rather than a gamble.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before trying it, know the tradeoff: requests relay through another user's client, so the payload is visible at that hop — not end-to-end encrypted. They say so plainly on their homepage, together with a note that sharing subscription capacity may conflict with upstream terms. Clear enough boundary: personal and open source work, fine. Company code, not a chance.&lt;/p&gt;

&lt;p&gt;Search asale on GitHub for the client. Source being open mattered to me here, since requests transit someone else's machine.&lt;/p&gt;




&lt;p&gt;If you've got a rules file you're happy with, I'd genuinely like to see roughly how long it is. I suspect most of us are still writing too much.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>webdev</category>
      <category>programming</category>
      <category>productivity</category>
    </item>
    <item>
      <title>I migrated 200 tables with an AI agent. Here's what I learned about context windows</title>
      <dc:creator>xiaodong Zhang</dc:creator>
      <pubDate>Wed, 12 Aug 2026 06:18:36 +0000</pubDate>
      <link>https://dev.to/xiaodong_zhang_bd8dc835b3/i-migrated-200-tables-with-an-ai-agent-heres-what-i-learned-about-context-windows-2ap7</link>
      <guid>https://dev.to/xiaodong_zhang_bd8dc835b3/i-migrated-200-tables-with-an-ai-agent-heres-what-i-learned-about-context-windows-2ap7</guid>
      <description>&lt;p&gt;Two hundred-something tables, old schema to new. Field names, types, foreign keys — all had to be checked. I estimated two days.&lt;/p&gt;

&lt;p&gt;It took four. About one of those was spent waiting on my usage limit to reset.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I did wrong at the start
&lt;/h2&gt;

&lt;p&gt;I dumped the entire schema in one go and asked for a migration plan table by table. First twenty went fine. Somewhere past fifty it started making mistakes — confusing two similar tables, re-processing ones it had already handled.&lt;/p&gt;

&lt;p&gt;At the time I assumed the model was just not good enough. It wasn't. The context was full. Fifty tables' worth of content was sitting in there, and it had to locate the current one inside all of that noise.&lt;/p&gt;

&lt;p&gt;This is the part I wish I'd understood earlier: &lt;strong&gt;usage is metered on context, not on the number of questions.&lt;/strong&gt; Every request carries the full conversation history. A one-line question in an eight-hour session can cost more than ten times the same question in a fresh one.&lt;/p&gt;

&lt;h2&gt;
  
  
  What actually worked
&lt;/h2&gt;

&lt;p&gt;I switched to batches of ten. After each batch:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Write progress to a file (what's done, decisions made, gotchas found)&lt;/li&gt;
&lt;li&gt;Clear the context&lt;/li&gt;
&lt;li&gt;Before the next batch, read the progress file back&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Error rate dropped. So did consumption — each batch now carried ten tables plus a short summary, not an accumulating two hundred.&lt;/p&gt;

&lt;p&gt;That "write progress → clear → re-read" loop became my default for any batch job. It's not clever, it just works.&lt;/p&gt;

&lt;h2&gt;
  
  
  A few other habits from the same project
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Ask for a runnable check, not a description.&lt;/strong&gt; "Migrate this table and run the schema diff" beats "migrate this table." When there's a check it can execute, it iterates on its own instead of stopping at "looks done."&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Delegate exploration to a subagent.&lt;/strong&gt; When I needed to understand how the old schema was actually used across the codebase, I had a subagent read the files and report back a summary. Its context absorbed the noise, mine stayed clean.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Don't keep a session open all day.&lt;/strong&gt; I used to. The cost curve at hour eight is brutal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The part nobody warns you about
&lt;/h2&gt;

&lt;p&gt;Doing this properly costs more, not less. Runnable verification means extra iterations. Subagents mean extra context windows. A separate reviewer pass means another agent entirely.&lt;/p&gt;

&lt;p&gt;So halfway through the month you end up in a bad spot: limit is close, and the thing you're tempted to cut is the verification step. Which is exactly the wrong thing to cut.&lt;/p&gt;

&lt;p&gt;What actually solved this for me was decoupling "how much capacity I need this week" from "which tier I pay for every month." A migration like this is a three-day spike — the rest of the month I'm nowhere near my ceiling. Upgrading a tier for three days is a bad trade, and waiting out a reset in the middle of a batch job means re-establishing context afterwards, which costs again.&lt;/p&gt;

&lt;p&gt;I've been using Asale for the spikes. The mechanic is simple: people whose subscription capacity is going unused list it, people who need it draw from it. What made it practical for a job like this rather than just cheap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You can see what you're paying before you commit — it's priced per million input/output tokens with the percentage of list price shown next to each model, so it lines up with how you already think about API cost&lt;/li&gt;
&lt;li&gt;It's not tied to one vendor, so when I wanted to sanity-check a tricky migration against a second model I could do it without holding two subscriptions&lt;/li&gt;
&lt;li&gt;Top up, finish the batch, stop. No monthly commitment left behind to forget about&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The tradeoff you should know before trying it: requests are relayed through another user's client, so the payload is visible at that hop — no end-to-end encryption. They state this on their own homepage, along with a note that sharing subscription capacity may conflict with upstream terms. That defines the boundary cleanly enough: personal projects and open source, yes. Company code, no.&lt;/p&gt;

&lt;p&gt;Client's on GitHub if you search asale. Source is public, which is the part I cared about given a request passes through someone else's machine.&lt;/p&gt;




&lt;p&gt;Curious whether anyone has a better pattern for batch work than the progress-file loop. Mine feels crude but I haven't found something better.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>productivity</category>
      <category>devops</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Handing over an unfamiliar project—AI was a big help, but it also cost a pretty penny.</title>
      <dc:creator>xiaodong Zhang</dc:creator>
      <pubDate>Tue, 11 Aug 2026 09:37:19 +0000</pubDate>
      <link>https://dev.to/xiaodong_zhang_bd8dc835b3/handing-over-an-unfamiliar-project-ai-was-a-big-help-but-it-also-cost-a-pretty-penny-gh1</link>
      <guid>https://dev.to/xiaodong_zhang_bd8dc835b3/handing-over-an-unfamiliar-project-ai-was-a-big-help-but-it-also-cost-a-pretty-penny-gh1</guid>
      <description>&lt;p&gt;Last month, I took over a project left behind by a former colleague. There’s virtually no documentation, and the submission information is very informal.&lt;/p&gt;

&lt;p&gt;The most useful usage&lt;/p&gt;

&lt;p&gt;I didn’t ask it to change anything at all. First, I spent half a day having it walk me through the project: what the project is about, how the main modules are divided, where the data comes in and goes out, and what the less-obvious conventions are.&lt;/p&gt;

&lt;p&gt;I could spend half a day just figuring this out on my own—three days’ worth of work. The questions I’m asking are pretty much the same as those I’d ask a colleague who’s familiar with this area: How does this log flow? Why does this function call A instead of B? What edge cases does this class handle?&lt;/p&gt;

&lt;p&gt;The cost is that the credit limit is dropping rapidly.&lt;/p&gt;

&lt;p&gt;Because it needs to read a large number of documents in order to respond. And all these documents have been incorporated into my context, meaning that every subsequent message will have to carry them again.&lt;/p&gt;

&lt;p&gt;By midday, I had already used up more than half of the current quota. At that moment, I felt a bit regretful and thought I should have been more careful with my spending.&lt;/p&gt;

&lt;p&gt;Handing over an unfamiliar project—AI was a big help, but it also cost a pretty penny.&lt;/p&gt;

&lt;p&gt;Last month, I took over a project left behind by a former colleague. There’s virtually no documentation, and the submission information is very informal.&lt;/p&gt;

&lt;p&gt;The most useful usage&lt;/p&gt;

&lt;p&gt;I didn’t ask it to change anything at all. First, I spent half a day having it walk me through the project: what the project is about, how the main modules are divided, where the data comes in and goes out, and what the less-obvious conventions are.&lt;/p&gt;

&lt;p&gt;I could spend half a day just figuring this out on my own—three days’ worth of work. The questions I’m asking are pretty much the same as those I’d ask a colleague who’s familiar with this area: How does this log flow? Why does this function call A instead of B? What edge cases does this class handle?&lt;/p&gt;

&lt;p&gt;The cost is that the credit limit is dropping rapidly.&lt;/p&gt;

&lt;p&gt;Because it needs to read a large number of documents in order to respond. And all these documents have been incorporated into my context, meaning that every subsequent message will have to carry them again.&lt;/p&gt;

&lt;p&gt;By midday, I had already used up more than half of the current quota. At that moment, I felt a bit regretful and thought I should have been more careful with my spending.&lt;/p&gt;

&lt;p&gt;Later, it was discovered that there was a more efficient way.&lt;/p&gt;

&lt;p&gt;Leave the research to the sub-agent. It reads through the stack of documents in its own independent window and sends me only the conclusions. This keeps my main context clean, making each subsequent message inexpensive.&lt;/p&gt;

&lt;p&gt;I’m using this approach a lot these days, especially when taking over unfamiliar code. It achieves the same result but consumes several times less resources.&lt;/p&gt;

&lt;p&gt;But handing over tasks like this really is a big-time undertaking.&lt;/p&gt;

&lt;p&gt;No matter how much you optimize, understanding a new project still requires reading a lot of material. This kind of work tends to be concentrated in just a few days, and you don't need to use that much information on a regular basis.&lt;/p&gt;

&lt;p&gt;When I’m short on funds now, I’ll top up a bit from Asale. It’s a token-sharing network where others’ idle token quotas are listed; pricing is based on the amount of tokens input and output, and the page shows what percentage of the original price it corresponds to. When I checked, GPT-5.6 was around 49%, while Claude was at about 60%, and both figures fluctuate somewhat.&lt;/p&gt;

&lt;p&gt;As for the risk section, it’s pretty straightforward: The request is forwarded through someone else’s client, and the body of the message is visible to that end user. Sharing subscriptions might violate upstream terms and conditions. When I came across this passage, I actually felt a bit more reassured—there aren’t many products that are willing to put unfavorable information right on the homepage. Of course, we still need to avoid anything that really should be avoided; don’t send confidential information here at all.&lt;/p&gt;

&lt;p&gt;You can find it on GitHub by searching for "asale." It’s compatible with Mac, Windows, and Linux, and the source code is open.&lt;/p&gt;

&lt;p&gt;Later, it was discovered that there was a more efficient way.&lt;/p&gt;

&lt;p&gt;Leave the research to the sub-agent. It reads through the stack of documents in its own independent window and sends me only the conclusions. This keeps my main context clean, making each subsequent message inexpensive.&lt;/p&gt;

&lt;p&gt;I’m using this approach a lot these days, especially when taking over unfamiliar code. It achieves the same result but consumes several times less resources.&lt;/p&gt;

&lt;p&gt;But handing over tasks like this really is a big-time undertaking.&lt;/p&gt;

&lt;p&gt;No matter how much you optimize, understanding a new project still requires reading a lot of material. This kind of work tends to be concentrated in just a few days, and you don't need to use that much information on a regular basis.&lt;/p&gt;

&lt;p&gt;When I’m short on funds now, I’ll top up a bit from Asale. It’s a token-sharing network where others’ idle token quotas are listed; pricing is based on the amount of tokens input and output, and the page shows what percentage of the original price it corresponds to. When I checked, GPT-5.6 was around 49%, while Claude was at about 60%, and both figures fluctuate somewhat.&lt;/p&gt;

&lt;p&gt;As for the risk section, it’s pretty straightforward: The request is forwarded through someone else’s client, and the body of the message is visible to that end user. Sharing subscriptions might violate upstream terms and conditions. When I came across this passage, I actually felt a bit more reassured—there aren’t many products that are willing to put unfavorable information right on the homepage. Of course, we still need to avoid anything that really should be avoided; don’t send confidential information here at all.&lt;/p&gt;

&lt;p&gt;You can find it on GitHub by searching for "asale." It’s compatible with Mac, Windows, and Linux, and the source code is open.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>llm</category>
      <category>productivity</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>If you recommend Asale to others, you can also earn a commission.</title>
      <dc:creator>xiaodong Zhang</dc:creator>
      <pubDate>Mon, 10 Aug 2026 05:43:36 +0000</pubDate>
      <link>https://dev.to/xiaodong_zhang_bd8dc835b3/if-you-recommend-asale-to-others-you-can-also-earn-a-commission-3apf</link>
      <guid>https://dev.to/xiaodong_zhang_bd8dc835b3/if-you-recommend-asale-to-others-you-can-also-earn-a-commission-3apf</guid>
      <description>&lt;p&gt;Complete Guide to Referral Commissions: How to Earn, How They’re Calculated, and How to Share Them&lt;/p&gt;

&lt;p&gt;If you’re already using Asale to sell your unused credit or buy extra credit to top up your balance, there’s one more thing worth knowing: By recommending it to others, you can earn a share of their spending.&lt;/p&gt;

&lt;p&gt;This article clearly explains referral commissions—what the rules are, how to get started, and the highly useful “Share Earnings Card” feature.&lt;/p&gt;

&lt;p&gt;Rules: Three steps—very simple.&lt;br&gt;
The authorities have summarized the process into three steps:&lt;/p&gt;

&lt;p&gt;• ① Share the link—send out your exclusive invitation link.&lt;/p&gt;

&lt;p&gt;• ② The other party starts using the invitee’s registered account, completes email verification, and begins purchasing Tokens for consumption.&lt;br&gt;
• ③ You receive a commission based on the other party’s token spending amount.&lt;br&gt;
II. The most crucial point: No price increase.&lt;br&gt;
Many rebate programs feel awkward because “the money you earn is actually the extra amount paid by the other party.” Asale explicitly states that this isn’t the case: the commission is borne by the platform and won’t be added to the invitee’s bill—they pay exactly the same price.&lt;/p&gt;

&lt;p&gt;In other words, if you recommend it to a friend, they won’t spend an extra penny just because they clicked on your link. This makes sharing feel completely impersonal.&lt;/p&gt;

&lt;p&gt;If you recommend Asale to others, you can also earn a commission.&lt;/p&gt;

&lt;p&gt;Complete Guide to Referral Commissions: How to Earn, How They’re Calculated, and How to Share Them&lt;/p&gt;

&lt;p&gt;If you’re already using Asale to sell your unused credit or buy extra credit to top up your balance, there’s one more thing worth knowing: By recommending it to others, you can earn a share of their spending.&lt;/p&gt;

&lt;p&gt;This article clearly explains referral commissions—what the rules are, how to get started, and the highly useful “Share Earnings Card” feature.&lt;/p&gt;

&lt;p&gt;Rules: Three steps—very simple.&lt;br&gt;
The authorities have summarized the process into three steps:&lt;/p&gt;

&lt;p&gt;• ① Share the link—send out your exclusive invitation link.&lt;/p&gt;

&lt;p&gt;• ② The other party starts using the invitee’s registered account, completes email verification, and begins purchasing Tokens for consumption.&lt;br&gt;
• ③ You receive a commission based on the other party’s token spending amount.&lt;br&gt;
II. The most crucial point: No price increase.&lt;br&gt;
Many rebate programs feel awkward because “the money you earn is actually the extra amount paid by the other party.” Asale explicitly states that this isn’t the case: the commission is borne by the platform and won’t be added to the invitee’s bill—they pay exactly the same price.&lt;/p&gt;

&lt;p&gt;In other words, if you recommend it to a friend, they won’t spend an extra penny just because they clicked on your link. This makes sharing feel completely impersonal.&lt;/p&gt;

&lt;p&gt;Rational burden—what you’re recommending is something that’s already beneficial to him, and incidentally, it also benefits you.&lt;/p&gt;

&lt;p&gt;III. What can be seen in the backend?&lt;/p&gt;

&lt;p&gt;The invitation page features a data dashboard with four core metrics:&lt;/p&gt;

&lt;p&gt;• The number of people who have registered through your link.&lt;/p&gt;

&lt;p&gt;• The number of people who have completed email verification has been verified (this step is a prerequisite for inclusion).&lt;/p&gt;

&lt;p&gt;• Commissions that have been generated but not yet received will be settled in USDT.&lt;/p&gt;

&lt;p&gt;• The portion that has already been credited and settled to you is also denominated in USDT.&lt;/p&gt;

&lt;p&gt;Below is a list of invitees, including columns for account number, registration time, status, commissions generated, and commission payout deadline.&lt;/p&gt;

&lt;p&gt;Note the last point: the referral commission has a time limit—not a permanent share; each invitee has a deadline. So the earlier you start sharing, the longer the accumulation window will be.&lt;/p&gt;

&lt;p&gt;Privacy: The email addresses in the list are anonymized and visible only to you.&lt;/p&gt;

&lt;p&gt;IV. A Truly Useful Feature: Share Earnings Cards&lt;/p&gt;

&lt;p&gt;Simply sending out an invitation link often results in no one clicking on it. Asale comes with a built-in shareable earnings card generator—turn your performance into a ready-to-share image.&lt;/p&gt;

&lt;p&gt;Rational burden—what you’re recommending is something that’s already beneficial to him, and incidentally, it also benefits you.&lt;/p&gt;

&lt;p&gt;III. What can be seen in the backend?&lt;/p&gt;

&lt;p&gt;The invitation page features a data dashboard with four core metrics:&lt;/p&gt;

&lt;p&gt;• The number of people who have registered through your link.&lt;/p&gt;

&lt;p&gt;• The number of people who have completed email verification has been verified (this step is a prerequisite for inclusion).&lt;/p&gt;

&lt;p&gt;• Commissions that have been generated but not yet received will be settled in USDT.&lt;/p&gt;

&lt;p&gt;• The portion that has already been credited and settled to you is also denominated in USDT.&lt;/p&gt;

&lt;p&gt;Below is a list of invitees, including columns for account number, registration time, status, commissions generated, and commission payout deadline.&lt;/p&gt;

&lt;p&gt;Note the last point: the referral commission has a time limit—not a permanent share; each invitee has a deadline. So the earlier you start sharing, the longer the accumulation window will be.&lt;/p&gt;

&lt;p&gt;Privacy: The email addresses in the list are anonymized and visible only to you.&lt;/p&gt;

&lt;p&gt;IV. A Truly Useful Feature: Share Earnings Cards&lt;/p&gt;

&lt;p&gt;Simply sending out an invitation link often results in no one clicking on it. Asale comes with a built-in shareable earnings card generator—turn your performance into a ready-to-share image.&lt;/p&gt;

&lt;p&gt;Share earnings cards: Comes with built-in data, an invitation code, and a QR code—just one click to share them across various platforms.&lt;/p&gt;

&lt;p&gt;What’s on the card:&lt;/p&gt;

&lt;p&gt;• The cumulative commission amount is displayed in prominent large font, in micro_USDT units.&lt;/p&gt;

&lt;p&gt;• The three data items—invited, verified, and pending settlement—are clearly visible at a glance.&lt;/p&gt;

&lt;p&gt;Share earnings cards: Comes with built-in data, an invitation code, and a QR code—just one click to share them across various platforms.&lt;/p&gt;

&lt;p&gt;What’s on the card:&lt;/p&gt;

&lt;p&gt;• The cumulative commission amount is displayed in prominent large font, in micro_USDT units.&lt;/p&gt;

&lt;p&gt;• The three data items—invited, verified, and pending settlement—are clearly visible at a glance.&lt;/p&gt;

&lt;p&gt;• The invitation code plus the QR code allows others to join by scanning or entering the code—no need to copy a long link.&lt;/p&gt;

&lt;p&gt;• The ready-made copy card reads, “Idle AI subscription credits can also generate revenue”—a single sentence that clearly conveys the value.&lt;/p&gt;

&lt;p&gt;• Two templates—horizontal and vertical—are interchangeable, adapting to the display ratios of different platforms.&lt;/p&gt;

&lt;p&gt;One-click sharing to 17 channels&lt;br&gt;
The mainstream platforms are listed directly below the card—just tap to share:&lt;/p&gt;

&lt;p&gt;• Domestic platforms: WeChat, Weibo, Xiaohongshu, QQ, QQ Space, and Douban.&lt;/p&gt;

&lt;p&gt;• Overseas: X, Facebook, LinkedIn, Reddit, Telegram, WhatsApp, Threads, LINE, Hacker News.&lt;/p&gt;

&lt;p&gt;At the bottom, there are four handy buttons: Copy Text, Copy Link, Save Image, and Share via System. It’s also very convenient to manually send it elsewhere.&lt;/p&gt;

&lt;p&gt;One detail worth noting: On platforms like X, Telegram, Facebook, and LinkedIn, links are automatically expanded into 1.91:1 preview images. Therefore, when posting to these platforms, it’s best to use landscape templates for optimal display. For platforms like Xiaohongshu and WeChat Moments—where vertical orientation is dominant—use portrait templates instead.&lt;/p&gt;

&lt;p&gt;VI. Who is it suitable to share with?&lt;/p&gt;

&lt;p&gt;The premise of sharing is that the other person can actually put it to good use. These types of people are the best match:&lt;/p&gt;

&lt;p&gt;• People who don’t use their subscriptions to the fullest—those who buy Max or Pro but still have more than half of their monthly allowance left—can turn that unused portion into revenue simply by listing it for sale.&lt;/p&gt;

&lt;p&gt;• People who frequently hit their limits are heavy users of AI programming; by mid-month, their credit limit gets capped, and they need to replenish their quota as needed.&lt;/p&gt;

&lt;p&gt;• Students, freelancers, and independent developers with limited budgets—don’t want to pay for a high-end setup for an entire month just for a few days of peak demand.&lt;/p&gt;

&lt;p&gt;• Individuals with payment restrictions can’t link overseas credit cards or open corporate accounts, yet they still want to use mainstream models.&lt;/p&gt;

&lt;p&gt;Clarify things before you begin.&lt;br&gt;
Asale is a token-sharing network: If someone has unused subscription credits, they can list them on the marketplace for others to access and use. The platform only facilitates matchmaking, acts as an intermediary, and handles billing. Its official slogan is, “Idle tokens can also generate income.”&lt;/p&gt;

&lt;p&gt;• The marked-price market is displayed as a percentage of the official original price: Currently, the GPT-5.6 series is approximately 49%, and the Claude series is about 60%.&lt;/p&gt;

&lt;p&gt;• Covers mainstream upstream models: Claude Pro/Max, ChatGPT/Codex, Google Gemini, Kimi, and xAI Grok.&lt;/p&gt;

&lt;p&gt;• Free client v0.2.5, available on macOS, Windows, and Linux; source code is open (GitHub: asale-ai/asale).&lt;/p&gt;

&lt;p&gt;Reminder: The request will be forwarded upstream via another user’s client, and the body of the message will be visible to them. Please do not send confidential information. Sharing computing power through subscriptions may violate the upstream service terms, and you assume all associated risks. This is suitable for personal projects and open-source practice; for company confidential code, please use official channels.&lt;/p&gt;

&lt;p&gt;When recommending this to others, I suggest also explaining these two points—letting the other person be fully informed before making a decision. In the long run, that’s more important than anything else.&lt;/p&gt;

&lt;p&gt;• How to get the share link → The other party registers, verifies their account, and makes a purchase → You receive a commission based on their spending amount, settled in USDT.&lt;/p&gt;

&lt;p&gt;• The platform covers the commission fee; the invitee pays exactly the same price.&lt;/p&gt;

&lt;p&gt;• Each invitee has a deadline for receiving the commission; the earlier you start, the longer the window will be.&lt;/p&gt;

&lt;p&gt;• For good tools, use the revenue-sharing card: send the landscape version on X/Telegram/LinkedIn, and the portrait version on Xiaohongshu/WeChat Moments.&lt;/p&gt;

&lt;p&gt;Sell any AI credits you don’t use; buy more if you run short.&lt;/p&gt;

&lt;p&gt;Search GitHub for the Asale download client, or visit &lt;a href="https://asale.ai/zh" rel="noopener noreferrer"&gt;https://asale.ai/zh&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>At 2 a.m., the CLI told me my credit limit was exhausted.</title>
      <dc:creator>xiaodong Zhang</dc:creator>
      <pubDate>Fri, 07 Aug 2026 06:53:46 +0000</pubDate>
      <link>https://dev.to/xiaodong_zhang_bd8dc835b3/at-2-am-the-cli-told-me-my-credit-limit-was-exhausted-17fa</link>
      <guid>https://dev.to/xiaodong_zhang_bd8dc835b3/at-2-am-the-cli-told-me-my-credit-limit-was-exhausted-17fa</guid>
      <description>&lt;p&gt;When refactoring is halfway through, the thing you fear most isn't errors.&lt;/p&gt;

&lt;p&gt;The error comes with a stack trace, line numbers, and searchable keywords. What’s truly frustrating is those sudden, unannounced interruptions—after spending two whole hours feeding the context of an old module into the model, it’s finally starting to grasp why this chunk of code was written the way it is. Just as you’re about to ask it to revise the last three files all at once, the terminal spits out a single message: “Your quota has been exhausted; please wait for a reset.”&lt;/p&gt;

&lt;p&gt;Then you glanced at the time—2:17 a.m. The reset was set for five hours later.&lt;/p&gt;

&lt;p&gt;The problem isn’t those few dollars. The real issue is that the ad-hoc mental model you’ve built—“Why does this function depend on that global variable?”—will be gone in just five hours. When you start a new session tomorrow morning, you’ll have to explain it all over again from scratch. Context has an expiration date—and one that’s far shorter than you think.&lt;br&gt;
The usual three paths aren't very smooth.&lt;br&gt;
After rate limiting, there aren't actually many options left:&lt;br&gt;
·Upgrade to a more expensive plan. This addresses a long-term issue, but you’re stuck right now—and it just doesn’t add up to pay the full monthly fee for the entire year just for a few peak periods each year.&lt;/p&gt;

&lt;p&gt;·The official API is billed based on usage. It can be restored immediately, but the listed price is quite high—long sessions can quickly rack up costs, and you’ll feel a bit uneasy when you check the bill the next day.&lt;/p&gt;

&lt;p&gt;· Switch to a different model and continue writing. Since the context is gone and the coding style has changed, it’s like starting from scratch.&lt;/p&gt;

&lt;p&gt;The common thread among these three routes is this: You’re paying a very unfavorable price for that “small, temporary excess amount.”&lt;/p&gt;

&lt;p&gt;The Fourth Path: Running on Others’ Idle Credit Lines&lt;/p&gt;

&lt;p&gt;Asale is a shared network for subscription credits. At any given moment, there’s a large number of subscriptions worldwide—subscriptions that have already been paid for monthly but remain unused on that day. Some people are asleep, others are in meetings, and still others are away on business this week. What Asale does is bring this underutilized capacity onto the market, allowing those currently experiencing throttling to tap into it.&lt;/p&gt;

&lt;p&gt;For the buyer, the onboarding process is as follows:&lt;/p&gt;

&lt;p&gt;At 2 a.m., the CLI told me my credit limit was exhausted.&lt;/p&gt;

&lt;p&gt;Recommended Placement: WeChat Official Account/Juejin/Developer Communities | Targeting Buyers | Approximately 1200 words&lt;/p&gt;

&lt;p&gt;[Promotion · Asale]&lt;/p&gt;

&lt;p&gt;When refactoring is halfway through, the thing you fear most isn't errors.&lt;/p&gt;

&lt;p&gt;The error comes with a stack trace, line numbers, and searchable keywords. What’s truly frustrating is those sudden, unannounced interruptions—after spending two whole hours feeding the context of an old module into the model, it’s finally starting to grasp why this chunk of code was written the way it is. Just as you’re about to ask it to revise the last three files all at once, the terminal spits out a single message: “Your quota has been exhausted; please wait for a reset.”&lt;/p&gt;

&lt;p&gt;Then you glanced at the time—2:17 a.m. The reset was set for five hours later.&lt;/p&gt;

&lt;p&gt;The problem isn’t those few dollars. The real issue is that the ad-hoc mental model you’ve built—“Why does this function depend on that global variable?”—will be gone in just five hours. When you start a new session tomorrow morning, you’ll have to explain it all over again from scratch. Context has an expiration date—and one that’s far shorter than you think.&lt;br&gt;
The usual three paths aren't very smooth.&lt;br&gt;
After rate limiting, there aren't actually many options left:&lt;br&gt;
·Upgrade to a more expensive plan. This addresses a long-term issue, but you’re stuck right now—and it just doesn’t add up to pay the full monthly fee for the entire year just for a few peak periods each year.&lt;/p&gt;

&lt;p&gt;·The official API is billed based on usage. It can be restored immediately, but the listed price is quite high—long sessions can quickly rack up costs, and you’ll feel a bit uneasy when you check the bill the next day.&lt;/p&gt;

&lt;p&gt;· Switch to a different model and continue writing. Since the context is gone and the coding style has changed, it’s like starting from scratch.&lt;/p&gt;

&lt;p&gt;The common thread among these three routes is this: You’re paying a very unfavorable price for that “small, temporary excess amount.”&lt;/p&gt;

&lt;p&gt;The Fourth Path: Running on Others’ Idle Credit Lines&lt;/p&gt;

&lt;p&gt;Asale is a shared network for subscription credits. At any given moment, there’s a large number of subscriptions worldwide—subscriptions that have already been paid for monthly but remain unused on that day. Some people are asleep, others are in meetings, and still others are away on business this week. What Asale does is bring this underutilized capacity onto the market, allowing those currently experiencing throttling to tap into it.&lt;/p&gt;

&lt;p&gt;For the buyer, the onboarding process is as follows:&lt;/p&gt;

&lt;p&gt;第 2 页&lt;br&gt;
Download the client (available as macOS, Windows, and Linux AppImage; current version: v0.2.5, free). Log in with your Asale account—OAuth is supported.&lt;br&gt;
Top up USDT in Wallet.&lt;br&gt;
Go to Buy, turn on the switch for the tool you want to use, and check the model.&lt;br&gt;
Restart the corresponding CLI to make the new endpoint take effect.&lt;br&gt;
After that, your Claude Code, Codex, or Gemini CLI will continue to function as usual, with requests being forwarded through the subscription quota of another machine on the network. Billing is based on tokens, and settlement is conducted in USDT (TRC20), with settlements occurring every minute.&lt;/p&gt;

&lt;p&gt;The current listed price ranges roughly from 40% to 60% of the official API list price, with specific prices varying depending on the model and real-time supply.&lt;/p&gt;

&lt;p&gt;A pitfall that must be mentioned first.&lt;/p&gt;

&lt;p&gt;Don't toggle the on/off switch while you're in an active Claude Code session. Switching the toggle will overwrite the configuration file, and the session you're currently in depends on that configuration—resulting in your session being abruptly disconnected. You’ll end up disconnecting yourself at the worst possible moment. The correct sequence is: first exit the CLI, then toggle the switch, and finally restart.&lt;/p&gt;

&lt;p&gt;This pitfall is mentioned in the official documentation, but many people only go back to read it after they’ve already run into it themselves.&lt;/p&gt;

&lt;p&gt;What scenarios is it suitable for?&lt;/p&gt;

&lt;p&gt;To be honest, it’s not a good substitute for your primary subscription. For consistently stable monthly usage, sticking with the official subscription remains the easiest and most compliant solution. Asale’s real value lies in handling those irregular peak periods—like the week when you’re rushing to meet a release deadline, pulling all-nighters debugging that particularly tricky bug, or suddenly needing to run a comparison using a model you haven’t subscribed to.&lt;/p&gt;

&lt;p&gt;Download the client (available as macOS, Windows, and Linux AppImage; current version: v0.2.5, free). Log in with your Asale account—OAuth is supported.&lt;br&gt;
Top up USDT in Wallet.&lt;br&gt;
Go to Buy, turn on the switch for the tool you want to use, and check the model.&lt;br&gt;
Restart the corresponding CLI to make the new endpoint take effect.&lt;br&gt;
After that, your Claude Code, Codex, or Gemini CLI will continue to function as usual, with requests being forwarded through the subscription quota of another machine on the network. Billing is based on tokens, and settlement is conducted in USDT (TRC20), with settlements occurring every minute.&lt;/p&gt;

&lt;p&gt;The current listed price ranges roughly from 40% to 60% of the official API list price, with specific prices varying depending on the model and real-time supply.&lt;/p&gt;

&lt;p&gt;A pitfall that must be mentioned first.&lt;/p&gt;

&lt;p&gt;Don't toggle the on/off switch while you're in an active Claude Code session. Switching the toggle will overwrite the configuration file, and the session you're currently in depends on that configuration—resulting in your session being abruptly disconnected. You’ll end up disconnecting yourself at the worst possible moment. The correct sequence is: first exit the CLI, then toggle the switch, and finally restart.&lt;/p&gt;

&lt;p&gt;This pitfall is mentioned in the official documentation, but many people only go back to read it after they’ve already run into it themselves.&lt;/p&gt;

&lt;p&gt;What scenarios is it suitable for?&lt;/p&gt;

&lt;p&gt;To be honest, it’s not a good substitute for your primary subscription. For consistently stable monthly usage, sticking with the official subscription remains the easiest and most compliant solution. Asale’s real value lies in handling those irregular peak periods—like the week when you’re rushing to meet a release deadline, pulling all-nighters debugging that particularly tricky bug, or suddenly needing to run a comparison using a model you haven’t subscribed to.&lt;/p&gt;

&lt;p&gt;In other words, it fills the "flexibility gap that subscription models can't address."&lt;/p&gt;

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