Field notes on shipping with AI tools
-
Claude Fable 5.2 in Claude Code: Alias, Effort, Fast Mode
Claude Code 2.1.321 adds Fable 5.2 and points the fable alias at it. What changes for saved Fable 5.1 picks, effort, fast mode pricing, and gateways.
-
Claude Code Auto Mode: The Server Returned No Safety Verdict
Why Claude Code auto mode denies actions with "gave no verdict", what the ten-response stop means, and fixes for gateways, long chats and hooks.
-
Claude Code MCP Tasks: Long Tool Calls in the Background
Since Claude Code 2.1.304 a long MCP tool call can run as a server-side task. When a call qualifies, how to make Claude wait instead, and what survives an exit.
-
Claude Code Hooks: Bash Matchers and the Monitor Tool
Since Claude Code 2.1.314 a Bash-matcher hook also sees Monitor commands, but allow and updatedInput are ignored there. What it means for your policy hooks.
-
Claude Code "Login expired" in Scheduled Runs: Fix It
Why an unattended Claude Code job fails with "Login expired", which credentials never hit it, and how to check expiry before it bites. Checked 2026-11-05.
-
Install Claude Code on a Linux Server: apt, dnf, Pinning
Install Claude Code on a server with apt, dnf or apk, choose the stable or latest channel, stop surprise updates and pin versions. Checked 2026-11-04.
-
Claude Code Fast Mode on Opus 4.8: Removal Date and Fix
Fast mode for Opus 4.8 is removed on November 30, 2026 and the API will reject requests. How to check what you run, switch to Opus 5.5, and what it costs.
-
Claude Code: Block Reads Outside the Working Directory
How Claude Code permissions.blockReadsOutsideWorkingDirectories works: tools it fences, what Bash still does, which directories count, and the new writes key.
-
Claude Code Hooks onFailure: Make a Broken Hook Block
A Claude Code policy hook that crashes, times out or prints bad JSON lets the action through. How onFailure block makes it fail closed, and what it skips.
-
Claude Code Idle Compaction: What It Does and How to Stop It
Claude Code now compacts a long conversation you step away from, about 54 minutes in. When it fires, what skips it, what it saves, and how to turn it off.
-
Claude Opus 5.5 in Claude Code: Defaults, Effort, and Cost
Claude Code 2.1.280 points the opus alias and the default model at Opus 5.5. Measured per-turn cost, the new medium effort default, and how to pin Opus 5.
-
Claude Agent SDK SessionStore: Managed Postgres or Valkey
Managed Postgres or Valkey for a Claude Agent SDK SessionStore on DigitalOcean. Both reference adapters tested: stored bytes, connections, the eviction trap.
-
Claude Code AGENTS.md: When It Loads and When It Doesn't
Claude Code reads AGENTS.md since 2.1.277, unless a CLAUDE.md sits above it or feature flags are off. Eight measured runs, plus the import that always works.
-
Claude Code OpenTelemetry: Test the Export Locally First
What Claude Code sends over OpenTelemetry, measured with a 50-line OTLP receiver and ten headless runs: exit flush, redaction, three silent failure modes.
-
Claude Code MCP Timeout in Headless Runs: 3 Knobs Measured
MCP_TIMEOUT, MCP_TOOL_TIMEOUT and the new CLAUDE_CODE_MCP_STARTUP_WAIT_MS explained and measured against a deliberately slow MCP server under claude -p.
-
Claude Agent SDK SessionStore on DigitalOcean Spaces
Mirror Claude Agent SDK sessions to DigitalOcean Spaces with the reference S3 adapter: tested end to end, with the settings and per-session cost that follow.
-
Claude Agent SDK Hosting: Droplet or App Platform?
Where to host a Claude Agent SDK app on DigitalOcean, a Droplet or App Platform, decided by the SDK's subprocess model, measured memory and disk, and price.
-
Claude Code Plugin Eval: Test a Plugin Against a Baseline
How claude plugin eval works in Claude Code 2.1.269: the case files, six grader types, the no-plugin baseline delta, what a real run costs, and the CI gate.
-
Claude Code Effort Levels: Cost, Caps, and maxEffortLevel
How Claude Code effort levels change token spend, which models support xhigh and max, where /effort saves, and how the new maxEffortLevel setting caps a team.
-
Lovable vs Bolt vs v0: Pricing and Limits Compared
Lovable meters per-task credits, Bolt meters tokens, v0 meters dollars at model rates. Verified 2026 prices, free tiers, hosting, and which fits your app.
-
CodeRabbit vs Claude Code Review: Cost and Coverage
CodeRabbit bills per developer, Anthropic's Code Review bills per review. The break-even math, what each one actually catches, and a cheaper middle path.
-
Claude Code /skill-doctor: Find Unused Skills and Their Cost
What Claude Code /skill-doctor reports, why every installed skill costs context on each turn, the 1% listing budget, and how to prune with skillOverrides.
-
Claude Code Without Permission Prompts: Unattended VPS Setup
How to run Claude Code unattended with --permission-prompts none, auto mode, and the Bash sandbox on a Linux VPS, plus a hardened settings file you can copy.
-
Claude Cowork Skills: Port Your Claude Code SKILL.md Files
Claude Cowork does not read ~/.claude/skills. How to port a Claude Code SKILL.md into Cowork: six allowed frontmatter fields, the 200-character cap, ZIP shape.
-
Claude Code Design Skill: Draft UI Artboards in the CLI
The Claude Code /design skill drafts editable UI artboards as an artifact. What it produces, the plan and version gates, and how to get code from it.
-
Claude Code Self-Hosted Runners: Sizing and Cost Guide
What a Claude Code self-hosted runner needs: host requirements, per-session CPU and memory, the egress allowlist, and how many runners a team must run.
-
Claude Code Status Line: Prompt Cache Fields
The prompt_cache object Claude Code v2.1.251 added to the status line JSON: all twelve fields, what warm and misses really mean, and two tested scripts.
-
Claude Code PreModelSwitch Hook: Block or Confirm /model
How Claude Code's PreModelSwitch and PostModelSwitch hooks work: the input fields, allow/ask/deny decisions, matcher rules, and three tested example scripts.
-
Claude Code Restricted Mode: What --restricted Blocks
What Claude Code's --restricted flag does: the tools it removes, the settings files it ignores, how to hand a tool back with --tools, and when to use it.
-
Claude Code Credential Masking: Keep Secrets Out of Bash
How to keep API keys and tokens out of Claude Code's Bash sandbox: deny vs mask mode, the tlsTerminate requirement, and settings.json examples that work.
-
Claude Code Prompt Caching: What Breaks It and the TTL Fix
How Claude Code prompt caching works, the eight actions that invalidate it, what a miss costs, and the new promptCacheTtl and subagentPromptCacheTtl settings.
-
MCP Server Hosting: 4 Options Compared and Priced
Where to host a remote MCP server: Cloudflare Workers, Vercel, Fly.io, and DigitalOcean priced against what the current stateless spec revision actually needs.
-
Claude Code Auto Mode: A Configuration Guide
Claude Code auto mode explained: the classifier's decision order, what it blocks by default, the autoMode settings block, and fixing Blocked by classifier.
-
Cloudflare Kitesurf vs Chromium: What We Measured
We tested Cloudflare Kitesurf against the default Chromium path on Browser Run: billed browser time, SPA hydration, WebGL, and the actions it rejects.
-
Claude Code Plugin Tutorial: Build One and Share It
A Claude Code plugin tutorial with the exact directory layout, plugin.json fields, a working skill, and the marketplace.json that lets a team install it.
-
Claude Agent SDK vs Cline SDK: Which to Embed in 2026
Claude Agent SDK vs Cline SDK, checked against both projects' docs and npm: licensing, model lock-in, native binary vs pure TypeScript, and who wins.
-
Run Claude Code on a Schedule: 3 Hosts Compared
How to run Claude Code unattended on a schedule: the headless flags that survive cron, and GitHub Actions vs a VPS vs your own machine compared.
-
Lovable vs Claude Code: Which Builds Your App in 2026?
Lovable and Claude Code solve different problems. A verified 2026 comparison: pricing, generated stack, code ownership, and when to use each one.
-
How to Charge for an MCP Server: Two Billing Rails
How to charge for an MCP server: prepaid credits through Stripe, or per-call x402. What the MCP spec says about payments, and the money bugs that bite.
-
Web Page to Markdown API: 6 Options Compared (2026)
We priced six ways to turn a URL into markdown or JSON for an LLM, then ran structured extraction against 12 real pages to see which fields actually fill.
-
OG Image API Comparison: Price and What Renders
We priced six ways to generate Open Graph images and pixel-tested a live endpoint: which CSS lays out, whether linked fonts apply, and whether emoji render.
-
HTML to PDF API Comparison: Price and Print CSS
We priced seven HTML to PDF options per document, ran live requests against ours, and tested which print CSS features headless Chromium actually honors.
-
Screenshot API or Self-Hosted Droplet: Real Costs in 2026
Real 2026 cost math: our screenshot render API versus running headless Chrome on a DigitalOcean droplet, at three volumes from 100 to 50,000 renders a day.
-
Screenshot APIs Without a Subscription, Compared (2026)
Three ways to get a screenshot API without a monthly plan: prepaid credits, usage units, and building on Cloudflare, with pricing verified in 2026.
-
Claude Code Hooks: A Practical Guide
A practical guide to Claude Code hooks. The events worth knowing, exit code semantics, matcher syntax, and working examples you can copy into settings.json.
-
An AI Client Onboarding Workflow for Freelancers
A practical AI workflow for freelancer client onboarding. Six steps from intake form to kickoff, with copy-paste prompts and clear human checkpoints.
-
Claude Code Skills Tutorial: Write Your First SKILL.md
A hands-on Claude Code skills tutorial. Where skill files live, which frontmatter fields matter, and a complete working SKILL.md you can copy today.
-
Claude Code Subagents: A Practical Guide
A practical guide to Claude Code subagents. Where agent files live, every frontmatter field that matters, delegation, and a working example agent.
-
CLAUDE.md Best Practices: What to Put In, What to Leave Out
CLAUDE.md best practices from daily use. File locations and precedence, the under-200-line rule, import syntax, and what belongs in a skill instead.