CLAUDE LABJP
FORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as OctoberFORK — Claude Code 2.1.212 changes what /fork does: it copies your conversation into a new background session with its own row in claude agents, so you can keep working. The old in-session subagent is now /subtaskLIMITS — WebSearch calls are now capped at 200 per session by default, and subagent spawns get the same 200 ceiling, so a runaway search or delegation loop stops on its ownMCPBG — MCP tool calls running past two minutes now move to the background automatically, keeping the session usable. Tune the threshold with CLAUDE_CODE_MCP_AUTO_BACKGROUND_MSPLANFIX — Fixed plan mode auto-running file-modifying Bash commands such as touch and rm without a permission prompt or an SDK canUseTool callbackSONNET5 — Claude Sonnet 5 is running on introductory pricing of $2 per million input tokens and $10 per million output. After August 31 it moves to $3 and $15IPO — Bankers are reportedly lining up investor meetings for Anthropic ahead of a possible public listing as soon as October
Articles/API & SDK
API & SDK/2026-05-21Advanced

A Morning Digest Agent across App Store Connect, Play Console, Crashlytics, and AdMob — 30 days of running it on Claude Agent SDK

Opening four dashboards each morning across six apps used to eat 30 to 50 minutes of my day. Here is the Claude Agent SDK recipe that compressed it into one email, with the measured numbers from a full month.

Claude Agent SDK13indie developer19App Store Connect3AdMob12Crashlytics8automation95

Premium Article

For the last few years my mornings followed the same pattern. Open App Store Connect for yesterday's sales, then Play Console for ratings and crash-free rate, then Crashlytics for new issues, then AdMob for eCPM anomalies, then Gmail for user mail. Across six apps in active operation this took 30 to 50 minutes, and by the time my coffee was gone the entire morning had been spent on confirmation work instead of building anything.

In April 2026 I handed that ritual to a Claude Agent SDK session and compressed it into a single morning email. What follows is the design, the failure patterns that surfaced in the first 30 days, and the practical fixes for things like AdMob's reporting lag and Crashlytics payload bloat, all with measured numbers. I write as Masaki Hirokawa (Dolice), an indie developer working since 2014 across a catalog that has now passed 50 million cumulative downloads. The conclusion that shaped this work is simple: the most valuable time an indie developer can reclaim is not judgment time but confirmation time.

What the morning digest does — and what it deliberately does not do

I want to draw the line up front. The morning digest is responsible for compressing the time it takes to confirm five dashboards across six apps. Judgment stays with me. Earlier experiments where I let an LLM auto-reply to App Store reviews led to one warning about policy violations, and that experience pushed me toward a stricter scope. The agent's job is just three things:

  • Aggregate 6 apps × 5 sources = 30 cells per day into one email body
  • Highlight only the values that diverge from baseline (deltas)
  • Surface a short list of "TODO candidates" that need my judgment

Review reply drafting, automated Crashlytics dismissals, and refund decisions are all intentionally left out. My family roots are in carpentry — both of my grandfathers were temple carpenters — and the sense that "working with one's hands is a form of faith" runs underneath this catalog of apps. Delegating the judgment itself would betray that.

Architecture — Cloudflare Workers Cron + Agent SDK + 5 tools

A Cloudflare Workers cron fires at 6:50 JST and starts a Claude Agent SDK session. The agent calls five custom MCP tools in turn, accumulates their results, and finally formats a Markdown body that ships to me via SendGrid. The reason the digest goes to email and not Slack is just that I open Gmail first thing in the morning by habit, and habits matter more than tools when it comes to whether you actually read the digest.

// worker.ts — Cloudflare Workers cron trigger
import { ClaudeAgent } from "@anthropic-ai/agent-sdk";
import { tools } from "./digest-tools";
 
export default {
  async scheduled(event: ScheduledEvent, env: Env) {
    const agent = new ClaudeAgent({
      apiKey: env.ANTHROPIC_API_KEY,
      model: "claude-sonnet-4-6",
      systemPrompt: PERSONA_PROMPT, // static, eligible for prompt caching
      tools,
      maxIterations: 12,
    });
 
    const result = await agent.run({
      task: "Generate today's morning digest and ship it via send_email_digest.",
      metadata: { userId: "masaki", date: today() },
    });
 
    console.log("digest sent:", result.summary);
  },
};

The maxIterations: 12 cap is a safety valve. Early on I left it uncapped, and a day when the AdMob report was late produced an agent loop that retried 30 times before giving up. A fixed ceiling is cheaper than a fancy backoff strategy for a once-a-day cron.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
Concrete architecture (with code) that compresses App Store Connect / Play Console / Crashlytics / AdMob / Gmail into one email
Measured $14.20 monthly API spend with 92.3% prompt-cache hit rate on the static persona portion
Three real failure patterns from 30 days of operation — partial-failure swallow, AdMob 24h lag, and three false alerts — and the guardrails that fixed them
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Claude Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Cowork2026-05-28
Folding AdMob and Crashlytics into One Morning Check via Cowork Scheduled Tasks — Two-Week Notes
I had been checking AdMob fill rates and Crashlytics surges in two separate dashboards each morning. I folded them into a single Cowork scheduled task. Here are my two-week notes, with the numbers and the friction I ran into.
API & SDK2026-07-08
Rolling Out Agent Behavior Changes Gradually with Feature Flags
When an unattended agent changes its prompt or behavior all at once, quiet regressions hide until morning. Here is a design for assigning new behavior to only a fraction of runs, keeping a control group, and adding deterministic bucketing, canary comparison, and automatic rollback.
API & SDK2026-07-05
Fable 5 Is Back Worldwide and Sonnet 5 Is the Default — Where Each of the Three Models Belongs in a Solo Automation Stack
With Fable 5 redeployed worldwide and Sonnet 5 now the default, solo automation suddenly has three capable top-tier models to reach for. Instead of ranking them, this piece assigns each a role and captures that in a policy object with a fallback ladder and run-level logging.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →