Better with Kent

Kent C. Dodds

Solo episodes from Kent C. Dodds on durable skills for people who ship software: judgment, accountability, problem clarity, and what stays valuable as AI takes on more implementation. Kent teaches directly on camera — no guest, one idea at a time. Complements guest interviews on Become a Product Engineer (Chats with Kent). Episode 1 adapts The Last Software Engineer; later episodes cover traps like building the wrong thing faster and skills like making user pain visible. Subscribe for evergreen episodes as the series grows.

  1. 4d ago ·  Video

    How to Put Your Codebase on Autopilot

    I shipped 122 PRs in 24 hours straight out of my software factory, mostly while I was doing something else. Here's the system that lets agents file their own friction, make good PRs, catch their own mistakes, and keep the blast radius small. Here's what 122 PRs in one day looks like: https://github.com/kentcdodds/kody/releases/tag/v2026.10.11 (00:00) - 122 PRs in 24 hours (00:17) - Agent-filed friction, agent-shipped fix (00:51) - Agents work around friction (01:41) - The ship PR skill files friction (02:43) - Lauren Tan: 2,500 PRs a month (03:43) - Three pillars of confidence (04:19) - Sponsor: Devin (05:35) - Good PRs: decisions directory (06:06) - Primitives catalog (07:11) - control Kody CLI for self-verification (08:24) - System recap on every PR (09:24) - Catch mistakes: the ship PR package (10:00) - AI reviewers: Bugbot, CodeRabbit, Devin (11:07) - Merge, watch deploy, Discord report (12:19) - Limit blast radius: feature flags (13:46) - Disaster recovery (14:33) - Cleanup: agents don't love deleting code (15:28) - Dogfooding and product decisions (16:31) - Pipe signals in: Sentry, errors, feedback (18:00) - Nightly and weekly agents (18:35) - Recap Better with Kent - durable skills for people who ship software. Thank you to Devin (Cognition) for sponsoring this episode: https://10xn.link/kcd-cognition Agents don't fix friction. They work around it, and those workarounds compound across every agent touching your codebase. The fix is to turn your agents into complainers: the ship PR skill ends every merge by filing friction, and other agents come through and fix it - sometimes while you sleep. Kent walks the three pillars that make that safe: (1) good PRs in the first place (a decisions directory, a primitives catalog, the control Kody CLI for self-verification, and a system recap on every PR), (2) catch mistakes before prod (the ship PR package, CI, CodeRabbit, Cursor Bugbot, Devin AI review, preview deploys), and (3) limit the blast radius (feature flags with success metrics, disaster recovery with restore tests). Then cleanup, dogfooding, and signal pipelines from Sentry, runtime errors, user feedback, and nightly/weekly agents. Agents handle polish, code quality, and implementation. The product vision stays with you. Links Devin (sponsor)KodyBetter with Kent

    How to Put Your Codebase on Autopilot
  2. Oct 6 ·  Video

    Steal My App (I'll Show You How)

    Self-hosting Kody off Cloudflare used to sound thermonuclear. Deno Celld changed the math — and Kent's Grok bot handed the experiment to Devin. Then docker compose up actually worked. (00:00) - Cold open: Kody running in Docker (00:10) - Better with Kent (00:16) - Self-hosted Kody is real — here's the path (00:58) - Ask: self-host Kody off Cloudflare (01:10) - Clarify: Kody, not Jev (01:42) - Thermonuclear — tied to Cloudflare (02:02) - Own Cloudflare account is fine under OSS (02:33) - Deno Celld — hard, not thermonuclear (04:23) - Revised difficulty: hard is OK for agents (04:37) - Hand the experiment to Devin via Kody (06:16) - Devin launches on Ultra (06:46) - Prompt, auth gaps, and Kody unsticks Devin (08:15) - Inspect the Celld repo and fill gaps (08:57) - Ship-PR loop until main is green (10:41) - Rebuild the UI to match official Kody (12:38) - Make it tryable: public image + README (14:09) - Follow the README ourselves (14:56) - docker compose up — it works (15:27) - Create account on localhost:8080 (16:33) - Connect Cursor MCP (and fix public URL) (17:45) - Connected — memory + dad-joke package (19:23) - Success: first run without reading the code (20:02) - What's still missing — contribute if you care (20:56) - Homework: self-host or use kody.codes (21:24) - Close Better with Kent - durable skills for people who ship software. Kent asks his Grok bot how hard it is to self-host Kody off Cloudflare. First answer: thermonuclear rewrite. Then Deno Celld (Workers + Durable Objects on your machines, S3-compatible state) revises that to hard — and hard is fine when you hand it to an agent. Kody briefs Devin Cloud to build a Celld-based self-hosted Kody. Auth hiccups, gap fills, ship-PR loops, GHCR image, from-zero smoke. Kent follows the README, docker compose up, creates an account, connects Cursor MCP, saves a memory, and ships a dad-joke package — first run without looking at the code. Homework: if you want self-hosted Kody, contribute. If not, use kody.codes and let hosted handle the edge. Links KodyBetter with Kent

    Steal My App (I'll Show You How)
  3. Sep 15 ·  Video

    Make your agent safe and autonomous

    Gmail has no drafts-only OAuth scope. If an agent can draft, it can send. Two Kody locks make drafts-never-send actually true. (00:00) - Cold open: agent sent email without review (00:52) - Better with Kent (01:25) - PocketOS: overscoped token callback (02:20) - Gmail has no drafts-only scope (02:46) - Two locks: token + package (03:40) - Elephant: your current Gmail plugin (05:47) - Ask the agent / paste the guide (07:17) - Google Cloud OAuth client (13:03) - Connect Google to Kody (15:38) - Smoke-test draft (no send) (16:56) - Save and lock the drafts package (19:16) - Pin the Google token in Integrations (19:47) - Browse the locked package files (20:35) - Verify: execute blocked + promote (22:52) - Close: lock the grant (23:49) - Homework: .env God-tokens Better with Kent - durable skills for people who ship software. Gmail has no drafts-only OAuth scope. gmail.compose can draft and send. If an agent can draft, it can send - unless you put a real grant in front of the token. Kent walks the locked-gmail-drafts path on Kody: smoke-test a draft with the coarse Google token, then save a thin drafts-only package, lock that package so it cannot grow send without a promoted commit, and pin the Google connection so ad hoc execute cannot call it. Two locks. The Google token stays coarse; the pair is the grant Google will not issue. Homework: open your .env, look at the God-tokens your agent can slurp, and put them behind a grant the agent cannot widen. Kody is one way. The skill is the grant, not the product. Guides: https://kody.codes/guides/locked-gmail-drafts and https://kody.codes/guides/google Links Locked Gmail drafts guideGoogle connectKodyBetter with Kent

    Make your agent safe and autonomous
  4. Sep 8 ·  Video

    Introducing Kody: Your Personal Software Factory

    You already paid an agent to figure it out. Tomorrow you ask again. Kody turns the good answer into a package you keep, so any agent can run it forever. (00:00) - You ask again (00:22) - What if you only had to ask once? (00:43) - A personal software factory (01:05) - Then it keeps running (01:25) - Still running (01:50) - Not another agent (02:06) - Secrets stay in Kody (02:36) - Say it once, run it forever Better with Kent - durable skills for people who ship software. You ask your agent to do something. It figures it out eventually. Tomorrow you ask again. New chat, new agent, new device. You didn't keep it. You just paid for the agent to do it again. What if you only had to ask once? Kody is not another AI agent. You've already got one of those. Probably several. Kody is what the agent reaches for when the work shouldn't disappear when the conversation ends. Your agent figures something out once. Kody saves it as a package: real code you own. Think of it as your own mini GitHub and npm. Then it runs on a schedule, a webhook, a tap on a phone. No model in the loop. Faster, cheaper, safer. And it keeps running in the cloud when your laptop is sleeping or dead. Secrets stay in Kody. The agent stays blind. Packages can lock so an agent cannot go rogue and delete your email. Use the agents you love. The personal software they wrote comes with you to all of them. Say it once. Run it forever. For all the agents you use today and the ones you'll use tomorrow. Give your agents a home for free at https://kody.codes Source is on GitHub. Go give it a star. Related: How Kody Gives Your Agents a Shared Home - https://www.youtube.com/watch?v=h5G8uaZHrVI Links KodyKody on GitHubHow Kody worksHow Kody Gives Your Agents a Shared Home (ep 22)Better with Kent

    Introducing Kody: Your Personal Software Factory
  5. Aug 27 ·  Video

    How Kody Gives Your Agents a Shared Home

    You already pay for more than one agent. Give them a shared home so Cursor, Grok, and Devin share software, memories, and tasks instead of starting from zero every chat. (00:00) - Meet Kody (00:22) - Better with Kent (00:46) - How Kody works (01:08) - Cursor asks what the bot shipped (01:40) - Search, conversation ID, memories (03:03) - Execute + secrets stay in Kody (04:35) - Code mode: only the answer comes back (05:45) - Save it as a package (07:23) - Grok reuses the package (09:16) - Devin: tell me when it ships (11:36) - What the agents wrote (13:15) - Any agent can run it (13:52) - Early-access invite (14:28) - Close: give agents a home Better with Kent - durable skills for people who ship software. You probably subscribe to more than one agent. Cursor on the laptop. Grok on a walk. Devin when you want something watched overnight. Each one starts from a blank context window. None of them share the software, memories, or secrets you already built in the last one. Kody is that shared home. Kent walks the How Kody Works page end to end. Cursor does not know the favorite bot, so it searches Kody, picks up memories plus a githubAccessToken secret it never actually sees, and runs the fetch in an isolate. Code mode returns only the answer you asked for, type-checked. Then it saves the work as a package: @u/kodybot what-shipped. Grok reuses that package from a phone with no rewrite. Devin cannot hang a webhook on someone else's GitHub activity, so it adds a morning job and a daily digest email instead. The files look like normal package.json plus kody.jobs, a README intent, and JSDoc the next agent can search. Secrets stay in Kody. Packages can lock a secret so only that package can use it. You can edit a package from a phone with no local git because the agent opens a repo session that simulates git. You do not have to install Kody to take the skill. Agents leapfrog each other. Give them a place to share software, ideas, memories, and tasks so you can switch freely. Early access invite code: YOUTUBE-FRIEND Redeem it at https://kody.codes/signup?utm_source=youtube&utm_medium=video&utm_campaign=bwk-shared-home&utm_content=signup Related (context only): I built my own OpenClaw - https://www.youtube.com/watch?v=TnztlHzhYvk Links KodyEarly access signup (code YOUTUBE-FRIEND)How Kody worksKody on GitHubI built my own OpenClaw (ep 06)Better with Kent

    How Kody Gives Your Agents a Shared Home
  6. Aug 25 ·  Video

    Turn your agent on auto-pilot with ADRs

    New agent chats keep asking product questions you already answered. Write short ADRs so the next agent opens the no instead of making you the memory. (00:00) - Fill the agent's mind (00:36) - Better with Kent (00:46) - The problem: decisions die in chat (02:06) - The solution is ADRs (03:06) - Epic Stack + Remix origin (03:32) - Template + AGENTS.md pointer (04:21) - What to write ADRs about (05:22) - Cameron - 0001 + 0006 (06:59) - Darren - wait on skills / 0015 (07:54) - One-off hooks - 0021 (08:50) - Persistent services - the missing no (11:13) - Don't write diaries or an ADR per PR (11:45) - Homework - three declined decisions (12:33) - Close Better with Kent - durable skills for people who ship software. Every new agent conversation starts from zero. Last week's product decision lives in a chat nobody will reopen. You become the memory. That does not scale. The old fix still works: architecture decision records. An ADR is a short record of a decision already made. Context, decision, consequences, and a revisit-if. Put them in docs/decisions/. Point AGENTS.md at the folder so the agent checks before it proposes a new primitive or surface. They are not set in stone. They give the next agent a starting place so it does not re-decide, re-ask, or plow into a direction you already refused. Kent walks real Kody receipts. Cameron's call became 0001 (no package versioning) and 0006 (no repo CI primitive). Darren's call became 0015 (wait on skills over MCP). A late-night one-off hooks idea became 0021: talk first, stay in packages. Then the missing no: persistent services kept getting defended because there was no written decision. After the back-and-forth, the primitive was deleted in kody#1552 and 0025 was written. Write the no before the next agent. Do not write essays nobody opens, UI diaries, or an ADR on every PR. Ten seconds on the trap, then homework. Homework: create docs/decisions/ this week. Write three declined decisions you already made. Link the folder from AGENTS.md. Agents will start asking whether the thing you just discussed should be an ADR. Links Episode slidesADR template (sample)Nygard: Documenting Architecture DecisionsKody AGENTS.mdKody decision recordsKody ADR template0001: no package versioning0006: no repo CI primitive0015: wait on skills over MCP0021: publish-gated package composition0025: no package services primitivekody#1552 (removed package services)Better with Kent

    Turn your agent on auto-pilot with ADRs
  7. Aug 20 ·  Video

    Here's how the new MCP spec works

    MCP is stateless now. Any instance can answer a tool call. Kent walks the 2026-07-28 release: sticky sessions vs a normal load balancer, CIMD vs DCR, multi-round-trip elicitations, and how to run both lanes until the metrics say you can drop the old one. (00:00) - They fixed MCP (01:13) - Better with Kent (01:37) - Cloudflare + the dual-lane upgrade (03:13) - MCP is now a stateless protocol (03:25) - Sticky sessions vs any instance (06:20) - Self-describing requests and headers (07:17) - What else shipped (08:24) - Formal deprecation policy (10:05) - Roots, sampling, logging, SSE (11:58) - Client ID metadata documents (12:38) - How DCR used to work (14:15) - Unbounded client registrations (15:59) - The client ID is a URL (18:33) - Multi-round-trip requests (22:17) - Dual-lane until the metrics say so (23:54) - Homework: instrument old cruft Better with Kent - durable skills for people who ship software. They fixed MCP. The people who called it a bad protocol have less of an excuse now. The 2026-07-28 spec is the biggest change since the beginning, and the headline is that MCP is a stateless protocol. Kent walks the before-and-after. The old world needed a sticky session on one instance behind the load balancer. If that instance fell over, the client was stuck. The new world is ordinary HTTP: any instance can serve the request. App state can still live in a database. The transport session is what died. That unlocks the rest of the release. Requests are self-describing. Method and tool names travel in Mcp-Method and Mcp-Name headers, so a gateway can route without reading the body. Multi-round-trip requests replace held-open SSE for elicitations: the server returns the input it needs, the connection closes, and the client can come back days later on any instance. List responses are cacheable. Extensions are formal now (MCP Apps, Tasks). DCR is deprecated in favor of Client ID Metadata Documents: the client_id is an HTTPS URL, trust is ownership of the domain, and you stop minting an unbounded registration record per reconnect. Kent's own early Kody numbers: about 125 DCR registrations per user. There is a formal 12-month deprecation window. Roots, sampling, logging, and HTTP+SSE are on the way out. Kent is glad Roots is gone, a little sad about sampling, and fine with streaming replacing SSE. The receipt is a dual-lane /mcp: Cloudflare's Agents SDK classifies isLegacyRequest, the new spec already shows up from Claude Code, and weekly agents watch the metrics. Homework is the durable move: instrument your old cruft so data, not a calendar, tells you when it is safe to remove. Links MCP 2026-07-28 release postMCP 2026-07-28 changelogCloudflare: the next generation of MCPCIMD (client.dev)Kody dual-lane MCP PREpisode slidesBetter with Kent

    Here's how the new MCP spec works

About

Solo episodes from Kent C. Dodds on durable skills for people who ship software: judgment, accountability, problem clarity, and what stays valuable as AI takes on more implementation. Kent teaches directly on camera — no guest, one idea at a time. Complements guest interviews on Become a Product Engineer (Chats with Kent). Episode 1 adapts The Last Software Engineer; later episodes cover traps like building the wrong thing faster and skills like making user pain visible. Subscribe for evergreen episodes as the series grows.

You Might Also Like