<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Dev Shorts]]></title><description><![CDATA[A newsletter about developers and open source]]></description><link>https://www.devshorts.in</link><image><url>https://substackcdn.com/image/fetch/$s_!c2er!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2Fb5d87ed5-d2dc-4e24-937f-a69cd15aee86_1280x1280.png</url><title>Dev Shorts</title><link>https://www.devshorts.in</link></image><generator>Substack</generator><lastBuildDate>Sun, 14 Jun 2026 02:00:30 GMT</lastBuildDate><atom:link href="https://www.devshorts.in/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Aravind Putrevu]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[devshorts@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[devshorts@substack.com]]></itunes:email><itunes:name><![CDATA[Aravind Putrevu]]></itunes:name></itunes:owner><itunes:author><![CDATA[Aravind Putrevu]]></itunes:author><googleplay:owner><![CDATA[devshorts@substack.com]]></googleplay:owner><googleplay:email><![CDATA[devshorts@substack.com]]></googleplay:email><googleplay:author><![CDATA[Aravind Putrevu]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[[Dev Catch Up # 112] - Claude Fable 5 and Mythos 5, Gemini 3.5 Live Translate, Kimi Work, DiffusionGemma, Apple's Core AI, Harness Engineering, Xiaomi's MiMoCode, Herdr - Agent Multiplexer and more! ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 12 Jun 2026 12:30:46 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/fbbc68b4-56f7-48d1-adc7-3de4eebcb075_3200x2133.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 112th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/claude-certified-architect-foundations">Claude Certified Architect Foundations: The Complete Guide - Part 1</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-certified-architect-foundations-fe5">Claude Certified Architect Foundations: The Complete Guide - Part 2</a></p></li><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li></ul><p>Join 8900+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://www.anthropic.com/news/claude-fable-5-mythos-5">Anthropic has released Claude Fable 5 and Mythos 5</a>. Fable 5 brings the Mythos model family to general users, but with stricter safeguards. For safety, some sensitive requests are routed to Claude Opus 4.8 instead. Mythos 5 is for trusted users who need more flexibility in areas like cybersecurity. Check Anthropic&#8217;s post for more details.</p></li><li><p><a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-live-3-5-translate">Google has released Gemini 3.5 Live Translate</a>. It is a new audio model for live speech to speech translation. It can detect more than 70 languages and translate speech while keeping the speaker&#8217;s tone, pace, and pitch. Check Google&#8217;s post for more details.</p></li><li><p><a href="https://www.kimi.com/products/kimi-work">Kimi has launched Kimi Work</a>, a local desktop AI agent for everyday work. It can connect to your local files and use the browser for tasks. It can also run scheduled tasks and coordinate multiple agents for larger work. Check Kimi&#8217;s page for more details.</p></li><li><p><a href="https://blog.google/innovation-and-ai/technology/developers-tools/diffusion-gemma-faster-text-generation/">Google has released DiffusionGemma</a>. It is an experimental open model built for faster text generation. It uses diffusion method, which creates blocks of content at once instead of going token by token. Google says it can run up to 4x faster on dedicated GPUs. Check Google&#8217;s post for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/ogulcancelik/herdr">This week we are featuring Herdr</a>. It is a terminal based agent multiplexer for running multiple coding agents. You can organize agents in workspaces, tabs, and panes. It also shows whether agents are blocked, working, or done. It supports detach and reattach, so agents can keep running in the background. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6lVg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6lVg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 424w, https://substackcdn.com/image/fetch/$s_!6lVg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 848w, https://substackcdn.com/image/fetch/$s_!6lVg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 1272w, https://substackcdn.com/image/fetch/$s_!6lVg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6lVg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png" width="1456" height="754" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:754,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:172594,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/201552441?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6lVg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 424w, https://substackcdn.com/image/fetch/$s_!6lVg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 848w, https://substackcdn.com/image/fetch/$s_!6lVg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 1272w, https://substackcdn.com/image/fetch/$s_!6lVg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffff9833d-6c87-4c81-8802-a45a5a08fe1a_1762x912.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p>Anthropic has changed how Claude Code billing works after June 15. If you are not sure whether to use Pro, Max, API credits, or Codex, this <a href="https://findskill.ai/blog/claude-code-pricing-after-june-15-decision-table/">pricing breakdown</a> is useful. It explains what is still covered by your Claude plan and what now needs separate credits. Check FindSkill&#8217;s post for more details.</p></li><li><p><a href="https://x.com/ChatGPTapp/status/2064018770839113769">ChatGPT can now generate charts directly inside the chat</a>. You can ask it to turn data or comparisons into simple visuals. The feature is available now on mobile and web. Check ChatGPT&#8217;s post for more details.</p></li><li><p>If you are trying to learn <a href="https://walkinglabs.github.io/learn-harness-engineering/en/">Agent Harness</a>, this course is a good starting point. It explains why AI coding agents fail and how harnesses make them more reliable. It covers rules, state management, testing, observability, and clean handoffs. Check the Harness Engineering course for more details.</p></li><li><p><a href="https://x.com/addyosmani/status/2064127981161959567">Loop Engineering is becoming popular for AI coding agents</a>. Instead of prompting agents step by step, the idea is to design loops that guide the work for them. These loops can use automations, worktrees, skills, connectors, subagents, and memory. Check Addy&#8217;s post for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://github.com/XiaomiMiMo/MiMo-Code">Xiaomi has released MiMoCode, an open source AI coding agent</a> for the terminal. It can read and write code, run commands, manage Git, and keep project memory across sessions. It also supports multiple agents, subagents, MCP, and custom model providers. Check the GitHub repo for more details.</p></li><li><p><a href="https://cohere.com/blog/north-mini-code">Cohere has released North Mini Code</a>. It is Cohere&#8217;s first model built for developers. The open source MoE coding model has 30B total parameters, with 3B active. It is built for agentic software engineering. Check Cohere&#8217;s post for more details.</p></li><li><p>We all use AI tools and know they can consume a lot of tokens. <a href="https://github.com/chopratejas/headroom">Headroom is a context compression layer for AI agents</a>. It compresses tool outputs, logs, files, and RAG chunks before they reach the LLM. The repo says it can reduce tokens by 60 to 95 percent. Check the GitHub repo for more details.</p></li><li><p><a href="https://cognition.ai/blog/frontier-code">Cognition has introduced FrontierCode, a new benchmark for coding agents.</a> It checks whether AI generated code is good enough to merge into real production codebases. The benchmark looks beyond correctness and checks tests, scope, style, maintainability, and code quality. Check Cognition&#8217;s post for more details.</p></li><li><p><a href="https://developer.apple.com/documentation/coreai">Apple has introduced Core AI for developers</a>. It lets developers run AI models on Apple silicon. It also includes tools for model preparation, debugging, and inference performance. Check Apple&#8217;s documentation for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-112-claude-fable-5-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 111] - MAI Models, Hermes Desktop, Gemma 4, Qwen3.7 Plus, MiniMax M3, Claude Code's dynamic workflows, OpenAI models on AWS, Trackio-wandb alternative, Meta Business Agent and more! ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-111-mai-models-hermes</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-111-mai-models-hermes</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 05 Jun 2026 13:02:58 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7f538340-b189-47c6-a55d-66c2eb01ae66_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 111th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/claude-certified-architect-foundations">Claude Certified Architect Foundations: The Complete Guide - Part 1</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-certified-architect-foundations-fe5">Claude Certified Architect Foundations: The Complete Guide - Part 2</a></p></li><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li></ul><p>Join 8900+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://x.com/microsoftai/status/2061887500541366489">Microsoft AI has launched seven models</a>. The new family covers reasoning, code, image, transcription, and voice. Among them, <a href="https://microsoft.ai/wp-content/uploads/2026/06/main_20260602_2.pdf">MAI Thinking 1</a> is a reasoning model trained from scratch for STEM reasoning and coding tasks. Check Microsoft&#8217;s post for more details.</p></li><li><p><a href="https://hermes-agent.nousresearch.com/desktop">Hermes Agent now has a native desktop app</a>. It brings Hermes Agent to a simple desktop app, without needing the terminal. Users still get the same agent, memory, and skills. Check the Hermes Desktop page for download details.</p></li><li><p><a href="https://blog.google/innovation-and-ai/technology/developers-tools/introducing-gemma-4-12B/">Google has released Gemma 4 12B</a>. It is an open weight model built for agentic workflows. It supports text, vision, and native audio inputs. It is laptop ready and can run locally with 16GB memory. Check Google&#8217;s post for more details.</p></li><li><p><a href="https://research.nvidia.com/labs/nemotron/Nemotron-3-Ultra/">NVIDIA has released Nemotron 3 Ultra</a>. It is their most capable Nemotron model so far. It supports up to 1M context and gives better control over reasoning during inference. NVIDIA is also releasing the model checkpoints, training datasets, and recipes. Check NVIDIA&#8217;s post for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/0-AI-UG/cate">This week we are featuring Cate</a>. It is an infinite zoomable canvas for coding. You can keep your editor, terminal, browser, docs, and AI agents in one workspace. It helps you work on a project without switching between too many windows. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!K47l!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!K47l!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 424w, https://substackcdn.com/image/fetch/$s_!K47l!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 848w, https://substackcdn.com/image/fetch/$s_!K47l!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 1272w, https://substackcdn.com/image/fetch/$s_!K47l!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!K47l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png" width="1456" height="1059" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1059,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:915760,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/200415833?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!K47l!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 424w, https://substackcdn.com/image/fetch/$s_!K47l!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 848w, https://substackcdn.com/image/fetch/$s_!K47l!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 1272w, https://substackcdn.com/image/fetch/$s_!K47l!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8377cf81-710b-4a62-b176-65db23a1994d_1652x1202.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://openai.com/index/codex-for-every-role-tool-workflow/">OpenAI is taking Codex beyond coding.</a> Sites are a new canvas where Codex can turn ideas into dashboards. They also shipped plugins for areas like sales, product design, analytics, and finance. Each plugin brings the needed apps, skills, instructions, and workflows together. Check OpenAI&#8217;s Codex post for more details.</p></li><li><p><a href="https://www.anthropic.com/news/claude-opus-4-8">Anthropic released Claude Opus 4.8 last week</a>. Whenever an Opus model gets released, expectations are usually high. Opus 4.8 brings better coding performance, effort control, cheaper Fast mode, and parallel subagents in Claude Code. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://about.fb.com/news/2026/06/meta-business-agent/">Meta has introduced Meta Business Agent</a>. It helps businesses handle customer conversations on WhatsApp, Messenger, and Instagram. It can answer questions, suggest products, and book appointments. It uses AI to give more personalized support to customers. Check Meta&#8217;s post for more details.</p></li><li><p><a href="https://x.com/eastdakota/status/2062212701414187452">Cloudflare cofounder Matthew Prince says bot traffic has now crossed human traffic on the internet</a>. He says this happened faster than he expected because agentic traffic is growing quickly. This shows how AI agents are starting to change web traffic. Check the post for more details.</p></li><li><p><a href="https://x.com/grok/status/2062225080843747351">xAI has rolled out Grok Imagine 1.5 Preview</a>. It is the latest image and video generation model from xAI. It supports up to 2K image output, 10 images per request, and videos up to 15 seconds. Check xAI&#8217;s Imagine API page for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://claude.com/blog/a-harness-for-every-task-dynamic-workflows-in-claude-code">Anthropic released dynamic workflows in Claude Code</a>. Claude can now write its own harness on the fly for complex tasks. Since dynamic workflows may use more tokens, it is better to use them only when needed. Check Anthropic&#8217;s blog for example prompts and more details.</p></li><li><p><a href="https://qwen.ai/blog?id=qwen3.7-plus">Qwen has released Qwen3.7 Plus</a>. It is their latest multimodal agentic model. It is built for agentic tasks like screen understanding, GUI tasks, and browser workflows. It can also navigate mobile apps and complete tasks. Check Qwen&#8217;s post for more details.</p></li><li><p><a href="https://www.minimax.io/blog/minimax-m3">MiniMax has released MiniMax M3</a>. It is an open weight model built for coding and agentic tasks. It supports image and video input, computer use, and 1M context. MiniMax says it is the first open weight model to bring all these together. Check MiniMax&#8217;s M3 post for more details.</p></li><li><p><a href="https://huggingface.co/nvidia/Cosmos3-Super-Text2Image">NVIDIA has released the open weight Cosmos3 model</a>. It is a collection of world models built for Physical AI. It can be used for robotics, autonomous vehicles, and smart spaces. Check the Hugging Face model card for more details.</p></li><li><p><a href="https://github.com/gradio-app/trackio">Hugging Face has open sourced Trackio</a>. It is a simple alternative to Weights and Biases. You can run it locally and track your experiments without setting up a hosted tool. Check the GitHub repo for more details.</p></li><li><p><a href="https://openai.com/index/openai-on-aws/">OpenAI models, Codex, and Managed Agents are now available on AWS.</a> AWS customers can use OpenAI models through Amazon Bedrock. This makes it easier for enterprises to use OpenAI inside their existing AWS setup. Check OpenAI&#8217;s post for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-111-mai-models-hermes?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-111-mai-models-hermes?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-111-mai-models-hermes?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Claude Certified Architect Foundations: The Complete Guide - Part 2]]></title><description><![CDATA[CCA-F exam prep - domains, code examples, and practice questions. All in one place.]]></description><link>https://www.devshorts.in/p/claude-certified-architect-foundations-fe5</link><guid isPermaLink="false">https://www.devshorts.in/p/claude-certified-architect-foundations-fe5</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Wed, 20 May 2026 14:37:26 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/b4309678-ec02-456d-94a8-2e2e11a4c5b0_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We started this guide with <a href="https://devshorts.substack.com/p/claude-certified-architect-foundations">Part 1</a>. We covered agentic architecture, MCP integration, and Claude Code configuration. If you have not read part 1 yet, start there.</p><p>This part covers the remaining domains and how to register for the exam. Here is what we will cover.</p><ol><li><p>Prompt Engineering &amp; Structured Output</p></li><li><p>Context Management &amp; Reliability</p></li><li><p>How to register for the exam</p></li></ol><p>I have also added more practice questions to the <a href="https://github.com/devgotomarket/cca-prep">CCAF GitHub repo</a>. Six sets now, covering all domains.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>1. Prompt Engineering &amp; Structured Output</strong></h2><ul><li><p>Explicit Criteria</p></li><li><p>Few-shot Prompting</p></li><li><p>Structured Output</p></li><li><p>Validation-Retry Loops</p></li><li><p>Multi-pass Review</p></li><li><p>Schema Design</p></li></ul><h4><strong>Explicit Criteria</strong></h4><p>We have to give exact instructions to Claude instead of vague conditions. This is called <a href="https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices#be-clear-and-direct">explicit criteria</a>. Telling Claude like &#8220;be careful&#8221; or &#8220;report high security issues&#8221; does not work. Claude does not know what that means in practice. </p><p>Tell Claude exactly what to do and what not to do. When you are more specific, Claude makes fewer mistakes.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;5e504cea-e6ff-4980-8254-81bbe5009f51&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Bad &#8212; vague, 
system_prompt = """
Review this code and flag any security issues.
Only report high confidence findings.
"""

# Good &#8212; categorical, Claude knows exactly what to flag
system_prompt = """
Review this code for security issues.
Flag a finding ONLY when:
- User input is passed directly to a SQL query without parameterization
- A secret or API key is hardcoded as a string literal
- User-supplied data is rendered in HTML without escaping

Do not flag theoretical risks or best practice suggestions.
"""</code></pre></div><h4><strong>Few-shot Prompting</strong></h4><p>Give Claude examples before asking it to do the task. This is called <a href="https://platform.claude.com/docs/en/build-with-claude/prompt-engineering/claude-prompting-best-practices#use-examples-effectively">few-shot prompting</a>. Two to four examples is enough. More than that wastes tokens.</p><p>One thing to keep in mind. Few-shot prompting is probabilistic. Claude will follow the examples most of the time but not always. If you want something to run without fail, put it in a hook.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;a4be0fbb-d757-49f1-a7e2-ccbe69e60f32&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">system_prompt = """
Extract the customer name and order ID from the message below.

Example 1:
Message: "Hi, I am John and my order 1234 has not arrived."
Output: {"name": "John", "order_id": "1234"}

Example 2:
Message: "This is Sarah. Order #5678 is damaged."
Output: {"name": "Sarah", "order_id": "5678"}

Now extract from this message:
"""</code></pre></div><h4><strong>Structured Output</strong></h4><p>If you ask Claude to &#8220;output as JSON&#8221; in the prompt, it will try. But it is not guaranteed. <a href="https://platform.claude.com/docs/en/build-with-claude/structured-outputs">The reliable way is to use structured outputs.</a></p><p><strong><a href="https://platform.claude.com/docs/en/build-with-claude/structured-outputs#json-outputs">Method 1 &#8212; JSON outputs</a></strong></p><ul><li><p>Define the schema in <code>output_config</code> of the <code>client.messages.create()</code> call.</p></li><li><p>Claude returns the answer as JSON text in <code>response.content[0].text.</code></p></li><li><p>Parse it with <code>json.loads()</code> to get the data.</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;52bacdb3-edf2-4c37-b406-6263f8a2b0b6&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Extract order details from: John's order 1234 is missing"}],
    output_config={ # tells Claude to return structured JSON
        "format": {
            "type": "json_schema",
            "schema": {
                "type": "object",
                "properties": {
                    "customer_name": {"type": "string"},
                    "order_id": {"type": "string"},
                    "issue": {"type": "string"}
                },
                "required": ["customer_name", "order_id", "issue"]
            }
        }
    }
)
# Claude returns guaranteed JSON in content[0].text
result = json.loads(response.content[0].text)
# {"customer_name": "John", "order_id": "1234", "issue": "missing"}</code></pre></div><p><strong><a href="https://platform.claude.com/docs/en/build-with-claude/structured-outputs#strict-tool-use">Method 2 &#8212; Strict tool use</a></strong></p><p>This method is used to pass structured input to your tools with guaranteed schema compliance. </p><p>When Claude calls a tool in an agentic workflow, it passes parameters to that tool. Without strict mode, those parameters may not match your schema exactly. With <code>strict: True</code> on the tool definition, Claude is forced to pass parameters that exactly match your <code>input_schema</code>. The structured data Claude fills in is available in <code>block.input</code> on the tool call response.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;ce56c18b-8959-4557-92f6-b066eeeae62d&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">tools = [{
    "name": "extract_order",
    "description": "Extract order details",
    "strict": True,          # Claude must fill in all fields exactly as defined
    "input_schema": {
        "type": "object",
        "properties": {
            "customer_name": {"type": "string"},
            "order_id": {"type": "string"},
            "issue": {"type": "string"}
        },
        "required": ["customer_name", "order_id", "issue"]
    }
}]

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=tools,
    tool_choice={"type": "tool", "name": "extract_order"},  # force Claude to call this tool
    messages=[{"role": "user", "content": "John's order 1234 is missing"}]
)

for block in response.content:
    if block.type == "tool_use":
        print(block.input)   # structured data Claude filled in
        # {"customer_name": "John", "order_id": "1234", "issue": "missing"}</code></pre></div><h4><strong>Validation-Retry Loops</strong></h4><p>Structured output guarantees the structure. It does not guarantee the values are correct. This is where the validation-retry loop comes in. When Claude returns wrong values, you send the error back with specific details about what went wrong. Claude fixes it and tries again.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;8cc35597-9251-4e3e-a5de-ab1d1acf569c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">
MAX_RETRIES = 3
for attempt in range(MAX_RETRIES):
    response = client.messages.create(
        model="claude-sonnet-4-6",
        max_tokens=1024,
        tools=tools,
        tool_choice={"type": "tool", "name": "extract_order"},
        messages=messages
    )

    for block in response.content:
        if block.type == "tool_use":
            result = block.input

            # Validate the result
            if not result.get("order_id").startswith("ORD-"):
                # Send specific error back &#8212; not a generic "try again"
                messages.append({"role": "assistant", "content": response.content})
                messages.append({"role": "user", "content": [{
                    "type": "tool_result",
                    "tool_use_id": block.id,
                    "content": "order_id must start with ORD-. You returned: " + result["order_id"]
                }]})
                break  # go to next attempt

            return result  # valid &#8212; done

raise RuntimeError("Failed to get valid output after max retries")</code></pre></div><blockquote><p>Always send specific error details. Tell Claude which field failed and what you expected. A generic "try again" does not give Claude enough context to fix the issue.</p></blockquote><p>Retry loops fix format errors. But if the data is simply not there in the source, retrying will not help. Claude cannot return something that does not exist.</p><h4>Multi-pass Review</h4><p>When Claude generates something and then reviews it in the same session, it already knows how it was built. It will miss its own mistakes. That is the problem with self-review.</p><p>Multi-pass review fixes this. You use a separate Claude session to review the output. The reviewer session has no memory of how the output was generated. It looks at the result with fresh eyes.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;3507f1cc-b960-4dc1-90c9-92725184b20c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Pass 1 &#8212; generate the code
generation_response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    messages=[{"role": "user", "content": "Write a FastAPI endpoint for processing refunds"}]
)
generated_code = generation_response.content[0].text

# Pass 2 &#8212; review in a separate session
review_response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": f"Review this code for security vulnerabilities:\n\n{generated_code}"}]
)</code></pre></div><blockquote><p>Never use the same session for generation and review. Always use a separate session.</p></blockquote><h4><strong>Schema Design</strong></h4><p>When you define a JSON schema for structured output, each field tells Claude what to extract and in what format. One of those fields can be an enum.  It is a fixed list of allowed values.  For example, if you have an <code>issue</code> field you can restrict it to <code>"missing"</code>, <code>"damaged"</code>, or <code>"wrong_item"</code>, you define it as an enum. Claude can only pick from that list.</p><p>Three things to know in Schema Design:</p><p><strong>Enums</strong> - always add <code>"other"</code> to the list. If Claude sees something that does not fit any of the defined values, it will pick the closest one instead of telling you it does not know. With <code>"other"</code> in the list, Claude has a safe option to fall back to.</p><p><strong>Nullable fields</strong> &#8212; if a field may not always be present, use <code>["string", "null"]</code> instead of <code>"string"</code>. Never mark optional fields as required. Claude will make up a value just to fill it.</p><p><strong>Flat structures</strong> &#8212; avoid deeply nested objects in your schema. Deep nesting makes it harder for Claude to fill the schema accurately. Keep your schema flat. If the data is complex, split it across multiple tool calls.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;2696e9ef-15b2-4181-9918-0d1d678c1c65&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">tools = [{
    "name": "extract_order",
    "description": """Extract order details. Issue must be one of: missing, damaged, wrong_item, other.
    Use other when the issue does not fit the above categories.""",
    "strict": True,  # Claude must follow the schema exactly
    "input_schema": {
        "type": "object",
        "additionalProperties": False,  # no extra fields allowed
        "properties": {
            "customer_name": {"type": "string"},
            "order_id": {"type": "string"},
            # issue must be a string 
            # issue can only be one of these four values &#8212; always include "other" in enum.
            "issue": {
                "type": "string",
                "enum": ["missing", "damaged", "wrong_item", "other"]
            },
            # fill this when issue is "other" &#8212; gives Claude somewhere to put unexpected values
            "issue_detail": {"type": "string"},
            # nullable &#8212; Claude returns null when delivery date is not mentioned in the source
            "delivery_date": {"type": ["string", "null"]}
        },
        # only these fields are required &#8212; issue_detail and delivery_date are optional
        "required": ["customer_name", "order_id", "issue"]
    }
}]</code></pre></div><h2><strong>2. Context Management &amp; Reliability</strong></h2><p>This domain carries 15% of your exam score. It is the smallest domain. But it matters. If you do not manage context well, your agents become unreliable in production.</p><p>Below are the key concepts.</p><ul><li><p>Lost-in-the-Middle Effect</p></li><li><p>Progressive Summarization</p></li><li><p>Tool Result Trimming</p></li><li><p>Escalation and Ambiguity</p></li><li><p>Error Propagation</p></li><li><p>Prompt Caching</p></li><li><p>Message Batches API</p></li></ul><h4><strong>Lost-in-the-Middle Effect</strong></h4><p>Claude can process up to 1 million tokens in a single request. But more context does not always mean better results.</p><p>When you pass a long input, Claude processes the beginning and end reliably. What is in the middle often gets missed. This is called the lost-in-the-middle effect.</p><p>Two things to know</p><ul><li><p>Place critical information at the beginning or end. Never place it in the middle.</p></li><li><p>For large context tasks, delegate to subagents. Each subagent starts fresh with only what it needs.</p></li></ul><h4><strong>Progressive Summarization</strong></h4><p>As an agent runs through multiple turns, the conversation history keeps growing. At some point it gets too large to pass in full on every API call.</p><p>Progressive summarization solves this. Instead of passing everything, you summarize the older turns and keep only the recent ones in full. The summary replaces the old turns in the messages array.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;6cca05bb-295d-45d9-bacb-6d619e80d9c3&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># When history gets too long, summarize older turns
summary_response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": f"Summarize this conversation history into key facts only:\n\n{old_turns}"
    }]
)

summary = summary_response.content[0].text

# Replace old turns with the summary
messages = [
    {"role": "user", "content": f"Previous context: {summary}"},
    *recent_turns  # keep the last few turns in full
]</code></pre></div><blockquote><p>When we summarize, we may lose details. Dates, percentages, and numeric values often become vague. If you want anything to stay precise, extract it into a structured state object before summarizing.</p></blockquote><h4><strong>Tool Result Trimming</strong></h4><p>Every tool call adds output to the context. If a tool returns 40 fields but you only need 5, the remaining 35 are wasting tokens. Over multiple turns this adds up fast and fills your context with noise.</p><p>Trim tool results before appending them to the next API messages array. Always keep your context clean. Pass only what Claude needs. Learn more about <a href="https://platform.claude.com/docs/en/agents-and-tools/tool-use/manage-tool-context">managing tool context here</a>.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;7683b261-c7df-448b-a9d3-d15ffeeb5962&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Bad &#8212; full tool result, 40+ fields appended to messages
result = get_customer(customer_id="C-42")
messages.append({
    "role": "user",
    "content": [{
        "type": "tool_result",
        "tool_use_id": block.id,
        "content": json.dumps(result)
    }]
})

# Good &#8212; trim before appending, only what Claude needs
result = get_customer(customer_id="C-42")
trimmed = {
    "id": result["id"],
    "name": result["name"],
    "status": result["status"]
}
messages.append({
    "role": "user",
    "content": [{
        "type": "tool_result",
        "tool_use_id": block.id,
        "content": json.dumps(trimmed)
    }]
})</code></pre></div><h4><strong>Escalation and Ambiguity</strong></h4><p>Not every task should be handled autonomously. Knowing when to escalate to a human is just as important as knowing how to complete a task.</p><p>Three valid reasons to escalate:</p><ul><li><p>When the user explicitly requests a human, escalate immediately. Do not attempt to investigate first.</p></li><li><p>When the agent does not have clear instructions for the situation, escalate. Do not guess.</p></li><li><p>When the agent cannot make meaningful progress, escalate.</p></li></ul><p>When a tool returns multiple matching results, ask the user for more details to narrow it down. Never pick one based on a guess.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;83d9c817-9acd-45c5-81d6-ab5240ba468e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Tool returns escalation signal
@mcp.tool()
def process_refund(order_id: str, amount: float) -&gt; dict:
    if amount &gt; 500:
        return {"requires_human": True, "reason": "Refund above $500 needs approval"}
    return {"success": True, "refund_id": "REF-001"}

# Agent loop checks for it
result = tool_map[block.name](**block.input)

if result.get("requires_human"):
    escalate_to_human(result)
    return</code></pre></div><p><strong>Two common mistakes to avoid.</strong></p><p>Do not escalate just because the user seems frustrated. Frustration does not mean the task needs human intervention. Acknowledge it, try to resolve it, and only escalate if the user explicitly asks for a human.</p><p>Do not use the agent&#8217;s own confidence score as an escalation signal. Models tend to be overconfident even when they are wrong. It is not reliable.</p><h4><strong>Error Propagation</strong></h4><p>In a multi-agent system, when a subagent fails, the coordinator needs to know what went wrong. If the subagent returns a generic error, the coordinator cannot decide what to do next.</p><p>Subagents should always return structured error context. Not a generic failure status.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;981c7293-d1f0-4bee-86c1-84fb99e40c54&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Bad &#8212; coordinator has no idea what went wrong
return {"error": True}

# Good &#8212; coordinator knows what failed and what to do next
return {
    "error": True,
    "type": "tool_failure",
    "tool": "lookup_order",
    "reason": "Order not found in database",
    "retryable": False
}</code></pre></div><p>Never suppress errors silently. If a subagent fails without sending a signal, the coordinator assumes success and moves on. That produces wrong results in the next steps.</p><p>Not all errors are the same. A timeout can be retried. A missing record cannot be retried. Tell the coordinator what went wrong so it can decide what to do.</p><p>Also remember, subagents do not share context automatically. If one fails, the coordinator has to pass that information forward explicitly.</p><h4><strong>Prompt Caching</strong></h4><p>Every time you call the Claude API, you send the full context. You send system prompt, conversation history, tool definitions. Claude processes all of it from scratch on every single call. That adds up fast. It becomes more tokens with higher cost. </p><p><a href="https://platform.claude.com/docs/en/build-with-claude/prompt-caching">With prompt caching we can reduce the cost</a>. You mark the static parts of your prompt with <code>cache_control</code>. Claude caches them on the first call. Instead of paying full price on every call, you pay only 10% for the tokens that are already cached.</p><p>There are two ways to enable it.</p><p><strong>Automatic caching</strong> - You  just add <code>cache_control</code> at the top level of your request. Claude scans your prompt from top to bottom and places the cache breakpoint at the end of the last block that can be cached, which is typically the end of your system prompt or tool definitions.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;642363a2-3c80-4472-a12b-d9561835ffa8&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    cache_control={"type": "ephemeral"},  # automatic &#8212; Claude picks the breakpoint
    system="You are a customer support agent.................  ",
    messages=[{"role": "user", "content": user_query}]
)</code></pre></div><p><strong>Explicit caching</strong> - you mark specific content blocks with <code>cache_control</code> directly inside the <code>system</code> array. Claude caches everything before and up to that block. Use this when you want to control exactly where the cache ends.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;ca941d48-468b-4ccf-bbbd-5b68c4310617&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    system=[
        {"type": "text", "text": "You are a customer support agent."},
        {
            "type": "text",
            "text": large_document,
            "cache_control": {"type": "ephemeral"}  # cache everything up to here
        }
    ],
    messages=[{"role": "user", "content": user_query}]
)
</code></pre></div><p>Always cache static content only. You can put system prompts, tool definitions, and large documents in cache. Never put dynamic content in cache.</p><p>Every API call checks whether the cached prefix matches exactly. Even a single character difference causes a cache miss and Claude reprocesses everything from scratch.</p><h4>TTL and pricing</h4><p>TTL stands for Time to Live. It is how long the cache stays active. By default the cache expires after 5 minutes. Every cache hit resets the timer. If your requests come in less frequently, you can extend the TTL to 1 hour at 2x the cache write price.</p><ul><li><p>The first call writes to cache and costs 1.25x normal input tokens.</p></li><li><p>Cache read costs 0.1x normal input tokens.</p></li><li><p>You can place a maximum of 4 <code>cache_control</code> breakpoints in a single request. </p></li><li><p>If you use the Batch API and prompt caching together, both discounts apply.</p></li><li><p>The first call costs more because it writes to cache. From the 4th read onwards you start saving money.</p></li></ul><p>To check if caching is working, look at the response usage.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;935f3e34-ee0c-4730-aa33-dc8fe10299b5&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">print(response.usage.cache_read_input_tokens)     # tokens read from cache
print(response.usage.cache_creation_input_tokens)  # tokens written to cache</code></pre></div><p>If <code>cache_read_input_tokens</code> is greater than 0, the cache was hit.</p><h4><strong>Message Batches API</strong></h4><p>When you need to process a large number of API requests without needing an immediate response, use the <a href="https://platform.claude.com/docs/en/build-with-claude/batch-processing#message-batches-api">Message Batches API</a>. For example, processing thousands of customer feedback forms overnight, or doing bulk content generation.</p><p>You can submit up to 100,000 requests in one batch. Claude processes them asynchronously. Most batches finish within 1 hour, but they can run up to 24 hours. If they do not complete within 24 hours, they expire. </p><p>The cost is 50% off standard API pricing. The output quality is the same. Only the timing is different.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;909214b1-ed94-49a7-9916-22580bf1c7c5&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import anthropic
import time

client = anthropic.Anthropic()

# Create a batch with multiple independent requests
batch = client.messages.batches.create(
    requests=[
        {
            # This custom id will be returned with the result, 
            # so we know this output is for feedback_001
            "custom_id": "feedback_001",
            "params": {
                "model": "claude-sonnet-4-6",
                "max_tokens": 500,
                "system": "You are a support analyst. Summarize customer feedback in 2 short bullet points.",
                "messages": [
                    {
                        "role": "user",
                        "content": "The app is useful, but the login takes too much time."
                    }]
            }},
        {
            # This custom id will be returned with the result
            # so we know this output is for feedback_002
            "custom_id": "feedback_002",
            "params": {
                "model": "claude-sonnet-4-6",
                "max_tokens": 500,
                "system": "You are a support analyst. Summarize customer feedback in 2 short bullet points.",
                "messages": [
                    {
                        "role": "user",
                        "content": "The dashboard is clean, but export to PDF is missing."
                    }]
            }}
    ])

print(f"Batch ID: {batch.id}")

# Wait until the batch completes
while True:
    current_batch = client.messages.batches.retrieve(batch.id)

    if current_batch.processing_status == "ended":
        break

    time.sleep(30)

# Read the results
for result in client.messages.batches.results(batch.id):
    if result.result.type == "succeeded":
        print(f"{result.custom_id}: {result.result.message.content[0].text}")

    elif result.result.type == "errored":
        print(f"Error in {result.custom_id}: {result.result.error}")

    elif result.result.type == "canceled":
        print(f"Canceled: {result.custom_id}")

    elif result.result.type == "expired":
        print(f"Expired: {result.custom_id}")</code></pre></div><p>Three things to know.</p><ul><li><p>Use <code>custom_id</code> to tie each result back to your input. Without it you cannot match results to requests.</p></li><li><p>You can combine the Batch API with prompt caching. Both discounts apply together, so if your requests share the same system prompt, use both for maximum savings.</p></li><li><p>Use the Batch API for async workloads only. If you need a real-time response, use the standard Messages API.</p></li></ul><h2><strong>3. How to Register for the exam</strong></h2><p>The exam is currently available to employees of companies in the Anthropic Partner Network. The Partner Network is free to join. Any company building with Claude qualifies for it.</p><h4><strong>Step 1 &#8212; Join the Partner Network</strong></h4><p>Your company needs to be part of the Anthropic Partner Network. If you are not in the partner network then <a href="https://partnerportal.anthropic.com/s/partner-registration">apply for Claude Partner Network</a>.</p><h4><strong>Step 2 &#8212; Request exam access</strong></h4><p>If you are already in the partner network, then <a href="https://partnerportal.anthropic.com/s/login/">login to the network</a> and take up the exam.</p><h4><strong>Step 3 &#8212; About exam</strong></h4><p>60 questions. 120 minutes. No notes, no AI tools, no external resources are allowed.</p><h4><strong>Free prep resources</strong></h4><p>Free resources are available on <a href="https://anthropic.skilljar.com">Anthropic Academy</a> and open to everyone. Start there regardless of whether you have exam access yet.</p><h4><strong>Certificate validity</strong></h4><p>The certificate is valid for 6 months. After that you need to recertify.</p><h2>Conclusion</h2><p>I hope this gave you a clear picture of what the exam covers. We went through all the domains across both parts. </p><p>I have also added 6 sets of practice questions to the <a href="https://github.com/devgotomarket/cca-prep">GitHub repo</a>. </p><p>These concepts are not just for the exam. Knowing them well will make you a better engineer when building with Claude.</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-certified-architect-foundations-fe5?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-certified-architect-foundations-fe5?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/claude-certified-architect-foundations-fe5?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 110] - Google's AI Pointer, Access Codex from Phone, OpenClaw’s Peekaboo,TM's interactive models, Flue- Agent Harness,CodeBurn, Mirage, Claude Code's goal,Google's Agent Skills & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 15 May 2026 13:16:32 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/9f424bfc-6a7e-4685-8bcb-872b2b83049a_4288x2848.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 110th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/claude-certified-architect-foundations">Claude Certified Architect Foundations: The Complete Guide - Part 1</a></p></li><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://x.com/googledeepmind/status/2054246119635300451">Google DeepMind has introduced AI Pointer</a>. You can point to something on your screen and ask Gemini to act on it. It understands what you are pointing at, so you don&#8217;t need long prompts. It also supports voice, text, and images. Check Google DeepMind&#8217;s post for more details.</p></li><li><p><a href="https://openai.com/index/work-with-codex-from-anywhere/">OpenAI has brought Codex to the ChatGPT mobile app</a>. You can track tasks, review outputs, and guide Codex from your phone. Your files and credentials stay on the machine where Codex is running, while updates come to your phone in real time. Check OpenAI&#8217;s post for more details.</p></li><li><p><a href="https://github.com/openclaw/Peekaboo">OpenClaw&#8217;s Peekaboo is worth checking if you are exploring screen based agents</a>. It helps AI agents capture screens, understand what is on them, and automate GUI actions. It works as both a CLI and MCP server for Codex, Claude Code, and Cursor. Check the Peekaboo GitHub repo for more details.</p></li><li><p><a href="https://thinkingmachines.ai/blog/interaction-models/">Thinking Machines Lab has introduced interaction models.</a> The idea is to make AI conversations feel more natural and live. The interesting part is the architecture. One model stays responsive during the live conversation, while a background model handles reasoning, search, and tool use. Check Thinking Machines Lab&#8217;s post for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/withastro/flue">This week we are featuring Flue</a>. It is an agent harness framework for building headless and programmable agents. Think of it like Claude Code, but without the terminal UI or human operator. It supports sandboxes, sessions, skills, MCP tools, and deployment across runtimes. Check the Flue GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vbiO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vbiO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 424w, https://substackcdn.com/image/fetch/$s_!vbiO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 848w, https://substackcdn.com/image/fetch/$s_!vbiO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 1272w, https://substackcdn.com/image/fetch/$s_!vbiO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vbiO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png" width="1456" height="513" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:513,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:182512,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/197795200?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vbiO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 424w, https://substackcdn.com/image/fetch/$s_!vbiO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 848w, https://substackcdn.com/image/fetch/$s_!vbiO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 1272w, https://substackcdn.com/image/fetch/$s_!vbiO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feee89d34-952b-4a86-8bfb-804bafb52ae9_1724x608.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://code.claude.com/docs/en/goal">Claude Code now supports /goal</a>. You can give a task with a clear goal. Claude will keep working until that goal is done. A small evaluator model checks the progress after each turn. Check Claude Code docs for more details.</p></li><li><p><a href="https://claude.com/blog/claude-platform-on-aws">Claude Platform is now available directly on AWS</a>. AWS customers can now use more Claude capabilities, beyond Bedrock models. It includes Claude Managed Agents, code execution, web search, Skills, MCP, and more. Check Claude&#8217;s post for more details.</p></li><li><p><a href="https://openai.com/daybreak/">OpenAI has introduced Daybreak for cybersecurity</a>. It brings GPT 5.5 and Codex Security into security workflows. It helps teams review code, find risks, validate patches, and fix issues faster. The goal is to bring AI earlier into secure software development. Check OpenAI&#8217;s Daybreak page for details.</p></li><li><p><a href="https://x.com/trq212/status/2052809885763747935">I came across Thariq&#8217;s post on using HTML instead of Markdown for agent outputs</a>. Markdown works well for simple notes, but large outputs can become hard to read. HTML can show the same content with better visuals and richer information. His collection has <a href="https://thariqs.github.io/html-effectiveness/">20 HTML examples</a> generated by agents. Check the post and collection for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://github.com/google/skills">Google has released Agent Skills for Google products</a>. It includes skills for BigQuery, Cloud Run, Firebase, GKE, and more. It also covers Google Cloud onboarding, authentication, and network observability. Check the Google Skills GitHub repo for more details.</p></li><li><p><a href="https://github.com/getagentseal/codeburn">If you are using AI coding agents and want to know where your tokens are going, check CodeBurn</a>. It shows usage across Claude Code, Codex, and Cursor. It also breaks usage down by task, tool, model, and project. You also get an interactive terminal dashboard for cost visibility. Check the CodeBurn GitHub repo for more details.</p></li><li><p><a href="https://x.ai/news/grok-build-cli">xAI has released Grok Build.</a> It is a coding agent that runs from the terminal. It comes with familiar coding agent features like plans, skills, plugins, hooks, and parallel subagents. Check xAI&#8217;s Grok Build page for more details.</p></li><li><p><a href="https://claude.com/blog/agent-view-in-claude-code">Claude Code now has Agent View</a>. It helps you manage many Claude Code sessions from one place. You can see which agents need input, which are still working, and which are done. It is useful if you run multiple coding agents in parallel. Check Claude&#8217;s blog for more details.</p></li><li><p><a href="https://github.com/strukto-ai/mirage">Mirage is a virtual filesystem for AI agents</a>. It gives agents one common way to access tools like S3, Google Drive, Slack, Gmail, and more. Agents can use simple file commands instead of separate APIs. Check the Mirage GitHub repo for more details.</p></li><li><p><a href="https://x.com/higgsfield_ai/status/2054989169446023181">Higgsfield has released Supercomputer.</a> It is an AI agent for creating ads, product shots, marketing content, and campaigns. You can describe what you want, and it picks the right model for the task and gets the work done. Check Higgsfield&#8217;s post for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-110-googles-ai-pointer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 109] - Anthropic SpaceX Deal, GPT 5.5 Instant, Anthropic and Perplexity Finance Agents, Deepsec, SubQ-12M Context Model, How to Work and Compound with AI, PaperCopilot and much more! ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-109-anthropic-spacex</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-109-anthropic-spacex</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 08 May 2026 12:46:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/47e89043-fa77-4779-b314-c7bc912096ee_7952x5304.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 109th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/claude-certified-architect-foundations">Claude Certified Architect Foundations: The Complete Guide - Part 1</a></p></li><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://www.anthropic.com/news/higher-limits-spacex">Anthropic has signed a compute deal with SpaceX</a>. This will increase Claude&#8217;s compute capacity. Because of this, Claude Code&#8217;s five hour limits are now doubled for paid tiers. Peak hour limit reductions are also removed. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://openai.com/index/gpt-5-5-instant/">OpenAI has released GPT 5.5 Instant as ChatGPT&#8217;s new default model</a>. It is also available in the API. OpenAI says it gives smarter, more accurate, and clearer answers based on your context. Check OpenAI&#8217;s announcement for more details.</p></li><li><p>We have already seen models with 1M context windows. But <a href="https://subq.ai/">SubQ has introduced a model built for 12M token reasoning</a>. It is designed to work across full repos and long context tasks. SubQ says it runs at one fifth the cost of leading LLMs. Check <a href="https://subq.ai/how-ssa-makes-long-context-practical">SubQ&#8217;s post</a> to know how this model works.</p></li><li><p>Claude and Perplexity are moving deeper into finance workflows. <a href="https://x.com/claudeai/status/2051679629488865498">Claude has introduced finance agent templates</a>. <a href="https://x.com/perplexity_ai/status/2051693893473935372">Perplexity has launched Perplexity Computer for Finance.</a> Both show how AI tools are moving from general chat to specific business work. Check their posts for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/vercel-labs/deepsec">This week we are featuring Deepsec</a>. It is an open source security harness from Vercel Labs. It uses coding agents to find vulnerabilities in your codebase. It can scan large repos, investigate issues, and generate findings with recommendations. Check the GitHub repo if you want to try agent based security scanning.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0qmf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0qmf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 424w, https://substackcdn.com/image/fetch/$s_!0qmf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 848w, https://substackcdn.com/image/fetch/$s_!0qmf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 1272w, https://substackcdn.com/image/fetch/$s_!0qmf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0qmf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png" width="1456" height="590" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:590,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:215136,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/196750222?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0qmf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 424w, https://substackcdn.com/image/fetch/$s_!0qmf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 848w, https://substackcdn.com/image/fetch/$s_!0qmf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 1272w, https://substackcdn.com/image/fetch/$s_!0qmf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8e3709fa-f871-4727-ac15-f2ecd0ca5966_1756x712.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://eugeneyan.com/writing/working-with-ai/">Eugene Yan has written a practical post on working better with AI</a>. He talks about giving better context, saving your preferences into config, and making output verification easier. Useful if you use AI for writing, coding, or daily work. Check Eugene&#8217;s post for more details.</p></li><li><p><a href="https://papercopilot.com/">Paper Copilot is a useful site for AI and ML papers</a>. It brings papers from different conferences into one place and makes them easier to explore. Useful if you want to track new research without jumping across many sites. Check Paper Copilot for more details.</p></li><li><p><a href="https://x.com/yudDIDit/status/2049888877129707759">Editframe has launched Agent Skills for video</a>. This skill helps coding agents create videos from simple prompts. You can use it with Claude Code, Cursor, or Codex. It can generate a working video or a full interactive GUI from your prompt. Check the Editframe post for more details.</p></li><li><p><a href="https://inworld.ai/blog/realtime-tts-2">Inworld has released Realtime TTS 2</a>. It is built for realtime voice conversations. It understands the full audio context, including tone, pacing, and emotional state. Check Inworld&#8217;s post for more details.</p></li><li><p><a href="https://spaitial.ai/blog/echo-2-release">SpAItial has released Echo 2 for 3D world generation</a>. It can take text or image input and create a 3D world that can be explored in real time. This can be useful for games, digital twins, architecture, and robotics simulation. Check SpAItial&#8217;s post for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://openai.com/index/advancing-voice-intelligence-with-new-models-in-the-api">OpenAI has released three new audio models in the API</a>. GPT Realtime 2 brings GPT 5 class reasoning to voice apps. GPT Realtime Translate supports live speech translation, and GPT Realtime Whisper supports live transcription as someone speaks. Check OpenAI&#8217;s announcement for more details.</p></li><li><p>Last time we covered Claude Managed Agents. Now <a href="https://claude.com/blog/new-in-claude-managed-agents">Anthropic has added more features to Claude Managed Agents</a>. It includes dreaming, outcomes, webhooks, and multiagent orchestration. Dreaming reviews past work and improves memory over time. Outcomes checks whether the work meets the expected result. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://x.ai/news/grok-custom-voices">xAI has introduced Custom Voices and Voice Library for Grok</a>. Developers can create their own voice and use it in Grok&#8217;s TTS and Voice Agent APIs. Teams can also browse, preview, and manage voices from the xAI console. Check xAI&#8217;s announcement for more details.</p></li><li><p><a href="https://mimo.xiaomi.com/mimo-v2-5-pro/">Xiaomi has open sourced MiMo V2.5 Pro</a>. It is built for agentic coding, long horizon tasks, and large context work. Xiaomi says it can handle complex workflows with many tool calls and a 1M token context window. Check Xiaomi&#8217;s post for more details.</p></li><li><p><a href="https://claude.com/blog/claude-security-public-beta">Anthropic has released Claude Security for Claude Enterprise customers</a>. It scans code for vulnerabilities and uses Opus 4.7 to generate proposed fixes. It also supports scheduled scans, targeted scans, triage tracking, and exports for audit workflows. Check Claude&#8217;s announcement for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-109-anthropic-spacex?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-109-anthropic-spacex?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-109-anthropic-spacex?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Claude Certified Architect Foundations: The Complete Guide - Part 1]]></title><description><![CDATA[CCA-F exam prep - domains, code examples, and practice questions. All in one place.]]></description><link>https://www.devshorts.in/p/claude-certified-architect-foundations</link><guid isPermaLink="false">https://www.devshorts.in/p/claude-certified-architect-foundations</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Thu, 30 Apr 2026 12:31:48 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/646665a0-551a-4898-9fa2-0be0e6d7c542_1672x941.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><a href="https://anthropic.skilljar.com/claude-certified-architect-foundations-access-request">The Claude Certified Architect Foundations</a> exam was recently launched. It is Anthropic&#8217;s first official technical certification.</p><p>I have been building agentic systems with Claude for a long time. When I heard about the exam, I wanted to understand what it actually tests. </p><p>So I went through the entire exam guide, also took some mock tests to understand what they covered. </p><p>Below are the sections you need to understand to become a Claude Certified Architect.</p><ol><li><p>Agentic Architecture &amp; Orchestration</p></li><li><p>Tool Design &amp; MCP Integration</p></li><li><p>Claude Code Configuration </p></li><li><p>Prompt Engineering &amp; Structured Output</p></li><li><p>Context &amp; Reliability</p></li></ol><p>Each section is detailed enough to be its own blog. We will cover the first three in this part. The remaining sections along with how to register will be in Part 2.</p><p>I have also put together a <a href="https://github.com/devgotomarket/cca-prep">set of practice questions with answers</a> on GitHub. I will keep adding more as I come across them.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>1. Agentic Architecture &amp; Orchestration</h2><p>This section carries 27% of your exam score. It covers Claude Agent SDK, the library you use to build production grade agents. Below are the key Agent SDK concepts, that turn a normal LLM into an agent.</p><ul><li><p>stop_reason</p></li><li><p>Conversation History</p></li><li><p>Loop Termination</p></li><li><p>Multi-Agent Systems</p></li><li><p>Task Decomposition</p></li><li><p>Hooks</p></li><li><p>Session Management</p></li></ul><p>A normal LLM call is simple. You send a message, Claude replies, done. An agent is different. It is multiple LLM calls chained together until the task is fully complete. It includes tool calling, getting results, and deciding what to do next.</p><p>Let us start with stop_reason. It is the core of every agent loop.</p><h3><strong>stop_reason</strong></h3><p>Every Claude API response has a field called stop_reason. It tells you why Claude stopped. This is what decides whether your loop continues or ends. stop_reason has multiple values. The three you need to know for the exam are,</p><p>If <code>stop_reason == "tool_use"</code> then it means Claude wants to call a tool. Then you execute the tool, append the result, and loop again.</p><p>If <code>stop_reason == "end_turn"</code> then Claude is done. We can return the response to the user. Loop ends.</p><p>If <code>stop_reason == "max_tokens"</code> then the response got cut off. This happens when Claude hits the <code>max_tokens</code> limit you set in the API call. </p><p>If the response genuinely needs more tokens, increase <code>max_tokens</code>. If the response is too verbose, then restructure your prompt to produce a shorter output. Never return a cut-off response as it is incomplete.</p><p>Here is the stop_reason with all three options, explained in code.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;f285f3e5-4407-4f0a-959b-1fe7feff7ac4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import anthropic
import json

client = anthropic.Anthropic()

class Agent:
    def __init__(self, tools):
        self.tools = tools

    def run(self, task: str) -&gt; str:
        # Every conversation starts with the user task
        messages = [{"role": "user", "content": task}]

        while True:
            # Claude does not remember previous call, 
            # So we pass the full conversation history every time
            response = client.messages.create(
                model="claude-sonnet-4-6",
                max_tokens=1024,
                tools=self.tools,
                messages=messages
            )

            # Check the stop_reason to ensure the Task is complete
            if response.stop_reason == "end_turn":
                return extract_text(response.content)
            
            # If stop_reason is tool_use then execute the tool
            elif response.stop_reason == "tool_use":

                # Step 1 &#8212; save what Claude said, including which tool it wants to call
                messages.append({
                    "role": "assistant",
                    "content": response.content
                })

                for block in response.content:
                    if block.type == "tool_use":

                        # Step 2 &#8212; we execute the tool, not Claude
                        result = tool_map[block.name](**block.input)

                        # Step 3 &#8212; send the tool result back so Claude can continue
                        # tool_use_id tells Claude which tool call this result belongs to
                        messages.append({
                            "role": "user",
                            "content": [{
                                "type": "tool_result",
                                "tool_use_id": block.id,
                                "content": json.dumps(result)
                            }]
                        })
                # Claude now sees the result and decides what to do next

            else:
                # stop_reason == "max_tokens" &#8212; response was cut off, never return incomplete results
                raise RuntimeError(f"Unexpected: {response.stop_reason}")
</code></pre></div><p>The loop runs until Claude returns <code>end_turn</code>. </p><p>Handling stop_reason is one of the most important concepts in agentic workflows. Learn more in the <a href="https://platform.claude.com/docs/en/build-with-claude/handling-stop-reasons">official docs</a>.</p><p>Now that you understand stop_reason, let us look at how Claude keeps track of everything that happens in the loop.</p><h3>Conversation History</h3><p>In agentic workflows, Claude has no memory between API calls. Every time you call the API, you have to pass the full conversation history. That is how Claude knows what happened before.</p><blockquote><p>The <code>messages</code> array holds that history. User messages, Claude responses, and tool results all get appended here until the task is done.</p></blockquote><p>So how does the messages array grow?  Every time stop_reason == "tool_use", you append two things.</p><p>First, you append the response Claude just sent. This contains the tool name Claude wants to call and the input values it decided to pass.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;1b3804fe-e180-43a9-84fb-e8d7254d83a0&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">messages.append({
    "role": "assistant",
    "content": response.content    # text block + tool_use block
})</code></pre></div><p>Then you execute the tool and append the result back. The <code>tool_use_id</code> in the result must match the one from the response we appended previously. This tells Claude that this result is for the tool call it requested.</p><p>Now you loop again. Claude reads everything in the <code>messages</code> array and decides what to do next.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;ccd22067-89e0-4415-a815-fdf6bbd232c4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">for block in response.content:
    if block.type == "tool_use":
        result = tool_map[block.name](**block.input)

        messages.append({
            "role": "user",
            "content": [{
                "type": "tool_result",
                "tool_use_id": block.id,
                "content": json.dumps(result)
            }]
        })</code></pre></div><blockquote><p>Do not add text immediately after tool results. Send tool results directly without additional text</p></blockquote><h3><strong>Loop Termination</strong></h3><p>An agent loop can terminate for different reasons. We need to identify each termination reason and handle it. If we do not, the agent either runs forever, returns incomplete results, or takes actions it should not.</p><p>Here are the three ways we handle it.</p><ul><li><p>stop_reason == "end_turn" - Claude is done. Return the response to the user and exit the loop.</p></li><li><p>result.get("requires_human") == True - escalate to a human and exit the loop.</p></li><li><p>MAX_ITERATIONS = 10 - the loop hit the safety cap. Raise an error and exit.</p></li></ul><p>In all three cases, we handle the termination and never return incomplete results. Here is how all three work together in code.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;9854d351-ebfb-4ae8-806b-e1187e1f320f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">MAX_ITERATIONS = 10

def escalate_to_human(result: dict) -&gt; None:
    # Notify your human review system &#8212; ticket, Slack, email etc.
    print(f"Escalating to human: {result}")

def extract_text(content) -&gt; str:
    # Extract the text block from Claude's response
    for block in content:
        if hasattr(block, "text"):
            return block.text

class Agent:
    def __init__(self, tools):
        self.tools = tools

    def run(self, task: str) -&gt; str:
        # Every conversation starts with the user task
        messages = [{"role": "user", "content": task}]

        for i in range(MAX_ITERATIONS):
            # Claude does not remember previous calls
            # So we pass the full conversation history every time
            response = client.messages.create(
                model="claude-sonnet-4-6",
                max_tokens=1024,
                tools=self.tools,
                messages=messages
            )

            # Claude is done &#8212; return the response to the user
            if response.stop_reason == "end_turn":
                return extract_text(response.content)

            elif response.stop_reason == "tool_use":
                # Append Claude's response to history
                messages.append({
                    "role": "assistant",
                    "content": response.content
                })

                for block in response.content:
                    if block.type == "tool_use":
                        # we execute the tool
                        result = tool_map[block.name](**block.input)

                        # Tool requires human intervention &#8212; escalate and exit the loop
                        if result.get("requires_human"):
                            escalate_to_human(result)
                            return

                        # Append tool result so Claude can continue
                        messages.append({
                            "role": "user",
                            "content": [{
                                "type": "tool_result",
                                "tool_use_id": block.id,
                                "content": json.dumps(result)
                            }]
                        })

        # Max iterations reached &#8212; exit with error, never return incomplete results
        raise RuntimeError("Agent hit max iterations without completing")</code></pre></div><h3><strong>Multi-Agent Systems</strong></h3><p>You now know how a single agent works. But some tasks are too complex for one agent to handle alone.</p><p>That is where multi-agent systems come in. You break the work across multiple specialized agents. Each one is the same <code>Agent</code> class we defined in the previous sections, just with different tools and a different responsibility.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;0b3c28db-550e-4352-82b0-c8890ea1413e&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">search_agent = Agent(tools=[web_search_tool])
analysis_agent = Agent(tools=[analysis_tool])
report_agent = Agent(tools=[report_tool])</code></pre></div><p>Anthropic uses a pattern called hub-and-spoke to coordinate agents. Think of it like this. One coordinator receives the task, breaks it down, and delegates to specialized agents. Each agent does its part and reports back. The coordinator collects everything and produces the final response.</p><blockquote><p>Now, when do you run agents in parallel and when in sequence?</p></blockquote><p>If the tasks are independent, run them in parallel. If one task needs the output of another, run them in sequence.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;dfd6df01-7311-4167-9c3b-a82f0c7ff965&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">import asyncio

# Step 1 &#8212; Independent subagents, run in parallel
search_result, document_result = await asyncio.gather(
    search_agent.run("Search web for competitors"),
    analysis_agent.run("Analyze our internal documents")
)

# Step 2 &#8212; This subagent depends on Step 1, runs after
report_result = report_agent.run("Generate report", search_result, document_result)

# Step 3 &#8212; Coordinator collects all results and produces the final response
final_result = coordinator_agent.run("Finalize", search_result, document_result, report_result)</code></pre></div><p>Every subagent starts with a fresh context. It does not have access to the coordinator's conversation history. The only way to pass context to a subagent is through its prompt. So be specific and detailed in what you pass.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;2db101fd-f0eb-4886-93b7-5ea084a08a21&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Too vague &#8212; subagent does not know enough to do its job well
search_agent.run("Search web for competitors.")

# Right &#8212; give the subagent exactly what it needs
search_agent.run("Search web for competitors in the B2B SaaS space. Focus on pricing and features.")</code></pre></div><p>Agents never talk directly to the user. They always report back to the coordinator. The coordinator owns the task from start to finish.</p><h3><strong>Task Decomposition</strong></h3><p>Task decomposition is an important part of building multi-agent systems. When you build one, remember that your coordinator agent should never delegate a vague task directly to a subagent.</p><p>Take this for example. Your coordinator receives &#8220;Research the competitive landscape for our project management tool.&#8221; If it passes this directly to a subagent, the subagent does not know where to start. You will get different results every run.</p><p>Break it down first.</p><ul><li><p>Search Google for &#8220;Notion vs Linear pricing plans 2026&#8221;</p></li><li><p>Extract pricing tiers, feature limits, and target user segments for both</p></li><li><p>Generate a comparison table showing where your product has an advantage</p></li></ul><p>Each subtask goes to one specialized agent. Each agent has one job and knows exactly what to return.</p><p>The agents are not the problem. Vague instructions are.</p><h3><strong>Hooks</strong></h3><p>When you build an agent, some actions need to be controlled programmatically. You cannot rely on Claude to always follow prompt instructions. That is where hooks come in.</p><p><a href="https://code.claude.com/docs/en/agent-sdk/hooks">Hooks</a> are callback functions you register in the Claude Agent SDK. They fire automatically at specific points during agent execution. No prompts involved.</p><p>Two hooks you need to know for the exam,</p><h4><strong>PreToolUse :</strong></h4><p>It<strong> </strong>fires before a tool executes. Since it runs before, it can block the action. Use it when you want to stop Claude from doing something like blocking <code>rm -rf</code> commands, preventing writes to <code>.env</code>, or requiring human approval before processing a refund above $500.</p><h4><strong>PostToolUse :</strong></h4><p>PostToolUse fires after a tool executes. It cannot block anything since the action already happened. Use it for things like auto-formatting a file after Claude edits it, writing to an audit log after a deletion, or running a linter after every code change.</p><p>Here is a real example. Your agent has a <code>process_refund</code> tool. Any refund above $500 needs human approval before it goes through.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;d9440bb1-e2d4-45fe-9240-0bca16bca71f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from claude_agent_sdk import ClaudeAgentOptions, ClaudeSDKClient, HookMatcher

async def block_large_refunds(input_data, tool_use_id, context):
    tool_name = input_data["tool_name"]
    tool_input = input_data["tool_input"]

    # Only intercept the process_refund tool
    if tool_name != "process_refund":
        return {}  # allow all other tools to proceed

    # Block refunds above $500 &#8212; requires human approval
    if tool_input.get("amount", 0) &gt; 500:
        return {
            "hookSpecificOutput": {
                "hookEventName": input_data["hook_event_name"],
                # deny stops the tool from executing
                "permissionDecision": "deny",
                # this reason is sent back to Claude so it knows why it was blocked
                "permissionDecisionReason": "Refunds above $500 require human approval"
            }
        }

    # Allow refunds under $500 to proceed normally
    return {}

options = ClaudeAgentOptions(
    hooks={
        # PreToolUse fires before the tool executes
        "PreToolUse": [
            # matcher tells the SDK which tool to intercept
            HookMatcher(matcher="process_refund", hooks=[block_large_refunds])
        ]
    }
)

async with ClaudeSDKClient(options=options) as client:
    await client.query("Process a $600 refund for order ORD-999")
    async for message in client.receive_response():
        print(message)</code></pre></div><blockquote><p>The key difference between hooks and prompt instructions is reliability. A prompt instruction like &#8220;never process refunds above $500&#8221; is not guaranteed. Claude may follow it or not. A hook always fires. If you want something enforced without exception, put it in a hook.</p></blockquote><h3><strong>Session Management</strong></h3><p>A session contains the full conversation history. The SDK saves it to disk automatically so you can come back to it later.</p><p>Here is what you need to know.</p><ul><li><p>Session Resumption</p></li><li><p>Session Isolation</p></li><li><p>Session Forking</p></li></ul><h4><strong>Session Resumption</strong></h4><p>Imagine your agent is halfway through a long task and the server crashes. Without session resumption, it starts from scratch. With it, you pass the session ID and the agent continues from where it stopped.</p><p>Here is how you implement it.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;91e78953-c982-4b71-adf3-80ecc235b47c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from claude_agent_sdk import ClaudeAgentOptions, query, ResultMessage

# Start a session and save the session ID
session_id = None
async for message in query("Analyze the refund flow in our codebase"):
    if isinstance(message, ResultMessage):
        session_id = message.session_id

# Resume later &#8212; agent has full context from before
async for message in query(
    prompt="Now fix the bug you found",
    options=ClaudeAgentOptions(
        resume=session_id,
        allowed_tools=["Read", "Edit", "Write", "Glob", "Grep"],
    ),
):
    if isinstance(message, ResultMessage) and message.subtype == "success":
        print(message.result)</code></pre></div><h4><strong>Session Isolation</strong></h4><p>Each user or task gets its own session. If two users share the same session, Claude will mix up their context and produce wrong results. Always create a new session for each user or task.</p><h4><strong>Session Forking</strong></h4><p>Sometimes you want to try a different approach from where you are, without affecting your current session. For example, your agent has analyzed a codebase and you want to try both a REST and a GraphQL implementation. Instead of starting over, you fork the session. Both forks start from the same point. The original stays untouched.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;3d09f20f-732b-4e55-9436-08980b7d6c41&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from claude_agent_sdk import ClaudeAgentOptions, query

# Fork &#8212; original session stays unchanged
options = ClaudeAgentOptions(
    resume=session_id,
    fork_session=True   # new session ID, same history
)

async for message in query("Try a GraphQL approach instead", options=options):
    print(message)</code></pre></div><p>To learn more about working with sessions, check out the <a href="https://code.claude.com/docs/en/agent-sdk/sessions">Claude Agent SDK session guide</a>.</p><h2><strong>2. Tool Design &amp; MCP Integration </strong></h2><p><a href="https://modelcontextprotocol.io/docs/getting-started/intro">MCP stands for Model Context Protocol</a>. It is an open standard for connecting your agent to external services. For example, your agent can query a database, fetch GitHub issues, or send a Slack message through an MCP server.</p><p>If you are new to MCP, check out our <a href="https://www.devshorts.in/p/the-complete-mcp-server-guide">complete MCP Server Guide</a> that covers everything from scratch.</p><p>Below are the key concepts.</p><ul><li><p>MCP Components</p></li><li><p>Tool Descriptions</p></li><li><p>Structured Error Responses</p></li><li><p>Tool Distribution</p></li><li><p>MCP Server Configuration</p></li></ul><h3>MCP Components</h3><p>An MCP server consists of three things.</p><ul><li><p><strong>Tools</strong> are functions exposed by the MCP server. When Claude calls a tool, the MCP server executes that function. Claude decides when to call the tool and what input to send. </p></li><li><p><strong>Resources</strong> are read only data exposed by the MCP server. They give Claude extra context for the task. For example, a resource can be an API spec, database schema, product catalog, or project document. </p></li><li><p><strong>Prompts</strong> are reusable instructions exposed by the MCP server. They tell Claude how to handle a repeated task. In supported clients, prompts can also be triggered as slash commands.</p></li></ul><p>Here is a simple MCP server example. This one connects to PostgreSQL and shows all three components.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;f743c158-a1b3-468c-9927-be517c8d4151&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">from mcp.server.fastmcp import FastMCP
import psycopg2
import os

mcp = FastMCP("DatabaseServer")

# Connect to PostgreSQL &#8212; use environment variables for credentials
conn = psycopg2.connect(
    host=os.getenv("DB_HOST"),
    database=os.getenv("DB_NAME"),
    user=os.getenv("DB_USER"),
    password=os.getenv("DB_PASSWORD")
)

# Tool &#8212; model calls this to query the database
@mcp.tool()
def get_order(order_id: str) -&gt; dict:
    """Look up an order by order ID from the database."""
    cursor = conn.cursor()
    cursor.execute("SELECT id, status, item FROM orders WHERE id = %s", (order_id,))
    row = cursor.fetchone()
    
    if not row:
        return {"error": "Order not found"}
    
    return {"id": row[0], "status": row[1], "item": row[2]}

# Resource &#8212; exposes the full product catalog from the database
@mcp.resource("data://product-catalog")
def get_product_catalog() -&gt; str:
    """Returns all products from the database."""
    cursor = conn.cursor()
    cursor.execute("SELECT name, price FROM products")
    rows = cursor.fetchall()
    return "\n".join([f"{row[0]} - ${row[1]}" for row in rows])

# Prompt &#8212; can appear as a slash command in supported clients
@mcp.prompt()
def review_order_prompt() -&gt; str:
    """Template for reviewing an order status."""
    return """You are an order review specialist. 
When reviewing an order:
- Check the current status
- Identify any issues
- Suggest next steps"""

if __name__ == "__main__":
    mcp.run()</code></pre></div><p>Once this MCP server is running and connected to your agent, you can query it directly.</p><p>&#8220;What is the status of order ORD-999?&#8221;</p><p>The agent calls the <code>get_order</code> tool, queries the database in real time, and returns the result.</p><h3>Tool Descriptions</h3><p>When Claude has multiple tools, it uses the tool description to decide which one to call. If the description is vague, Claude may pick the wrong tool.</p><p>A good tool description should clearly say three things.</p><ul><li><p>What the tool does</p></li><li><p>What input it expects</p></li><li><p>When to use it and when not to</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;7548bb2a-89b4-4fed-a011-ac8789d8351a&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Bad &#8212; too vague, Claude cannot differentiate
@mcp.tool()
def get_order(order_id: str) -&gt; dict:
    """Retrieves order details."""
    ...

# Good &#8212; clear boundaries, Claude knows exactly when to use it
@mcp.tool()
def get_order(order_id: str) -&gt; dict:
    """Look up an order by order ID. 
    Use this when you need order status, items, and shipping details. 
    Do not use this for customer account lookups."""
    ...</code></pre></div><h3><strong>Structured Error Responses</strong></h3><p>When a tool fails, do not return a generic error. Claude needs to know what went wrong so it can decide what to do next.</p><p>In production, return more than just an error. Tell Claude what went wrong, whether it can retry, and what to do next.</p><p>Here are a few common categories.</p><ul><li><p>Transient - If the external service is down or timed out, we return the error as transient. It means the failure is temporary and usually safe to retry.</p></li><li><p>Validation - If the input is missing or invalid, we return the error as validation. It means Claude should fix the input before calling the tool again.</p></li><li><p>Business - If the tool runs, but the action is not allowed by your system rules, we return the error as business. It means there is no point retrying the same request.</p></li><li><p>Permission - If the user or agent does not have access to perform the action, we return the error as permission. It means access should be granted first before retrying.</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;ea327071-46b2-49b6-bcc7-95c516a3ee80&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">@mcp.tool()
def process_refund(order_id: str, amount: float) -&gt; dict:
    """Process a refund for a given order."""

    # validation &#8212; bad input, no point retrying
    if not order_id:
        return {"error": True, "errorCategory": "validation", "isRetryable": False, "message": "order_id is required"}

    # business &#8212; order is not eligible for refund, refund window has expired
    if order_status == "delivered_over_30_days":
        return {"error": True, "errorCategory": "business", "isRetryable": False, "message": "Refund window has expired. Orders can only be refunded within 30 days of delivery."}
    
    # transient &#8212; service down, safe to retry
    if not payment_service.is_available():
        return {"error": True, "errorCategory": "transient", "isRetryable": True, "message": "Payment service unavailable. Try again."}

    return {"success": True, "refundId": "REF-001"}</code></pre></div><p>Never return a generic error like <code>{"error": "Operation failed"}</code>. The more context you give Claude, the better it recovers. </p><h3><strong>Tool Distribution</strong></h3><p>Give each agent only the tools it really needs. Too many tools can confuse Claude. It may call the wrong tool or take the wrong action.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;485f1a78-3afe-41e7-ad58-c28e00e389f4&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python"># Bad &#8212; agent has access to tools it should never use
research_agent = Agent(tools=[
    web_search_tool,
    process_refund_tool,    # research agent should never process refunds
    delete_record_tool,     # research agent should never delete records
    synthesis_tool
])

# Good &#8212; agent only gets what it needs
research_agent = Agent(tools=[
    web_search_tool,
    synthesis_tool
])</code></pre></div><p>Use <code>allowed_tools</code> and <code>disallowed_tools</code> in the Claude Agent SDK to control which tools each agent can access.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;python&quot;,&quot;nodeId&quot;:&quot;be4edd20-eb9a-48d3-95c4-eab80776e70f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-python">options = ClaudeAgentOptions(
    mcp_servers={"orders": order_server},
    allowed_tools=[
        "mcp__orders__get_order",       # pre-approve read operations
        "mcp__orders__get_customer"
    ],
    disallowed_tools=[
        "mcp__orders__delete_record",   # block delete operations
        "mcp__orders__update_record"    # block write operations
    ]
)</code></pre></div><p>To learn more, check the <a href="https://code.claude.com/docs/en/agent-sdk/permissions#allow-and-deny-rules">official SDK reference</a>.</p><h3><strong>MCP Server Configuration</strong></h3><p>When you add an MCP server to your project, you need to decide where to configure it. <a href="https://code.claude.com/docs/en/settings#what-uses-scopes">There are two scopes</a>.</p><ul><li><p>Project level &#8212; .mcp.json in your repo. It can be shared with the whole team via version control.</p></li><li><p>User level &#8212; ~/.claude.json. It is personal and experimental. It is not shared.</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;cf2f3064-2b70-4132-9dc5-27772ae6105f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">// .mcp.json &#8212; project level, committed to the repo
{
  "mcpServers": {
    "github": {
      "command": "npx",
      "args": ["@anthropic-ai/mcp-server-github"],
      "env": {
        "GITHUB_TOKEN": "${GITHUB_TOKEN}"  // never hardcode secrets
      }
    },
    "database": {
      "command": "python",
      "args": ["./mcp_servers/database_server.py"],
      "env": {
        "DB_URL": "${DATABASE_URL}"
      }
    }
  }
}</code></pre></div><p>Use existing community MCP servers for standard integrations like GitHub, Slack, and Jira. Build custom servers only for internal or team-specific workflows.</p><p>Check the <a href="https://code.claude.com/docs/en/agent-sdk/mcp">official docs for MCP and Agent SDK integration</a>.</p><h2><strong>3. Claude Code Configuration &amp; Workflows</strong></h2><p>Claude Code deserves its own blog. We have covered the important concepts that will be useful for your daily development as well as for the exam. </p><ul><li><p>CLAUDE.md</p></li><li><p>Custom Commands and Skills</p></li><li><p>Path-specific Rules</p></li><li><p>Plan Mode vs Direct Execution</p></li><li><p>Headless Mode</p></li><li><p>Hooks</p></li><li><p>Built-in Tools</p></li></ul><h3><strong>CLAUDE.md</strong></h3><p><a href="https://code.claude.com/docs/en/memory#claude-md-files">CLAUDE.md</a> is the first file Claude reads when it starts a session. It tells Claude the project conventions and rules.</p><p>It supports three levels:</p><ul><li><p>User level &#8212; ~/.claude/CLAUDE.md. Applies to all your projects.</p></li><li><p>Project level &#8212; CLAUDE.md in the repo root. Applies to the whole project. Commit this to Git.</p></li><li><p>Directory level &#8212; CLAUDE.md inside a subdirectory. Applies only when Claude is working in that folder.</p></li></ul><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;41a57f8f-442a-40db-8cdb-08ad5782de59&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">repo/
&#9500;&#9472;&#9472; CLAUDE.md              # applies to everything
&#9500;&#9472;&#9472; frontend/
&#9474;   &#9492;&#9472;&#9472; CLAUDE.md          # applies only in /frontend
&#9492;&#9472;&#9472; backend/
    &#9492;&#9472;&#9472; CLAUDE.md          # applies only in /backend</code></pre></div><p>It can be placed directly in the repo root or inside the <code>.claude/</code> directory. Both work the same way.</p><p>CLAUDE.md is advisory. Claude reads it and tries to follow it. But it is not guaranteed. Claude may not always follow it. If you have a constraint that must always run without exception, put it in a hook. Hooks fire programmatically and always run regardless of what Claude decides. </p><h3><strong>Custom Commands and Skills</strong></h3><p><a href="https://code.claude.com/docs/en/skills">Skills</a> give domain-specific expertise to Claude. You package your team&#8217;s workflows, standards, and best practices into a SKILL.md file. Claude picks them up automatically when the task matches, or you call them directly with a slash command.</p><p>Skills live in two places:</p><ul><li><p>.claude/skills/ &#8212; project level. Shared with the team via Git.</p></li><li><p>~/.claude/skills/ &#8212; user level. Personal, not shared.</p></li></ul><p>Each skill lives in its own subdirectory. For example, a review-security skill would be at .claude/skills/review-security/SKILL.md.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;7fd5253a-6c92-47ef-88b5-c1e8868cdea8&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">&lt;!-- .claude/skills/review-security/SKILL.md --&gt;
---
name: review-security
description: Run a security audit on the current file
allowed-tools: Read, Grep
context: fork
argument-hint: [file-path to review]
---

Review this file for SQL injection, XSS, and hardcoded secrets.
Output findings as JSON with severity, line number, and recommendation.</code></pre></div><p>Three fields to know:</p><ul><li><p>allowed-tools - It controls which tools the skill can use. For example, if you set <code>Read, Grep</code>, the skill can only read files and search. It cannot write or run commands.</p></li><li><p>context: fork - It runs the skill in a separate session. Whatever Claude does in that session stays there. Use this when you want Claude to explore something without affecting your main session.</p></li><li><p>argument-hint - It shows a hint when someone types the slash command. It helps the user to understand what input to provide.</p></li></ul><blockquote><p>All fields are optional. But always include <code>description</code> so Claude knows when to load the skill automatically. Check the <a href="https://code.claude.com/docs/en/skills#frontmatter-reference">full frontmatter reference</a> for all available fields.</p></blockquote><p>Custom Commands were the older way to define slash commands in Claude Code. They lived in <code>.claude/commands/*.md</code>. Skills have now replaced them. If you are starting fresh, use Skills.</p><p>You can also find community-built skills at <a href="https://skills.sh/">skills.sh</a>.</p><h3><strong>Path-specific Rules</strong></h3><p>Rules live in <code>.claude/rules/</code> as markdown files. When you want <a href="https://code.claude.com/docs/en/memory#path-specific-rules">path-specific rules</a> for your codebase, you add a <code>paths</code> field in your rules. </p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;d82809e6-b44b-4525-af70-a3dabd3863bd&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">&lt;!-- .claude/rules/frontend-rules.md --&gt;
---
paths:
  - "frontend/**/*.ts"
  - "frontend/**/*.tsx"
---

Always use React functional components.
Never use class components.
Use Tailwind for styling. Never use inline styles.</code></pre></div><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;markdown&quot;,&quot;nodeId&quot;:&quot;7d36d717-8449-490c-940f-057b46303387&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-markdown">&lt;!-- .claude/rules/backend-rules.md --&gt;
---
paths:
  - "backend/**/*.py"
---

Always use FastAPI for routes.
Business logic goes in services/. Never in routes/.
Always add type hints.</code></pre></div><p>When you write rules like above, Claude picks up the right rules based on the file it is touching. This is more token efficient than putting all rules in one big CLAUDE.md. </p><blockquote><p>Note: The official docs use <code>paths:</code> but some versions of Claude Code work more reliably with <code>globs:</code>. If <code>paths:</code> does not work, try <code>globs:</code> with your pattern instead.</p></blockquote><h3><strong>Plan Mode vs Direct Execution</strong></h3><p>By default, Claude executes tasks immediately. It reads files, writes code, runs commands without stopping.</p><p>Plan mode changes that. Claude outlines what it is going to do first. No files written, no commands run. You review the plan and approve before anything happens.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;bc18db4c-329a-44b9-96bf-8013c2886673&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">claude --permission-mode plan</code></pre></div><p>Use plan mode for large scale or destructive changes. For small, well-scoped tasks, just run directly.</p><h3><strong>Headless Mode</strong></h3><p>Headless mode runs Claude non-interactively using the <code>-p</code> flag. No terminal prompts. No approvals. Used for CI/CD pipelines and automation scripts.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;bash&quot;,&quot;nodeId&quot;:&quot;8f17b429-1013-4f83-bdf5-84f847df7005&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-bash">claude -p "Review this PR for security vulnerabilities" --output-format json &gt; report.json
</code></pre></div><p>Use --output-format json when you need the output in json. </p><p>Check more about <a href="https://code.claude.com/docs/en/permission-modes">Claude&#8217;s mode in the Claude Code docs.</a></p><h3><strong>Hooks</strong></h3><p>We already covered hooks in the Claude Agent SDK section. The concept is the same but the implementation is different in Claude Code.</p><p>In the Agent SDK, hooks are Python callback functions. <a href="https://code.claude.com/docs/en/hooks">In Claude Code, hooks</a> are shell commands configured in <code>.claude/settings.json</code>. They fire automatically at specific points in Claude Code&#8217;s lifecycle.</p><p>As we already saw, two hooks matter here.</p><p><code>PreToolUse</code> fires before a tool executes and can block the action. <code>PostToolUse</code> fires after tool execution. Here is how they look in Claude Code.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;json&quot;,&quot;nodeId&quot;:&quot;f4a95153-d732-4114-8202-06d786e87a7f&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-json">{
  "hooks": {
    "PreToolUse": [{
      "matcher": "Bash",
      "hooks": [{"type": "command", "command": "echo '$CLAUDE_TOOL_INPUT' | grep -q 'rm -rf' &amp;&amp; exit 2 || exit 0"}]
    }],
    "PostToolUse": [{
      "matcher": "Edit|Write",
      "hooks": [{"type": "command", "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"}]
    }]
  }
}</code></pre></div><h3><strong>Built-in Tools</strong></h3><p>Claude Code ships with built-in tools. As an architect, you need to know when each one is the right choice.</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;53c58b88-46e6-4121-86c0-4796dd60f6a1&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">Tool              When to use
-------           -----------
Read              Read the contents of a file
Write             Create or overwrite a file
Edit              Make targeted changes to a specific file
Bash              Run shell commands
Grep              Search for patterns inside file contents
Glob              Find files by name or pattern
LSP               Code intelligence &#8212; jump to definitions, find references, get type errors
Agent             Spawn a subagent with its own context window to handle a task
WebFetch          Fetch content from a URL
WebSearch         Search the web
Skill             Run a skill within the main conversation
NotebookEdit      Edit Jupyter notebook cells
AskUserQuestion   Ask the user a multiple choice question to clarify requirements</code></pre></div><p>These are the most commonly used tools. Claude Code has many more built-in tools. Check the <a href="https://code.claude.com/docs/en/tools-reference">full tools reference</a> for the complete list.</p><h2>Up Next:</h2><p>That is it for Part 1.</p><p>We covered agentic architecture, MCP integration, and Claude Code configuration.</p><p>In Part 2, we will move to the remaining areas. That includes prompt engineering, structured outputs, context management, reliability, and the registration flow.</p><p>I have added the mock test materials to this <a href="https://github.com/devgotomarket/cca-prep">GitHub page</a>. I will keep adding more questions as I find useful ones.</p><p>If you are planning to take the exam, use this blog and the mock questions as a practical guide. But before the exam, make sure you also go through the official docs once.</p><p>See you in Part 2.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-certified-architect-foundations?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-certified-architect-foundations?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/claude-certified-architect-foundations?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 108] - GPT 5.5, DeepSeek V4, Claude Design, Kimi K2.6, ChatGPT Images 2.0, Qwen3.6 27B, HyperFrames, OpenAI's Privacy Filter, Parallel's Web Search MCP Server and much more! ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 24 Apr 2026 13:17:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/7c95ba77-d799-408a-91f5-b70cd0e9ae77_5472x3648.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 108th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://openai.com/index/introducing-gpt-5-5">OpenAI has released GPT 5.5</a>, their smartest model so far. It is good at coding, debugging, and creating docs. It is also strong at agentic coding, computer use, and research work. OpenAI says it matches GPT 5.4 speed while completing Codex tasks with fewer tokens. Check OpenAI&#8217;s announcement for more details.</p></li><li><p><a href="https://x.com/deepseek_ai/status/2047516922263285776">DeepSeek has released DeepSeek V4</a>. The model is open sourced<strong> </strong>and<strong> </strong>comes with 1M context window at a lower cost. It has two versions, Pro for stronger performance and Flash for faster and economical use. You can try it on Chat or use the API. Check DeepSeek&#8217;s post for more details.</p></li><li><p><a href="https://www.anthropic.com/news/claude-design-anthropic-labs">Anthropic has launched Claude Design</a>, a new tool for creating visual work with Claude. It can help with wireframes, prototypes, pitch decks, landing pages, and campaign visuals. It can also build visuals that match your existing brand style. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://x.com/i/status/2046249571882500354">Moonshot AI has released Kimi K2.6</a>, an open source coding model. It is built for long running coding tasks. It can also create richer frontend like animated hero sections and motion based UI. It also supports large agentic workflows. Check Kimi&#8217;s post for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/heygen-com/hyperframes">This week we are featuring HyperFrames</a>. It is an open source video rendering framework. It lets you create videos using HTML, preview them in the browser, and export them as MP4. It also works well with AI coding agents like Claude Code, Cursor, Gemini CLI, and Codex, so they can help you create videos with animations. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8Jrn!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8Jrn!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 424w, https://substackcdn.com/image/fetch/$s_!8Jrn!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 848w, https://substackcdn.com/image/fetch/$s_!8Jrn!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!8Jrn!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8Jrn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png" width="1456" height="981" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:981,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:895620,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/195319507?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8Jrn!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 424w, https://substackcdn.com/image/fetch/$s_!8Jrn!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 848w, https://substackcdn.com/image/fetch/$s_!8Jrn!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 1272w, https://substackcdn.com/image/fetch/$s_!8Jrn!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e10c3ef-1fcc-452f-bc15-b4dbfc41bdf3_1662x1120.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p>Anthropic is testing a change to Claude Code access. <a href="https://x.com/TheAmolAvasare/status/2046724659039932830">Claude Code access was removed from the Pro plan for around 2% of new Pro signups</a>. Those users now need the $100 Max plan to use Claude Code. Existing Pro users are not affected for now, but we need to wait and see if this expands later.</p></li><li><p><a href="https://www.bloomberg.com/news/articles/2026-04-21/anthropic-s-mythos-model-is-being-accessed-by-unauthorized-users">Anthropic&#8217;s Mythos model was reportedly accessed by a private Discord group</a>. Mythos was meant only for selected partners, because Anthropic considered it too powerful for public release. The group reportedly used leaked vendor details to find the access path. Check Bloomberg&#8217;s report for more details.</p></li><li><p><a href="https://vercel.com/kb/bulletin/vercel-april-2026-security-incident">Vercel reported a recent security incident</a>. It started after Context.ai, a third party AI tool used by one employee, was compromised. The attacker used that access to enter some Vercel systems. They also decrypted some non sensitive environment variables. Read Vercel&#8217;s security bulletin for full details.</p></li><li><p><a href="https://x.com/SpaceX/status/2046713419978453374">Cursor and SpaceXAI are working together on AI for coding tasks</a>. Cursor brings the coding product. SpaceXAI brings the Colossus training supercomputer. SpaceXAI also has the option to acquire Cursor later this year for $60 billion. Check the post for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://openai.com/index/introducing-chatgpt-images-2-0/">OpenAI has released ChatGPT Images 2.0</a>. It improves image generation, text rendering, and multilingual support. It can create visuals for social posts, presentations, infographics, comics, and other content. Check OpenAI&#8217;s announcement for more details.</p></li><li><p><a href="https://qwen.ai/blog?id=qwen3.6-27b">Qwen has released Qwen3.6 27B</a>, a 27B dense model focused on coding. It delivers strong agentic coding performance in a much smaller model. It also supports multimodal input and can work with coding agents. Check Qwen&#8217;s blog for more details.</p></li><li><p><a href="https://github.com/openai/privacy-filter">OpenAI has released Privacy Filter</a>, an open source model for finding and masking personal data in text. It is useful for teams that want to clean sensitive data on their own systems. It can redact PII before the data is stored or processed. Check the GitHub repo for more details.</p></li><li><p>We now have a <a href="https://x.com/i/status/2047397365091618921">free web search MCP server from Parallel</a>. It is used for web search inside AI agents and MCP supported tools. It does not need any account or API key. You can use it with Claude Code, Codex, or any MCP supported tool. Check Parallel&#8217;s post for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-108-gpt-55-deepseek?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 107] - Claude Opus 4.7, GPT 5.4 Cyber, Gemini 3.1 Flash TTS, Windsurf 2.0 with Devin, Qwen3.6-35B MOE Model, Routines in CC, GPT Rosalind, Gemini for Mac, Codex for everything & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 17 Apr 2026 12:31:55 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/20c76d06-65d3-4ca8-abae-d6b794fc0a3b_5616x3744.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 107th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://www.anthropic.com/news/claude-opus-4-7">Anthropic has released Claude Opus 4.7.</a> It comes with stronger coding, high resolution vision, and a new xhigh effort level. Pricing remains the same as Opus 4.6. Anthropic notes that Mythos Preview still remains its best aligned model based on its evaluations. Check Anthropic&#8217;s page for more details.</p></li><li><p><a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-flash-tts/">Google has released Gemini 3.1 Flash TTS</a>. It generates more natural speech and supports 70+ languages. It also adds audio tags to control vocal style, pace, and delivery. Its audio output is watermarked with SynthID to identify AI generated content. Check Google&#8217;s announcement for more details.</p></li><li><p><a href="https://openai.com/index/scaling-trusted-access-for-cyber-defense/">OpenAI has rolled out GPT 5.4 Cyber</a>. It is built for defensive security work. Access to this model is now open through identity verification. OpenAI says it can inspect compiled software and find malware, vulnerabilities, and other security issues without the original source code. Check OpenAI&#8217;s post for details.</p></li><li><p><a href="https://x.com/i/status/2044768734234243427">Qwen has open sourced Qwen3.6 35B A3B</a>. It is a sparse MoE model with 35B total parameters and 3B active. It comes with strong agentic coding and multimodal reasoning. It also supports both thinking and non thinking modes in one model. Check Qwen&#8217;s announcement for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/GoogleCloudPlatform/scion">This week we are featuring Scion</a>. It is an open source multi agent orchestration tool. It runs each agent in its own container and git worktree. It helps multiple agents work in parallel without getting in each other&#8217;s way. It works with Claude Code, Gemini CLI, Codex, and others too. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9ns8!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9ns8!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 424w, https://substackcdn.com/image/fetch/$s_!9ns8!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 848w, https://substackcdn.com/image/fetch/$s_!9ns8!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 1272w, https://substackcdn.com/image/fetch/$s_!9ns8!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9ns8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png" width="1456" height="561" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:561,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:176573,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/194467582?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!9ns8!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 424w, https://substackcdn.com/image/fetch/$s_!9ns8!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 848w, https://substackcdn.com/image/fetch/$s_!9ns8!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 1272w, https://substackcdn.com/image/fetch/$s_!9ns8!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9e6abbb2-c936-4d78-a5f5-784add3b9eea_1754x676.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://blog.google/innovation-and-ai/products/gemini-app/gemini-app-now-on-mac-os">Google has launched the Gemini app for Mac</a>. It is a native macOS app. You can share anything on your screen with Gemini to get help, including local files. Check Google&#8217;s post for more details.</p></li><li><p><a href="https://openai.com/index/introducing-gpt-rosalind/">OpenAI has introduced GPT Rosalind</a>. It is a new model built for life sciences research and drug discovery. OpenAI says it can reason across chemistry, proteins, and DNA, and help with experiment analysis. Check OpenAI&#8217;s post for more details.</p></li><li><p><a href="https://arxiv.org/pdf/2602.24281">Google has solved one of the old problems in RNNs with Memory Caching.</a> Earlier, RNNs had to rely on one fixed memory as the input got longer. This new method keeps useful memory from earlier in the sequence. The paper says this improves long context and recall heavy tasks. It also brings RNNs closer to Transformers. Check the paper for more details.</p></li><li><p>I came across Baileys. It is a <a href="https://github.com/whiskeysockets/Baileys">WebSockets-based TypeScript library for interacting with the WhatsApp Web API</a>. If you are working on WhatsApp based apps, this is worth a look. Check the GitHub repo for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://claude.com/blog/introducing-routines-in-claude-code">Anthropic has introduced routines in Claude Code</a>. You can now set up repeatable automations and run them on a schedule, through an API call, or from GitHub events. Since they run on Claude Code&#8217;s web infrastructure, you do not need to keep your laptop open. Check Anthropic&#8217;s post for more details.</p></li><li><p><a href="https://windsurf.com/blog/windsurf-2-0">Windsurf has launched Windsurf 2.0</a>. It adds a new Agent Command Center to manage local and cloud agents in one place. Devin is now built into Windsurf, so cloud agents can keep working even after you close your laptop. Check Windsurf&#8217;s post for more details.</p></li><li><p><a href="https://openai.com/index/codex-for-almost-everything/">OpenAI has updated Codex in a big way</a>. It now goes beyond coding. It can handle computer use, run multiple agents, and browse the web. It also adds image generation and 90+ new plugins. OpenAI is also adding memory and automations for long running work. Check OpenAI&#8217;s post for more details.</p></li><li><p>Google has introduced Skills in Chrome. <a href="https://blog.google/products-and-platforms/products/chrome/skills-in-chrome/">You can now turn your prompts into one click tools</a>. They can run on the page you are viewing or across selected tabs. Google is also adding a ready made Skills library. Check Google&#8217;s post for more details.</p></li><li><p>If you are building agents, this is a must read. Garry Tan shared a useful idea on building AI agents. He says <a href="https://x.com/garrytan/status/2042925773300908103">keep the harness thin and put more value into skills.</a> His point is that the real bottleneck is not model intelligence. It is whether the model understands your data, process, and context. Check Garry Tan&#8217;s post for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-107-claude-opus-47-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 106] - Anthropic's Mythos, Meta's Muse Spark, Amazon's S3 Files, llmfit, OpenClaw's Dreaming feature,Claude Managed Agents,Graphify, nono-sandbox,Perplexity's plaid integration & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 10 Apr 2026 13:03:43 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/65c12716-b13e-45ff-a213-78e251960e16_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 106th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://www.anthropic.com/glasswing">Anthropic&#8217;s new Project Glasswing is getting a lot of attention</a>. It is a new effort to secure critical software. It is built around Claude Mythos Preview, Anthropic&#8217;s latest model. Anthropic says Mythos can find serious software flaws. It has already identified flaws in the Linux kernel and major browsers. Because of its capabilities, Anthropic is not making it publicly available. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://ai.meta.com/blog/introducing-muse-spark-msl/">Meta is back in the model race with Muse Spark</a>. It is the first model from Meta Superintelligence Labs. It supports multimodal reasoning and visual chain of thought, and multi agent tasks. Check Meta&#8217;s announcement for more details.</p></li><li><p><a href="https://aws.amazon.com/about-aws/whats-new/2026/04/amazon-s3-files">Amazon has announced S3 Files</a>. It lets you access S3 buckets like a file system, without moving data out of S3. It gives file system access to S3 data with low latency. Check AWS&#8217;s announcement for more details.</p></li><li><p><a href="https://docs.openclaw.ai/concepts/dreaming">OpenClaw has released a new memory feature called Dreaming</a>. It is a background memory consolidation system for long term recall. It takes useful short term context and stores it in durable memory. It is off by default. Check OpenClaw&#8217;s docs for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring nono. It is an <a href="https://github.com/always-further/nono">open source sandbox for AI agents</a>. It lets you run agents in an isolated environment without extra infrastructure. It also supports tools like Claude Code, Codex, OpenCode, and OpenClaw. Check the nono GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!jqJM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!jqJM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 424w, https://substackcdn.com/image/fetch/$s_!jqJM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 848w, https://substackcdn.com/image/fetch/$s_!jqJM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 1272w, https://substackcdn.com/image/fetch/$s_!jqJM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!jqJM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png" width="1456" height="734" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:734,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179098,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/193758965?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!jqJM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 424w, https://substackcdn.com/image/fetch/$s_!jqJM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 848w, https://substackcdn.com/image/fetch/$s_!jqJM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 1272w, https://substackcdn.com/image/fetch/$s_!jqJM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F660c62ca-0760-4aa1-b3f1-743247c920dc_1722x868.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://claude.com/blog/claude-managed-agents">Anthropic has launched Claude Managed Agents</a>. It helps teams build and run cloud hosted agents on Anthropic&#8217;s infrastructure. Anthropic handles things like sandboxing, permissions, state, and tracing. So teams can focus more on the agent itself. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://blog.langchain.com/deep-agents-deploy-an-open-alternative-to-claude-managed-agents/">LangChain has introduced Deep Agents Deploy</a>. It is an open alternative to Claude Managed Agents. It helps teams deploy production ready agents with one command. It is model agnostic and open source, so teams are not locked into one provider. Check LangChain&#8217;s announcement for more details.</p></li><li><p>If you keep a lot of notes in markdown, Atomic is worth a look. It is an open source personal knowledge base. <a href="https://github.com/kenforthewin/atomic">It turns markdown notes into a connected knowledge graph</a>. You can explore it through wiki style pages, a canvas, and chat. Check the Atomic GitHub repo for more details.</p></li><li><p>xAI looks to be scaling up fast. <a href="https://x.com/elonmusk/status/2041754402239975479">Elon Musk says they have 7 models in training</a>. They include Imagine V2, two 1T variants, two 1.5T variants, a 6T model, and a 10T model. Check Elon Musk&#8217;s post for more details.</p></li><li><p><a href="https://huggingface.co/blog/ibm-research/altk-evolve">IBM Research has released ALTK Evolve for AI agents</a>. It helps agents learn from past runs instead of just re reading old transcripts. IBM says it turns agent traces into reusable guidelines, and improves reliability on harder tasks. Check the Hugging Face post for more details.</p></li><li><p><a href="https://github.com/microsoft/memento">Microsoft has released Memento. It is a new way to extend LLM output length without needing a bigger context window</a>. It breaks reasoning into blocks, writes short summaries, and clears old KV cache. So the model can keep going longer. Check the Memento GitHub repo for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://github.com/AlexsJones/llmfit">llmfit looks useful if you run models locally</a>. It checks your RAM, CPU, and GPU, then tells you which models will run well on your machine. It also scores them across fit, speed, quality, and context. It comes with both a terminal UI and a CLI mode. Check the llmfit GitHub repo for more details.</p></li><li><p><a href="https://github.com/safishamsi/graphify">The skill called Graphify caught my attention</a>. It is an open source skill for Claude Code and other coding assistants. It turns a folder of code, PDFs, markdown, and images into a queryable knowledge graph with one command. It can help you understand a codebase faster and trace architecture decisions. Check the Graphify GitHub repo for more details.</p></li><li><p><a href="https://x.com/noahzweben/status/2041654973491245509">Claude Code has added /autofix-pr in the CLI.</a> You can now trigger PR autofix directly after finishing your PR. It sends your session to the cloud, so the autofixer gets full context to handle CI failures and review comments. Check the X post for more details.</p></li><li><p><a href="https://www.perplexity.ai/hub/blog/plaid-integration-provides-full-view-of-personal-finances">Perplexity has added Plaid integration to its Computer agent.</a> Users can now link bank accounts, credit cards, and loans for a fuller view of their finances. Perplexity says Computer can analyze spending, track net worth, and build custom finance tools from simple prompts. Check Perplexity&#8217;s announcement for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-106-anthropics-mythos?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 105] - Gemma 4, Qwen3.6 Plus, Microsoft's MAI Models, GLM 5V Turbo, Semiotic, Claude Code's Source Code Leaked, Claude Code tips, Video chat with your agents with this Skill & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 03 Apr 2026 13:31:27 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/f020278f-6ef9-4e0f-910d-a2b9b29b37aa_5001x3334.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 105th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://blog.google/innovation-and-ai/technology/developers-tools/gemma-4/">Google has released Gemma 4</a>. It is a new open model family. It is built from the same research and technology behind Gemini 3. Google says it supports agent workflows, multimodal reasoning, and 140 languages. Check Google DeepMind&#8217;s post for more details</p></li><li><p><a href="https://microsoft.ai/news/today-were-announcing-3-new-world-class-mai-models-available-in-foundry">Microsoft has announced three new MAI models in Foundry</a>. They are MAI Transcribe 1, MAI Voice 1, and MAI Image 2. These cover speech to text, voice generation, and image generation. The models focus on speed, quality, and lower cost. Check Microsoft&#8217;s announcement for more details.</p></li><li><p><a href="https://qwen.ai/blog?id=qwen3.6">Qwen has introduced Qwen3.6 Plus</a>. It comes with better coding, stronger multimodal vision, and a 1M context window in the API. Qwen says it is built to support real world agents and developer workflows. Check Qwen&#8217;s blog for more details.</p></li><li><p><a href="https://x.com/Fried_rice/status/2038894956459290963?s=20">Anthropic accidentally exposed Claude Code</a> source code through a map file in its npm package. The leaked code then spread across GitHub through multiple repos and forks. Anthropic sent takedown notices to remove those leaked copies. Check the <a href="https://techcrunch.com/2026/04/01/anthropic-took-down-thousands-of-github-repos-trying-to-yank-its-leaked-source-code-a-move-the-company-says-was-an-accident/">TechCrunch report</a> for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/nteract/semiotic">This week we are featuring Semiotic</a>. It is a React library for building data visualizations in web apps. It comes with schemas and an MCP server, so AI coding assistants can generate correct chart code on the first try. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GMUY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GMUY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 424w, https://substackcdn.com/image/fetch/$s_!GMUY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 848w, https://substackcdn.com/image/fetch/$s_!GMUY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 1272w, https://substackcdn.com/image/fetch/$s_!GMUY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GMUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png" width="1456" height="1001" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1001,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:251034,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/193026628?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GMUY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 424w, https://substackcdn.com/image/fetch/$s_!GMUY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 848w, https://substackcdn.com/image/fetch/$s_!GMUY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 1272w, https://substackcdn.com/image/fetch/$s_!GMUY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8361c095-6e06-410a-aa53-433a94c43440_1752x1204.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://x.com/bcherny/status/2039421575422980329">Claude Code now has a No Flicker mode</a>. It reduces screen flicker and keeps memory usage stable in long chats. It also adds mouse support in the terminal. Check Anthropic&#8217;s announcement for more details.</p></li><li><p><a href="https://prismml.com/">Prism ML has introduced 1 bit Bonsai 8B</a>. It is a model with 1 bit weights and needs only 1.15 GB of memory. Prism says it is built for robotics, real time agents, and edge use cases. Check Prism ML&#8217;s announcement for more details.</p></li><li><p><a href="https://www.anthropic.com/research/emotion-concepts-function">Anthropic has shared new research on emotion concepts in language models</a>. The research says models can form internal emotion related representations from human text. Anthropic says these patterns can influence how Claude behaves in some cases. Check Anthropic&#8217;s research post for more details.</p></li><li><p><a href="https://www.nytimes.com/2026/04/02/technology/ai-billion-dollar-company-medvi.html">AI has helped a solo founder build a $1.8B business. </a>Medvi is one reported example built with AI tools for coding, ads, and support. It shows how a very small team can now scale much faster with AI. Check the New York Times report for more details.</p></li><li><p><a href="https://x.com/karpathy/status/2039805659525644595">Andrej Karpathy shared a workflow for building personal knowledge bases</a> with LLMs. He uses them to turn papers, articles, repos, and images into a markdown wiki. The wiki then keeps growing through search, Q and A, and new outputs. Check Karpathy&#8217;s post for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://x.com/pika_labs/status/2039804583862796345">Pika has released a beta video chat skill for agents</a>. It is powered by a new real time model called PikaStream 1.0. Pika says it keeps memory and personality during calls and can also support agentic tasks in the same session. Check Pika&#8217;s announcement for more details.</p></li><li><p><a href="https://x.com/bcherny/status/2038454336355999749">Boris Cherny shared practical Claude Code tips from his daily workflow</a>. He showed features like teleport, remote control, loop, schedule, hooks, and Dispatch. These help Claude Code run across devices and automate more work. Check Boris Cherny&#8217;s thread for more details.</p></li><li><p><a href="https://qwen.ai/blog?id=qwen3.5-omni">Qwen has released Qwen3.5 Omni</a>. It is a native multimodal model that can understand text, images, audio, and video. Qwen says it brings stronger multilingual support and better audio and video understanding. Check Qwen&#8217;s blog for more details</p></li><li><p><a href="https://x.com/dahou_yasser/status/2039242378809385331">Falcon has released Falcon Perception</a>. It is a vision model for referring expression segmentation. Along with it, they also released Falcon OCR, a 0.3B OCR model. Falcon says it performs on par with much larger models. Check the Falcon&#8217;s post for more details.</p></li><li><p><a href="https://x.com/Zai_org/status/2039371126984360085">Z.ai has introduced GLM 5V Turbo, a vision model built for coding</a>. It can understand images, video, text, and files as input. Z.ai says it is built for multimodal coding tasks and can work with agents like OpenClaw. Check Z.ai&#8217;s docs for more details</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-105-gemma-4-qwen36-plus?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 104] - Gemini 3.1 Flash Live, Claude's Computer Use, SORA gets shut down, HF hf-mount, TurboQuant, CC Cheat Sheet, Email.md, Auto-Mode in CC, LiteLLM Security Incident,MiroFish & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-104-gemini-31-flash</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-104-gemini-31-flash</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 27 Mar 2026 12:36:21 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/c1a34b11-42d0-40f7-8aeb-b7191fe82167_2500x1670.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 104th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-flash-live/">Google has introduced Gemini 3.1 Flash Live</a>, its latest real time audio model. It is built for more natural voice conversations and better task handling. Google is rolling it out across more of its products. Check Google&#8217;s announcement for more details.</p></li><li><p><a href="https://research.google/blog/turboquant-redefining-ai-efficiency-with-extreme-compression">Google Research has introduced TurboQuant</a>. Its a new compression method for AI models and vector search systems. It is designed to shrink memory use without hurting model accuracy. Google says TurboQuant can cut KV memory by at least 6 times. Check Google Research&#8217;s post for more details.</p></li><li><p><a href="https://huggingface.co/changelog/hf-mount">Hugging Face has introduced hf mount</a>. It allows you attach Hub storage, models, and datasets like a local file system. You can now attach a remote storage that is 100x bigger than your local disk. It may be useful for Agentic Storage. Check Hugging Face&#8217;s post for more details.</p></li><li><p><a href="https://docs.litellm.ai/blog/security-update-march-2026">LiteLLM was recently compromised in a suspected supply chain incident</a>. The team has shared a detailed report and the affected versions. It is worth checking if you use LiteLLM in production. Check LiteLLM&#8217;s security update for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/unmta/emailmd">This week&#8217;s OSS highlight is emailmd</a>. It lets you write emails in Markdown and convert them into email ready HTML. It helps to create responsive emails without writing complex HTML. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!glwX!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!glwX!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 424w, https://substackcdn.com/image/fetch/$s_!glwX!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 848w, https://substackcdn.com/image/fetch/$s_!glwX!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 1272w, https://substackcdn.com/image/fetch/$s_!glwX!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!glwX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png" width="1456" height="1249" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1249,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:378348,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/192267873?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!glwX!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 424w, https://substackcdn.com/image/fetch/$s_!glwX!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 848w, https://substackcdn.com/image/fetch/$s_!glwX!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 1272w, https://substackcdn.com/image/fetch/$s_!glwX!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F78d20d49-bcab-40a4-b3e9-69b90241aaa7_1742x1494.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://x.com/soraofficialapp/status/2036546752535470382">OpenAI is reportedly shutting down Sora</a>, its AI video product. They do this to free up compute for its next major model called Spud. This shows OpenAI is shifting focus back to its next big model release. Check the latest reports for more details.</p></li><li><p><a href="https://x.com/claudeai/status/2036195789601374705">Anthropic has added a new computer use feature to Claude</a>. It can operate your Mac and complete real tasks. It can open apps, browse, and do desktop actions for you. It is now in research preview inside Claude Cowork and Claude Code on macOS. Check Anthropic&#8217;s post for more details.</p></li><li><p><a href="https://blog.cloudflare.com/dynamic-workers/">Cloudflare has launched Dynamic Worker Loader</a>. It lets developers run AI  code in isolated sandboxes on demand. It makes agent execution much faster and more memory efficient than containers. Check Cloudflare&#8217;s post for more details.</p></li><li><p><a href="https://www.anthropic.com/engineering/claude-code-auto-mode">Anthropic has introduced auto mode in Claude Code</a> to reduce constant permission prompts.  It can decide some file writes on its own. The goal is to reduce approval fatigue while maintaining safety controls. Check Anthropic&#8217;s post for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://mistral.ai/news/voxtral-tts">Mistral has introduced Voxtral TTS</a>, its first text to speech model. It is built for multilingual voice generation, low latency, and custom voice support. It is available through API, Mistral Studio and Hugging Face. Check Mistral&#8217;s announcement for more details.</p></li><li><p><a href="https://github.com/666ghj/MiroFish/tree/main">MiroFish is an AI prediction engine</a> built on multi agent technology. It takes real world signals like breaking news, policy drafts, or financial data and builds a parallel digital world for simulation. So teams can test possible future scenarios in a digital sandbox. Check the GitHub repo for more details.</p></li><li><p><a href="https://lumalabs.ai/uni-1">Luma has introduced UNI 1</a>, a new multimodal model for image generation. It is built for better image understanding, editing, and reference based generation. Luma says it performs well across image quality. Its API access is coming soon. Check Luma&#8217;s UNI 1 page for more details.</p></li><li><p>There is a <a href="https://cc.storyfox.cz/">Claude Code cheat sheet</a> for quick reference. It brings shortcuts, slash commands, MCP options, and recent updates into one place. It is useful if you use Claude Code often and want everything in one view. Check it out for more details.</p></li><li><p><a href="https://github.com/mozilla-ai/cq">Mozilla AI has released cq, a new open standard for shared agent learning.</a> It lets agents store, share, and query past knowledge. So they do not keep repeating the same mistakes. It is worth a look if you are exploring agent memory and team level learning. Check the GitHub repo for more details.</p></li><li><p><a href="https://blog.google/innovation-and-ai/technology/ai/lyria-3-pro">Google has introduced Lyria 3 Pro</a>. Its latest music generation model. It can create longer tracks of up to 3 minutes. It gives more control over parts like intros, verses, and choruses. This will be available in all google applications like Vertex AI, Gemini App. Check Google&#8217;s announcement for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-104-gemini-31-flash?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-104-gemini-31-flash?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-104-gemini-31-flash?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 103] - GPT 5.4 mini and Nano, NVIDIA's NemoClaw, OpenAI's Model Challenge, Zeroboot, AutoResearchClaw, Google’s Stitch, Cowork's Dispatch, Unsloth Studio, Mistral Small 4 and more! ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 20 Mar 2026 13:37:44 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8bbe0dd6-7cab-4de2-b676-7021d5b2ffb4_6000x3375.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 103rd edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8800+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://openai.com/index/introducing-gpt-5-4-mini-and-nano/">OpenAI has released GPT 5.4 mini and nano</a>. GPT 5.4 mini is a smaller model with better coding, reasoning, multimodal understanding, and tool use. It is 2x faster than GPT 5 mini. GPT 5.4 nano is the cheaper option for smaller tasks. Check OpenAI&#8217;s announcement for more details.</p></li><li><p><a href="https://github.com/NVIDIA/NemoClaw/">NVIDIA has released NemoClaw</a>. It is an open source setup that helps you run OpenClaw assistants in a safer way. It sets up NVIDIA OpenShell for secure agent runs and supports open models like NVIDIA Nemotron. Check the NemoClaw GitHub repo for more details.</p></li><li><p><a href="https://www.minimax.io/news/minimax-m27-en">MiniMax has released M2.7</a>. It can handle project delivery, bug fixing, log analysis, and office tasks like Word, Excel, and PPT. It is also the company&#8217;s first model to take part in its own evolution. Check MiniMax&#8217;s announcement for more details.</p></li><li><p><a href="https://manus.im/blog/manus-my-computer-desktop">Manus has introduced My Computer</a>. Its a Desktop app. It works with local files, folders, tools, and apps. It can run terminal commands, edit files, and handle desktop tasks with your approval. It is available now for macOS and Windows users. Check Manus&#8217;s announcement for more details</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p><a href="https://github.com/aiming-lab/AutoResearchClaw">This week&#8217;s OSS highlight is AutoResearchClaw</a>. It is an open source research agent. It turns a research idea into a full paper. It can search papers from OpenAlex, Semantic Scholar, and arXiv and generate experiments, charts, reviews, and conference ready LaTeX output. It is useful for developers and researchers who want to test ideas faster. Check the GitHub repo for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!aRCm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!aRCm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 424w, https://substackcdn.com/image/fetch/$s_!aRCm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 848w, https://substackcdn.com/image/fetch/$s_!aRCm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!aRCm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!aRCm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png" width="1456" height="991" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:991,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:2138922,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/191551864?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!aRCm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 424w, https://substackcdn.com/image/fetch/$s_!aRCm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 848w, https://substackcdn.com/image/fetch/$s_!aRCm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 1272w, https://substackcdn.com/image/fetch/$s_!aRCm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc26e23ca-7617-43a0-9a0f-a04107ae3ca6_1748x1190.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://x.com/felixrieseberg/status/2034005731457044577">Anthropic is shipping Dispatch in Claude Cowork as a research preview</a>. It gives you one persistent conversation with Claude that runs on your computer. You can message it from your phone and come back later to finished work. To try it, download Claude Desktop and pair your phone.</p></li><li><p><a href="https://unsloth.ai/docs/new/studio">Unsloth has introduced Unsloth Studio</a>. It is an open source web UI for working with open models locally. You can run models, train them, and export them from one place. It also supports files like PDF, CSV, JSON, and DOCX for training. Check Unsloth&#8217;s docs for more details.</p></li><li><p><a href="https://stitch.withgoogle.com/">Google has updated Stitch</a>. It turns prompts into UI. It comes with new canvas, a design agent, voice support, and DESIGN.md for reusing design rules across tools. It also supports integrations through MCP and SDKs. Check Google&#8217;s Stitch announcement for more details.</p></li><li><p><a href="https://cursor.com/blog/composer-2">Cursor has introduced Composer 2</a>. Cursor says it performs better than earlier Composer versions on coding benchmarks. Check Cursor&#8217;s announcement for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://openai.com/index/parameter-golf/">OpenAI has launched a Challenge called Parameter Golf</a>. It asks people to train the best language model that fits in 16MB and trains in under 10 minutes on 8xH100s. OpenAI is also offering compute credits. The challenge runs from March 18 to April 30. <a href="https://x.com/openai/status/2034315401438580953?s=46&amp;t=icC0fizZK8E3ONsDVuGFWA">Check OpenAI&#8217;s post</a> for more info. </p></li><li><p><a href="https://github.com/zerobootdev/zeroboot">Zeroboot creates sandboxes for AI agents very fast</a>. It can start VM sandboxes in less than a millisecond. The repo also includes SDKs and self hosting docs. It is still a prototype, so it is not ready for production yet. Check the Zeroboot GitHub repo for more details.</p></li><li><p><a href="https://x.com/MicrosoftAI/status/2034661558492557386?s=20">Microsoft has introduced MAI Image 2</a>. It is their new image model built for creative work. It improves photorealism, image text generation, and detailed scene creation. It is available now in MAI Playground, Copilot and Bing Image Creator. Check Microsoft&#8217;s announcement for more details.</p></li><li><p><a href="https://docs.z.ai/guides/llm/glm-5-turbo">Z.AI has released GLM 5 Turbo</a>. It is built for OpenClaw style agent tasks. It supports tool calling, long chain tasks, MCP, and a 200K context window. Check Z.AI&#8217;s docs for more details.</p></li><li><p><a href="https://mistral.ai/news/mistral-small-4">Mistral has released Mistral Small 4</a>. It brings reasoning, coding, and image understanding into one system. It combines capabilities from Mistral&#8217;s earlier model families. It comes with a 256k context window and is open source. Check Mistral&#8217;s announcement and docs for more details.</p></li><li><p><a href="https://x.com/worldnetwork/status/2033923684768092436">World has introduced AgentKit</a>. It adds human verification for agents. It is powered by x402 and built by Coinbase and Cloudflare. The goal is to make agent automation more trusted. <a href="https://docs.world.org/agents/agent-kit/integrate">Check World&#8217;s announcement and docs for more details</a>.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-103-gpt-54-mini-and?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 102] - Gemini Embedding 2, Andrew Ng's Context Hub, Nemotron 3 Super, Perplexity's Personal Computer, gstack, AMI Labs, Agent 4, Karpathy's Auto Research, RCLI-Voice AI for Mac & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 13 Mar 2026 13:45:15 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/bb571fd5-650a-4e59-8508-ce6398bae7e6_7839x5228.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 102nd edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8700+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p>Google has released Gemini Embedding 2, its first natively multimodal embedding model. It can map text, images, video, audio, and documents into one embedding space. This is useful for multimodal RAG, search, and retrieval use cases. Check Google&#8217;s <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-embedding-2">Gemini Embedding 2 announcement</a> for more details.</p></li><li><p><a href="https://github.com/andrewyng/context-hub">Andrew Ng has released Context Hub</a>. It helps coding agents use curated and versioned docs through a CLI. It is designed to reduce API hallucinations and help agents improve across tasks. Check the Context Hub GitHub repo for more details.</p></li><li><p><a href="https://blogs.nvidia.com/blog/nemotron-3-super-agentic-ai/">NVIDIA has released Nemotron 3 Super</a>, a new open 120B model for agentic AI. It is built for long and complex agent workflows. It supports a 1 million token context window and higher throughput. Check NVIDIA&#8217;s Nemotron 3 Super announcement for more details.</p></li><li><p><a href="https://www.perplexity.ai/personal-computer-waitlist">Perplexity has opened the waitlist for Personal Computer</a>. It brings Perplexity Computer and Comet Assistant to your own system. Perplexity says sensitive actions need your approval and all actions are logged. Check Perplexity&#8217;s page for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring RCLI. It is an on device voice AI for macOS. You can control macOS actions with voice and also query your documents with voice. No cloud and no API keys. Check the <a href="https://github.com/RunanywhereAI/RCLI">RCLI GitHub repo</a> for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!exMZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!exMZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 424w, https://substackcdn.com/image/fetch/$s_!exMZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 848w, https://substackcdn.com/image/fetch/$s_!exMZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 1272w, https://substackcdn.com/image/fetch/$s_!exMZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!exMZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png" width="1456" height="1011" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1011,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:592999,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/190801414?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!exMZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 424w, https://substackcdn.com/image/fetch/$s_!exMZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 848w, https://substackcdn.com/image/fetch/$s_!exMZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 1272w, https://substackcdn.com/image/fetch/$s_!exMZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6d28e742-a294-4d8a-ab9a-1dcc1f4e8897_1736x1206.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p>Cloudflare has added a new /crawl endpoint in Browser Rendering. It lets developers <a href="https://developers.cloudflare.com/changelog/post/2026-03-10-br-crawl-endpoint/">crawl an entire website with one API call</a>. It returns the content in HTML, Markdown, and structured JSON. Check Cloudflare&#8217;s post for more details.</p></li><li><p><a href="https://www.microsoft.com/en-us/microsoft-365/blog/2026/03/09/copilot-cowork-a-new-way-of-getting-work-done">Microsoft has introduced Copilot Cowork</a>. It helps Copilot turn a request into a plan and take action. It works using signals from Microsoft 365 apps like Outlook, Teams, and Excel. Check Microsoft&#8217;s post for more details.</p></li><li><p><a href="https://openai.com/form/codex-for-oss/">OpenAI has opened applications for Codex for Open Source</a>. Selected maintainers get ChatGPT Pro with Codex, Codex Security, and API credits. Check OpenAI&#8217;s page for more details.</p></li><li><p><a href="https://claude.com/platform/marketplace">Anthropic has launched Claude Marketplace</a>. It allows customers to buy Claude powered tools from partners like GitLab, Replit, and Snowflake using their Anthropic commitment. Check Anthropic&#8217;s page for more details.</p></li><li><p><a href="https://openai.com/index/new-ways-to-learn-math-and-science-in-chatgpt/">OpenAI has added interactive learning for math and science in ChatGPT.</a> Now you can learn concepts with visual explanations inside ChatGPT. This makes formulas and graphs easier to understand. Check OpenAI&#8217;s post for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://amilabs.xyz/">Ex Meta Chief Scientist Yann LeCun has launched AMI Labs</a>. AMI Labs aims to solve the limits of standard language models by building world models. Its initial focus is on companies that run complex systems, like automotive, aerospace, biomedical, and pharma. Check the AMI Labs site for more details.</p></li><li><p><a href="https://github.com/garrytan/gstack">Y Combinator CEO Garry Tan has released gstack</a>. It brings his Claude Code setup with 6 opinionated tools for roles like CEO, Engineering Manager, Release Manager, and QA Engineer. It is built to turn one coding agent into a team of specialist workflows. Check the gstack GitHub repo for more details.</p></li><li><p><a href="https://github.com/karpathy/autoresearch">Andrej Karpathy has released autoresearch</a>. It lets AI agents run small LLM training experiments automatically on a single GPU. The agent edits the training code, runs a fixed 5 minute experiment, checks the result, and repeats. Check the autoresearch GitHub repo for more details.</p></li><li><p><a href="https://x.com/YousifAstar/status/2032214543292850427">Came across this X post where a techie shared how he hacked Perplexity Computer and got access to the Claude Code API key</a> used by Perplexity. He also shared a safer pattern for handling keys in multi agent systems. Check the X post for more details.</p></li><li><p><a href="https://www.hume.ai/blog/opensource-tada">Hume has open sourced TADA, a speech language model for text to speech.</a> It is designed for faster generation and to reduce hallucinated words in speech output. This could be useful for teams building voice products. Check Hume&#8217;s post for more details.</p></li><li><p><a href="https://blog.replit.com/introducing-agent-4-built-for-creativity">Replit has introduced Agent 4</a> for more creative app building workflows. It can generate UI variants and handle multiple tasks in parallel. This helps developers move faster while building inside Replit. Check Replit&#8217;s Agent 4 announcement for more details</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-102-gemini-embedding?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 101] - GPT-5.4, Gemini 3.1 Flash Lite, Google Workspace CLI, import-memory in claude, Qwen 3.5 Small models, Voice Mode in Claude Code, Claude-Max for open-source maintainers and more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 06 Mar 2026 13:03:40 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/8af0763e-585e-473e-87b5-756238f12bf2_5472x3648.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 101st edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8700+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p>OpenAI has released GPT-5.4.  It is their most capable model so far. They also released GPT-5.4 Pro in ChatGPT and the API for harder tasks and long running workflows. It brings improvements in reasoning, coding, and agentic workflows. Check <a href="https://openai.com/index/introducing-gpt-5-4">OpenAI&#8217;s GPT-5.4 announcement</a> for more details.</p></li><li><p>Many tools are now moving to the CLI, so agents can use them. Google Workspace released Workspace CLI. It lets you access Gmail, Drive, Docs, and Calendar directly from the terminal. The engineer who built it also wrote a post on <a href="https://justin.poehnelt.com/posts/rewrite-your-cli-for-ai-agents/">designing CLIs for AI agents</a>. Check the  <a href="https://github.com/googleworkspace/cli">Google Workspace CLI GitHub repo</a> for installation and usage details.</p></li><li><p>Google has released Gemini 3.1 Flash Lite, a lightweight model built for high volume workloads. It focuses on speed and lower cost while still handling complex tasks. It is available through the Gemini API, AI Studio, and Vertex AI. Check Google&#8217;s <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-flash-lite">Gemini 3.1 Flash Lite announcement</a> for more details.</p></li><li><p>Qwen introduced the Qwen 3.5 Small model series with 0.8B, 2B, 4B, and 9B sizes. These models aim to deliver stronger performance with lower compute. They also released matching Base models for research and fine tuning. Check <a href="https://x.com/Alibaba_Qwen/status/2028460046510965160">Qwen&#8217;s Twitter post</a> for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring Hermes Agent, an open source AI agent from Nous Research. It runs on your machine. It acts as a personal agent and learns your projects. It builds skills over time. It can connect to tools like Slack, Telegram, and Discord and automate tasks on a schedule. Check the <a href="https://github.com/NousResearch/hermes-agent">Hermes Agent GitHub repo</a> to explore more.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!CfwB!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!CfwB!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 424w, https://substackcdn.com/image/fetch/$s_!CfwB!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 848w, https://substackcdn.com/image/fetch/$s_!CfwB!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 1272w, https://substackcdn.com/image/fetch/$s_!CfwB!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!CfwB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png" width="1092" height="551" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/a51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:551,&quot;width&quot;:1092,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:76697,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/190051177?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!CfwB!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 424w, https://substackcdn.com/image/fetch/$s_!CfwB!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 848w, https://substackcdn.com/image/fetch/$s_!CfwB!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 1272w, https://substackcdn.com/image/fetch/$s_!CfwB!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fa51110a4-12a4-41b0-a0f0-f823eb9b283b_1092x551.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://claude.com/import-memory">Anthropic introduced Import Memory in Claud</a>e. Now you can bring context from other AI tools with a simple copy paste flow. This helps Claude pick up your preferences and project context faster. Check Claude&#8217;s Import Memory page for more details.</p></li><li><p><a href="https://cursor.com/changelog/2-6">Cursor added MCP Apps</a>. It allows interactive interfaces like charts, diagrams, and whiteboards to appear directly inside Cursor. This means tools can return rich visual interfaces instead of just text responses. Check Cursor&#8217;s MCP App&#8217;s post for more details.</p></li><li><p><a href="https://newsletter.pragmaticengineer.com/p/building-claude-code-with-boris-cherny">A new interview with Boris Cherny, the creator of Claude Code</a>, explains how the tool was built and how developers are using it today. It covers workflows like running parallel agents and more. Check the Pragmatic Engineer post for the full interview.</p></li><li><p>If you are building LLMs, this post is worth reading. It explains <a href="https://blog.bytebytego.com/p/the-architecture-behind-open-source">how open weight LLMs are built</a>. It covers ideas like MoE models, active parameters, and training choices in a simple way. Check the full post for more details.</p></li><li><p><a href="https://www.reuters.com/business/openai-is-developing-alternative-microsofts-github-information-reports-2026-03-03">OpenAI is reportedly building a GitHub riva</a>l. The project is still in the early stages. It may be offered to OpenAI&#8217;s existing customers. The move comes after several GitHub outages that disrupted developer workflows in recent months. Check the report for more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p>OpenAI released Symphony. It turns project work into isolated implementation runs. It spawns agents to handle the tasks. The agents complete the work and provide proof of execution. This lets teams manage the work instead of supervising coding agents. Check <a href="https://github.com/openai/symphony">OpenAI&#8217;s Symphony</a> for more details.</p></li><li><p>The much awaited <a href="https://x.com/trq212/status/2028628570692890800">Voice Mode is rolling out in Claude Code</a>. It lets developers talk to Claude directly instead of typing prompts. The feature is currently live for a small percentage of users and will roll out more broadly in the coming weeks. Check the post for early demos and rollout details</p></li><li><p><a href="https://claude.com/contact-sales/claude-for-oss">Anthropic offers 6 months of free Claude Max access for eligible open source maintainers and contributors</a>. The goal is to support developers who maintain important OSS projects. Check the Claude for OSS page to see eligibility and application details.</p></li><li><p>Cursor introduced Automations. They can run on a schedule or based on events like Slack messages, GitHub PRs, Linear issues, and PagerDuty incidents. You can also configure your own custom events using webhooks. Check <a href="https://cursor.com/blog/automations">Cursor&#8217;s Automations post</a> for more details.</p></li><li><p>This Substack post talks about <a href="https://newsletter.pragmaticengineer.com/p/ai-tooling-2026">AI tooling for software engineers in 2026</a>. It shows which tools developers use the most. It also explains how common AI has become in daily development work. Check the Pragmatic Engineer post for the full breakdown.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-101-gpt-54-gemini-31?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 100] - Perplexity Computer, Nano Banana 2, Claude Code Remote Control, ZeroClaw, WebSocket Mode in OpenAI API, Claude Opus 3 retirement, Plano, Memento and much more!                  ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 27 Feb 2026 12:05:59 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/eb1f6e38-646b-41ff-9a3a-f4cd65122493_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 100th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8700+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p><a href="https://blog.google/innovation-and-ai/technology/ai/nano-banana-2">Google has released Nano Banana 2</a>, a new image model that brings Nano Banana Pro quality at Gemini Flash speed. It improves lighting, textures, and details while keeping Flash level speed. It is rolling out across Google&#8217;s Gemini platforms. Check Google&#8217;s announcement for details.</p></li><li><p><a href="https://www.perplexity.ai/hub/blog/introducing-perplexity-computer">Perplexity has introduced Perplexity Computer</a>. It is a general purpose digital worker. It can research, build, deploy, and manage a project from start to finish. It runs in the same chat interface. Each task runs in its own sandbox. It uses 19 different models for tasks. Check Perplexity&#8217;s announcement for details.</p></li><li><p><a href="https://code.claude.com/docs/en/remote-control">Anthropic has released Remote Control for Claude Code</a>. It lets you start a terminal task on your computer and continue it from your phone. You link devices by scanning a QR code in the terminal. It is now available for Max plans only. Check Anthropic&#8217;s announcement for details.</p></li><li><p><a href="https://developers.openai.com/api/docs/guides/websocket-mode">OpenAI has added WebSocket mode for the Responses API</a>. This helps long agent workflows, especially with many tool calls. It keeps the connection open. Each time, you just send the new input and the id of the last response. Check OpenAI&#8217;s docs for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring ZeroClaw. It is a runtime operating system for agentic workflows. It abstracts models, tools, memory, and execution so agents can be built once and run anywhere. It can run on low cost hardware. It is far lighter than many other agent runtimes. Check the <a href="https://github.com/zeroclaw-labs/zeroclaw">ZeroClaw GitHub repo</a> for details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!sf4A!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!sf4A!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 424w, https://substackcdn.com/image/fetch/$s_!sf4A!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 848w, https://substackcdn.com/image/fetch/$s_!sf4A!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 1272w, https://substackcdn.com/image/fetch/$s_!sf4A!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!sf4A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png" width="1456" height="648" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:648,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:383640,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/189242185?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!sf4A!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 424w, https://substackcdn.com/image/fetch/$s_!sf4A!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 848w, https://substackcdn.com/image/fetch/$s_!sf4A!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 1272w, https://substackcdn.com/image/fetch/$s_!sf4A!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F85bab093-be58-46cd-b40f-44d08e232d5b_1672x744.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://www.anthropic.com/research/deprecation-updates-opus-3">Anthropic is keeping Claude Opus 3 available even after retirement</a>. Paid users can still access it, and API access is available by request. Opus 3 will also continue writing weekly essays in Claude&#8217;s Corner for the next three months. The essays will be reviewed before publishing, but not edited. Check Anthropic&#8217;s announcement for details.</p></li><li><p><a href="https://ai.google.dev/gemini-api/docs/deprecations">Google is deprecating Gemini 3 Pro Preview</a> on Gemini API and Google AI Studio on March 9, 2026. If you are using the latest alias, it will switch to Gemini 3.1 Pro Preview. Check your integrations and migrate in time to avoid service disruption.</p></li><li><p><a href="https://x.com/perplexity_ai/status/2027067776217841792">Perplexity has partnered with Samsung to bring Perplexity </a>into the upcoming Galaxy S26. It will be built in as a system level AI with its own wake word, &#8220;Hey Plex.&#8221; Check Perplexity&#8217;s announcement for details.</p></li><li><p>We have a new <a href="https://x.com/trq212/status/2027109375765356723">auto memory feature in Claude</a>. Claude can now remember useful context like debugging patterns and preferred approaches across chats. So we do not have to repeat the same details every time. Check the twitter announcement for details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://x.com/claudeai/status/2026720870631354429">Anthropic has added Scheduled Tasks to Cowork</a>. Claude can now run recurring tasks at specific times, like a morning brief, weekly sheet updates, or Friday presentations. Check Anthropic&#8217;s announcement on Scheduled Tasks for details.</p></li><li><p>If you do web scraping, Scrapling is worth a look. It is a Python framework that adapts to site changes. It helps handle anti bot pages. It can scale from one request to full crawls. Check the <a href="https://github.com/D4Vinci/Scrapling">Scrapling GitHub repo</a> for details.</p></li><li><p>If you work with agents, you know skills matter. <a href="https://github.com/sickn33/antigravity-awesome-skills">Antigravity Awesome Skills</a> is a community repo with ready to use skills for Claude Code, Antigravity, Cursor, and more. Review each skill before you install it on your agent.</p></li><li><p>We build Agentic apps. But shipping them is not easy. Plano is a model native proxy server and a universal data plane for Agentic apps. It handles routing, guardrails, and observability, so you can focus on the agent logic. Check the <a href="https://github.com/katanemo/plano">Plano GitHub repo</a> for details.</p></li><li><p>It is not always necessary to fine tune Agents to improve performance. Memento is a framework that helps agents learn. It saves what worked and what failed. It then uses that memory on new tasks. It follows a planner and executor loop. Check the <a href="https://github.com/Agent-on-the-Fly/Memento">Memento GitHub repo</a> for details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-100-perplexity-computer?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 99] - Gemini 3.1 Pro, Claude Sonnet 4.6, Qwen 3.5, Grok 4.2, How Codex is built, microgpt, Code Wiki, Manus Agents, Excalidraw MCP Server, Entire CLI, Lyria 3 and much more! ]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 20 Feb 2026 13:10:22 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/97a47026-4585-4660-89c6-e38fe3495770_5416x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 99th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://devshorts.substack.com/p/openclaw-workflow-and-automation">OpenClaw Workflow and Automation</a></p></li><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li></ul><p>Join 8700+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p>Google has released Gemini 3.1 Pro. It brings better reasoning, stronger coding and longer context. It is now available in public preview across AI Studio, the Gemini API, Antigravity, and other Google platforms. Check <a href="https://blog.google/innovation-and-ai/models-and-research/gemini-models/gemini-3-1-pro">Google&#8217;s announcement on Gemini 3.1 Pro</a> for details.</p></li><li><p>Anthropic has released Claude Sonnet 4.6, the most capable Sonnet model yet. It improves coding, reasoning, agent planning, and computer use. It also supports a 1M token context window in beta. Pricing remains the same as Sonnet 4.5. Check <a href="https://www.anthropic.com/news/claude-sonnet-4-6">Anthropic&#8217;s announcement on Claude Sonnet 4.6.</a> </p></li><li><p>Alibaba has released Qwen 3.5. This is the first open weight model in the Qwen 3.5 series, named Qwen3.5 397B A17B. It is a native vision language model. It performs well on reasoning, coding, agentic tasks, and multimodal understanding. They also introduced Qwen3.5 Plus, a cloud hosted version. <a href="https://qwen.ai/blog?id=qwen3.5">Check the Qwen 3.5 announcement</a> for details.</p></li><li><p>Elon Musk announced Grok 4.2. It has been used internally for research and is now rolling out to the public. It can learn rapidly from every task it handles. Updates are expected weekly, along with release notes. Check the <a href="https://x.com/elonmusk/status/2023829664318583105">Grok 4.2 announcement on X</a> for details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring Entire CLI. It hooks into git and captures AI agent sessions on every push. It saves the prompt and response history along with the commit, so you can see why code changed. It also lets you rewind to a checkpoint when an agent goes wrong. Check the <a href="https://github.com/entireio/cli">Entire CLI GitHub repo</a> for details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!yuv4!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!yuv4!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 424w, https://substackcdn.com/image/fetch/$s_!yuv4!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 848w, https://substackcdn.com/image/fetch/$s_!yuv4!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 1272w, https://substackcdn.com/image/fetch/$s_!yuv4!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!yuv4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png" width="1456" height="607" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/fab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:607,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:172542,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/188455782?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!yuv4!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 424w, https://substackcdn.com/image/fetch/$s_!yuv4!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 848w, https://substackcdn.com/image/fetch/$s_!yuv4!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 1272w, https://substackcdn.com/image/fetch/$s_!yuv4!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ffab1967a-3eef-4b4c-b79f-4b53e5982ec2_1712x714.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p><a href="https://openai.com/index/introducing-lockdown-mode-and-elevated-risk-labels-in-chatgpt/">OpenAI introduced Lockdown Mode in ChatGPT</a>. It is an optional setting that reduces risk from prompt injection by limiting risky connections. They also added Elevated Risk labels to flag higher risk features. Check OpenAI&#8217;s announcement for details.</p></li><li><p>A detailed deep dive breaks down <a href="https://newsletter.pragmaticengineer.com/p/how-codex-is-built">how Codex is built</a> from the ground up. It covers how Codex started, how it works, the most used skills in Codex, and even how Codex helped build itself. Check the substack post to know interesting details about codex. </p></li><li><p><a href="https://x.com/NotebookLM/status/2023851190102986970">NotebookLM added prompt based revisions for slides</a>. You can refine a deck with simple prompts. It also supports PPTX export now. Google Slides export is coming next. This should make it easier to move from notes to a shareable deck faster. Check the NotebookLM post for details.</p></li><li><p><a href="https://manus.im/blog/manus-agents-telegram">Manus introduced Manus Agents for messaging apps</a>. Telegram is the first supported channel. It is available now for all users across all subscription tiers, and more platforms are coming soon. Check the Manus announcement for details.</p></li><li><p><a href="https://developer.chrome.com/blog/webmcp-epp">Chrome introduced WebMCP in early preview</a>. It gives websites, a standard way to expose structured tools. So AI agents can interact with sites directly in a faster and more reliable way. Check the Chrome Developers post for details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p>Andrej Karpathy shared a new project called microgpt. It trains and runs a GPT in a single Python file. The file is about 200 lines with no dependencies and includes the core pieces like tokenizer, model, training, and inference. Check <a href="https://karpathy.github.io/2026/02/12/microgpt">Andrej Karpathy&#8217;s microgpt post</a> for details.</p></li><li><p><a href="https://x.com/excalidraw/status/2021284377506742331">Excalidraw now has an official MCP server.</a> You can use it in Claude by selecting Excalidraw in Connectors. You can also use it with other AI tools. Check the Excalidraw post for details.</p></li><li><p>Google has launched Code Wiki. It turns your repository into auto generated documentation and diagrams. It updates docs when code changes and lets you chat with the repo using Gemini. It is now in public preview for open repositories. Check <a href="https://codewiki.google/">Code Wiki</a> for details.</p></li><li><p>Google has released Lyria 3. It is their latest generative music model. It can create a 30 second soundtrack with lyrics from your prompt. It is now available in the Gemini API. Check <a href="https://blog.google/innovation-and-ai/products/gemini-app/lyria-3">Google&#8217;s announcement on Lyria 3</a> for more details.</p></li><li><p>Cursor introduced Plugins. It is now available in the Cursor Marketplace. You can install integrations like Figma, Linear and others, and use them through MCP inside the IDE, CLI, and Cloud. Plugins can bundle rules, skills, agents, commands, MCP servers, and hooks into one package. Check the <a href="https://x.com/cursor_ai/status/2023827892506161541">Cursor Plugin Marketplace</a> for details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-99-gemini-31-pro-claude?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[OpenClaw Workflow and Automation - The Developer Guide]]></title><description><![CDATA[How I use OpenClaw in my daily workflow]]></description><link>https://www.devshorts.in/p/openclaw-workflow-and-automation</link><guid isPermaLink="false">https://www.devshorts.in/p/openclaw-workflow-and-automation</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Thu, 12 Feb 2026 13:31:06 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!-mdE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>OpenClaw (earlier Moltbot and even earlier Clawbot) got really popular a few weeks ago. Once I kept seeing it everywhere, I wanted to try it on my own day to day workflows.</p><p>What I liked first was the variety of channels OpenClaw supports. I can use it from Slack, WhatsApp, and Telegram. I just message it there, and it runs the task for me.</p><p>But that power is also where the risk starts. So, it is better to run OpenClaw in an isolated environment where it does not have direct access to your main machine.</p><p>I spent time using it on real day to day tasks and picked a few practical workflows that are worth sharing. I will start with the basics, then move into the workflows.</p><p>Here is what we will cover.</p><ol><li><p>What is OpenClaw</p></li><li><p>Installation and Setup for Local, Docker, and Cloud</p></li><li><p>OpenClaw Workflow and Automation</p><ol><li><p>How I fix GitHub issues from slack</p></li><li><p>How I use cron to check pull requests and spot the ones ready to merge</p></li><li><p>How I setup daily AI updates through WhatsApp</p></li></ol></li><li><p>Adding Custom Skills to OpenClaw</p></li><li><p>OpenClaw Agent in Moltbook </p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>1. What is OpenClaw</h2><p>OpenClaw is an open-source personal AI assistant that runs on your own machine. You can talk to the AI assistant from chat apps such as WhatsApp, Telegram, Slack, Discord, and Teams.</p><p>The diagram below shows how it works internally. What impressed me most is how clearly OpenClaw separates the agent from the rest of the system. The gateway, configuration, and lifecycle components are well organized. So, it becomes much easier to understand and debug when something goes wrong.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-mdE!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-mdE!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 424w, https://substackcdn.com/image/fetch/$s_!-mdE!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 848w, https://substackcdn.com/image/fetch/$s_!-mdE!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 1272w, https://substackcdn.com/image/fetch/$s_!-mdE!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-mdE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png" width="1268" height="398" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:398,&quot;width&quot;:1268,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:71154,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-mdE!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 424w, https://substackcdn.com/image/fetch/$s_!-mdE!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 848w, https://substackcdn.com/image/fetch/$s_!-mdE!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 1272w, https://substackcdn.com/image/fetch/$s_!-mdE!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F6c10ff62-cb76-4261-9f0a-5b374639dce2_1268x398.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Gateway</h4><p>Messages come in from channels like WhatsApp, Slack, or web chat. The gateway receives them and sends them to the right agent. It also keeps the session active and queues follow ups if a run is already happening.</p><h4>Agent</h4><p>The agent is the brain. OpenClaw builds the prompt and context, then passes your message to the agent. The agent decides the next step, uses tools if needed, and replies back.</p><h4>Tools and Skills</h4><p>Tools do the actual work. They can run shell commands, browse, call APIs, read files, or send messages. Skills are reusable workflows that tell the agent how to use those tools for a task.</p><h4>Memory</h4><p>Memory helps the agent remember. It stores project notes and past context so you do not have to repeat the same details every time.</p><p>This diagram shows how messages flow through OpenClaw from user input to agent reasoning and action.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9O90!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9O90!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 424w, https://substackcdn.com/image/fetch/$s_!9O90!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 848w, https://substackcdn.com/image/fetch/$s_!9O90!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 1272w, https://substackcdn.com/image/fetch/$s_!9O90!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9O90!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png" width="1456" height="281" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:281,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:560145,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9O90!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 424w, https://substackcdn.com/image/fetch/$s_!9O90!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 848w, https://substackcdn.com/image/fetch/$s_!9O90!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 1272w, https://substackcdn.com/image/fetch/$s_!9O90!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1c10ddbd-88b4-4641-b430-6b038c950bc1_8129x1570.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>2. Installation and Setup </h2><h4><strong>Local Installation</strong></h4><p>Local setup is straightforward. Run this one-line command.</p><pre><code>curl -fsSL https://openclaw.ai/install.sh | bash</code></pre><p>You will then go through a short onboarding flow where you choose options based on your setup. It&#8217;s a simple process, and you can always configure channels and skills later.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;7b6091ef-ad5a-4174-a56d-a5d236e48b2b&quot;,&quot;duration&quot;:null}"></div><h4><strong>Docker Installation </strong></h4><p>If you are not comfortable running OpenClaw directly on your system, Docker is a great option. It keeps the environment more isolated and safer.</p><pre><code>git clone https://github.com/openclaw/openclaw
cd openclaw
./docker-setup.sh</code></pre><p>This time, I used manual onboarding so I could follow each step clearly.</p><p>Once installed, you will typically see two key locations.</p><ul><li><p>~/.openclaw -  stores config, memory, and keys</p></li><li><p>~/openclaw/workspace - the agent workspace</p></li></ul><p>If your dashboard is not connecting, then try this.</p><pre><code><code>docker compose run --rm openclaw-cli dashboard --no-open</code></code></pre><h4><strong>Other hosting methods</strong></h4><p>OpenClaw already provides clear guides for hosting on Render, Railway.</p><ul><li><p><a href="https://docs.openclaw.ai/install/render">OpenClaw deployment on Render</a></p></li><li><p><a href="https://docs.openclaw.ai/install/railway">OpenClaw deployment on Railway</a></p></li><li><p>You can also run <a href="https://github.com/cloudflare/moltworker">OpenClaw on Cloudflare using moltworker.</a></p></li></ul><h2>3. OpenClaw Workflow and Automation</h2><p>One part I really wanted to test was how OpenClaw fits into day-to-day workflow, especially for development tasks.</p><h4>Slack Integration</h4><p>For my testing, I connected Slack and WhatsApp. Before connecting Slack to OpenClaw, I first created a Slack app. OpenClaw already has clear documentation for <a href="https://docs.openclaw.ai/channels/slack">Slack app setup</a>.</p><p>Here are the exact steps I followed.</p><h4>Create the Slack app + enable Socket Mode</h4><ol><li><p>Go to <a href="https://api.slack.com/apps">https://api.slack.com/apps</a></p></li><li><p>Click Create New App &#8594; From scratch &#8594; Give App Name &#8594; Select Workspace</p></li><li><p>Open Socket Mode and turn it ON &#8594; In Basic Information &#8594; App-Level Tokens, generate a token with scope connections:write</p></li><li><p>Copy this App Token (xapp-...)</p></li><li><p>Go to OAuth &amp; Permissions</p></li><li><p>Add bot scopes (minimum needed):<br>chat:write, app_mentions:read, channels:history, groups:history, im:history, im:read, im:write, mpim:history, reactions:read, reactions:write, pins:read, pins:write, commands</p></li><li><p>Go to Install App &#8594; Click Install to Workspace</p></li><li><p>Copy the Bot User OAuth Token (xoxb-...)</p></li></ol><p>Once the Slack App is created, use openclaw configure to connect the slack app. </p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;99ab414d-cdd4-494d-8c6d-7bcab1631b89&quot;,&quot;duration&quot;:null}"></div><h2>How I fix GitHub issues directly from slack</h2><p>Once Slack is connected, I can talk to OpenClaw directly from Slack and use it to handle GitHub issues.</p><p>When a new issue comes in, I ask OpenClaw to take a look. It reads the issue, checks my local code, makes the fix, and pushes the change back to GitHub. It also posts a reply on the issue with a short note on what it fixed.</p><p>In short: I can go from issue &#8594; fix &#8594; update, without constantly switching tools.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6219da20-6fde-4481-b0a1-e5eccc1ccf7d&quot;,&quot;duration&quot;:null}"></div><h2>How I use cron to check pull requests and see which ones are ready to merge</h2><p>As a GitHub repository maintainer, I like checking which pull requests are merge-ready first thing in the morning. So I set up a daily cron job in OpenClaw.</p><p>Every morning, it checks recent PRs and verifies whether the basic merge conditions are met, such as.</p><ul><li><p>no merge conflicts</p></li><li><p>required CI/status checks passed</p></li><li><p>required approvals completed</p></li></ul><p>This gives me a quick &#8220;merge-ready vs not-ready&#8221; snapshot without manual checking. <a href="https://docs.openclaw.ai/automation/cron-jobs#cron-jobs">Setting up cron in OpenClaw</a> is simple. You can either.</p><ul><li><p>use the CLI (<code>openclaw cron add</code>), or</p></li><li><p>ask the agent in chat to create it for you.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!pltm!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!pltm!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 424w, https://substackcdn.com/image/fetch/$s_!pltm!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 848w, https://substackcdn.com/image/fetch/$s_!pltm!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 1272w, https://substackcdn.com/image/fetch/$s_!pltm!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!pltm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png" width="1456" height="1070" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/baf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1070,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:833920,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!pltm!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 424w, https://substackcdn.com/image/fetch/$s_!pltm!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 848w, https://substackcdn.com/image/fetch/$s_!pltm!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 1272w, https://substackcdn.com/image/fetch/$s_!pltm!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fbaf1b29f-f396-4b66-a1a3-1c77be51370c_2098x1542.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8azz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8azz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 424w, https://substackcdn.com/image/fetch/$s_!8azz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 848w, https://substackcdn.com/image/fetch/$s_!8azz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 1272w, https://substackcdn.com/image/fetch/$s_!8azz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8azz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png" width="1456" height="299" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:299,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:144399,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8azz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 424w, https://substackcdn.com/image/fetch/$s_!8azz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 848w, https://substackcdn.com/image/fetch/$s_!8azz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 1272w, https://substackcdn.com/image/fetch/$s_!8azz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff64b4af8-19f1-4338-a9c0-347ac13feba5_1696x348.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Here is how i get my daily PR Report.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vldM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vldM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 424w, https://substackcdn.com/image/fetch/$s_!vldM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 848w, https://substackcdn.com/image/fetch/$s_!vldM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 1272w, https://substackcdn.com/image/fetch/$s_!vldM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vldM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png" width="1456" height="915" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:915,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:337692,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vldM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 424w, https://substackcdn.com/image/fetch/$s_!vldM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 848w, https://substackcdn.com/image/fetch/$s_!vldM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 1272w, https://substackcdn.com/image/fetch/$s_!vldM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc74b3dd3-cc84-4139-a113-2b0ec59963e5_1696x1066.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>How I set up my AI Daily Digest with OpenClaw + WhatsApp</h2><p>I wanted a daily AI news summary delivered to my personal WhatsApp, using newsletters that already land in my Gmail label called &#8220;AI digest.&#8221;</p><h4>What I wanted</h4><ul><li><p>Source: Gmail label - AI digest</p></li><li><p>Output: Concise AI summary to my WhatsApp</p></li><li><p>Schedule: 10:00 AM IST daily</p></li><li><p>Query support: &#8220;what&#8217;s the last week updates?&#8221;</p></li></ul><p>At first, I considered Gmail push automation (webhook/Pub/Sub) using the official docs. But that route needed extra infrastructure (like Tailscale). I tried it, but Tailscale was blocked on macOS in my setup, so I dropped that approach and moved to a simpler CLI + cron flow.</p><h4>Whatsapp Integration</h4><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;6d637323-4fc0-4dc7-8049-9d0a6d907f1f&quot;,&quot;duration&quot;:null}"></div><h4>Setup: gog CLI + OpenClaw cron</h4><p>Here&#8217;s the exact setup I used.</p><ol><li><p>Install - gog CLI (Google Workspace CLI) on the host.</p></li><li><p>Configure Google OAuth client credentials for gog.</p></li><li><p>Enable Gmail API in Google Cloud Console.</p></li><li><p>Get/download Google OAuth client JSON.</p></li><li><p>Register credentials with gog</p><pre><code>gog auth credentials set /path/to/client_secret.json</code></pre></li><li><p>Authenticate Gmail account for CLI access</p><pre><code>gog auth add "your-email"  --services gmail</code></pre></li><li><p>Test auth</p><pre><code>gog auth list</code></pre></li><li><p>Test search query (last 24h email from AI Digest)</p><pre><code>gog gmail messages search "label:\"AI digest\" newer_than:1d" --account "your-email-id" --max 50 --json</code></pre></li><li><p>Set up cron job in OpenClaw</p><p></p><pre><code>openclaw cron add \
  --name "Daily AI digest from Gmail label" \
  --session isolated \
  --cron "0 10 * * *" \
  --tz "Asia/Kolkata" \
  --message 'Using gog with account "your-email-id", check Gmail label "AI digest" for emails from the last 24 hours. Extract the most important AI updates/news, deduplicate repeated stories, and send a concise WhatsApp digest with: (1) top updates as bullets, (2) why each matters in one line, and (3) links/sources when available. If no relevant emails are found, say there were no major AI updates in the last 24 hours.' \
  --announce \
  --channel whatsapp \
  --to "your-whatsapp-number" \
  --timeout 180000 \
  --timeout-seconds 120 \                                                                  </code></pre></li><li><p>Once this is active, OpenClaw automatically delivers the AI digest to WhatsApp through its messaging route.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OUNk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OUNk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 424w, https://substackcdn.com/image/fetch/$s_!OUNk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 848w, https://substackcdn.com/image/fetch/$s_!OUNk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 1272w, https://substackcdn.com/image/fetch/$s_!OUNk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OUNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png" width="1456" height="1200" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d50cf905-617d-4059-b128-ae395bed5005_1696x1398.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1200,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:722465,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OUNk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 424w, https://substackcdn.com/image/fetch/$s_!OUNk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 848w, https://substackcdn.com/image/fetch/$s_!OUNk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 1272w, https://substackcdn.com/image/fetch/$s_!OUNk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd50cf905-617d-4059-b128-ae395bed5005_1696x1398.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div></li></ol><blockquote><p>Notes/Troubleshooting</p><ol><li><p>If cron fails with <code>"</code>missing refresh token<code>"</code> then do re-auth again.</p></li></ol><p><code>  gog auth add "your-email-id"  --services gmail</code></p><ol start="2"><li><p>Always configure both gateway and agent timeouts for cron jobs.</p></li></ol></blockquote><h2>Openclaw commands</h2><p>These are the commands I used while working with OpenClaw</p><ul><li><p><code>openclaw configure</code> &#8212; Runs interactive setup after installation.</p></li><li><p><code>openclaw dashboard --no-open</code> &#8212; Opens the OpenClaw UI in browser.</p></li><li><p><code>openclaw devices list</code> &#8212; Shows paired devices and their status.</p></li><li><p><code>openclaw plugins list</code> &#8212; Lists installed/available plugins and their state.</p></li><li><p><code>openclaw security audit</code> &#8212; Runs a standard security audit.</p></li><li><p><code>openclaw security audit --deep</code> &#8212; Runs deep security audit.</p></li></ul><ul><li><p><code>openclaw status</code> &#8212; Quick overall health check  of gateway, channels etc..</p></li><li><p><code>openclaw doctor</code> &#8212; Diagnoses common setup/runtime issues and suggests fixes.</p></li><li><p><code>openclaw gateway status</code> &#8212; Checks whether the gateway service is running.</p></li><li><p><code>openclaw gateway restart</code> &#8212; Restarts the gateway service (very useful after config/auth changes).</p></li><li><p><code>openclaw logs</code> &#8212; Shows gateway logs for debugging.</p></li><li><p><code>openclaw cron list</code> &#8212; Lists all scheduled cron jobs.</p></li><li><p><code>openclaw cron runs &#8212;-id &lt;job-id&gt;</code> &#8212; Shows execution history for a specific cron job.</p></li><li><p><code>openclaw cron run &lt;job-id&gt;</code> &#8212; Manually triggers a cron job for testing.</p></li><li><p><code>openclaw cron rm &lt;job-id&gt;</code> &#8212; Deletes a cron job.</p></li><li><p><code>openclaw message send ...</code> &#8212; Sends a test/proactive message (useful for validating delivery routes).</p></li></ul><p>For more commands: <a href="https://docs.openclaw.ai/cli">https://docs.openclaw.ai/cli</a>     </p><h2>4. Adding Custom Skills</h2><p>You can add custom skills to openclaw.  Check <a href="https://skills.sh/">skills.sh</a>. Select the skill you want to add. Get inside the workspace and install the skill.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;76585c60-84b0-4bf3-a0c7-d5002c0ad936&quot;,&quot;duration&quot;:null}"></div><h2>5. OpenClaw Agent in Moltbook </h2><p>If you are interested about giving your agent a more &#8220;social&#8221; layer, Moltbook is an interesting add-on to explore.</p><p><a href="https://www.moltbook.com/">Moltbook - Social network for AI Agent</a></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!lvhY!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!lvhY!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 424w, https://substackcdn.com/image/fetch/$s_!lvhY!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 848w, https://substackcdn.com/image/fetch/$s_!lvhY!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 1272w, https://substackcdn.com/image/fetch/$s_!lvhY!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!lvhY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png" width="964" height="548" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:548,&quot;width&quot;:964,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:72495,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!lvhY!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 424w, https://substackcdn.com/image/fetch/$s_!lvhY!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 848w, https://substackcdn.com/image/fetch/$s_!lvhY!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 1272w, https://substackcdn.com/image/fetch/$s_!lvhY!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe64c7830-05f3-4dac-8cac-f5eba826edfb_964x548.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h3><strong>Read this, before you try OpenClaw</strong></h3><p>OpenClaw is powerful. That is also why you should be careful. </p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nYx1!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nYx1!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 424w, https://substackcdn.com/image/fetch/$s_!nYx1!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 848w, https://substackcdn.com/image/fetch/$s_!nYx1!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 1272w, https://substackcdn.com/image/fetch/$s_!nYx1!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nYx1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif" width="853" height="562" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/de1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:562,&quot;width&quot;:853,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:182764,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186736098?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nYx1!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 424w, https://substackcdn.com/image/fetch/$s_!nYx1!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 848w, https://substackcdn.com/image/fetch/$s_!nYx1!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 1272w, https://substackcdn.com/image/fetch/$s_!nYx1!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fde1bf3e2-e65d-441e-98fe-7bb7e70b36b9_853x562.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Safety tips</h4><ul><li><p>Do not run this on your primary machine.</p></li><li><p>Use Docker or a VM or a spare laptop.</p></li><li><p>Give only the permissions you need.</p></li><li><p>Treat it as an experiment, not production.</p></li><li><p>Stick to official sources for downloads and updates.</p></li></ul><h2>Conclusion</h2><p>Now you have seen what OpenClaw is and a few workflows and automations. For daily work, it can save time and reduce tool switching.</p><p>I am still exploring more workflows and use cases. If you are experimenting with OpenClaw, start with one simple workflow and build from there.</p><p>Hope this post helps you get started.</p><p>Happy building!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/openclaw-workflow-and-automation?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/openclaw-workflow-and-automation?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/openclaw-workflow-and-automation?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 98] - Claude Opus 4.6, GPT 5.3 Codex, Qwen3-Coder-Next, Codex App, NanoClaw, PaperBanana,Vercel Lab's json-render, No Ads in Claude, git-rebase, Elevenlab's Skills,Xcode is now AI IDE!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 06 Feb 2026 13:10:17 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/dcbaf484-ac3f-40d0-b030-b9d36b729928_6000x4000.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 98th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li><li><p><a href="https://devshorts.substack.com/p/how-to-build-voice-agents">How to build Voice Agents</a></p></li></ul><p>Join 8600+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p>The coding model race is heating up. We have new releases from different providers this week. <a href="https://www.anthropic.com/news/claude-opus-4-6">Anthropic announced Claude Opus 4.6</a>. We all know Opus 4.5 already performs really well, and they call this new version the strongest model. They also shipped API updates like adaptive thinking, effort levels, and context compaction. Check the Anthropic Opus 4.6 post for details.</p></li><li><p><a href="https://openai.com/index/introducing-gpt-5-3-codex/">OpenAI has introduced GPT-5.3-Codex.</a>. OpenAI says this model is built for agent style coding and long running tasks with tool use. They also mentioned that GPT-5.3-Codex helps build itself. Check the OpenAI GPT 5.3 Codex post for details.</p></li><li><p><a href="https://huggingface.co/collections/Qwen/qwen3-coder-next">Qwen announced Qwen3-Coder-Next</a>. A new open weight model built for coding agents. It is tuned for long code sessions and agent loops. It has a big context window. If you are trying to run a coding agent on your own machine, this is worth a look. Check the Qwen3-Coder-Next for details.</p></li><li><p>Kling AI announced Kling 3.0, and it looks like a solid upgrade. It has improved video length and consistency. It also has image generation with 4K image output. It has native audio supporting multiple characters with multi-language. Check <a href="https://x.com/Kling_ai/status/2019064918960668819">Kling AI announcement on Kling 3.0</a> for details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring json-render from Vercel Labs. It helps you build AI generated UI without letting the model output raw HTML. The model outputs a JSON layout using only the components you allow. Then json-render reads that JSON and renders the UI in your app. Check the<a href="https://github.com/vercel-labs/json-render"> json-render GitHub repo</a> for details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!EN9D!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!EN9D!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 424w, https://substackcdn.com/image/fetch/$s_!EN9D!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 848w, https://substackcdn.com/image/fetch/$s_!EN9D!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 1272w, https://substackcdn.com/image/fetch/$s_!EN9D!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!EN9D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png" width="1456" height="843" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:843,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:194999,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186967128?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!EN9D!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 424w, https://substackcdn.com/image/fetch/$s_!EN9D!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 848w, https://substackcdn.com/image/fetch/$s_!EN9D!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 1272w, https://substackcdn.com/image/fetch/$s_!EN9D!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc8b1e08c-346c-418f-845e-5d3ad8d412bf_1740x1008.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p>PaperBanana is a research project for making clean academic figures. It uses a multi-agent pipeline to look at similar examples, picks a layout, keeps the style consistent, then generates the final illustration. Check <a href="https://dwzhu-pku.github.io/PaperBanana">PaperBanana</a> for more details.</p></li><li><p>Every week we mention articles about API techniques and security basics. This ByteByteGo post talks about <a href="https://blog.bytebytego.com/p/top-authentication-techniques-to">top authentication techniques</a>. Another Substack post discusses <a href="https://javarevisited.substack.com/p/master-these-16-api-concepts-before">16 API concepts</a> like versioning, rate limiting, and more. If you are working on backend, check these to know the API concepts.</p></li><li><p>Claude just took a clear stance on ads. They said ads are coming to AI, but not to Claude. It also reads like a pointed response to the recent talk around ad supported ChatGPT plans. Check <a href="https://x.com/claudeai/status/2019071113741906403">Claude&#8217;s tweet on Ads on AI.</a></p></li><li><p>If git rebase still scares you, this post is for you. It explains what rebase does in plain words. It also shows a safe way to use it without breaking your branch history. Check the post on <a href="https://www.brethorsting.com/blog/2026/01/git-rebase-for-the-terrified">Git Rebase for the Terrified</a> for details.</p></li><li><p>If you ever used OCR models and wondered how modern document extraction works, this post is a good read. It explains why classic OCR struggles with different templates and why teams move to vision LLMs. Check the post on <a href="https://blog.bytebytego.com/p/how-grab-built-a-vision-llm-to-scan">building a vision LLM</a> to know more details.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p><a href="https://openai.com/index/introducing-the-codex-app/">OpenAI introduced the Codex app</a>. It lets you run multiple coding agents in parallel. It has built in support for worktrees, so agents can work on the same repo without conflicts. It supports Skills too. Check OpenAI&#8217;s Codex app announcement for more details.</p></li><li><p>OpenAI also introduced OpenAI Frontier. It is a platform to build and run AI agents for enterprise workflows, with permissions and controls. Check the <a href="https://openai.com/index/introducing-openai-frontier/">OpenAI Frontier announcement</a> for details.</p></li><li><p>ElevenLabs has released skills. It includes text to speech, speech to text, sound effects, and music generation skills. You can plug these into agents and build relevant applications faster. Check the <a href="https://github.com/elevenlabs/skills">ElevenLabs skills</a> for details.</p></li><li><p>Last week we covered about OpenClaw. NanoClaw is a smaller version of the same idea. It runs in containers so you can keep things more isolated. It focuses on WhatsApp workflows, with features like memory, scheduling, and skills. Check <a href="https://github.com/gavrielc/nanoclaw">the NanoClaw repo</a> for details.</p></li><li><p><a href="https://www.apple.com/newsroom/2026/02/xcode-26-point-3-unlocks-the-power-of-agentic-coding">Apple just turned Xcode into an agent native IDE</a>. It lets coding agents like Claude Agent and Codex work inside the project. Xcode now supports MCP, so other MCP compatible agents can plug into Xcode tooling too. Check the Apple Newsroom post for details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-98-claude-opus-46-gpt?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[[Dev Catch Up # 97] - Moltbot (OpenClaw), XAI's Imagine API,OpenAI's Prism, Interactive tools in Claude, Deepseek-OCR-2, RepoBar, Pipenet, Moltbook- Social Network for AI Agents, agent-browser & more!]]></title><description><![CDATA[Bringing devs up to speed on the latest dev news from the trends including, a bunch of exciting developments and articles]]></description><link>https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw</link><guid isPermaLink="false">https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 30 Jan 2026 13:45:37 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/0e1c0b61-e888-4d8f-8b3a-b979c9ecef07_4032x2275.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Welcome to the 97th edition of DevShorts, Dev Catch Up.</p><p>For those who joined recently or are reading Dev Catch Up for the first time, I write about developer stories and open source, partly based on my work and experience interacting with people all over the globe.</p><p>Thanks for reading Dev Shorts! Subscribe for free to receive new posts and support my work.</p><p>Some recent issues from Dev Catch up:</p><ul><li><p><a href="https://www.devshorts.in/p/claude-skills-automate-your-workflows">Claude Skills - Automate Your Workflows</a></p></li><li><p><a href="https://www.devshorts.in/p/finetuning-deepseek-v3-with-tinker">Finetuning DeepSeek-V3 with Tinker API</a></p></li><li><p><a href="https://devshorts.substack.com/p/cursor-opus-45-the-developer-workflow">Cursor + Opus 4.5 - The Developer Workflow</a></p></li><li><p><a href="https://devshorts.substack.com/p/coding-with-parallel-agents-and-git">Coding with Parallel Agents and Git worktrees</a></p></li><li><p><a href="https://devshorts.substack.com/p/how-to-build-voice-agents">How to build Voice Agents</a></p></li></ul><p>Join 8600+ developers to hear stories from Open source and technology.</p><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2><strong>Must Read</strong></h2><ul><li><p>An open source AI assistant named Moltbot, formerly Clawdbot, took the internet by storm this week for its agentic capabilities. It is now renamed to OpenClaw. It runs on your own device. It answers on the channels you already use like WhatsApp, Telegram, Slack, Discord, Google Chat, and Teams etc. It supports many models. Check the <a href="https://github.com/openclaw/openclaw">Moltbot (OpenClaw) GitHub repo</a> for more info.</p></li><li><p>Grok has released Imagine API. It is a video generation API that turns text or images into videos with native audio. It debuts at the top of the video model leaderboards. It costs $4.20 per minute. Check <a href="https://x.ai/news/grok-imagine-api">xAI&#8217;s announcement on Imagine API</a> for more details.</p></li><li><p>Your favorite work tools are now interactive inside Claude. You can open and use apps like Slack, Figma, Canva, and more right inside the chat. Anthropic says this is powered by MCP Apps, which brings UI support to the MCP client. Check <a href="https://claude.com/blog/interactive-tools-in-claude">Anthropic&#8217;s announcement on Interactive tools in Claude</a> for more details.</p></li><li><p>DeepSeek released DeepSeek-OCR-2. An open source OCR model that reads documents like humans. It improves layout understanding and handles complex text and tables better than older OCR systems. Check <a href="https://github.com/deepseek-ai/DeepSeek-OCR-2">DeepSeek-OCR-2</a> for more details.</p></li></ul><h2><strong>OSS Highlight of the Week</strong></h2><p>This week we are featuring RepoBar. It shows the status of GitHub repos in the menu bar and in terminal. You can see pull requests, number of issues, commits and more without opening GitHub in the browser. Pin the repos and get a clear dashboard for each repo. Check <a href="https://github.com/steipete/RepoBar">RepoBar GitHub</a> for more details.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gl93!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gl93!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 424w, https://substackcdn.com/image/fetch/$s_!Gl93!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 848w, https://substackcdn.com/image/fetch/$s_!Gl93!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!Gl93!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gl93!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png" width="1456" height="973" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:973,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:1268906,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/186250784?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gl93!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 424w, https://substackcdn.com/image/fetch/$s_!Gl93!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 848w, https://substackcdn.com/image/fetch/$s_!Gl93!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 1272w, https://substackcdn.com/image/fetch/$s_!Gl93!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F12f83935-9788-4ce3-b970-e30e588fa4c7_1756x1174.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div><hr></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p><div><hr></div><h2><strong>Good to know</strong></h2><ul><li><p>OpenAI introduced Prism, a free AI workspace for scientific writing and collaboration. It is powered by GPT-5.2. Prism gives researchers a cloud based LaTeX environment where they can draft papers, revise text and work with collaborators . Check <a href="https://openai.com/index/introducing-prism/">OpenAI&#8217;s Prism</a> for more details.</p></li><li><p>I read a Substack post featuring Peter Steinberger, the creator of Moltbot. He shares how he ships fast using AI tools and agent workflows. If you want to read the full story, check the post titled - <a href="https://substack.com/inbox/post/185922983">The Creator of Clawd: "I ship code, I dont read</a>".</p></li><li><p>We all know API is the communication layer between server and client. ByteByteGo published a deep dive on how to scale an API. It explains why scalability matters and the common patterns used to handle spikes. Check the post <a href="https://blog.bytebytego.com/p/how-to-scale-an-api">How to Scale an API</a> for more details.</p></li><li><p>After Claude Cowork dropped, LangChain quickly released OpenWork. It is a fully open source desktop agent that runs locally. It gives Claude Code style file access and task execution on your own machine. Check the <a href="https://github.com/langchain-ai/openwork">OpenWork GitHub repo</a> for more details.</p></li><li><p>Google rolled out AI upgrades to Chrome. It is powered by Gemini 3. It adds a new side panel for integrations with Gmail, Calendar, Maps, Flights, Shopping, and more. Chrome also adds auto browse for multi step workflows. Check <a href="https://blog.google/products-and-platforms/products/chrome/gemini-3-auto-browse">Google&#8217;s announcement on AI Upgrades in Chrome</a>.</p></li></ul><h2><strong>Notable FYIs</strong></h2><ul><li><p>Claude Code&#8217;s new update will be very useful to developers. It can now show updates about your active PR directly in the Claude Code&#8217;s footer. Make sure you have the GitHub CLI installed. Check this Twitter post on <a href="https://x.com/trq212/status/2016709618853183889">Claude Code with PR footer</a> for more details.</p></li><li><p>xAI published the full codebase for the algorithm that powers the <code>"</code>For You<code>"</code> feed on X. It shows how posts are selected and ranked for users using signals and AI models. If you are working one any recommendation system, this may be helpful. Check the <a href="https://github.com/xai-org/x-algorithm">xAI algorithm GitHub repo</a> for more details.</p></li><li><p>I came across Moltbook and found it interesting. Moltbook is a social network for AI agents, where agents post, discuss, and upvote content. There are already threads where agents are discussing with each other. Humans can watch and interact as observers. Check <a href="https://www.moltbook.com/">Moltbook</a> for more details.</p></li><li><p>Developers often expose a local server to the public internet. There are many tools for this already. Pipenet has joined the list. Unlike other tools, it can be installed with a simple npx command. Check <a href="https://github.com/punkpeye/pipenet">Pipenet GitHub Repo</a> for more details.</p></li><li><p>A tool called qmd caught my attention. A mini CLI search engine for your docs, notes, meeting transcripts, and knowledge bases. It runs locally and lets you search all your markdown and files using natural language. Check the <a href="https://github.com/tobi/qmd">qmd GitHub repo</a> for more details.</p></li><li><p>If your agent needs browser capabilities, agent-browser is worth a look. It is a headless browser automation CLI for AI Agents. It can open pages, click, fill forms, and take screenshots. It uses fewer tokens compared to Playwright. Check the <a href="https://github.com/vercel-labs/agent-browser">agent-browser GitHub repo</a> for more details.</p></li></ul><p>That&#8217;s it from us with this edition. We hope you are going away with a ton of new information. Lastly, share this newsletter with your colleagues and pals if you find it valuable. A subscription to the newsletter will be awesome if you are reading it for the first time.</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/dev-catch-up-97-moltbot-openclaw?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item><item><title><![CDATA[Claude Skills - Automate your workflows]]></title><description><![CDATA[Claude Skills for developer workflows]]></description><link>https://www.devshorts.in/p/claude-skills-automate-your-workflows</link><guid isPermaLink="false">https://www.devshorts.in/p/claude-skills-automate-your-workflows</guid><dc:creator><![CDATA[Aravind Putrevu]]></dc:creator><pubDate>Fri, 23 Jan 2026 14:31:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!H6Kj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>We all know many GitHub repos now list Claude as a contributor. Even Claude's Cowork was built entirely using Claude Code. Developers have adopted Claude Code. They build custom workflows using hooks, MCP servers, and slash commands to ship faster.</p><p>Claude Skills are the newest addition to this workflow. Skills teach domain expertise. </p><p>Anthropic released <a href="https://github.com/anthropics/skills">Claude Skills</a> in October 2025. They added document creation &amp; handling capabilities to Claude using Skills. They also open-sourced <a href="https://github.com/anthropics/skills/tree/main/skills">the production Skills that power Claude's capabilities</a>.</p><p>Skills unlock full potential when combined with other tools. You can combine skills with hooks and MCP Servers to automate your workflows. Since Skills launched, developers use Claude as a general-purpose agent for more than just coding.</p><p>So, I&#8217;m covering about Claude Skills and how I use them in my workflow.</p><ol><li><p>What are Claude Skills </p></li><li><p>Why Claude Skills </p></li><li><p>Skills Vs MCP</p></li><li><p>Automate - Git Commit, PR workflow with Claude Skills</p></li><li><p>Automate - Invoice Generation with Claude Skills</p></li><li><p>Top Claude Code skills</p></li></ol><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">Dev Shorts is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div><h2>1. What are Claude Skills</h2><p>Skills are folders with a SKILL.md file containing instructions. The folder can also include scripts, templates, and reference docs. Each skill is self-contained in its own folder. Skills teach Claude how to complete specific tasks. They are reusable too. Claude loads the right skill when its needed.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!H6Kj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!H6Kj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 424w, https://substackcdn.com/image/fetch/$s_!H6Kj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 848w, https://substackcdn.com/image/fetch/$s_!H6Kj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 1272w, https://substackcdn.com/image/fetch/$s_!H6Kj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!H6Kj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png" width="1129" height="580" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:580,&quot;width&quot;:1129,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:88027,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!H6Kj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 424w, https://substackcdn.com/image/fetch/$s_!H6Kj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 848w, https://substackcdn.com/image/fetch/$s_!H6Kj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 1272w, https://substackcdn.com/image/fetch/$s_!H6Kj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F7522cc8a-6dc9-4c01-8e68-ecbbdf5b3fcf_1129x580.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>SKILL.md starts with YAML metadata and then the instructions. The metadata includes fields like name and description. Claude uses the description to decide when to apply the Skill.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!vo15!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!vo15!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 424w, https://substackcdn.com/image/fetch/$s_!vo15!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 848w, https://substackcdn.com/image/fetch/$s_!vo15!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 1272w, https://substackcdn.com/image/fetch/$s_!vo15!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!vo15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png" width="875" height="295" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:295,&quot;width&quot;:875,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:38123,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!vo15!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 424w, https://substackcdn.com/image/fetch/$s_!vo15!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 848w, https://substackcdn.com/image/fetch/$s_!vo15!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 1272w, https://substackcdn.com/image/fetch/$s_!vo15!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4c7247c-76c3-450c-a0e2-0af9b5cb9776_875x295.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>A skill is not just a markdown file. It can include code samples, reference docs, and templates in the same folder.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m3sf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m3sf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 424w, https://substackcdn.com/image/fetch/$s_!m3sf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 848w, https://substackcdn.com/image/fetch/$s_!m3sf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 1272w, https://substackcdn.com/image/fetch/$s_!m3sf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m3sf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png" width="1456" height="744" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:744,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:123217,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m3sf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 424w, https://substackcdn.com/image/fetch/$s_!m3sf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 848w, https://substackcdn.com/image/fetch/$s_!m3sf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 1272w, https://substackcdn.com/image/fetch/$s_!m3sf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd98b2479-65dd-4eaa-b354-c8d0a7237ca3_1578x806.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>In Claude Code, you can keep Skills in two places. </p><ul><li><p>Personal Skills go in <code>~/.claude/skills/</code>. It can work across projects. </p></li><li><p>Project Skills go in <code>.claude/skills/.</code> You can commit them and share them with your team.</p></li></ul><p>A big advantage of Skills is they are not loaded fully all the time. Claude reads small metadata first to identify the right skill. Then it loads full instructions only when needed. This keeps your context clean. You can use heavy skills with scripts and docs without bloating tokens.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Q0F7!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Q0F7!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 424w, https://substackcdn.com/image/fetch/$s_!Q0F7!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 848w, https://substackcdn.com/image/fetch/$s_!Q0F7!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 1272w, https://substackcdn.com/image/fetch/$s_!Q0F7!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Q0F7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png" width="1205" height="540" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/ef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:540,&quot;width&quot;:1205,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:93009,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Q0F7!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 424w, https://substackcdn.com/image/fetch/$s_!Q0F7!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 848w, https://substackcdn.com/image/fetch/$s_!Q0F7!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 1272w, https://substackcdn.com/image/fetch/$s_!Q0F7!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fef2b9d9b-6bc6-4db5-9f94-4537cfc23cc0_1205x540.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><blockquote><p>Skills also work across Claude app, Claude Code.  You can also<a href="https://agentskills.io/integrate-skills"> integrate skills to your agent</a>. </p></blockquote><h2>2. Why Claude Skills</h2><p>Here is why Claude Skills are worth adding to your workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!et-n!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!et-n!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 424w, https://substackcdn.com/image/fetch/$s_!et-n!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 848w, https://substackcdn.com/image/fetch/$s_!et-n!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 1272w, https://substackcdn.com/image/fetch/$s_!et-n!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!et-n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png" width="745" height="460" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/af8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:460,&quot;width&quot;:745,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:66477,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!et-n!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 424w, https://substackcdn.com/image/fetch/$s_!et-n!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 848w, https://substackcdn.com/image/fetch/$s_!et-n!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 1272w, https://substackcdn.com/image/fetch/$s_!et-n!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Faf8bcae6-79d6-4be3-b603-bbab0bf7ac56_745x460.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>3. Skills Vs MCP</h2><p>Here is a quick side by side view of how Claude Skills and MCP differ.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!izEk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!izEk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 424w, https://substackcdn.com/image/fetch/$s_!izEk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 848w, https://substackcdn.com/image/fetch/$s_!izEk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 1272w, https://substackcdn.com/image/fetch/$s_!izEk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!izEk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png" width="1095" height="594" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/b070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:594,&quot;width&quot;:1095,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:67819,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!izEk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 424w, https://substackcdn.com/image/fetch/$s_!izEk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 848w, https://substackcdn.com/image/fetch/$s_!izEk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 1272w, https://substackcdn.com/image/fetch/$s_!izEk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fb070d760-6c82-4f98-9223-db22f35aa64d_1095x594.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>4. Automate - Git Commit, PR workflow with Claude Skills</h2><p>Git commits and PR creation happen daily in my work. Running type checks, linting, writing commit messages, and filling PR descriptions add up over time.</p><p>I built a skill to automate this workflow. The skill manages everything from pre-commit checks to PR creation. It runs quality checks before every commit, commits the code with proper messages, and automatically raises pull requests with descriptions.</p><blockquote><p>Claude Code handles commits and PRs natively with Git CLI. But it won't follow your exact patterns. I needed standardized commit messages, specific PR templates, and quality checks in my preferred order. So, I built a skill that enforces my workflow.</p></blockquote><h4>The Setup</h4><p>I have three components in my workflow.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!P_t3!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!P_t3!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 424w, https://substackcdn.com/image/fetch/$s_!P_t3!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 848w, https://substackcdn.com/image/fetch/$s_!P_t3!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 1272w, https://substackcdn.com/image/fetch/$s_!P_t3!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!P_t3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png" width="850" height="335" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:335,&quot;width&quot;:850,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:23917,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!P_t3!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 424w, https://substackcdn.com/image/fetch/$s_!P_t3!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 848w, https://substackcdn.com/image/fetch/$s_!P_t3!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 1272w, https://substackcdn.com/image/fetch/$s_!P_t3!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0c06025e-5d91-4b0f-a131-b3951db976c6_850x335.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>CLAUDE Skill - Workflow Orchestrator</h4><p>It defines the commit-to-PR workflow. It summarizes changes, proposes commit messages, runs pre-commit checks, and orchestrates PR creation with proper descriptions.</p><h4>Hook for Pre-commit Checks</h4><p>It intercepts <code>git commit</code> commands. It runs lint, type check, and tests automatically. When checks fail, it blocks the commit and returns errors.</p><h4>GitHub MCP Server - PR Automation</h4><p>GitHub MCP Server handles all GitHub operations. It connects to the GitHub API and creates pull requests with descriptions, labels, and reviewers.</p><h4>How It Works Together</h4><pre><code><code>I invoke skill- /commit-guardian
    &#8595;
Skill summarizes changes, proposes commit message
    &#8595;
Hook intercepts git commit and runs checks
    &#8595;
Checks fail? &#8594; Hook blocks and returns errors. Skill guides Claude to fix and retry
    &#8595;
Checks pass? &#8594; Commit proceeds
    &#8595;
Skill invokes GitHub MCP Server
    &#8595;
MCP creates/updates PR
    &#8595;
Done - PR URL returned</code></code></pre><h4>Setting Up the Hook</h4><p><a href="https://code.claude.com/docs/en/hooks">The hooks configuration</a> lives in <code>.claude/settings.json</code>.  You can create this using /hooks.  You can also <a href="https://code.claude.com/docs/en/hooks#hooks-in-skills-and-agents">define hooks inside Claude Skill</a>. This hook will run during Claude Skill&#8217;s lifecycle.</p><pre><code><code>{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "python .claude/hooks/commit_guard.py"
          }
        ]
      }
    ]
  }
}</code></code></pre><p>Our hook executes the script - <code>.claude/hooks/commit_guard.py</code>. Here&#8217;s the script structure.</p><pre><code><code>#.claude/hooks/commit_guard.py
# Pre-commit quality gate - runs lint, typecheck, tests

import json
import subprocess
import sys

def detect_package_manager():
    """Returns npm, yarn, or pnpm based on lock files."""
    # ...

def run_checks():
    """Runs lint, typecheck, and tests. Returns results."""
    # ...

def main():
    raw = sys.stdin.read().strip()
    data = json.loads(raw)
    
    # Only intercept git commit commands
    if "git commit" not in data.get("tool_input", {}).get("command", ""):
        return 0
    
    results = run_checks()
    failed = [r for r in results if not r[1]]
    
    if failed:
        sys.stderr.write("Commit blocked - checks failed\n")
        return 2  # Block commit
    
    return 0  # Allow commit

if __name__ == "__main__":
    raise SystemExit(main())</code></code></pre><h4>Creating the Skill</h4><p>I created the skill based on my requirements. My commit messages follow a standard format with conventional commits using type and scope. PRs need specific templates with changes, motivation, and testing sections. The skill defines these rules. Claude follows them exactly every time.</p><p>The skill lives at <code>.claude/skills/commit_guardian/SKILL.md</code>. </p><pre><code><code>---
name: commit_guardian
description: Manages commit workflow with quality checks and automated PR creation. Use when committing code or creating pull requests.
allowed-tools:
  - Read
  - Edit
  - Write
  - Bash
---

# Commit Guardian Workflow

## Process

1. **Pre-Commit Summary**
   - List staged files
   - Summarize changes (2-3 lines)

2. **Commit Message**
   - Format: `type(scope): description`
   - Types: feat, fix, docs, style, refactor, test, chore
   - Under 72 characters

3. **Quality Checks**
   - Hook runs: lint, typecheck, tests
   - If fail: explain, fix, rerun
   - Repeat until pass

4. **PR Creation**
   - Get branch and target
   - Use GitHub MCP to create PR
   - Add title, description, labels, reviewers

## PR Template
```
## Changes
[What changed]

## Motivation
[Why needed]

## Testing
- [ ] Tests added/updated
- [ ] Manually tested
- [ ] All checks passing
```</code></code></pre><h4>Setting Up GitHub MCP</h4><p>Install the GitHub MCP server to Claude Code. It handles all GitHub operations.</p><pre><code><code>claude mcp add-json github '{"type":"http","url":"https://api.githubcopilot.com/mcp","headers":{"Authorization":"Bearer YOUR_GITHUB_PAT"}}'</code></code></pre><h4>Testing the workflow- Commit to PR Skill </h4><p>You can manually invoke skills using their name. I invoked <code>/commit-guardian</code> to test the workflow. Claude can also invoke skills automatically based on context.</p><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;e58d5129-a0eb-4c6d-aac2-fb405b40a794&quot;,&quot;duration&quot;:null}"></div><p>As this is my daily routine, I customized this flow with skills. So that it can complete the flow just like me.</p><h4>Get the Code</h4><p>Above mentioned skill files, scripts are available at this <a href="https://github.com/Sridevi17j/claude-skills">GitHub Repo</a>. </p><h2>5. Automate Invoice Generation with Claude Skills</h2><p>I work on small projects often. I track my hours, calculate totals, and fill the invoice template. Simple work, but it adds up.</p><p>So, I automated it using Claude Skills. The goal is straightforward. Track time while I work, calculate billable hours, and generate a ready-to-send invoice PDF.</p><h4>The Flow:</h4><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!D4Hc!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!D4Hc!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 424w, https://substackcdn.com/image/fetch/$s_!D4Hc!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 848w, https://substackcdn.com/image/fetch/$s_!D4Hc!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 1272w, https://substackcdn.com/image/fetch/$s_!D4Hc!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!D4Hc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif" width="1088" height="560" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/f99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:560,&quot;width&quot;:1088,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:179622,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/gif&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!D4Hc!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 424w, https://substackcdn.com/image/fetch/$s_!D4Hc!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 848w, https://substackcdn.com/image/fetch/$s_!D4Hc!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 1272w, https://substackcdn.com/image/fetch/$s_!D4Hc!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Ff99c937a-2131-4c68-bf97-e73933f258d3_1088x560.gif 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4>Slash commands</h4><p>I created slash commands to log start and end times. The commands live in .claude/commands/.</p><p><code>/start-work</code> logs the start time. <code>/stop-work</code> logs the end time.</p><p>If you want, you can add <code>/pause</code> for breaks or customize commands for your workflow.</p><h4>CLAUDE Skill</h4><p>The Claude skill reads <code>.work_log.json</code> and totals hours for the selected period. It fills the invoice PDF template using the bundled script and generates the final invoice.</p><h4>How it works</h4><div class="native-video-embed" data-component-name="VideoPlaceholder" data-attrs="{&quot;mediaUploadId&quot;:&quot;21b7b478-9805-4fdc-993c-6096d932d7f1&quot;,&quot;duration&quot;:null}"></div><h4>Get the Code</h4><p>The invoice generation skill, slash commands, and scripts are available in the <a href="https://github.com/Sridevi17j/claude-skills">GitHub repo</a>.</p><h2>6. Top Claude Code skills</h2><ol><li><p><strong><a href="https://github.com/obra/superpowers">Superpowers</a></strong> &#8211; Skills that add structured workflow commands like brainstorm and execute plan to organize development tasks.</p></li><li><p><strong><a href="https://github.com/SawyerHood/dev-browser">dev-browser</a> - </strong>Claude skills to give your agent the ability to use web browser.</p></li><li><p><strong><a href="https://github.com/anthropics/skills/tree/main/skills/mcp-builder">mcp-builder</a> </strong>- Skills to create MCP servers</p></li><li><p><strong><a href="https://github.com/anthropics/skills/tree/main/skills/frontend-design">frontend-design</a> </strong>- Skills to create production grade frontend design.</p></li><li><p><strong><a href="https://github.com/anthropics/skills/tree/main/skills/pdf">pdf-skills </a>- </strong>Skills to do pdf operations.</p></li><li><p><strong><a href="https://www.notion.so/notiondevs/Notion-Skills-for-Claude-28da4445d27180c7af1df7d8615723d0">Notion Skills</a></strong> - Skills that teach Claude how to work in Notion.</p></li></ol><p>Want to build your own skills? Check out this article on <a href="https://support.claude.com/en/articles/12512198-how-to-create-custom-skills">creating custom skills.</a></p><h4>Using Skill Creator</h4><p>Claude Code has a built-in skill creator. Enable it in settings and describe what you need. Claude generates the skill.md and all the files for you.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!9q7j!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!9q7j!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 424w, https://substackcdn.com/image/fetch/$s_!9q7j!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 848w, https://substackcdn.com/image/fetch/$s_!9q7j!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 1272w, https://substackcdn.com/image/fetch/$s_!9q7j!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!9q7j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png" width="1456" height="389" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:389,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:200592,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://www.devshorts.in/i/184280650?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!9q7j!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 424w, https://substackcdn.com/image/fetch/$s_!9q7j!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 848w, https://substackcdn.com/image/fetch/$s_!9q7j!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 1272w, https://substackcdn.com/image/fetch/$s_!9q7j!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F06d99720-b667-4f6f-82f5-9dabf91b3fe4_2402x642.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h2>Conclusion</h2><p>We covered Claude Skills and two workflows I use daily for commit automation and invoice generation.</p><p>Skills turn repetitive work into reusable instructions. Combine them with hooks and MCP to build reliable automation. <a href="https://huggingface.co/blog/sionic-ai/claude-code-skills-training">See how developers use Claude Skills in production to capture ML experiment results and prevent duplicate work</a>. </p><p>If you have repeatable routines in your day-to-day work, you can likely automate them with Skills. Build one skill for your workflow and see how much time it saves.</p><p>Happy Learning!</p><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-skills-automate-your-workflows?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">Thanks for reading Dev Shorts! This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://www.devshorts.in/p/claude-skills-automate-your-workflows?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://www.devshorts.in/p/claude-skills-automate-your-workflows?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div>]]></content:encoded></item></channel></rss>